![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux内核源码分析
文章平均质量分 78
练恋讲码
这个作者很懒,什么都没留下…
展开
-
linux番外篇之伙伴系统分配器1
linux内核伙伴系统分配器原创 2022-10-23 17:00:27 · 201 阅读 · 1 评论 -
linux之memblock分配器
linux原创 2022-10-23 16:45:55 · 151 阅读 · 0 评论 -
Linux启动第4部分讲解
作者:LLX代码路径: linux-4.6\linux-4.6\arch\x86\kernel\head_32.S1、startup_321.1、赋值堆栈这个主要的作用是赋值对应的堆栈,给esp重新的指针,以及如果再bootflag的标志keep_segments里面看是不是进入32要重新初始化段寄存器,1.2、clear bss段,以及复制boot_param这段代码主要功能是最开始把bss段的内容设置为0,这里面bss_start到bss_stop表示bss段这一部分的地址这个地址是原创 2022-04-18 17:36:43 · 950 阅读 · 0 评论 -
Linux启动第3部分讲解
作者:LLX文件:linux-4.6\linux-4.6\arch\x86\boot\compressed\ head_32.S1、startup_32在136设置si与di的方向,然后判断boot的segment的flag表示是否要把ds的描述符放入到ds,es,fs,gs,以及ss里面了这个esi储存的是boot_params,然后这个bp_scratch等于用于堆栈了,然后call 1f表示先把ip寄存器放入到堆栈里面,然后执行pop,这个就是吧对应执行地址放入到ebp了,然后ebp减去1原创 2022-04-18 17:20:18 · 824 阅读 · 0 评论 -
linux内核启动系列第2篇(Linux内核启动第2部分)
作者:LLX文件路径: linux源码\linux-4.6\linux-4.6\arch\x86\boot\Main.c1、主函数main函数现在看这个main函数,2、第一个函数copy_boot_params函数这个函数主要功能是吧hdr里面的参数赋值到boot_params.hdr里面如果是老的boot就设置boot传送参数的地址,如果是新boot就不用设置这个主要的功能是43行,就是吧hdr内存里面的数据复制到boot_param里面3、console_init函数这个函数的最原创 2022-03-16 19:02:08 · 2055 阅读 · 0 评论 -
linux内核启动系列第一篇(Linux内核启动第一部分)
Linux内核启动第一部分作者:LLXlinux内核版本4.6个人兴趣爱号,分析内核源码实现大家有问题可以提出来,对应的代码以及文章到时候会在gitee上面开放给大家1、代码过程分析从最开始的bzImage构成来看,第一部分先执行setup.bin这个文件,这个文件由setup.elf文件构成,那么看看对应的setup.elf文件由哪些构成linux内核编译链接脚本在产生这个文件的时候用的连接脚本是setup.ld,连接对应的很多.o文件现在来看看对应的setup.ld文件的具体内容:原创 2022-03-13 17:50:39 · 1486 阅读 · 0 评论