您现在的位置是:首页» windows系统» linux开机启动流程详细步骤是什么,linux启动分为哪几步

linux开机启动流程详细步骤是什么,linux启动分为哪几步

2024-07-13 09:11:00
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。作者:LLX代码路径: linux-4.6linux-4.6archx86内核head_32.S.1、startup_321

本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。

作者:LLX代码路径: linux-4.6linux-4.6archx86内核head_32.S.1、startup_321.1、赋值堆栈主要的职责是提供匹配的堆叠价值, 给埃斯波提供一个新的指针, 如果布斯特旗的标记保留部分来检查它是否进入32 来重新通知储户。

一.2,删除 bss 和 复制 bout_ 参数

本代码的首要目标是将 bss 的内容修改为零, bss_ start 表示 bs_ stop 表示 bs 的本部分的位置 。连接脚本指定了此地址。 因为所编译的地址是一个虚拟地址, 为什么它在 bs_ start off pa 地址中?在必要的内核文件建立和翻译后,您可以观察到bss_start 的地址是一个虚拟地址。是页面载荷后出现的地址因此,它不再开放。它是正确的物理内存地址。他们的链接是一个虚拟地址 -- 0xc00是实际地址。因此,父亲成为代码中的实际地址。Boot_ params 变量的第二段被分配到第141行之后,表示匹配的 Boot 参数被分配到 boot_ param 变量中 。第152行显示,在设置期间向原始 esi 提供的布尔特-参数值为 靴_ 参数值 。这两个代号是不同的, 表明变量是不同的。155-161行主要包括新布尔的原始比喻的复制件。在 Boot_ params 中, cmd-line-ptr 方向的地址是 162。将 163 - 168 行 靴子参数中的 Cmd_line_ptr 位置的数据放入 靴子_ 命令_ 线变量 。它在Pa宏观里有写明的因为它终于开始保护了您目前无法打开页面。

1.3,4,5,5,5,5,5,5,5,5,5,5,5,5,3,3,4,4,5,5,2,5,2,2,2,3,5,5,2,3,3,3,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,4,4,4,4,5,5,5,5,5,5,5,5,5,2,2,2,2,2,2,2,2,5,5,5,5,2,2,2,2,2,2,2,2,2,5,5,5,2,5,5,5,2,2,2,2,2,5,2,2,2,2,2,2,5,5,5,2,2,2,2,2,5,5,2,2,2,2,5,5,2,2,5,5,5,2,2,2,2,2,2,2,5,5,2,2,2,2,5,2,2,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,2,2,2,2,2,2,5,2,2,2,2,2,2,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,5,2,2,2,5,5,5,5,5,5,5,5,2,2,2,2,2,2,2,2,5,5,2,2,2,2,2,2此 pde 是第 246 行的页面列表, 解释了为什么因页面列表的格式( 参考 12) 出现 20 位差 :因为目录的地址是22 -31, pde应该是22。所以这就是为什么他把20个位置移到右边的原因:__PAGE_OFFSET>>12>>10计算出在pgd中的页目录项index(__PAGE_OFFSET>>12>>10)<<2计算出偏移地址(因为每个页目录项4byte)一个是街道地址。他的记忆地址由页面_pde_offsection 标明。在第248行,请将brk_base的物理地址输入edi;请注意,保护模式此时已启动,但该页面尚未启用,因此所有物理地址都已使用。第249行, 内线_ page_ tabt 的地址, 以 edx 表示,将 pte_ ident_ attr 放在 eax 后面的 250 行之后。 此 pte_ ident_ attr 代表预设, 可以读写。 今晚可以看到页面目录的格式 。#define PTE_IDENT_ATTR 0x003 /* PRESENT+RW */在 ecx 中, bar edi 加上 PTE_ IDENT_ ATTR 的值。 这是 lial 或 ecx 地址 。255 条线,然后将 ecx 值放在 edx 需要的地址, 所以它是在 _brk_base+attr 点的地址。brk_ base 和 antr 的内容可见于 国家_ page_ table 中 。

256行ecx 值+ edx 值此时此刻, ecx 值为 brk_ base+attr 。PAGE_OFFSET是我们建造的内核地址。 如果您想要找到合适的地址, 您该怎么办?我们应该确定一个页面列表, 在 PAGE_ OFFSET 中列出事项, 然后检查页面的下一个级别 。PAGE_FOFFSET 列表的地址是 page_pde_offet 。__PAGE_OFFSET>>22位等于768,表示页目录表的第多少项,

