Linux学习笔记---启动流程与主要启动记录区(MBR)

1、计算机启动

没有运行软件的硬件是没有用的.而为了计算机硬件系统的资源合理分配,因此有了操作系统这个系统软件的产生。由於操作系统会控制所有的硬件并且提供核心功能, 因此我们的计算机就能够认识硬盘内的文件系统,并且进一步的读取硬盘内的软件文件与运行该软件来达成各项软件的运行目的。

既然操作系统也是软件,那么我的计算机又是如何认识这个操作系统软件并且运行他的? 明明启动时我的计算机还没有任何软件系统,那他要如何读取硬盘内的操作系统文件啊?这就得要牵涉到计算机的启动程序了! 底下就让我们来谈一谈这个启动程序吧!

2、CMOS与BIOS

CMOS主要的功能为记录主机板上面的重要参数, 包括系统时间、CPU电压与频率、各项设备的I/O位址与IRQ等,由於这些数据的记录要花费电力,因此主机板上面才有电池。 BIOS为写入到主机板上某一块 flash 或 EEPROM 的程序,他可以在开机的时候执行,以载入CMOS当中的参数, 并尝试呼叫储存装置中的开机程序,进一步进入操作系统当中。BIOS程序也可以修改CMOS中的数据, 每种主机板呼叫BIOS设定程序的按键都不同,一般桌上型计算机常见的是使用[del]按键进入BIOS设定画面。

接下来BIOS会去分析计算机里面有哪些储存设备,我们以硬盘为例,BIOS会依据使用者的配置去取得能够启动的硬盘, 并且到该硬盘里面去读取第一个磁区的MBR位置。 MBR这个仅有446 bytes的硬盘容量里面会放置最基本的启动管理程序, 此时BIOS就功成圆满,而接下来就是MBR内的启动管理程序的工作了。
这个启动管理程序的目的是在加载(load)核心文件, 由於启动管理程序是操作系统在安装的时候所提供的,所以他会认识硬盘内的文件系统格式,因此就能够读取核心文件, 然后接下来就是核心文件的工作,启动管理程序也功成圆满,之后就是大家所知道的操作系统的任务啦!
简单的说,整个启动流程到操作系统之前的动作应该是这样的:

  1. BIOS:启动主动运行的嵌入式程序,会认识第一个可启动的装置;
  2. MBR:第一个可启动装置的第一个磁区内的主要启动记录区块,内含启动管理程序;
  3. 启动管理程序(boot loader):一支可读取核心文件来运行的软件;
  4. 核心文件:开始操作系统的功能... 
由上面的说明我们会知道,BIOS与MBR都是硬件本身会支持的功能,至於Boot loader则是操作系统安装在MBR上面的一套软件了。由於MBR仅有446 bytes而已,因此这个启动管理程序是非常小而美的。 这个boot loader的主要任务有底下这些项目:

  • 提供菜单:使用者可以选择不同的启动项目,这也是多重启动的重要功能!
  • 加载核心文件:直接指向可启动的程序区段来开始操作系统;
  • 转交其他loader:将启动管理功能转交给其他loader负责。 
上面前两点还容易理解,但是第三点很有趣喔!那表示你的计算机系统里面可能具有两个以上的启动管理程序呢!我们的硬盘不是只有一个MBR而已?是没错啦!但是启动管理程序除了可以安装在MBR之外, 还可以安装在每个分割槽的启动磁区(boot sector)喔!这个特色才能造就『多重启动』的功能啊!

3、Linux安装模式下, 磁盘分区的选择(极重要)
我们前面有谈过Linux内的所有数据都是以文件的形态来呈现的,所以整个Linux系统最重要的地方就是在於目录树架构。 所谓的目录树架构(directory tree)就是以根目录为主,然后向下呈现分支状的目录结构的一种文件架构。 所以,整个目录树架构最重要的就是那个根目录(root directory),这个根目录的表示方法为一条斜线『/』, 所有的文件都与目录树有关。

文件系统与目录树的关系(挂载):所谓的『挂载』就是利用一个目录当成进入点,将磁盘分区槽的数据放置在该目录下; 也就是说,进入该目录就可以读取该分割槽的意思。这个动作我们称为『挂载』,那个进入点的目录我们称为『挂载点』。 由於整个Linux系统最重要的是根目录,因此根目录一定需要挂载到某个分割槽的。 

强烈建议使用『自定义安装, Custom 』这个安装模式:

A:初次接触Linux:只要分割『 / 』及『swap』即可:

通常初次安装Linux系统的朋友们,我们都会建议他直接以一个最大的分割槽『 / 』来安装系统。 这样作有个好处,就是不怕分割错误造成无法安装的困境!例如/usr是Linux的可运行程序及相关的文件摆放的目录, 所以他的容量需求蛮大的,万一你分割了一块分割槽给/usr,但是却给的不够大,那么就伤脑筋了! 因为会造成无法将数据完全写入的问题,就有可能会无法安装啦!因此如果你是初次安装的话, 那么可以仅分割成两个分割槽『 / 与 Swap 』即可。

B:建议分割的方法:预留一个备用的剩余磁碟容量!

在想要学习Linux的朋友中,最麻烦的可能就是得要常常处理分割的问题,因为分割是系统管理员很重要的一个任务。 但如果你将整个硬盘的容量都用光了,那么你要如何练习分割呢?^_^。所以鸟哥在后续的练习中也会这样做, 就是请你特别预留一块不分割的磁碟容量,作为后续练习时可以用来分割之用!

此外,预留的分割槽也可以拿来做为备份之用。因为我们在实际操作Linux系统的过程中, 可能会发现某些script或者是重要的文件很值得备份时,就可以使用这个剩余的容量分割出新的分割槽, 并使用来备份重要的配置档或者是script。这有个最大的好处, 就是当我的Linux重新安装的时候,我的一些软件或工具程序马上就可以直接在硬盘当中找到!呵呵!重新安装比较便利啦。 为什么要重新安装?因为没有安装过Linux十次以上,不要说你学会了Linux了啦!慢慢体会这句话吧!






你可能感兴趣的:(Linux及计算机原理)