1、磁盘分区及文件访问入口linux
在前文中介绍过,Linux的整个文件系统像一棵倒置的数,最顶层的是根文件系统,其下有不少一级子目录,一级子目录下面是二级子目录,依此类推:缓存
/:根目录ide
/bin,/sbin:二进制程序,操做系统自身启动运行就须要用到的程序。工具
/bin下为普通用户使用的程序;/sbin下为管理员用户使用的程序性能
/usr/bin,/usr/sbin:二进制程序,基本的系统管理工具。spa
/usr/bin下的程序普通用户都能用;操作系统
/usr/sbin为管理命令。翻译
/usr/local/bin, /usr/local/sbin:第三方程序,和操做系统的基本启 动运行无关,是管理员安装的用于 管理操做系统的特定工具。3d
事实上,/,/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 的分区形式,在逻辑上会给人以层次感,但在物理上各文件和目录能够是存在于不一样的分区上的平行结构。
2、各目录的功能
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等。
3、硬件设备简介
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),即一分钟多少转。因为磁盘转速极快,会产生巨大热量,故硬盘盒内需保持真空,以控制温度。