
Linux内核
文章平均质量分 84
wusheng1989
做深度思考者
展开
-
Linux open系统调用的完整调用流程分析
系统调用,中断,异常是3种Linux用户空间切换到内核空间的方法今天以open系统调用为例,分析从用户空间层到内核空间层的完整流程我以安卓8.1源代码为例,对应的Linux内核版本是4.15.0谷歌专门为android定制了C库叫做bionic库给安卓系统层的c/c++代码调用,open()函数定义在下面:bionic/libc/bionic/open.cppint open(const char* pathname, int flags, …) {mode_t mode = 0;if ((f原创 2021-01-04 19:10:24 · 1694 阅读 · 0 评论 -
下载Linux内核并且编译系统然后用Qemu运行系统
从国内镜像下载Linux内核http://mirrors.aliyun.com/linux-kernel/v4.x/我下载的是tar zxvf linux-4.15.1.tar.gz然后tar zxvf linux-4.15.1.tar.gz命令解压内核然后进入内核源代码目录,执行下面的操作,分别制定架构以及对应的内核配置文件的使用以及在单核cpu与多核cpu里面的实现区别
spinlock_t lock1;spin_lock(&lock1);…临界区代码…spin_unlock(&lock1);还有其他一些自旋锁操作: spin_lock_irqsave不仅获得自旋锁,还停用本地CPU的中断,而spin_lock_bh则停用softIRQ(软中断)。用这两个操作获得的自旋锁必须用对应的接口释放,分别是spin_unlock_irqsave和spin_unlock_bh。spin_lock的初始化kernel/include/linux/spin原创 2020-10-12 17:18:42 · 7167 阅读 · 2 评论