在本章当中,我们开始对于Linux的系统篇的介绍,我们首先了解一下磁盘的构造以及文件系统的概念,在上一篇的基础中,主要介绍了Linux的命令的用法等其它的一些概念,知识比较琐碎,希望将这些基础知识多看得以巩固,唉。。。日子不好过啊,学习本来就很难。那么在这一章当中我们来讲述Linux磁盘及文件系统的概念。
一、操作系统的组成部分
我们操作系统组成部分大致分为硬件和软件,硬件设备是最底层的,这是计算机的一个运行的基础,冯诺依曼定义了硬件部件,分别为是CPU(由运算器和控制器组成)然后是Memory(主存,也就是内存设备),是一个可编址的存储单元,它的单元是一个的大小是一个字节,是一串八位二进制组成的,每一个字节都有一个十六进制标识着,但是内存只是临时性的存储,只要一断电,所有的数据也都会没有,所以我们需要一个辅存,用来永久存储这些数据,断电之后,数据依然存在,现在来说,如果主机无法连接网络的话就是一个孤岛而已,那么网卡设备就是另一种重要的IO设备,对于服务器来说,网卡是极为重要的,因为它是服务出入的一个接口。
早期的硬盘设备对于PC来讲接口有很多种,早期的IDE,和现在SATA等,线缆的类型是不一样的,对于数据类型的存取是由CPU来实现的,它们之间的传输也是通过某种协议来实现的。
我们来总结一下硬件的组成以及硬盘接口的类型等属性。
CPU, Memory(RAM), I/O I/O:Disk, EhterCard 接口类型: IDE(ata):并口,133MB/s SCSI并口:Ultrascsi320, 320MB/s, Ultrascsi640, 640MB/s SATA:串口,6gbps; SAS:串口,6gbps; USB:串口,480MB/s
那么关于接口的类型分为大致两部分,一个是并口,另一个是串口,按理来说并口比串口要快,就像多个跑道一起跑,但是它们相互之间防御机制很弱的话,就会产生干扰,
并口:同一线缆可以接多块设备 IDE:两个,主,从; SCSI: 宽带:16-1 窄带:8-1 串口:同一线缆只可以接一个设备 iops:io per second
那么现在硬盘也分为了两种,一种是机械式硬盘,另一种是固态式硬盘,这两个实现存储的方式是不一样的,机械硬盘是一种机械设备,是通过硬盘旋转来进行数据存取,而固态硬盘是电气设备,是通过电子的运转来实现的,所以后者对于数据的存取更快一些。
二、硬盘的工作原理
我们主要了解机械式硬盘是如何工作的,简单来讲,就是由真空封装的,由马达带动的多个钢性的盘片,上面涂有磁性的材料,通过上面的固定轨道来实现存取数据,而数据的存储容量取决于涂有磁性材料的密度,这对其工艺的要求是很高的,盘片上从外向内划分了许多轨道,我们称之为磁道。
在盘面上划分了许多轨道,所存储的数据对每个轨道来说也是不一样的,在同轴马达上,所划过的长度是不一样的,属于固定角速设备,对于数据的存取来说,在磁盘上面悬浮着一个磁头,通过它来读取磁盘上面磁性材料的数据,也可以发送高能信号用来存储在磁性材料当中;这个设备我们称之为磁头。
对于磁盘来说,正反两面都有磁头,这些磁头都固定在一个机械臂上,所以读取数据由两部分组成,第一步就是挪动磁头,定位在磁道当中,第二步就是等待那个数据转过磁头中去,所以在磁道上读取数据就会有一个平均寻道时间。但由于由内而外的周长其实不一样,所以不能够以一个磁道来进行存储,否则很难实现数据的有效管理,于是乎就把磁道划分成固定大小的扇区,每一个扇区存储量为512bytes。
刚才讲过,这些磁头都是固定在机械臂上,也就是说是能同步进退了,在某一时刻,不同盘面上同一个编号的磁道,叫做一个柱面。
那么为什么进行分区,如果不分区的话,就会当成一个文件系统来进行存储,但大体上只能支持四个分区,但为了变成可独立管理的文件系统,彼此间不互相干扰,所以就划分了分区。而分区的划分是按照柱面来进行的。越靠近外面的分区,分区较好,因为单位时间内,磁头划过的时间长,存储的数据量也大,所以一般Windows默认会安装在C盘。
硬盘:机械硬盘,固态硬盘; 机械硬盘: track:磁道bytes sector:扇区, 512 cylinder:柱面 分区划分基于柱面; 平均寻道时间:5400rpm, 7200rpm, 10000rpm, 15000rpm
三、设备类型
对于Linux的哲学思想来说,是一切皆文件,这种哲学思想来说能够对待在硬盘设备上,使得设备有两种类别,一种是块文件,另一种为字符文件。
设备类型: 块(block):随机访问,数据交换单位为"块"; 字符(charactor):线性访问,数据交换单位为"字符";
而对于Linux哲学思想之一:一切皆文件来说,它们也有文件来对设备进行控制,我们称之为设备文件,根据FHS(文件层级结构标准),系统将设备文件存放在/dev目录下,而设备文件的主要作用就是关联该设备的启动程序,它是该设备的访问入口,每一个设备都会有一个设备号,没有大小之分。
设备文件:FHS /dev 设备文件:关联至设备的驱动程序;是设备的访问入口; 设备号: major:主设备号,区分设备类型;用于标明设备所需要的驱动程序; minor:次设备号,区分同种设备类型下的不同设备;是特定的访问入口;
如果将来需要手动创建设备文件时,可以使用mknod命令。它是可以创建块设备以及字符设备文件的一条命令,其命令格式为:
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
该命令选项如下:
-m MODE:创建后的设备文件的访问权限
那么在系统上所有的设备文件名,都是由ICANN定义的,不然的话,不同的发行版对于设备的文件名会截然不同,对于系统来说,不同的磁盘设备都会有不同的设备文件。示例如下:
磁盘: IDE:/dev/hd[a-z] 例如:/dev/hda, /dev/hdb SCSI, SATA, USB, SAS:/dev/sd[a-z] 分区: /dev/sda# 注意:CentOS 6和7统统将硬盘设备文件标识为/dev/sd[a-z]# 引用设备的方式: 设备文件名; 卷标; UUID;
三、磁盘分区
我们刚才讲过磁盘最多只能分四个区,这是属于MBR类型,现在不只有MBR类型,还有GPT类型,在0磁道0扇区,用作于MBR扇区,MBR我们称之为主引导记录,共512个字节,分为了三部分,但是好像不止可以分到四个分区,这是因为我们把其中一个分区拿出来指向另外一个存储空间,把那新的空间当作新的存储表用来存储,而用来引导其它分区标的分区就叫做扩展分区,因此整个的空间都能够给扩展分区,但是扩展不能直接使用,需要在该指向的空间中创建成逻辑分区,一般最后一个主分区我们就划分成扩展分区,那么我们来总结一下:
磁盘分区:MBR, GPT MBR:0 sector Master Boot Record 分为三部分: 446bytes:bootloader, 程序, 引导启动操作系统的程序; 64bytes:分区表,每16bytes标识一个分区,一共只有4个分区; 4个主分区 3主1扩展: n个逻辑分区; 扩展分区:将某一个主分区指向另一个分区表,我们称之为扩展分区,而在这里分区的空间我们称之为逻辑分区; 2bytes:MBR区域的有效性标识;55AA为有效; 主分区和扩展分区的标识:1-4; 逻辑分区:5+;
即使你的扩展分区一个都没用,逻辑分区也得是从5+开始。
那么管理磁盘分区的命令为fdisk,作用为管理磁盘分区表的,该命令的格式及用法为:
fdisk命令: 1、查看磁盘的分区信息; fdisk -l [-u] [device]:列出指定磁盘设备上的分区情况; 2、管理分区: fdisk device fdisk提供了一个交互式接口来管理分区,它有许多子命令,分别用于不同的管理功能;所有的操作均在内存中完成,没有直接同步到磁盘;直接使用w命令保存至磁盘上; 常用命令: n:创建新分区; d:删除已有分区; t:修改已有分区; l:查看所有已知ID; w:保存并退出; q:不保存并退出; m:查看帮助信息; p:显示现有分区信息;
那么接下来想要使用它的话,你就可以添加一块硬盘或者在现有的磁盘上,找出现有的空间来进行操作。
原文地址:http://blog.51cto.com/tianxie/2062794