下载此文档

linux系统初始化.ppt


文档分类:IT计算机 | 页数:约47页 举报非法文档有奖
1/47
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/47 下载此文档
文档列表 文档介绍
Linux系统初始化
针对linux系统的单x86 cpu的版本
与硬件结构关系密切(参考INTEL386体系结构、汇编语言)
系统初始化所包括的内容
基础知识
系统引导
实模式下的系统初始化
保护模式下的系统初始化
启动核心
Init进程
一、基础知识
Linux源代码中的C语言代码
Linux源代码中的汇编语言代码:两种
完全的汇编代码,
嵌入在c程序中的汇编代码
C语言代码
Linux主体是用GNU的c语言编写
从c++中吸收了“inline”和“const”
支持“属性描述符”(attribute)
增加了新的基本数据类型“long long int”用于支持64位CPU
汇编语言代码
与一般的386汇编语言采用intel定义不同,它采用的是AT&T定义的格式。主要差别如下:
Intel中多使用大写字母,而这里大多使用小写字母
寄存器名前面要加“%”作为前缀
指令的源操作数与目标操作数的顺序与intel的正好相反。AT&T格式中,源在前,目标在后
汇编语言代码
访问内存的指令的操作数大小(即宽度)由操作码名称的最后一个字母决定,用作操作码后缀的字母有b(8位),w(16位),l(32位)
直接操作数要加“$”作为前缀,intel中不用
绝对转移或者调用jump/call的操作数,要加“*”作为前缀
另外在远程的转移指令和间接寻址的格式方面还有一些区别
基础知识
Linux的启动是指从系统加电到控制台显示登录提示为止的运行阶段:
主要相关的代码是在arch/i386/boot中:
,这是linux引导扇区的源代码

,用于引导过程中的屏幕显示
基础知识
另外,,。用于内核映象的解压缩。也属于辅助程序一部分
经过编译,汇编和连接后就形成三个部分:引导扇区的映象bootsetc,辅助程序setup和内核映象本身
大小不超过508KB的内核引导映象称为小映象zImage;否则称为大内核bzImage
系统引导
PC引导的一般过程
硬件将启动介质的主引导记录(512B)拷贝到实地址0x7c00的位置,并跳过去执行
这段代码依次做3件事
设置寄存器初值,尤其是栈指针
将自己“搬运”到特定位置(0x7c00位置不好)
通过BIOS 0x13中断访问磁盘,取进引导程序的后续部分
后续部分负责复杂的任务,包括引导器交互界面、从文件系统找到系统核心、解压缩等
Linux引导中的内存布局

linux系统初始化 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数47
  • 收藏数0 收藏
  • 顶次数0
  • 上传人文库旗舰店
  • 文件大小272 KB
  • 时间2018-05-16