网站大量收购闲置独家精品文档,联系QQ:2885784924

3、linux系统启动过程分析(下).ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3、linux系统启动过程分析(下)要点

as基本命令格式 as [选项] [-o objfile] [srcfile.s] 比如单独编译boot/head.s as –o head.o head.s as局部符号 1: incl %eax movl %eax,0x000000 cmpl %eax,0x100000 je 1b as汇编命令 .align 存储对齐汇编命令,比如.align 3表示把位置计数器值增加后其最右边0的个数为3,就是把位置计数器增加到8的倍数上 .byte .word 分别定义一个字节,字 .fill repeat,size,value 该汇编命令会产生repeat个大小为size字节的重复拷贝,value是填充的值,默认为0 .guad 定义多个用逗号分开的8字节大数 as语法- ATT 汇编格式 1.????? 在 ATT 汇编格式中,寄存器名要加上 % 作为前缀;而在 Intel 汇编格式中,寄存器名不需要加前缀。 ATT的汇编语言语法 Intel语法 ATT语法 mov eax,8 movl $8,%eax mov ebx,0ffffh movl $0xffff,%ebx int 80h int $0x80 在Intel的语法中,立即数没有前缀。但是在ATT中立即数前冠以“$” ATT的汇编语言语法 Intel与ATT操作数的方向正好相反。在Intel语法中,第一个操作数是目的操作数,第二个操作数源操作数。而在ATT中,第一个数是源操作数,第二个数是目的操作数。由此可以看出,ATT 的语法符合人们通常的阅读习惯。 Intel mov eax, ecx ATT movl %ecx,%eax 内存单元操作数 内存操作数也有所不同。在Intel的语法中,基寄存器用“[]”括起来,而在ATT中,用“()”括起来。 Intel mov eax,[ebx+5] ATT movl 5(%ebx),%eax ATT的汇编语言语法 例子 例子的解释 Linux 是一个运行在保护模式下的 32 位操作系统,采用 flat memory 模式,目前最常用到的是 ELF 格式的二进制代码。一个 ELF 格式的可执行程序通常划分为如下几个部分:.text、.data 和 .bss,其中 .text 是只读的代码区,.data 是可读可写的数据区,而 .bss 则是可读可写且没有初始化的数据区。代码区和数据区在 ELF 中统称为 section,根据实际需要你可以使用其它标准的 section,也可以添加自定义 section,但一个 ELF 可执行程序至少应该有一个 .text 部分 例子的解释 上面两个汇编程序采用的语法虽然完全不同,但功能却都是调用 Linux 内核提供的 sys_write 来显示一个字符串,然后再调用 sys_exit 退出程序。 Linux系统有效的系统调用列表安装在: /usr/man/man2/unistd.h ? /usr/include/sys/syscall.h. /usr/include/asm/unistd.h ,可以找到所有系统调用的定义 linux系统启动过程分析(下) 第二节 Linux0.01启动分析 引导过程的描述 引导流程和内核镜像文件 计算机加电过程 BIOS程序 操作系统引导部分代码的分析 Boot.s的分析 head.s的分析 Head.s的作用 ATT汇编语言初步 引导过程的描述 引导流程和内核镜像文件 计算机加电过程 BIOS程序 引导的步骤 一般来说,操作系统的引导过程分两个步骤: 首先,计算机硬件经过开机自检(Power On Self-Test,POST)之后,从软盘或硬盘的固定位置装载一小段代码,这段代码一般称为“引导装载器”。 然后,由引导装载器负责装入操作系统内核镜像文件并将控制权交给操作系统进行进一步的初始化和运行操作系统 引导装载器非常小,一般只有几百个字节,而操作系统庞大而复杂,上述分成两阶段的引导过程,可将计算机中的固化软件保持得足够小,同时也便于实现对不同操作系统的引导。 Linux0. 01内核镜像文件 由build.c程序生成 写入到磁盘(make disk dd) 计算机加电过程 当机算机的电源键被按下时,同这个键相联的电信号线就会送出一个电信号给主板,主板将此电信号传给供电系统,供电系统开始工作,为整个系统供电,并送出一个电信号给BIOS,通知BIOS 供电系统已经准备完毕。随后BIOS 启动一个程序,进行主机自检,主机自检的主要工作是确保系统的每一个部分都得到了电源支持,内存储器、主板上的其它芯片、键盘、鼠标、磁盘控制器及一些I/O

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档