LINUX主要记忆点(1):基础概念--2011-08-07

来源:互联网 发布:mac serial number 编辑:程序博客网 时间:2024/05/05 02:32

一.  linux的装置和档案名对应关系如下:

IDE硬盘:                                  /dev/hd[a-d]  

SATA/SCSI/USB硬盘:           /dev/sd[a-p]

usb闪存:                                    /dev/sd[a-p]

软盘:                                           /dev/fd[0-1]

25针打印机:                               /dev/lp[0-2]

usb打印机:                                /dev/usb/lp[0-15]

ps2鼠标:                                    /dev/psaux

usb鼠标:                                    /dev/usb/mouse[0-15]

当前鼠标:                                   /dev/mouse

当前cdrom/dvdrom                 /dev/cdrom

磁带机:  (IDE)                           /dev/ht0

磁带机:  (SCSI)                        /dev/st0

 

二. 分区的相关概念。

       一般来讲一个扁平电缆有可以接2个IDE接口,而一个电脑通常配备2个扁平电缆,也就是有4个IDE接口(也即可以安装4块硬盘)。

       所以通常来讲为hd1,hd2,hd3,hd4。

       同一根的扁平电缆的2个IDE接口分为master和slave,故此一般的对应关系如下。         

IDE/jumpermasterslaveIDE1(primary)/dev/hda/dev/hdbIDE2(secondary)/dev/hdc/dev/hdd

      对于一个磁盘来讲,最小单位为磁区(扇区),512bytes。磁盘可以看做事由一个个的磁柱(cylinder)组成。

      整个磁盘的第一扇区特别重要,因为他记录了整个磁盘的主要信息。第一扇区主要包含2个部分:

      1. MBR(master boot record) 主要启动记录区(可以安装开机管理程序的地方,446bytes)。

      2. 分区表(partition table,64bytes)。记录硬盘分割的情况。

      由于分区表只有64bytes,所以他只能记录4个分区的记录。每个分区记录包含开始磁柱和结束磁柱的号码。

      假如只有一块硬盘,他的档案在/dev/hda,那么他的4个分区分别为/dev/hda1   /dev/hda2    /dev/hda3      /dev/hda4 ,再假设此磁盘共有400个磁柱。且对应关系如下:那么向hda4这个分割槽写入数据,也就是把数据写入到301-400这些磁柱内。hda1(p1)1-100hda2(p2)101-200hda3(p3)201-300hda4(p4)301-400

         

      因此从理论上来讲,整个磁盘最多只能分成4个主分区(primary partition)或者扩展分区(extended partition),同时扩展分区(extended partition)最多只能有一个。

      所谓“分区”只是针对64bytes的分区表进行设定。而且分区表中的分区只能是主要的(primary)或者扩展的(extended)分区。

      分割槽的最小单位为磁柱。

      当系统要写磁盘时,一定要参照分区表才能对某个分割槽进行数据的处理。

 

      通过以上的信息我们发现,一个硬盘只能最多分成4个主要的或者扩展的分割槽,那么是不是硬盘的分割就最多只能分成4个呢?当然不是。

      无论对于IDE还是SATA来讲,都可以分成10个以上的分割槽。这是用logical partition(逻辑分割)通过额外的扇区记录分割信息来实现的。如下图所示:

p1(primary:1-100)p2(extended:101-400)p5(100-150)p6(151-200)p7(201-250)p8(251-300)p9(301-400)p3(无)p4(无)

      可以将hda1作为主要分割区,将hda2作为扩展分割区。在p2的基础上进行logical partition,共分成5个逻辑分区。

      则p1,p2,p5,p6,p7,p8,p9在linux中对应的装置名称为:/dev/hda1,/dev/hda2,/dev/hda5,/dev/hda6,/dev/hda7,/dev/hda8,/dev/hda9。

      请注意,没有/dev/hda3和/dev/hda4,因为前四个号码都是保留给primary和extended用的,这个一定要记得。

      同时,能被格式化以后作为数据存取分割槽的只有primary partition和logical partition,延伸分割(extended partition)是不行的。

      逻辑分割的数量依据操作系统的不同而有所区别。在linux中,IDE最多可以有59个逻辑分割(从5号到63号),SATA最多可以有11个逻辑分割(5-15号),故此依据硬盘限制和操作系统的限制:在linux中如果是IDE硬盘,那么最多可以有63个分区(3个主要分区,1个扩展分区,59个逻辑分区);如果是SATA硬盘,那么最多可以有15个分区(3个主要分区,1个扩展分区,11个逻辑分区)。

