关于学习 Linux 系统结构的一些总结

如果大伙看到这个标题就觉得这篇文章会给出多么有深刻意义的见解,那我个人觉得您可以移步啦!首先我先澄清下:我写这篇文章目的,纯粹出于对Linux文件系统结构的一知半解,所以在深入了解学习后出现的一篇文章。

作为一名IT运维人员的我,在实际工作当中遇到Linux故障的情形还挺多的,可以经常接触到linux系统实际生产环境,由于工作的原因接触到Linux,然后,理所当然开始学习Linux(自学),静下心来慢慢的就进入那种忘我的状态,而且会激发你的求知欲的。现在回想起来整体感觉挺好的,学习一段时间后就会进入瓶颈期,那么就要寻求更快捷、更深入的解决思路—书籍、前辈及培训等。

一、历史背景

言归正传,在分享关于Linux系统结构的一些总结前,我想问下正在读这篇文章的你一个问题:你是不是对Linux的那么多的目录很费解,不明白为什么这样设计?是不是也在死记硬背Linux中不同目录的区别呢?举例来说:根目录下有一个子目录/bin,用于存放二进制程序,但是,/usr子目录下面有个/usr/bin,也用于存放二进制程序,那它们有什么区别呢?

其实,大家都知道,任何一个事情都有它背后的原因,Linux目录结构是由历史造成的,简单描述下通过故事形式加深理解。

话说当年它们用的盘只有可怜的1.5M,随着时间的延续,操作系统(也就是根目录)也会变得越来越大,直到第一块盘已经装不下了。于是,他们这时候只好增加第二块盘,并且指定第一块盘只能用于存放系统程序,而第二块盘只能用于存放用户自己的程序,目录名称/usr就是这么来的。也就是说,根目录--"/"挂载在第一块盘,用户程序---"/usr"目录挂载在第二块盘。除此之外,两块盘的目录结构完全相同,第一块盘的目录(/bin, /sbin, /lib, /tmp...)都在/usr目录下重新出现一次。渐渐地,第二块盘也满了,他们只好又加了第三块盘,挂载的目录点指定为/home,同时指定/usr目录用于存放用户的程序,/home目录用于存放用户的数据。

随着历史的车轮不断的进步,Linux目录结构就这么建立起来了。

二、虚拟文件系统(VFS

Linux操作系统是由Unix进化而来,所以它和 UNIX  操作系统一样,是将新的文件系统通过一个称为“挂载”的操作将其挂装到某个目录上,从而能够让不同的文件系统组合成为一个整体。

Linux  操作系统的一个重要特点就是它能够支持许多不同类型的文件系统。Linux能够支持Ext2、FAT、VFAT、FAT32、MINIX 等不同类型的文件系统,从而可以方便地和其它操作系统交换数据。Linux支持不同的文件系统的特性引出一个新的概念---虚拟文件系统. (VirtualFileSystem,VFS):

虚拟文件系统(VFS)是 Linux 内核中非常有用的一个层面,因为它在用户和文件系统之间提供了一个交换层:

三、文件结构目录

我们先了解文件结构和目录的概念:

文件结构是文件存放在磁盘等存储设备上的一种织方法,主要体现在对文件和目录的组织上。而目录则是提供了管理文件的一个方便而有效的途径。

目前我们接触到的Linux目录结构,在安装的时候,就已经为用户创建了文件系统和完整、固定的目录组成结构,并指定了每个目录的用途及文件类型。

完整的目录树的有 root、/usr、/var、/home  等。目前的布局大大便于在Linux 计算机之间共享文件系统。

从上图中就可以看出Linux采用的结构是树型的。最上层是根目录---“/”,其他的所有目录(比如/usr/var/bin/home等)都是从根目录-“/”出发而生成的。

/:存放系统程序,也就是开发的Unix或Linux程序。

/usr:存放Unix或Linux系统商(比如IBM和HP)开发的程序。

/usr/local:存放用户自己安装的程序。

/opt:在一些系统中,用于存放第三方厂商开发的程序,所以取名为option,翻译过来的意思为"选装"。

四、总结

了解以上三点非常有助于理解Linux的文件结构目录的,不过第二点---虚拟文件系统(VFS)确实比较抽象,不好理解,不过没关系没有人可以一口吃成胖子,慢慢来等到一定阶段时你会发现有些问题根本不用纠结,自然而然就会了。

在学习Linux文件系统结构过程中,经常泡在网上搜索相关资料,不经间发现有一本关于Linux的书籍叫《Linux就该这么学》着实不错,内容循序渐进,通俗易懂,贴近实战,有财力的同仁们还可以跟随书籍作者培训课程拿下红帽Redhat认证这块敲门砖,有助于职业发展的。

猜你喜欢

转载自blog.csdn.net/llawliet0001/article/details/110592230