Read Linux Kernel Source Code 0.12
2014-02-25 10:55
288 查看
看完了第六章,了解了运行保护模式之前的过程.
首先,开机后CPU会自动运行在实模式下,然后会自动运行0xFFFF0地址处的ROM BIOS,这段程序会首先检测硬件的正确性,然后设置0x0的中断向量表,自动读取磁盘第一个扇区的内容加载到0x7C00处,然后跳转到0x7C00处运行。(代码就是boot\bootsect.s)
然后开始执行bootsect.s,首先他会把自己移动到0x90000处,然后把磁盘中紧接着的2K数据加载到0x90200处,而内核代码加载到0x10000处(小于0x80000,没影响),然后再确定根文件系统,跳转到0x90200处(setup.s).
执行setup.s代码,利用ROM BIOS的中断读取各个硬件参数,并把信息存储到0x90000处,覆盖原来的信息,并把内核代码移动到0x0处,然后加载描述表,设置中断控制硬件,设置CR0,并跳转到内核代码处,开始时head.s.
head.s的作用是初始化中断描述符表,检查A20地址线,测试协处理器,初始化内存管理,然后执行main.c函数,调到C语言处.
首先,开机后CPU会自动运行在实模式下,然后会自动运行0xFFFF0地址处的ROM BIOS,这段程序会首先检测硬件的正确性,然后设置0x0的中断向量表,自动读取磁盘第一个扇区的内容加载到0x7C00处,然后跳转到0x7C00处运行。(代码就是boot\bootsect.s)
然后开始执行bootsect.s,首先他会把自己移动到0x90000处,然后把磁盘中紧接着的2K数据加载到0x90200处,而内核代码加载到0x10000处(小于0x80000,没影响),然后再确定根文件系统,跳转到0x90200处(setup.s).
执行setup.s代码,利用ROM BIOS的中断读取各个硬件参数,并把信息存储到0x90000处,覆盖原来的信息,并把内核代码移动到0x0处,然后加载描述表,设置中断控制硬件,设置CR0,并跳转到内核代码处,开始时head.s.
head.s的作用是初始化中断描述符表,检查A20地址线,测试协处理器,初始化内存管理,然后执行main.c函数,调到C语言处.
相关文章推荐
- Read linux kernel source in windows
- linux kernel source code阅读记录(一)LDS文件详解
- Linux Systemcall By INT 0x80、Llinux Kernel Debug Based On Sourcecode
- How to get Linux Kernel Source Code of Android?
- 線上 Android/Linux Kernel Source Code瀏覽 - Android/Linux Source Code Cross Reference
- linux kernel source code
- linux kernel & source code analysis& hacking
- Bozh 的技术博客 梦想成为Gnu/Linux | Unix后台架构师 | Read the fucking source code
- linux kernel source code analysis
- Where to download Linux Kernel source code of a specific version?
- Linux Kernel source code of all versions - download
- ubuntu下载linux-kernel source code
- 如何分别下载android kernel/platform source code
- Linux source code
- Some questions about source code of linux - 2014.01.20
- Linux Process/Thread Creation、Linux Process Principle、sys_fork、sys_execve、glibc fork/execve api sourcecode
- Linux network source code
- linux kernel README
- linux kernel read write file 读写文件
- Makefile65 Linux kernel source not found. stop