磁盘的分区
装过体系的人都知道必需求分区后才干装置体系,形象点的说比方windows里C:,D:之类的东西;假如你要问硬盘为什么要分区,我也说不上来很严厉的原因,首要从运用习惯上来讲,咱们不期望数据乱七八糟堆积在一起,其次,假如不分区,怎样才干在一块硬盘上运用不同的文件体系(下面讲到)呢,学院派的说法是:数据安全和功用考虑。
先要说硬盘中最最重要的榜首扇区,由于整块硬盘的重要信息都在这儿:
MBR(Master Boot Record 主发动记载):开机引导程序就在装置在此,占用446byte;
DPT(Disk Partition table 硬盘分区表):记载硬盘上的分区元信息,占用64byte。
MBR是怎样作业的呢,不必深究,横竖便是体系开端时会主动读取数据的当地,这样才干引导进行操作体系的发动;
DPT要细心的讲讲,分区的大致意思就好像抢地盘,不过人家比较规则,依照柱面(最小的分区单位)分配,比方榜首个分区从柱面1-200,第二个分区201-500,但三个分区501-1000…(省掉并非能够无限分配下去哦)
为啥说不能一向分配下去呢,技能柱面数量满足,由于上面说到硬盘分区表只要64个字节,每条分区记载需求占用16字节,最多只能分4个,疑问在此:我的电脑怎样分了5个(c\d\e\f\g)?
其实我说的4个分区是所谓的主分区,为了能支撑许多分区引入了扩展分区的概念, 也便是说,能够运用DPT中一条记载来记载扩展分区的信息,然后在扩展分区中再持续区分逻辑分区,而逻辑分区的分区信息则记载在扩展分区的榜首个扇区中,如此则能够像链表相同区分出许多分区来。但留意,一个分区表中能够有1~4条主分区,可是最多只能有1个扩展分区
分区表之间是怎样相关的,具体讲一下,分区表是一个单向链表,榜首个分区表,也便是坐落硬盘榜首个扇区中的DPT,能够有一项记载扩展分区的开始方位柱面,类似于指针的概念,指向扩展分区(图3),依据这项记载咱们能够找到扩展分区的某柱面0磁头1扇区(CHS),而这个扇区中又存放了第二个分区表,第二个分区表榜首项记载一般表述了当前地点的逻辑分区的开始/停止柱面,第二项记载表述了下一个逻辑分区地点的0磁头1扇区(CHS),第三、第四项记载不存任何信息(图4)。
请看下图,主引导记载/分区表地点的是硬盘榜首个分区,根本分区1、根本分2、根本分区3都是主分区、扩展分区内有2个逻辑分区,每个逻辑分区的榜首个扇区都是分区表。
分区后的体系发动
之前说到MBR中装置的引导加载程序,他的效果是什么?
① 供给开机菜单选项:能够供用户挑选发动哪个操作体系,这是多重引导功用。
② 加载操作体系内核:每个操作体系都有自己的内核,需求引导程序来加载
③ 转交给其他引导程序:能够将作业移交给其他引导程序来进行上述操作。
其实引导加载程序除了能够装置在MBR中,还能够直接装置在每个分区的引导扇区(DBR)中,留意下,每个分区(主分区、逻辑分区)都有一个自己的发动扇区,专门用来装置引导加载程序,如上图表3。
体系发动进程:
① 首要,BIOS发动后,读取硬盘榜首个扇区MBR中的引导加载程序(可能是windows或许linux的grub)
② MBR中的引导程序供给开机菜单,你能够挑选1)直接加载windows 内核 2)将作业转交给windows 分区内的引导扇区中的加载程序,让他自己去加载内核 3)转交给linux分区内引导扇区,让他去加载linux.
③ 依据用户挑选的选项和引导加载程序中记载的分区,到分区表找对应的分区柱面号等分区信息,发动内核或许分区加载程序。
Window装置时默许会主动将MBR和windows地点分区的引导扇区都装上引导程序,而不会供给任何选项给用户挑选,因而假如之前装过其他操作体系,然后再别的装一个windows时,会把共用的MBR掩盖掉,如此,本来的操作体系就无法发动了。假如先装windows,然后装linux,linux 会掩盖MBR,然后让用户挑选是否将windows等其他操作体系的发动项增加进来,假如你挑选了增加进来,那么你在开机时就会有两个选项让用户进行挑选了。
文件体系
文件体系也是很大很杂乱的论题,咱们依然以比较浅显、粗颗粒度来解说,试想一下,咱们的文件怎样对应到磁盘的扇区上呢,所以光有底层的概念 磁道 扇区是没有用的,需求愈加笼统的数据类型或结构来笼统底层的细节。
文件体系是一套完成了数据的存储、分级安排、拜访和获取等操作的笼统数据类型(Abstract data type)。
文件体系是一种用于向用户供给底层数据拜访的机制。它将设备中的空间区分为特定巨细的块(扇区),一般每块512字节。数据存储在这些块中,巨细被修正为占用整数个块。由文件体系软件来担任将这些块安排为文件和目录,并记载哪些块被分配给了哪个文件,以及哪些块没有被运用。
不过,文件体系并不一定只在特定存储设备上呈现。它是数据的安排者和供给者,至于它的底层,能够是磁盘,也能够是其它动态生成数据的设备(比方网络设备)。