Linux系统的初始化 Jinsheng shi goldcattle@gmail
com 第1 页(共50 页) Linux 系统的初始化 本文的内容是讲述从Linux系统启动部分
即当你按下power 键到你看到login:的整个过程牵扯的东西很多很多
所以专门写一个专题来将将这个东西
本文不局限于Linux的启动过程的分析,同时兼顾对系统结构方面的介绍
本文的另外一个目的是为了自己找工作,复习一下相关的知识
与这个部分相关的代码主要是: 1、 Bootsect
s,setup
S 和 head
S 2、 Init 目录下面的main
c /arch/i386 下面的其他代码也是很重要的
1、 基础知识 1
1 386 的体系结构 80386 的芯片内部被分为独立的六个处理部件:总线接口部件,执行部件和分段部件,分页部件,指令预取和指令译码部件
其中分段部件和分页部件统称为MMU 内存管理部件
这六个部件是并行工作的,构成了一个6 级流水体系结构,从而大大提高了处理效率
对于程序设计人员来讲要了解386 的寄存器结构要比知道物理上的实现更加重要
80386 的内部有30 多个寄存器
其中可以分为如下五类:通用寄存器,段寄存器,系统地址寄存器,控制 寄存器,以及 调 试 和测 试 寄存器
1 通用寄存器: 在 应 用程序用来对程序的数 据 进 行存取和计算
80386 有8 个32 位 的通用寄存器,如下图1
他们 是在16 位 寄存器的扩 展
故 命 名 为EAX,EBX,ECX,EDX,EBP,ESI,EDI和 ESP
数 据 可以是1 位 ,8 位 ,16 位 ,32 位 和 64 位 (MMX)
访 问 寄存器的尺 寸 可以为8位 ,16 位 ,和 32 位 ,并给 不同的尺 寸 赋 予 不同的名 字
比如EAX 是32 位 ,A