![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux内核源码
文章平均质量分 82
优秀的邓宗磊
这是一个优秀的人呢
展开
-
Linux0.11内核源码,进程数据结构task_struct,Linux内核初始化第一个进程,进程创建并初始化,源码解析
一、Linux中的task_struct: 进程在内核源码中以数据结构task_struct的形式存在,其中有几个非常常见的属性字段 1、__state是进程的当前状态,-1是unrunnable,0是runnable, >0是stopped 2、Counter是进程拥有的时间片,当一个时钟中断到来,当前占有CPU的进程时间片会消耗1,进程调度函数schedule会会遍历任务队列选择时间片最大的进程上CPU 2.1、参照调度函数源码schedule可知,整体的调度策略是选择最长时间片的进程上CPU,直到进程原创 2022-06-12 14:41:38 · 1082 阅读 · 1 评论 -
Linux0.11内核源码,系统初始化时钟驱动,时钟中断系统时间滴答jiffies推动进程函数的执行和时间片分配,源码解析
一、系统时间:(jiffies 系统滴答) CPU内部有一个RTC,会在上电的时候调用mktime函数算出1970年1月1日0时开始到当前开机时间点所过的秒数,mktime函数位于mktime.c文件中,当main函数执行init_time初始化系统时间时被调用。 二、init_time读取硬件时间 1、这里的CMOMS_READ函数是从CMOS(RTC)硬件中读取时间的函数,参数0代表读秒,2代表分钟,其余的参照代码都可以得出。 2、这里while中将已经读取到的tm_sec和CMOS中的秒位做比较,原创 2022-06-12 14:12:42 · 783 阅读 · 0 评论 -
Linux0.11内核源码,内核c语言和AT&T汇编语言完成,AT&T汇编语法常见格式
O、Linux内核源码由汇编和c语言组成,Linux平台的汇编语言遵照的是AT&T汇编语法,想要了解Linux内核就必须对AT&T汇编语法有一些了解,但看Linux内核的目的是了解内核的运行机制,对汇编的了解浅尝辄止便可。一、AT&T汇编语法格式(区别于Intel) 1、引用寄存器的值 引用寄存器要在寄存器号前加%,例如:mov % eax,% ebx (Intel则不需要加%) 2、操作数顺序 操作数的排列顺序是从源(左)到目的(右),如mov % eax(源),% ebx(目的) (Intel则是反原创 2022-06-12 13:36:49 · 573 阅读 · 0 评论