linux中有句经典名言,“一切皆文件”。这句经典名言可谓是对linux最恰当的介绍,同时也凸显了文件系统的重要性。要想学好linux操作系统,对文件系统有深入且正确的认识和理解是十分重要的。
首先什么是文件系统?我想这是大家首先想到的问题。先说文件,对于文件我们生活中会常常遇到,我们的学习资料可以视为文件、书籍也可以视为文件、电影也可以视为文件。我们物理的学习资料、书籍、电影(光盘)可以存放在书柜上,那么数字化的学习资料、书籍、电影存放在哪里?计算机中的硬盘就相当于一个巨大的书柜,我们的数字化文件可以放在硬盘上。刚才说了这么多都是在说单独的“文件”,那“文件系统”又是怎么回呢?
我们知道“系统”往往存在着机制,比如生态系统一定是遵循着其特定机制才能维持系统的正常。文件系统也是一样,如果把磁盘认为是图书馆中的书柜,文件认为是图书馆的藏书,那么文件系统就是用来管理这些藏书和书柜的机制(哪个书柜的哪一层存放哪一种类的图书,以及读者来借书如何快速找到书本的位置等),有了这些机制图书馆才能正常运行。
假设各位是图书馆的馆长,那我们应该如何来设计机制?图书馆的作用是什么,毫无疑问是提供书籍供读者借阅。这就类似于文件系统的设计要考虑到如何在茫茫书柜里找到读者想借阅的书籍。
首先我们要有关于图书馆藏书信息的数据,这些数据要包含藏书的关键信息(藏书类型、作者、在哪个区域存放等),在linux文件系统中这些包含藏书关键信息的数据叫做“元数据”。这里就引出了一个重要的概念“索引节点”,也就是inode。indode中储存了文件的元数据,包括文件类型、权限、所有者、所属组、文件大小、时间戳等。这些元数据描述了文件的属性和特征(关键信息)。
------------未完待续