linux启动过程详解

linux启动过程详解

ID:14327278

大小:50.50 KB

页数:19页

时间:2018-07-27

linux启动过程详解_第1页
linux启动过程详解_第2页
linux启动过程详解_第3页
linux启动过程详解_第4页
linux启动过程详解_第5页
资源描述:

《linux启动过程详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Linux启动过程详解随着Linux的应用日益广泛,特别是在网络应用方面,有大量的网络服务器使用Linux操作系统。由于Linux的桌面应用和Windows相比还有一定的差距,所以在企业应用中往往是Linux和Windows操作系统共存形成异构网络。在服务器端大多使用Linux和Unix的,目前Linux的擅长应用领域是单一应用的基础服务器应用,譬如DNS和DHCP服务器、Web服务器、目录服务器、防火墙、文件和打印服务器、Intranet代理服务器。启动Linux系统的过程包括很多阶段。不管您是引导一个标准的x86处理器,还是PowerPC机器

2、,很多流程都惊人地相似。本文将描述了从开机到登录的Linux启动全过程。(1)从BIOS到内核BIOS自检计算机在接通电源之后首先由BIOS进行自检,即进行所谓的POST(PowerOnSelfTest),然后依据BIOS内设置的引导顺序从硬盘、软盘或CDROM中读入“引导块”。在PC中,引导Linux是从BIOS中的地址0xFFFF0处开始的。BIOS的第一个步骤是加电自检(POST)。POST的工作是对硬件进行检测。BIOS的第二个步骤是进行本地设备的枚举和初始化。给定BIOS功能的不同用法之后,BIOS由两部分组成:POST代码和运行时服务

3、。当POST完成之后,它被从内存中清理了出来,但是BIOS运行时服务依然保留在内存中,目标操作系统可以使用这些服务。要引导一个操作系统,BIOS运行时会按照CMOS的设置定义的顺序来搜索处于活动状态并且可以引导的设备。引导设备可以是软盘、CD-ROM、硬盘上的某个分区、网络上的某个设备,甚至是USB闪存。通常,Linux都是从硬盘上引导的,其中主引导记录(MBR)中包含主引导加载程序。MBR是一个512字节大小的扇区,位于磁盘上的第一个扇区中(0道0柱面1扇区)。当MBR被加载到RAM中之后,BIOS就会将控制权交给MBR。提取MBR的信息要查看

4、MBR的内容,请使用下面的命令:#ddif=/dev/hdaof=mbr.binbs=512count=1#od-xambr.bin这个dd命令需要以root用户的身份运行,它从/dev/hda(第一个IDE盘)上读取前512个字节的内容,并将其写入mbr.bin文件中。od命令会以十六进制和ASCII码格式打印这个二进制文件的内容。(2)启动GRUB/LILOGRUB和LILO都是引导加载程序。最简单地讲,引导加载程序(bootloader)会引导操作系统。当机器引导它的操作系统时,BIOS会读取引导介质上最前面的512字节(即人们所知的主引导

5、记录(masterbootrecord,MBR))。在单一的MBR中只能存储一个操作系统的引导记录,所以当需要多个操作系统时就会出现问题。所以需要更灵活的引导加载程序。GRUB与LILO的比较如本文开始处所述,所有引导加载程序都以类似的方式工作,满足共同的目的。不过,LILO和GRUB之间有很多不同之处:LILO没有交互式命令界面,而GRUB拥有。LILO不支持网络引导,而GRUB支持。LILO将关于可以引导的操作系统位置的信息物理上存储在MBR中。如果修改了LILO配置文件,必须将LILO第一阶段引导加载程序重写到MBR。相对于GRUB,这是一

6、个更为危险的选择,因为错误配置的MBR可能会让系统无法引导。使用GRUB,如果配置文件配置错误,则只是默认转到GRUB命令行界面。安全提示:关于安全性,任何可以接触到引导磁盘/CD的人,只需要使用没有设置安全性的grub.conf或lilo.conf,就可以绕过本文中提及的所有安全措施。特别是使用GRUB时,因为能够引导到单用户模式,所以是一个严重的安全漏洞。解决此问题的一个简单方法是在机器的BIOS中禁止通过CD和软盘进行引导,并确保为BIOS设置了一个口令,使得其他人不能修改这些设置。(3)加载内核当内核映像被加载到内存之后,内核阶段就开始了

7、。内核映像并不是一个可执行的内核,而是一个压缩过的内核映像。通常它是一个zImage(压缩映像,小于512KB)或一个bzImage(较大的压缩映像,大于512KB),它是提前使用zlib进行压缩过的。在这个内核映像前面是一个例程,它实现少量硬件设置,并对内核映像中包含的内核进行解压,然后将其放入高端内存中,如果有初始RAM磁盘映像,就会将它移动到内存中,并标明以后使用。然后该例程会调用内核,并开始启动内核引导的过程。GRUB中的手工引导在GRUB命令行中,我们可以使用initrd映像引导一个特定的内核,方法如下:grub>kernel/bzIm

8、age-2.6.14.2[Linux-bzImage,setup=0x1400,size=0x29672e]grub>initrd/in

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。