linux
文章平均质量分 93
gokingd
保持理智
展开
-
Linux源码解析--从main函数初始化到开中断
上文讲到了Linux系统启动前执行的三个汇编程序,head.s程序通过将main函数压栈再出栈跳转到main函数执行,此时真正进入由C语言编写的Linux源代码。上一篇文章可以点这里进行跳转Linux源码解析–从开机到main函数本文基于Linux0.11源代码,分析main函数中前几个初始化步骤,直到main函数中打开中断,执行move_to_user_mode(),由内核特权级转为用户特权级。 //init/main.c mem_init(main_memory_start,memory_end)原创 2021-11-05 23:50:39 · 535 阅读 · 0 评论 -
Linux源码解析--从开机加电到main函数
本文所参考的源码为linux0.11说明一下整体的思路。首先启动bios,bios在内存中建立中断向量表和中断服务程序。然后bios会发出0x19中断,将软盘中的第一扇区加载到内存中。第一扇区对应的是bootsect.s程序,此时处于实模式状态下,该程序的作用是讲软盘中的后续扇区加载到内存中来,也就是setup.s和system模块。bootsect.s先规划内存,然后在把自己从0x07C00的位置移动到0x90000后bootsect执行0x13中断,加载setup程序。setup加载进入内存后开始加原创 2021-10-24 22:06:47 · 739 阅读 · 0 评论