- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
开机关机流程与 Loader
开机不是只要按一下电源钮而关机只要关掉电源钮就可以了吗?有何大学问?话是这样没错啦,但是由于 Linux 是一套多人多任务的操作系统,你难保你在关机时没有人在在线,如果你关机的时候碰巧一大群人在在线工作, 那会让当时在在线工作的人马上断线的!那不是害死人了!一些数据可是无价之宝哩!另外,与 DOS 环境不同的是, Linux 在执行的时候,虽然你在画面上只会看到黑压压的一片,完全没有任何画面, 但其实他是有很多的程序在背景底下执行的,例如登录文件管控程序、前面两章提到的例行性命令, 当然还有一大堆网络服务,如邮件服务器、WWW服务器等等。你如果随便关机的话, 是很容易伤害硬盘及数据传输的动作的!所以在 Linux 下关机可是一门大学问喔。既然开机是很严肃的一件事,呵呵,那我们来了解一下整个开机的过程吧! 好让大家比较容易发现开机过程里面发生错误的地方,与解决之道!不过,由于开机的过程中,那个开机管理程序 ( Boot Loader ) 使用的软件可能不一样,例如目前各大 Linux distributions 的主流为 grub, 但早期 Linux 预设是使用 LILO ,台湾地区则很多朋友喜欢使用 spfdisk 。 但无论如何,我们总是得要了解整个 boot loader 的工作情况,才能了解为何进行多重开机的设定时, 为何老是听人家讲要先安装 Windows 再安装 Linux 的原因~我们先来想一想, Linux 整个开机的程序是怎样呢?还记得我们提过,开机时要加载核心, 让核心来驱动整个硬件,这样才能算是一个最阳春、最基础的操作系统吧?然后才能够执行各种程序的运作。 同样的,开机的流程也是需要先加载核心的。不过,加载核心前,却需要一些前置作业,才能够正确无误的加载核心嘛! 所以,整个开机的程序是这样的:
加载 BIOS 的硬件信息,并取得第一个开机装置的代号;
读取第一个开机装置的 MBR 的 boot Loader (亦即是 lilo, grub, spfdisk 等等) 的开机信息;
加载 Kernel 操作系统核心信息, Kernel 开始解压缩,并且尝试驱动所有硬件装置;
Kernel 执行 init 程序并取得 run-level 信息;
init 执行 /etc/rc.d/rc.sysinit 档案;
启动核心的外挂模块 (/etc/modprobe.conf);
init 执行 run-level 的各个批次档( Scripts );
init 执行 /etc/rc.d/rc.local 档案;
执行 /bin/login 程序,并等待使用者登入;
登入之后开始以 Shell 控管主机。
大概的流程就是上面写的那个样子啦,而每一个程序的内容主要是在干嘛呢?底下就分别来谈一谈吧!
boot loader 与 kernel 载入
由第一篇里面谈到的一些基础的主机硬件概念当中,我们知道整个主机在开机的时候,第一个被读取的地方, 就是 BIOS ( Basic Input Output System ) 啦,这个 BIOS 里面记录了主机板的芯片组与相关的设定, 例如 CPU 与接口设备的沟通频率啊、开机装置的搜寻顺序啊、硬盘的大小与类型啊、 系统时间啊、各周边总线的是否启动 Plug and Play (PnP, 随插即用装置) 啊、 各接口设备的 I/O 地址啊、以及与 CPU 沟通的 IRQ 岔断等等的信息都记录在此, 所以啰,系统要顺利的开机,首先就是要去读取 BIOS 的相关设定值了。读取了 BIOS 设定值之后,系统会根据 BIOS 的数据,进行开机自我测试 (power on self test, POST), 然后开始执行硬件侦测的初始化,并设定 PnP 装置,之后再定义出可开机的装置, 之后就会开始进行开机装置的数据读取了 (MBR 相关的任务开始)。读完了 BIOS 并且了解了主要的主机硬件相关信息后,主机便会开始尝试由储存媒体加载操作系统了。 我们刚刚提到 BIOS 会记录『可用来开机的装置搜寻顺序』对吧!所以,系统会开始去第一个开机装置上面进行开机程序。 我们在第二篇的 磁盘档案系统(filesystem) 当中提到过整个储存装置的特性, 如果以硬盘来看,那么开机流程读到硬盘的过程中,第一个要读取的就是该硬盘的主要开机扇区 (Master Boot Record, MBR) 了,而系统可以由主要开机区所安装的开机管理程序 (boot loader) 开始执行核心辨识的工作。
Tips:我们知道每颗硬盘的第一个扇区称为 MBR ,那么如果我的主机上面有两颗硬盘的话, 系统会去哪颗硬盘的 MBR 读取数据呢?这个就得要看 BIOS 的设定了。 基
文档评论(0)