欢迎来到天天文库
浏览记录
ID:36650293
大小:19.77 KB
页数:13页
时间:2019-05-13
《【linux系统教程】linux的引导过程及原理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Linux的引导过程及原理1.1:Linux计算机的启动顺序打开电脑并使其操作系统被加载的过程叫引导。当PC引导后,BIOS做一些测试保证一切正常,然后开始真正的引导。 启动过程中电脑首先加载了一小段叫bootstraploader的程序,它依次加载和启动操作系统。bootstraploader通常存储在硬盘或软盘的固定位置。这两步过程的理由是操作系统大而复杂,而电脑加载的第一段代码很小(几百字节),以免使固件不必要地复杂化。 不同电脑的bootstrap也不同,对于PC电脑(它的BIOS)读软盘或硬盘的第一个扇区(叫引导
2、扇区),bootstraploader包含在这个扇区中,它加载位于(和其他磁盘)其他地方的操作系统。 它选择一个磁盘(通常是第一个软驱,如果无软盘的话,就是第一个硬盘,顺序是可设置的)。然后读第一个扇区,这叫引导扇区;对于硬盘,也叫主引导记录,因为硬盘可以包含多个分区,每个分区都有自己的引导扇区。引导扇区包含一个小程序(小到可以存入一个扇区),它的责任是从磁盘读入真正的操作系统并启动它。1.2:Linux启动方式 可以从软盘或硬盘引导Linux。从软盘启动Linux时,引导扇区包含的代码只读前数百个数据块(当然,依赖于内核
3、的大小)到预定的内存位置。Linux引导软盘上,没有系统,内核存在连续的扇区中,因为这样简化了引导过程。 Linux加载后,它初始化硬件和设备驱动程序,然后运行init。init可启动其他进程以允许用户登录并做其他事情。这部分的细节在下面讨论。 为了关闭一个Linux系统,首先所有进程被告知结束(这使他们关闭所有文件,完成必要的其他事情,使之整齐地结束),然后unmount文件系统和交换分区,最后打印可以关掉电源的信息到控制台。如果没有遵循正确的过程,可怕的事情可能发生。最重要的文件系统缓冲Cache可能没有回写,这意味着
4、其中的所有资料将丢失,磁盘文件系统不完整,并可能不可用。 从硬盘引导时,主引导记录的代码检查分区表(也在主引导记录区中),确认活动分区(标记为可引导的分区),从该分区读引导扇区,然后启动该引导扇区的代码。该分区的引导扇区的代码与软盘所做的相同:从该分区读入内核并启动。但细节不同,因为一般只给内核映像做一个单独的分区是没什么用的,所以分区引导扇区中的代码不能只顺序地读磁盘,它必须找到文件系统并把它们放在哪些扇区中。有几个方法可解决这个问题,但最通常的方法是使用GRUB。 用GRUB引导时,它读入并引导默认内核。也可以设置GR
5、UB,使之能引导若干个内核之一,甚至其他操作系统。也可以在引导时让用户选择引导哪个内核或操作系统。 从软盘和硬盘启动各有优势,但通常从硬盘启动较好,因为这避免了关于软盘的冲突,而且快速。然而,安装相同从硬盘启动可能有更多的麻烦,因此很多人先用软盘引导,然后当系统工作很好后,再安装GRUB从硬盘引导。 Linux内核被读入内存后,才代表真正启动了Linux,概述如下: Linux内核是被压缩安装的,所以它首先得解压自己。内核映像开头包括一个解压的小程序。 然后,内核检查还有什么其他硬件(硬盘、软盘、网卡……),并配置适当
6、的设备驱动程序。同时,输出查找结果的资料。例如,我引导时得到类似如下的资料。 LoadingLinux. Console:colourEGA+80x25,8Virtualconsoles Serialdriverversion3.94withnoserialoptionsenabled tty00at0x03f8(irq=4)isa16450 tty01at0x02f8(irq=3)isa16450 lp_init:lp1exists(0),usingpollingdriver Memory:7332k/8192
7、kavailable(300kkernelcode,384kreserved,176kdata) Floppydrive(s):fd0is1.44M,fd1is1.2M LoopbackdeViceinit WarningWD8013boardnotfoundati/o=280. Mathcoprocessorusingirq13errorreporting. Partitioncheck: hda:hda1hda2hda3 VFS:Mountedroot(extfilesystem). Linuxversio
8、n2.4.18-12Thiz(root@haven)05/01/200214:12:20 精确的文字输出在不同系统上有所不同,这依赖于硬件、Linux版本及其配置。然后内核试图装载根文件系统。如果根系统装载失败,例如因为你忘了在内核中包含相关的系统驱动程序,内核将失败,系统
此文档下载收益归作者所有