Linux内核源码分析
task_struct
这个作者很懒,什么都没留下…
展开
-
Linux内核源码分析(一)--序言
工作四年,很多小伙伴都开始转行搞其他的了,我想我的事情还没有做完。还没有完整地分析一遍Linux内核,还没有自己写过内核,怀着这样的遗憾我什么也做不了。所以现在开始要完整的分析一遍Linux内核源码了,借助s3c2440的cpu加Linux 2.6.22的内核源码踏上遇神杀神,遇佛杀佛的不归路。这回不想走情景式的分析道路,就是要一条一条指令,一行一行代码的死磕到底,并在csdn上留下我的记录。原创 2017-12-10 17:01:57 · 346 阅读 · 0 评论 -
Linux内核源码分析(二)--启动汇编上篇
在跳入c函数start_kernel之前有一段汇编代码,从内核链接脚本可以看出内核的入口在stext代码段,这里正是汇编代码的入口。原创 2017-12-24 09:20:48 · 690 阅读 · 0 评论 -
Linux内核源码分析(三)--启动汇编下篇
废话少说,接着上一篇继续分析我们的__create_page_tables函数。原创 2017-12-24 17:58:20 · 353 阅读 · 0 评论 -
Linux内核源码分析(四)--start_kernel之smp_setup_processor_id
我的内核中该函数是空的,暂时保留,以后对比其他版本内核结合设计思想再做分析。原创 2018-01-26 09:54:02 · 586 阅读 · 0 评论 -
Linux内核源码分析(五)--start_kernel之unwind_init
我的内核中该函数为空,暂时保留,以后结合其他版本内核及设计思想再做分析。原创 2018-01-26 09:57:10 · 850 阅读 · 0 评论 -
Linux内核源码分析(六)--start_kernel之lockdep_init
这个函数比较短,这里直接贴出来。void lockdep_init(void){ int i; /* * Some architectures have their own start_kernel() * code which calls lockdep_init(), while we also原创 2018-01-26 10:02:39 · 1845 阅读 · 0 评论 -
Linux内核源码分析(七)--start_kernel之local_irq_disable
local_irq_disable的定义有两处,和跟踪调试有关,由CONFIG_TRACE_IRQFLAGS_SUPPORT宏开关加以区分,当关闭这个宏的时候我怀疑2.6的内核定义是颠倒的,翻看最新的4.14.15的内核发现果然是定义颠倒了。不过我们主要关注的是宏开关打开后的定义。local_irq_disable宏定义在include/linux/irqflags.h文件中。#d原创 2018-01-30 11:40:52 · 679 阅读 · 0 评论 -
Linux内核源码分析(八)--启动内存分配器
在Linux内核启动的过程中需要分配内存,但完整的内存管理子系统还没有初始化,此时需要一个简单的内存管理办法,就是我们要介绍的启动内存分配器。启动内存分配器主要用位图来管理物理页的分配,一个页的分配状态可以用一个位来表示。所以初始化启动内存分配器的时候,肯定要知道总共有多少物理页,起始的物理页在哪里等这样的信息。所以我们可以猜想有以下特征的一个数据结构:(1) 包含一个记录物理页分配状态的位图...原创 2018-05-06 21:25:31 · 661 阅读 · 1 评论