一、磁盘分区及文件访问入口
在前文中介绍过,Linux的整个文件系统像一棵倒置的数,最顶层的是根文件系统,其下有很多一级子目录,一级子目录下面是二级子目录,依此类推:
/:根目录
/bin,/sbin:二进制程序,操作系统自身启动运行就需要用到的程序。
/bin下为普通用户使用的程序;/sbin下为管理员用户使用的程序
/usr/bin,/usr/sbin:二进制程序,基本的系统管理工具。
/usr/bin下的程序普通用户都能用;
/usr/sbin为管理命令。
/usr/local/bin, /usr/local/sbin:第三方程序,和操作系统的基本启 动运行无关,是管理员安装的用于 管理操作系统的特定工具。
事实上,/,/bin,/sbin,/usr/bin,/usr/sbin, /usr/local/bin, /usr/local/sbin 可以完全存在于不同的磁盘分区上,尽管他们看起来都像是存在于/目录之中的。
假设磁盘上一共有四个分区,其中根目录位于1号分区,那么所有对操作系统的访问都必须以1号分区为入口,因为所有的文件都是根/目录下的文件,都以根目录为访问入口,根/目录有且仅有一个,所以访问另外3个分区,就必须以根所在的1号分区为入口,1号分区即根分区。
如果我们希望另外3个分区中的某个分区,例如3号分区,也能派上用场,那么就需要让此分区下的文件和根目录建立关联关系。比如/usr这个目录位于根/目录之下,如果想把文件存入/usr这个目录下,完全可以不存放在分区1下而存放在3号分区下,只需要让文件和/usr目录建立关联关系。要注意的是,/usr目录位于1号分区,/usr里的文件位于3号分区。
根目录下的目录可以关联其他的文件,而这些文件也可以进一步关联其他的分区:如果/usr目录下有一个名为local的目录,即/usr/local,存放在3号分区上,而local目录又关联了一个新的分区,4号分区,在4号分区上存放有bin目录,即/usr/local/bin,这样一来,/,/usr,/usr/local,/usr/local/bin分别关联了1号、3号和4号分区。
事实上,文件所关联的位置(或目录),就是文件的入口。上述例子中,如果将4号分区拆卸下来,挂载到另一个系统里的某个目录下,如/test目录,那么要访问bin中的文件,就会以/test为入口,即/test/bin,而看不到/usr/local了。
以上就是linux 的分区形式,在逻辑上会给人以层次感,但在物理上各文件和目录可以是存在于不同的分区上的平行结构。
二、各目录的功能
1. 库目录lib
所谓的库,即是指的公共的功能模块,所有的二进制文件都需要依赖于共享的库赖运行。Linux的通过系统调用来操作内核,而系统调用过于复杂,为了使程序能够顺利运行,系统调用上存封装了很多接口帮助程序进行系统调用,这些接口就是库文件。
库文件存放在lib目录下,lib目录服务于/bin和/sbin下的程序。/usr/lib也是库目录,可以为/usr/bin 和 /usr/sbin 提供库,不过/usr/bin 和 /usr/sbin的库很多也直接由/lib提供了;/usr/local/bin 和 /usr/local/sbin下的程序所依赖的特殊库,通常由/usr/local/lib提供。
2. 配置文件
Linux中程序运行除了依赖于库文件外,还依赖配置文件。/etc这个目录通常为/bin、/sbin、/usr/bin、/usr/sbin提供配置文件;而/usr/local/bin和/usr/local/sbin的配置文件,通常放在/usr/local/etc下,但也有可能直接存放在/etc下。
3. 临时文件
通常程序在运行时会产生很多临时文件,这些临时文件多存放在/tmp目录下。
4. /var目录
/var目录下存放的文件多为内容经常变化的文件,主要有log,mail,cache等
A)日志文件
如果要知道系统的运行状况,或者是文件被访问的情况,可以查看日志文件,Linux中的日志文件多存放在/var/log中;
B)邮件缓存
/var/mail目录多用来为用户提供邮件缓存;
C)缓存文件
/var/cache目录主要用来存放缓存文件;
5. 伪文件系统/proc 和 /sys
A)内核映像 /proc
Linux的内核没有配置文件,如果用户想要自行定制内核的特性,只能在内核启动时给内核传递参数,一般参数的传递通过grub(后文中会详解)来实现。但是当系统启动之后,想要查看或改变内核的特性,就需要用到/proc这个目录,此目录用来存放内核的输出参数,每一个参数在/proc目录中都表现为一个文件,故可以通过修改/proc下的文件来模拟修改内核的运行参数,但要注意的是只有有写权限的参数才能修改,其他的可能只能用来查看内核的参数。
B)硬件信息 /sys
和/proc类似,/sys也是伪文件系统。如果想要修改硬件的工作属性,而非内核的运行参数,就需要通过修改/sys中的文件来实现。
6. 挂载目录/media 和 /mnt
A)关联便携性设备:/media
B)关联第二块硬盘上的分区/mnt
上述两个挂载目录是一种约定俗成的挂载方式,如果不挂载在这两个目录下也是可以的。
7.引导目录/boot
/boot目录时引导目录,主要用来存放内核,操作系统的启动和进程的管理都必须由内核来完成
8. 家目录 /home
目前的操作系统基本上都是多任务多用户的,每一个用户登陆到系统中,其每一个操作都必然会处于一个目录中,这个目录就是用户的工作目录;而该用户最初登陆到操作系统中,必然也会处于某个目录中,且这个目录通常用来存放和管理工作,该目录即称为家目录/home。在/home目录下的/home/USERNAME 和 /root 都是用户的家目录。
9. 设备文件/dev
Linux所识别的任何一个硬件设备都存放在/dev目录下,且每一个硬件设备都有一个与之对应的文件,这个文件被作为往该设备上存储或读取数据的入口。
Linux支持的设备类型主要有两种,即:
b:块设备,支持随机访问。键盘不属于随机设备,因为如果输入的是ABC,则不会显示为BCA。
c:字符设备,也称为线性设备,即有一定的先后顺序。
不同种类的设备在/dev上表现为不同的文件,如:
IDE, ATA类的设备:显示为 /dev/hd[a-z]
常见的PC机上通常有两个IDE插槽,每一个槽上可以接两个IDE设备,一个主设备(master),一个从设备(slave),故一个PC机最多能接4块IDE类的设备,即/dev/hda,/dev/hdb,/dev/hdc,/dev/hdd。通常情况下第一个IDE控制器接两块硬盘,即/dev/hda,/dev/hdb;第二个IDE控制器接光驱设备,故光驱设备通常表现为 /dev/hdc,所以虚拟机模拟光驱设备时,也使用的是hdc。
SCSI,SAS,SATA,USB 类的设备:被识别为 /dev/sd[a-z]
由于上述四种设备都表现为sd,不论是光驱设备,还是硬盘设备,都以/dev/sda, /dev/sdb...的形式表现,这样必然会导致混淆的现象。为了有效控制这种情况,Linux引入了一个机制:udev。用户可以借助udev来自行定义设备的名称,如/dev/sata1,/dev/usb1等。
三、硬件设备简介
1. 硬盘设备:既支持随机访问,也支持线性访问,但通常把它当做随机存取访问的块设备。
2. I/O,I/O Controller:控制器
I/O Adapter:适配器
计算机的CPU在和不同的设备进行数据交互时,信号的传递机制是不一样的,这就需要一个芯片来转换或翻译CPU的指令。比如CPU和显卡进行数据交互时,就需要这种芯片来帮助显卡完成指令,该芯片如果集成在主板上,就称为控制器(Controller),如果主板上没有集成该芯片,那么可以通过主板上的扩展槽来外接芯片,这种不集成的芯片,称为适配器(Adapter)。
3. 硬盘
A)硬盘类型
硬盘根据其I/O控制器的不同,和工作属性的不同会分成不同的类型:
IDE, ATA:并行通信,133MB/s
串行通信数据按顺序单向传输,并行通信多个数据可以同时传输;直观上并行传输的速度高于串行传输速度,但可以串行通信的也可以通过提高传输速度来超越并行传输,例如并行传输速率为每秒10bit,而串行传输的速率为每秒100bit,那么传输50bit的数据,串行传输很有可能会快于并行传输,这依赖于传输的吞吐量。吞吐量即每秒能传输的数据量。
SATA:串行通信(Serial),(SATA1)300MB/s,(SATA2)600MB/s,(SATA3)6Gb/s由ATA 发展而来,因为尽管并行数据传输速度快,但数据传输过程中干扰严重,故发展SATA,通过提高吞吐量来实现传输速度的提高。
SCSI:Small Computer System Interface,小型计算机接口,并行传输,它比同期的IDE传输速度要快,(UtraSCSI)320MB/s,转速通常为10000RPM~15000RPM。
通常情况下CPU每读取4kb的数据,那么即使仅读取1MB的数据,CPU都需要在硬盘和内存中频繁切换,这样严重影响读取速度。SCSI的好处就在于它自带一个智能控制器,可以控制数据的读取和存放位置,类似于一个小型的CPU,从而可以大大降低CPU的压力,使CPU的资源从无谓的I/O操作中解放出来。
SAS:SCSI的串行版,它的传输速度比SCSI要快得多。尽管SCSI硬盘性能好且很智能,但随着时代的发展,SCSI硬盘的技术已逐步被其串行版SAS所取代
SSD:Solid-State Disk,固态磁盘。它属于闪存系列,但SSD的优势在于多个磁盘并行传输,使传输速度大为提升,读写速度能达到500MB/s,且这个值为真实速度而非理论值。
USB:(1.1,2.0, 3.0)
B)硬盘工作原理
硬盘为多个盘片组成,其中有一根轴将数个盘片串联,在盘片飞速旋转过程中,盘片外有一根机械臂上带有 盘片总数*2 的磁头,这些磁头用来读取盘片上正反两面的数据。
每一盘片被划分为数个同心圆,同心圆之间的圆环用来存放数据,此圆环称为磁道(Track),靠近圆心处的磁道转过的距离小于外围的磁道,且能存放的数据小于外围的磁道,故越靠外的磁道存储性能越好。不论是外围还是靠内的磁道,转过的角度都是一致的,故此设备又称为固定角速度设备。
如果单纯的使用磁道来存储数据未免太过粗糙了,故可以将磁道进一步划分为更小的单元,即扇区(Sector)。对于机械式硬盘来说,扇区是最小存储单元。
如果一个扇区的大小是512个字节,那么存放4kb的数据,则一共需要8个扇区,利用盘片正反两面存取,则只用让磁头滑过4个扇区,可以使存储速度更快。
不同盘面上相同位置的磁道,组合起来形成桶状结构,叫做柱面(Cylinder)。这种柱状结构要求不同的盘片上磁道位置保持一致,故硬盘在读取数据时不能震动,否则磁头会划坏硬盘。
现在假设要在10号柱面上读取数据,而磁头目前处于1号柱面,那么机械臂会向内移动,使磁头能接触到10号柱面。当磁头接触到10号柱面了,但所要读取的数据不在磁头触碰的扇区里,这时磁头就需要等待盘片转动,直到目标数据所在的扇区下一次出现,这个等待所需要的时间,即为等待时间,所有数据的等待时间叫做平均巡道时间。故磁盘转动速度越快,等待时间越短,性能就越好。这种转动速度表示为RPM(Rotation Per Minute),即一分钟多少转。由于磁盘转速极快,会产生巨大热量,故硬盘盒内需保持真空,以控制温度。
本文出自 “重剑无锋 大巧不工” 博客,请务必保留此出处http://wuyelan.blog.51cto.com/6118147/1435770
1. 文件系统——磁盘分区、各目录功能、硬盘,布布扣,bubuko.com
原文:http://wuyelan.blog.51cto.com/6118147/1435770