joyfire linux
启动
目 录
1. 启动
1. 启动步骤 2. bootsect.S 3. setup.S 4. head.S
5. compressed/misc.c 6. 内核解压
7. 用网卡从并口启动(I386)
启动
当PC启动时,Intel系列的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处的代码,也就是ROM-BIOS起始位置的代码。BIOS先进行一系列的系统自检,然后初始化位于地址0的中断向量表。最后BIOS将启动盘的第一个扇区装入到0x7C00,并开始执行此处的代码.这就是对内核初始化过程的一个最简单的描述。
最初,Linux核心的最开始部分是用8086汇编语言编写的。当开始运行时,核心将自己装入到绝对地址0x90000,再将其后的2k字节装入到地址0x90200处,最后将核心的其余部分装入到0x10000。
当系统装入时,会显示Loading...信息。装入完成后,控制转向另一个实模式下的汇编语言代码boot/Setup.S。Setup部分首先设置一些系统的硬件设备,然后将核心从0x10000处移至0x1000处。这时系统转入保护模式,开始执行位于0x1000处的代码。 接下来是内核的解压缩。0x1000处的代码来自于文件Boot/head.S,它用来初始化寄存器和调用decompress_kernel( )程序。decompress_kernel( )程序由Boot/inflate.c, Boot/unzip.c 和Boot/misc.c组成。解压缩后的数据被装入到了0x100000处,这也是Linux不能在内存小于2M的环境下运行的主要原因。
解压后的代码在0x1010000处开始执行,紧接着所有的32位的设置都将完成: IDT、GDT和LDT将被装入,处理器初始化完毕,设置好内存页面,最终调用start_kernel过程。这大概是整个内核中最为复杂的部分。 [系统开始运行]
Linux kernel 最早的C代码从汇编标记startup_32开始执行 |startup_32: |start_kernel |lock_kernel |trap_init |init_IRQ |sched_init
Linux内核分析与编程__第1... 56页 免费 joyfire的linux-2内核分析... 61...6. 7. 8. 启动以后 协议初始化-1 协议初始化-2 协议初始化-3 协议初始化...
joyfire的linux-2内核分析—4进程 joyfire linuxjoyfire linux隐藏>> 进程目 录...系统启动后,内核通常作为某一个进程的代表。一个指向 task_struct 的全局指针...
joyfire的linux-2内核分析... 83页 10财富值 joyfire的linux-1系统管理......这发生在系统启动操作系统初始化自身的时候。真实的文件系统自身 建立在内核中...
joyfire的linux-1系统管理... 41页 10财富值 joyfire的linux-2内核分析......有时候分配发生在某个关键路径已经获得了一些关键资源的时候,因此它不能启动 IO...
joyfire的linux-2内核分析... 83页 10财富值 joyfire的linux-1系统管理......这可以通过系统固件(如 BIOS)在启动时分配得到,或者 通过设备的硬连线(hard...
1/2 相关文档推荐 joyfire的linux-2内核分析... 61页 10财富值 kernel_...系统启动时, 汇编子程序 setup_idt(a rch/i 386/kernel/head.S)准备了张 ...
joyfire的linux-2内核分析... 61页 10财富值 joyfire的linux-1系统管理......·RESTORE_ALL, while loop [arch/i386/kernel/entry.S] 系统启动核心时,...
Linux内核源码分析--内核启动之(1)zImage_互联网_IT/计算机_专业资料。Linux内核源码分析--内核启动之(1)zImage-(1)zImag Linux 内核源码分析---内核启动之(1...
ARM linux内核启动分析 16页 1财富值 joyfire的linux-2内核分析... 61页 10财富值喜欢此文档的还喜欢 ARM+Linux的启动分析(zIma... 24页 免费 linux2.6...
joyfire的linux-2内核分析... 83页 10财富值 ...并启动 把它加入到就绪队列, 设备子进程的状态为 ...Linux系统上所有运行的任务都可以称之为一个进程, ...
热门文档