使用此配置,元素 768 和 1 与 _brk 的物理页面地址有关。我不知道你们在说什么 但我不确定你们在说什么第257-258行, edx + 4, edx+ 4, barex 值设定为 1024, edx 值初始_ page_ table, 加上 4, 以填补初始_ page_ table, ecx 延迟分析的第二个项目检查此页页表格式( 参考文献 13) 。页面对齐前方可见地址,背面可见所附标志。STOS指令在内存中使用AL(字节-STOSB)、AX(字节-STOSW)或EAX(双面-STOSD)数据复制目标字符串,通过ES:DI(参考14)指向。Eax 插入 PTE_IDENT_ATTR, 或 addr=0, 然后是 PTE_IDENT_ATTR 。在 _brk_ base 内容中键入 Edi 。Stosl 是 _brk_ base 中的 PTE_IDENT_ATTR 值。Antr 是当前 brk_ base 的初始部分 。263-265 行, eax + 0x100, 然后循环命令这是因为 brk_ base 代表一个内存页面, 加上 0x100, 然后 brk_ base 属于一页, 产生 1 024 个实例 。第275行包含内核终端地址,还有Mapping_BEYOND_END和Ebp中的蚂蚁信息。让我们来看看做个调戏者意味着什么全部取自(15号引文)LOWMEM是核酸状态直接绘制的物理内存区,而不是高MEM,高MEM通常为896MB。以GB作为估计估计数的示例。与LOWMEM区域相对应的内存页数由LOWMEM_PAGES表示,LOWMEM_PAGES是1GB/4KB=256K,也就是说,为了代表内核空间,需要256K页的表元素。LOWMEM_PAGES = (((2<<31) - __PAGE_OFFSET) >> PAGE_SHIFT)在LOWMEM区域存储匹配的内存表元素需要多少内存页,使用256页表格,每张表格都包含一页内存,256页内存,即存储256页,乘以256乘以4KB,即1MB。显示最后有1兆字节的内存将前一米的记忆作为工作表来表示280线火箭向前10线发射,并开始打基础。在281行的地图上加上brk_base之后的位址。它储存在一个变数中 叫做"Brk_end"2834283-284, 酒吧的地址 Max_ pfn_map 上面显示的是最大的页面( 参考 15, 16) 。287-288号线,初始化交叉图行 232 是执行器默认的默认输入 。第368行没有开页。377-378设立了废墟登记册。386行 - 1个新_ cpu_ data+CPUINFO_ cpuid_ level 值引文387-407(引文17、18)。直接来看使能分页!](https://img-blog.csdnimg.cn/41d65c1650744538a4967f321673975c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbGlhbmxpYW5kYWltYQ==,size_16,color_FFFFFF,t_70,g_se,x_16)440行开启分页第445-446行,将其插入轴中,然后插入CR3登记册。只有一个f的地址是 0xxl的地址 ljmp 447 -450。共有44个。 页面_ offsec + Esp 的地址在461-463号线上,设置的地址存储在eax中,以查看是否包含任何内容。如果有内容, 则执行设置操作 。此设置为设置函数的地址。548 -550,在电子登记簿里, idt_table.然后应该将早期的_idt_handler_raray 放置在eax 中 。ecx NUM_Exioption_Vecurats ecx NUM_Exiopation_Vectors ecx NUM_Exiopation_Vectors ecx ecx NUM_Exiopation_Vectors ecx NUM_Exition_Vectors

edi 指的地址设定552条线条 eax 的值。这是16个低位 在idt_table。553行将它移到idt_table的顶端。第554-55行,配有匹配的终端选择和识别符号,对于段落选择, _KERNEL_CS 指定命令将在当时在内核级别运行。0x8e表示基数为100110, dpl为零。557行 eax + Early_IDT_HandLer_SIZE 表示,早期 _idt_ handler_array 是数组。这是列表中的第二个项目 。填入 idt_ table 的第二张, 其中一张是 8 字节, 在第 558 行 上 。561 NUM_Exioption_Vectors已填充。561行是异常后休息的次数。edx 中的 忽略(_int) 函数位于 564 bar 。从内核到eax的565行代码向轴, 566 bar 忽略状态值 。5 6 7 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 5 8 8 8 8 8 8 8 8 8 8 6 8 8 8 8 8 8 6 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8栏忽略在569-572行以idt形式填充。在588-589线上重新设置和返回。cpuid 命令用于识别 CPU 。第498-502行将有关标记划入CR0登记册,CR0登记册不作任何分析。在新 gdt 注册簿中存储了504行的条形前列段落描述符的地址。这是对为什么重新注射的研究, 80,00前方的地址被更改了, 内容是否准确, 所以重新输入, 我不确定这是不是原因, 但有一个问题需要探讨。这是 gdt_ page 栏中包含的内容。 它位于 gdt 中 。

505行负载失败, 导致 idt table 内容被损坏 。是506点C登记册里的内核

这是栏的替代描述。 将其插入到登记册中 。然后,为了执行,跳到初始代码的位置。

这是 i386_ start_ 核心函数 。

总结:

参考资料:1、https://www.huaweicloud.com/articles/b2674aaf8a7951a593190c21c8f3d3d3.html2、https://blog.csdn.net/qwq1503/article/details/1029845753、http://blog.sina.com.cn/s/blog_54f82cc2010142zh.html4、https://www.lampchina.net/ask/MTQwMzQzOQ.html5、https://www.cnblogs.com/long123king/p/3484923.html6、https://blog.csdn.net/ZVAyIVqt0UFji/article/details/1046661057、https://www.codeleading.com/article/98281319364/8、https://www.cntofu.com/book/104/Booting/linux-bootstrap-5.md9、

Linux 内核中的 10, 32 位页面映射图https://www.jianshu.com/p/ab514f3c9d9c

用于 11 x 86 和 Linux 执行 11 x 86 和 Linux 的分页分页法https://zhuanlan.zhihu.com/p/327860921

12,深入Linux内核的内存 - 分页https://blog.csdn.net/liyuewuwunaile/article/details/108632620

13.x86 页面表格结构和页面项目格式https://www.cnblogs.com/vinozly/p/5703215.html

14. STOS指令https://www.jianshu.com/p/338d2f85e954

15. Linux的第一页表格https://www.cnblogs.com/long123king/p/3484923.html

16, X86 head_32 的 S 文件中的内存映射信息(带图表) 16, X86 head_32http://bbs.chinaunix.net/thread-1916887-1-1.html

17 x 86-EFLAGS仓库https://blog.csdn.net/jn1158359135/article/details/7761011

Intel CPU ID指令(一)https://blog.51cto.com/u_15127631/2739274

19. 关于Linux中中断源的研究--初始化https://www.cnblogs.com/tolimit/p/4415348.html

XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com

标签: 讲解 启动 Linux