1. 文件系统——磁盘分区、各目录功能、硬盘

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号分区

wKioL1O7Z_rCLXchAAB08G3IowA982.jpg  

根目录下的目录能够关联其余的文件,而这些文件也能够进一步关联其余的分区:若是/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了。

 wKiom1O7aHiDe0meAAEtkYwrJts096.jpg

 以上就是linux 的分区形式,在逻辑上会给人以层次感,但在物理上各文件和目录能够是存在于不一样的分区上的平行结构。

 

2、各目录的功能

1. 库目录lib

所谓的库,便是指的公共的功能模块,全部的二进制文件都须要依赖于共享的库赖运行。Linux的经过系统调用来操做内核,而系统调用过于复杂,为了使程序可以顺利运行,系统调用上存封装了不少接口帮助程序进行系统调用,这些接口就是库文件。

wKioL1O7aH2jJzn_AACsIaUe5Lk740.jpg 

库文件存放在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目录下存放的文件多为内容常常变化的文件,主要有logmailcache

A)日志文件

若是要知道系统的运行情况,或者是文件被访问的状况,能够查看日志文件,Linux中的日志文件多存放在/var/log中;

B)邮件缓存

/var/mail目录多用来为用户提供邮件缓存;

C)缓存文件

/var/cache目录主要用来存放缓存文件;

 

5. 伪文件系统/proc 和 /sys

A)内核映像 /proc

Linux的内核没有配置文件,若是用户想要自行定制内核的特性,只能在内核启动时给内核传递参数,通常参数的传递经过grub(后文中会详解)来实现。可是当系统启动以后,想要查看或改变内核的特性,就须要用到/proc这个目录,此目录用来存放内核的输出参数,每个参数在/proc目录中都表现为一个文件,故能够经过修改/proc下的文件来模拟修改内核的运行参数,但要注意的是只有有写权限的参数才能修改,其余的可能只能用来查看内核的参数。

wKiom1O7aMzCSPsoAAGfJaTfaz8892.jpg  

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机最多能接4IDE类的设备,即/dev/hda/dev/hdb/dev/hdc/dev/hdd。一般状况下第一个IDE控制器接两块硬盘,即/dev/hda/dev/hdb;第二个IDE控制器接光驱设备,故光驱设备一般表现为 /dev/hdc,因此虚拟机模拟光驱设备时,也使用的是hdc

 

SCSISASSATAUSB 类的设备:被识别为 /dev/sd[a-z]

因为上述四种设备都表现为sd,不管是光驱设备,仍是硬盘设备,都以/dev/sda, /dev/sdb...的形式表现,这样必然会致使混淆的现象。为了有效控制这种状况,Linux引入了一个机制:udev。用户能够借助udev来自行定义设备的名称,如/dev/sata1/dev/usb1等。

 

3、硬件设备简介

 1. 硬盘设备:既支持随机访问,也支持线性访问,但一般把它当作随机存取访问的块设备。

 

 2. I/OI/O Controller:控制器

   I/O Adapter:适配器

wKiom1O7aWqj4loSAABd9ZH2Lgs582.jpg 

计算机的CPU在和不一样的设备进行数据交互时,信号的传递机制是不同的,这就须要一个芯片来转换或翻译CPU的指令。好比CPU和显卡进行数据交互时,就须要这种芯片来帮助显卡完成指令,该芯片若是集成在主板上,就称为控制器(Controller),若是主板上没有集成该芯片,那么能够经过主板上的扩展槽来外接芯片,这种不集成的芯片,称为适配器(Adapter)。

 

3. 硬盘

A)硬盘类型

硬盘根据其I/O控制器的不一样,和工做属性的不一样会分红不一样的类型: 

IDE, ATA并行通讯,133MB/s

 wKioL1O7ab_i0qnJAAB8AkATCcI933.jpg 

串行通讯数据按顺序单向传输,并行通讯多个数据能够同时传输;直观上并行传输的速度高于串行传输速度,但能够串行通讯的也能够经过提升传输速度来超越并行传输,例如并行传输速率为每秒10bit,而串行传输的速率为每秒100bit,那么传输50bit的数据,串行传输颇有可能会快于并行传输,这依赖于传输的吞吐量。吞吐量即每秒能传输的数据量。

 

SATA串行通讯(Serial),(SATA1300MB/s,(SATA2600MB/s,(SATA36Gb/sATA 发展而来,由于尽管并行数据传输速度快,但数据传输过程当中干扰严重,故发展SATA,经过提升吞吐量来实现传输速度的提升。

 

SCSISmall Computer System Interface,小型计算机接口,并行传输,它比同期的IDE传输速度要快,(UtraSCSI320MB/s,转速一般为10000RPM~15000RPM

一般状况下CPU每读取4kb的数据,那么即便仅读取1MB的数据,CPU都须要在硬盘和内存中频繁切换,这样严重影响读取速度。SCSI的好处就在于它自带一个智能控制器,能够控制数据的读取和存放位置,相似于一个小型的CPU,从而能够大大下降CPU的压力,使CPU的资源从无谓的I/O操做中解放出来。

 

SASSCSI的串行版,它的传输速度比SCSI要快得多。尽管SCSI硬盘性能好且很智能,但随着时代的发展,SCSI硬盘的技术已逐步被其串行版SAS所取代

 

SSDSolid-State Disk,固态磁盘。它属于闪存系列,但SSD的优点在于多个磁盘并行传输,使传输速度大为提高,读写速度能达到500MB/s,且这个值为真实速度而非理论值。 

 

USB1.12.0, 3.0

 

B)硬盘工做原理

硬盘为多个盘片组成,其中有一根轴将数个盘片串联,在盘片飞速旋转过程当中,盘片外有一根机械臂上带有 盘片总数*2 的磁头,这些磁头用来读取盘片上正反两面的数据。                         

  wKiom1O7akzAiu5xAACyaGyxJyk552.jpg

每一盘片被划分为数个同心圆,同心圆之间的圆环用来存放数据,此圆环称为磁道(Track,靠近圆心处的磁道转过的距离小于外围的磁道,且能存放的数据小于外围的磁道,故越靠外的磁道存储性能越好。不管是外围仍是靠内的磁道,转过的角度都是一致的,故此设备又称为固定角速度设备。

若是单纯的使用磁道来存储数据未免太过粗糙了,故能够将磁道进一步划分为更小的单元,即扇区(Sector。对于机械式硬盘来讲,扇区是最小存储单元。

若是一个扇区的大小是512个字节,那么存放4kb的数据,则一共须要8个扇区,利用盘片正反两面存取,则只用让磁头滑过4个扇区,可使存储速度更快。

不一样盘面上相同位置的磁道,组合起来造成桶状结构,叫作柱面(Cylinder。这种柱状结构要求不一样的盘片上磁道位置保持一致,故硬盘在读取数据时不能震动,不然磁头会划坏硬盘。

如今假设要在10号柱面上读取数据,而磁头目前处于1号柱面,那么机械臂会向内移动,使磁头能接触到10号柱面。当磁头接触到10号柱面了,但所要读取的数据不在磁头触碰的扇区里,这时磁头就须要等待盘片转动,直到目标数据所在的扇区下一次出现,这个等待所须要的时间,即为等待时间,全部数据的等待时间叫作平均巡道时间。故磁盘转动速度越快,等待时间越短,性能就越好。这种转动速度表示为RPMRotation Per Minute),即一分钟多少转。因为磁盘转速极快,会产生巨大热量,故硬盘盒内需保持真空,以控制温度。

相关文章
相关标签/搜索