三.  开机流程

      介绍开机流程之前我们要先知道两个概念。CMOS(Complementary Metal Oxide Semiconductor:互补金属氧化物半导体)和BIOS(Basic input output System:基本输入输出系统)。其中CMOS是一个镶嵌在主板上的存储器,他记录了各硬件的信息。而BIOS是一个写入在主板上的韧体(韧体即写入在主板上的软件程序)。开机的流程如下:

      1. 开机以后首先启动的是主板上的韧体程序BIOS,BIOS会主动的读取CMOS中的各硬件信息。找到第一个可开机的装置(设备)。(由于BIOS和CMOS都是整合到主板上的,是硬件相关的,所以这步应该不难理解)

      2. 第一个可开机的装置找到自己第一扇区的主要启动记录区(MBR),这个记录区有一个软件,即开机管理程序(boot loader)。由于MBR只有446Bytes,所以开机管理程序是非常的短小精悍的。(备注:开机管理程序是安装系统的时候写入到MBR的)

      3. 开机管理程序(boot loader)开始读取核心档案来执行。

      4. 核心档案:开始操作系统的功能。

      通过以上我们可以知道,BIOS和MBR都是计算机硬件支持的功能,而开机管理程序(boot loader)则是操作系统安装时写入到MBR的一个程序。

      boot loader 具有以下的功能:

      1. 提供选单供客户选择。(比如安装多重引导系统时,boot loader 会列出所有的系统选单供你选择。)

      2. 载入核心档案。直接指向开可开机的程序区段来启动操作系统。

      3. 转交其他loader。将开机管理的功能托管给其他的loader来执行。

      如何转交其他的boot loader呢?一个硬盘不是只有一个MBR吗?

      对,一个硬盘是只有一个MBR,但是呢,每个分割槽都有自己的boot sector(启动扇区)。开机管理程序可以写入MBR,也可以写入分割槽的boot sector。

      如果你安装了xp(c盘)和redhat(d盘)双系统,那么在开机的时候boot loader 会显示如下:

Windows xp Professional Sp3Redhat Linux 9.0

       如果你选择了第一个,那么boot loader会加载windows的核心档案,启动windows系统。

       如果你选择了第二个,那么boot loader会把开机管理托管给c盘中的Redhat 9.0这个loader,而这个loader直接指向d盘boot sector中的linux的开机管理程序。然后LINUX的boot loader加载linux的核心档案,启动linux系统。

       此时无论windows还是linux的核心档案都是放置在自己的分割槽内的。而且每一个分割槽的boot loader都只识别自己的核心档案和其他的loader。(即c盘中的boot loader并不认识d盘中linux的核心档案,他只认识c盘中的另一个loader而已,而c盘中的另一个loader直接指向d盘得boot sector。

       知道了以上这些,你就能理解为什么安装windows和linux双系统的时候要先安装windows然后再安装linux系统,为什么呢?

       因为windows安装的时候是会直接覆盖MBR和所在分割槽的Boot sector的,你没有机会去选择。而安装linux的时候linux可以让你选择将开机管理程序boot loader安装到MBR还是个别分割槽的启动扇区(如上例是安装在D盘得boot sector了)。而且linux的boot loader可以手动设定选单。这样你就可以把windows的loader也手动添加到linux boot loader 的选单上了。如果后安装windows,那么windows会直接覆盖MBR和c盘得boot sector,这样linux系统的引导区就被覆盖掉了。

四.  linux的目录树结构。

       上边讲过了,在linux中,一起都是以档案的形式存在的,而这些档案就是以目录树结构存在的(directory tree)。整个目录树最重要的就是根目录(root directory),以【/】来表示。其他所有的档案都是以“/”目录延伸出来的。

        如何结合目录树结构和磁盘内的数据呢?这就用到了mount(挂载)的问题。

        所谓的挂载即找到一个目录,把磁盘分割槽的数据放到这个目录下,也即进入该目录就可以操作此分割槽内数据的意思,而选择的目录被我们称为挂载点。“/”目录是一定要挂载到某个分割槽的,至于其他的目录,可以依据需求来挂载。如果其他的任何目录都没有挂载,那么根目录以下所有的目录都默认挂载在和根目录一样的分割槽。

原创粉丝点击