2015年(39)
发布时间:2015-04-10 16:26:38
我们都知道Linux内核里的双向链表和学校里教给我们的那种数据结构还是些不一样。Linux采用了一种更通用的设计,将链表以及其相关操作函数从数据本身进行剥离,这样我们在使用链表的时候就不用自己去实现诸如节点的插入、删除、遍历等操作了。当然,Linux也是从2.1.x内核开始才对链表进行了这样的统一,和我们目前看到的样.........【阅读全文】
发布时间:2015-04-10 16:26:21
Linux的老江湖们对这个概念当然不会陌生,然而刚接触Linux的新手们就会被文件系统这个概念弄得晕头转向,恰好我当年正好属于后者。从windows下转到Linux的童鞋听到最多的应该是fat32和ntfs(在windows 2000之后所出现的一种新型的日志文件系统),那个年代经常听到说“我要把C盘格式化成ntfs格式,D盘格式化成fat32格式”。一到Linux下,很多入门Linux的书籍中当牵扯到文件系统这个术语时,二话不说,不管三七二十一就给出了下面这个图,然后逐一解释一下每个目录是拿来干啥的、里面会放什么类型的文件就完事儿了,弄得初学者经常“丈二和尚摸不着......【阅读全文】
发布时间:2015-04-10 16:26:14
前面说过,虚拟文件系统VFS是对各种文件系统的一个抽象层,抽取其共性,以便对外提供统一管理接口,便于内核对不同种类的文件系统进行管理。那么首先我们得看一下对于一个具体的文件系统,我们该关注重点在哪里。 对于存储设备(以硬盘为例)上的数据,可分为两部分: 用户数据:存储用户实际数据的部分; 管理数据:用于管理这些数据的部分,这部分我们通常叫它元数据(metadata)。 我们今天要讨论的就是......【阅读全文】
发布时间:2015-04-10 16:26:12
今天我们来认识一下superblock,inode,block,group,group descriptor,block bitmap,inode table这些家伙。为什么在上一篇博文开篇没详细介绍这些概念呢,因为任何关于文件系统的文章还是书籍一开始都是先说概念、说理论,让人一直有种雾里看花的感觉。纸上得来终觉浅,事必躬亲才印象深,所以我.........【阅读全文】