- 博客(111)
- 资源 (46)
- 收藏
- 关注
原创 eBPF编程接口
摘要:eBPF通过四大核心接口实现安全的内核扩展:1)bpf()系统调用作为总控入口,负责加载程序和管理资源;2)受限的Helper函数提供安全的内核操作能力;3)BPF Map作为共享存储,实现内核态与用户态数据交互;4)BTF/CO-RE解决跨版本兼容问题,通过内嵌类型信息避免头文件依赖。这套机制通过严格受控的沙箱环境,使开发者能在不修改内核的前提下实现观测、过滤等高级功能。理解这四大角色(加载、执行、传数据、兼容)是掌握eBPF技术栈的关键。
2026-06-30 00:07:51
250
原创 BCC脚本执行链路
本文详细解析了BCC(BPF Compiler Collection)工具的执行链路和工作原理。BCC通过封装eBPF开发的复杂流程,让用户能够快速编写内核观测工具。其核心工作流程包含六个关键步骤:用户态脚本启动、内嵌C代码编译为eBPF字节码、通过bpf()系统调用加载到内核并经过Verifier校验、使用perf_event_open()将程序挂载到目标事件、事件触发时在内核态执行eBPF程序,最后将结果通过BPF Map或perf缓冲区返回用户态处理输出。文章特别指出BCC与perf系统的紧密关系,p
2026-06-29 23:59:55
261
原创 RT Throttling
本文深入解析了Linux内核中的RT限流机制(Real-Time Throttling),这是一种防止实时进程过度占用CPU导致系统卡死的保护机制。文章首先介绍了RT限流的工作原理,包括其默认的1秒周期和0.95秒配额限制。随后详细讲解了如何通过/proc文件系统调整限流参数,以及完全关闭该功能的风险警告。针对常见的"sched: RT throttling activated"内核日志报错,提供了排查步骤:定位高CPU占用的实时进程、代码修复建议(消除死循环、主动出让CPU)和参数调整方案。最后强调在硬实
2026-06-23 22:30:51
474
原创 【AI模考】智驾领域性能优化考察
摘要: 本文提供10道针对资深Linux系统开发工程师的面试题,聚焦自动驾驶领域的核心挑战。问题涵盖:1)实时调度中的优先级反转与CPU亲和性优化;2)智驾负载特性与PELT机制;3)线程级内存监控与DMA内存管理;4)异常诊断与性能分析技术;5)IPC零拷贝与缓存一致性;6)动态阈值告警策略;7)系统启动优化;8)资源过载时的降级策略。这些问题深度考察候选人在Linux内核调优、中间件设计及自动驾驶系统稳定性保障方面的实战能力,特别强调对实时性、确定性和异常处理等关键指标的把控。
2026-03-05 20:15:00
396
原创 【systemd系列】journal日志管理
Systemd 是init程序和一系列组件的集合,包括热插拔设备管理(udevd)、域名解析(resolved)、时间同步(timesyncd)、日志管理(journald)等。本文介绍一下日志管理。
2024-08-23 22:34:53
1287
原创 Linux平台Display Server与Desktop Environment
用多了Ubuntu,有没有思考过Linux是如何支持GUI界面的,是不是X11、GNOME还傻傻分不清,本文带您捋一捋~
2024-08-19 22:35:34
1716
原创 Onvif
http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdlhttp://www.onvif.org/onvif/ver10/event/wsdl/event.wsdlhttp://www.onvif.org/onvif/ver10/media/wsdl/media.wsdlhttp://www.onvif.org/onvif/ve...
2020-04-03 15:44:43
333
原创 python virtualenv初体验
为了体验python 3.7,安装了最新的Anaconda环境( Anaconda3-2018.12-Linux-x86_64.sh ),但工作上编译Android ROM又得需要python 2.7,来回切换很麻烦。探索到了virtualenv这个工具,可以在不切换系统默认python版本的情况下创建一个python 2.7环境。首先,确认系统默认python为3.7版本:$ python ...
2019-03-15 18:48:05
354
原创 android ndk build
android_ndk_buildDeveloper NDKhttps://developer.android.com/ndk/Building Your ProjectNDK推荐两种编译方式:ndk-buildCMake对于一些传统的C/C++工程,如libpng、libzmq、bzip2等。由于它们不是专门针对Android平台的,大多使用autoconf或者make方式来编...
2019-02-15 10:47:58
1824
原创 Direct Boot Mode
Direct Boot Mode简介在Android M及之前,当开机启动到锁屏界面时,所有程序阻塞,等待用户解锁(即使未设置开机密码,也需要滑屏解锁)后才会继续。而Android 7.0引入了Direct Boot模式,当手机已经通电开机但是用户并有解锁锁屏的时候,Android N运行于一个安全的模式,也就是Dierect Boot模式。而Direct Boot模式下,仅限于运行一些关...
2018-12-21 17:02:55
3605
2
转载 IBinder、BBinder和BpBinder
IBinder、BBinder和BpBinder注:这篇文章应该是根据某个博客记录下来的,但记不得链接了,请原作者见谅。这3个类,是对Android Binder框架的抽象,其实这个BBinder,改成BnBinder可能更形象一些。但是要注意的是,一个IXXXService的继承图中,BpBinder并不在这个继承关系之中,也就是说BpBinder并没有子类。但是BBinder是在这个继承...
2018-12-13 16:08:41
1394
原创 CarService启动Cluster的过程分析
CarService启动Cluster的过程分析基于Android 8.1系统源码本文涉及到的源码路径:packages/services/Car/car_product/build/car.mkpackages/services/Car/service/res/values/config.xmlpackages/services/Car/service/src/com/android...
2018-12-13 16:02:39
3630
原创 C++11
Language Standards Supported by GCCGCC 4.7及之后的版本才支持C11C89=C90:gcc选项是:-ansi, -std=c90 or -std=iso9899:1990;带了GNU扩展的:-std=gnu90C94=C95:gcc选项:-std=iso9899:199409C99:gcc选项:-std=c99 or -std=iso989...
2018-11-14 21:02:18
1455
原创 小米手机adb安装app
默认情况下,小米/红米手机禁止通过adb安装应用,会报INSTALL_FAILED_USER_RESTRICTED错误。以下操作基于红米Note4X + MIUI9.6版本操作步骤进入开发者模式 位置:设置->我的设备->全部参数 连续点击五次MIUI版本,进入开发者模式enable Diag usb port 拨号键盘,输入*#*#717717#*#*即可启用U...
2018-08-09 15:31:17
14643
原创 在Android和Linux上交叉编译iperf并测试网络带宽
在J6+Linux使用iperf$ tar xf iperf-2.0.5-source.tar.gz$ cd iperf-2.0.5/$ ./configure --host=arm-linux-gnueabihf$ make$ file src/iperf src/iperf: ELF 32-bit LSB executable, ARM, EABI5 version 1 (...
2018-08-08 10:51:53
2193
原创 APP申请权限
写了一个Demo列出并播放本地的视频文件,但运行时发现/storage/emulated/0目录下面空空如也,没有任何目录和文件。颇费周折,才晓得是没有获取READ_EXTERNAL_STORAGE权限导致的。原来从Android 6.0开始,APP不仅需要在AndroidManifest.xml声明其所需的permission,还需要在源码中显式申请权限(会弹出一个dialog,询问用户是否...
2018-08-02 19:38:36
1062
原创 如何关闭JACK编译器
说明:基于JACK编译器配置,有部分改动Android M开始,Google默认使用JACK编译器,对于JACK编译器的编译流程下面这篇文章写的很详细:http://taobaofed.org/blog/2016/05/05/new-compiler-for-android/这里主要谈一下JACK编译器的配置。1. JACK编译器三种模式JACK编译器有三种模式,即分别是dis...
2018-08-01 13:13:40
1899
原创 zmq in depth
zmq in depth深度解析ZeroMQ PUB/SUB模式,以Python语音描述PUB操作流程#!/usr/bin/env python# -*- coding: utf-8 -*-import zmq## 1. create zmq socketcontext = zmq.Context()socket = context.socket(zmq.PUB)...
2018-06-12 20:05:42
499
原创 Android根据经纬度获取城市名的方法
根据经纬度获取当前城市名的几种方式如下(获取城市名需要网络连接)1. 通过服务获取城市名百度:http://api.map.baidu.com/geocoder?output=json&location=39.913542,116.379763&ak=esNPFDwwsXWtsQfw4NMNmur1google:http://maps.google.
2018-03-29 21:43:10
7572
转载 Android中的Ninja简介
转自:http://note.qidong.name/2017/08/android-ninja/Android中的Ninja简介如果说Makefile是一个DSL,那么Ninja就是一种配置文件。 本文简单介绍Android中的Ninja。Makefile与Ninja的对比二者最核心的区别,在于设计哲学。 Makefile是设计来给人手写的,而Ninja设计出来是给其它程序生成的。 如果说Mak...
2018-03-19 20:04:56
3230
1
原创 ppm值是啥意思
在谈到RTC芯片的精度时,往往会用一个专业词PPM来衡量其精度 高精度的RTC精度可达到5 PPM 用PPM不是很直观,那么,此RTC每天的误差是多少秒呢?计算如下:(24×60×60s)×(5×10^-6)= 86400 × 0.000005 = 0.432s即ppm为5的RTC,每天的误差是0.432s,大概2.5天会误差一秒。 摘录:ppm(par
2018-03-15 16:19:43
18767
转载 Android Thermal
转自: blog.youkuaiyun.com/shichaog/article/details/60959260 包括两个部分kernel thermal monitor(KTM)和thermal engine。Thermal 管理包括的内容如下:硅片结温内存温度限制外表面温度限制当thermal engine完全初始化后,KTM确保所有环境条件下的结温处于限定的范围之内
2017-10-31 16:58:47
5056
原创 Linux驱动获取进程PID和进程名字
Linux驱动打印进程PID和进程名字在内核中, 进程用task_struct结构表示, 其中有char comm[TASK_COMM_LEN]成员, 其含义是 executable name excluding path按照标准做法, 应该使用get_task_comm()/set_task_comm()函数来获取/设置此成员(为避免竞争, 这俩函数会调用task_lock()先拿锁).
2017-10-31 11:23:17
10275
原创 fastboot权限问题
新安装的Ubuntu 16.04系统,第一次使用fastboot,发现用不了呢:$ fastboot flash boot boot.img< waiting for any device >这里,用fastboot devices命令先看下有无设备吧:$ fastboot devicesno permissions (user in plugdev group; are your udev r
2017-10-31 11:20:43
4465
原创 SPMI
The System Power Management Interface (SPMI) is a high-speed, low-latency, bi-directional, two-wire serial bus suitable for real-time control of voltage and frequency scaled multi-core application p
2017-10-26 20:10:26
9776
3
原创 AliOS开源
AliOS github地址: https://github.com/alibaba/AliOS-Things 阿里巴巴在2017杭州云栖大会上宣布将开源旗下的物联网嵌入式操作系统AliOS Things。 AliOS Things为阿里巴巴研制的一款面向汽车、IoT终端、IoT芯片和工业领域研发的物联网操作系统,并在其中整合了原YunOS移动端业务。 简
2017-10-26 12:52:55
1736
原创 BUILD_JAVA_LIBRARY与BUILD_STATIC_JAVA_LIBRARY的区别
BUILD_JAVA_LIBRARY 与BUILD_STATIC_JAVA_LIBRARY的区别本质上, jar包是一个zip格式的压缩包.BUILD_JAVA_LIBRARY编译出来的jar包,里面是DEX格式的文件.BUILD_STATIC_JAVA_LIBRARY编译出来的jar包,里面每个java文件对应的class文件都单独存在,顾名思义,每个java文件里面用到的变量都被静态编译到了
2017-10-24 11:16:28
9129
原创 FLOPS释义
FLOPS是Floating-point Operations Per Second, 即每秒所执行的浮点运算次数的英文缩写。它是一个衡量计算机计算能力的量(常作为GPU性能参数),这个量经常使用在那些需要大量浮点运算的科学运算中。有时也会被记为flop/s。一个 MFLOPS (megaFLOPS) 等于每秒1百万 (=10^6) 次的浮点运算, 一个 GFLOPS (gigaFLOPS) 等于
2017-10-18 11:12:15
7571
原创 ramp up
一个词ramp up的翻译范:相当于warm up的一个词,可以指人初入公司的锻炼,也可以指生产中小批量的试制,在说道阶段-关卡时候说道这个词,不好翻译。——————记者的天职是提问,可是遇到园之后,我的专业就成了回答。刚刚坐下,就迎来了她的一连串问题:“我可以知道这次采访的目的吗?”“你希望获得哪方面的信息?”“以前的采访过程是怎样的?”……人力资源部的同事说,园留给她印象最深的就是面试时的好一顿
2017-10-17 19:20:41
3170
原创 JAVA数字转十六进制字符
十六进制输出 private static final char[] hexCode = "0123456789ABCDEF".toCharArray(); public String printHexBinary(byte[] data) { StringBuilder r = new StringBuilder(data.length * 2); f
2017-10-17 18:23:34
1427
转载 高通MSM8K bootloader系列文章
http://blog.youkuaiyun.com/fybon/article/details/18185441 http://blog.youkuaiyun.com/fybon/article/details/37565227 http://blog.youkuaiyun.com/fybon/article/details/38455043 http://blog.youkuaiyun.com/fybon/article/details
2017-10-10 19:57:59
526
The Java Programming Language 4th Edition
2016-08-17
android_offline_doc_plugin-master
2015-03-13
iperf for Android
2018-08-08
p7zip_15.09_arm.tar.bz2
2015-11-25
m2repository_v12
2015-08-03
The Java Programming Language 4th Edition chm
2016-08-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