Linux的基础知识

来源:互联网 发布:heatmap制作软件 编辑:程序博客网 时间:2024/05/22 08:12

磁盘的组成

整颗磁盘的第一个扇区特别的重要,因为他记录了整颗磁盘的重要信息! 磁盘的第一个扇区主要记录了两个重要的信息,分别是:
 主要启动记录区(Master Boot Record, MBR):可以安装开机管理程序的地方,有446 bytes
 分割表(partition table):记录整颗硬盘分割的状态,有64 bytes

MBR是很重要的,因为当系统在开机的时候会主动去读取这个区块的内容,这样系统才会知道你的程序放在哪里该该如何进行开机。 如果你要安装多重引导的系统,MBR这个区块的管理就非常非常的重要了!

那么分割表又是啥?其实妳刚刚拿到的整颗硬盘就像一根原木,你必须要在这根原木上面切割出你想要的区段, 这个区段就能够再制作成为你想要的家具!如果没有进行切割,那么原木就不能被有效的使用。 同样的道理,你必须要针对你的硬盘进行分割,这样硬盘才可以被你使用的!

磁盘分区表(partition table)

我们利用参考对照磁柱号码的方法来处理! 在分割表所在的64 bytes容量中,总共分为四组记录区,每组记录区记录了该区段的启始与结束的磁柱号码。

假设上面的硬盘装置文件名为/dev/hda时,那举这四个分割槽在Linux系统中的装置文件名如下所示, 重点在于档名后面会再接一个数字,这个数字不该分割槽所在的位置有关!
 P1:/dev/hda1
 P2:/dev/hda2
 P3:/dev/hda3
 P4:/dev/hda4

由于分割表就只有64 bytes而已,最多只能容纳四笔分割的记录, 这四个分割的记录被称为主要(Primary)或延伸(Extended)分割槽。

 其实所谓癿『分割』只是针对那个64 bytes的分割表进行设定而已!
 硬盘默认的分割表仅能写入四组分割信息
 这四组分割信息我们称为主要(Primary)或延伸(Extended)分割槽
 分割槽的最小单位为磁柱(cylinder)
 当系统要写入磁盘时,一定会参考磁盘分区表,只能针对某个分割槽进行数据的处理



假设上面的硬盘装置文件名为/dev/hda时,那举这四个分割槽在Linux系统中的装置文件名如下所示, 重点在于档名后面会再接一个数字,这个数字不该分割槽所在的位置有关喔!
 P1:/dev/hda1
 P2:/dev/hda2
 P3:/dev/hda3
 P4:/dev/hda4

由于分割表就只有64 bytes而已,最多只能容纳四笔分割的记录, 这四个分割的记录被称为主要(Primary)或延伸(Extended)分割槽。 根据上面的图示与说明,我们可以得到几个重点信息:
 其实所谓的『分割』只是针对那个64 bytes的分割表进行设定而已!
 硬盘默认的分割表仅能写入四组分割信息
 这四组分割信息我们称为主要(Primary)或延伸(Extended)分割槽
 分割槽的最小单位为磁柱(cylinder)
 当系统要写入磁盘时,一定会参考磁盘分区表,才能针对某个分割槽进行数据的处理

在Windows/Linux系统中, 我们是透过刚刚谈到的延伸分割(Extended)的方式来处理的啦!延伸分割的想法是: 既然第一个扇区所在的分割表只能记录四笔数据, 那我可否利用额外的扇区来记录更多的分割信息?实际上图示有点像底下这样: 


在上图当中,我们知道硬盘的四个分割记录区仅使用到两个,P1为主要分割,而P2则为延伸分割。请注意, 延伸分割的目的是使用额外的扇区来记录分割信息,延伸分割本身并不能被拿来格式化。 然后我们可以透过延伸分割所指向癿那个区块继续作分割的记录。

如上图右下方那个区块有继续分割出五个分割槽, 这五个由延伸分割继续切出来的分割槽,就被称为逻辑分割槽(logical partition)。 同时注意一下,由与逻辑分割槽是由延伸分割继续分割出来的,所以他可以使用的磁柱范围就是延伸分割所设定癿范围喔! 也就是图中的101~400啦!

同样的,上述的分割槽在Linux系统中的装置文件名分别如下:
 P1:/dev/hda1
 P2:/dev/hda2
 L1:/dev/hda5
 L2:/dev/hda6
 L3:/dev/hda7
 L4:/dev/hda8
 L5:/dev/hda9

仔细看看,怎举装置文件名没有/dev/hda3与/dev/hda4呢?因为前面四个号码都是保留给Primary或Extended用的嘛! 所以逻辑分割槽的装置名称号码就由5号开始了!这是个很重要的特性,不能忘记喔!

主要分割、延伸分割与逻辑分割的特性我们作个简单的定义:
 主要分割与延伸分割最多可以有四笔(硬盘的限制)
 延伸分割最多只能有一个(操作系统的限制)
 逻辑分割是由延伸分割持续切割出来的分割槽;
 能够被格式化后,作为数据存取的分割槽为主要分割与逻辑分割。延伸分割无法格式化;
 逻辑分割的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分割(5号到63号), SATA硬盘则有11个逻辑分割(5号到15号)。

事实上,分割是个很麻烦的癿东西,因为他是以磁柱为单位的『连续』磁盘空间, 且延伸分割又是个类似独立的磁盘空间,所以在分割的时候得要特别注意。


开机流程与主要启动记录区(MBR)

在计算器概论里面我们有谈到BIOS与CMOS两个东西, CMOS是记录各项硬件参数且嵌入在主板上面的储存器,BIOS则是一个写入到主板上的一个韧体(再次说明, 韧体就是写入到硬件上的一个软件程序)。这个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之外, 还可以安装在每个分割槽的启动扇区(boot sector)喔!


目录树结构(directory tree)

Linux内的所有数据都是以档案的形态来呈现的,所以啰,整个Linux系统最重要的地方就是在于目录树架构。 所谓的目录树架构(directory tree)就是以根目录为主,然后向下呈现分支状的目录结构的一种档案架构。 所以,整个目录树架构最重要的就是那个根目录(root directory),这个根目录的表示方法为一条斜线『/』, 所有的档案都与目录树有关。目录树的呈现方式如下图所示:



文件系统与目录树的关系(挂载)

所谓的『挂载』就是利用一个目录当成进入点,将磁盘分区槽的数据放置在该目录下; 也就是说,进入该目录就可以读取该分割槽的意思。这个动作我们称为『挂载』,那个进入点的目录我们称为『挂载点』。 由于整个Linux系统最重要的是根目录,因此根目录一定需要挂载到某个分割槽的。 至于其他的目录则可依用户自己的需求来给予挂载到不同的分割槽。我们以下图来作为一个说明:


上图中假设我的硬盘分为两槽,partition 1是挂载到根目录,至于partition 2则是挂载到/home这个目录。 这也就是说,当我的数据放置在/home内的各次目录时,数据是放置到partition 2的,如果不是放在/home底下的目录, 那么数据就会被放置到partition 1了!