几分钟了解,Linux和Windows系统目录区别

学习目标:

Linux和Windows系统目录区别

一、文件访问原理区别
在Windows系统中,一切东西都是存放在硬盘上的。启动系统后,先确定硬盘,再确定硬盘上的分区以及每个分区所对应文件系统,最后是存放在某个分区特定的文件系统中的文件。也就是说,Windows是通过 “某个硬盘-硬盘上的某个分区-分区上的特定文件系统-特定文件系统中的文件” 这样的顺序来访问到一个文件的。

但是与Windows不同, Linux 系统中的一切都是存放在唯一的虚拟文件系统中的,这个虚拟文件系统是树状的结构以一个根目录开始。启动系统后,有这个虚拟文件系统,再识别出各个硬盘,再把某个硬盘的某个分区挂载到这个虚拟文件系统的某个子树上(即分区用某个子目录来表示),再确定分区对应的子目录文件系统,最后的文件就存放在这个特定的文件系统中。也就是说,Linux 系统是通过 “虚拟文件系统-硬盘-硬盘上的分区-分区上的特定文件系统-特定文件系统中的文件” 这样的顺序来访问一个文件的。

可能对习惯了使用Windows的用户来说, Linux 的方式有些不适应,它的虚拟文件系统,实质就是一颗目录树,最开始的目录叫做根目录,根目录中又有每一级子目录,或者文件,子目录又有子子目录和文件,其中每个子目录都特定的功能这个功能。

另外还要注意,就是在我们用户的角度上,无论在Windows还是 Linux 上面,都是使用路径来访问一个文件的。表示文件的路径由 “文件所在的目录+各级目录的分隔符+文件” 三个部分组成,这个策略在两者之间是一样的,所不同的是,Windows下面目录分隔符是 \ , Linux 下面是 / 。

二、系统组织区别
在Windows系统中,我们可以把文件大体分为两种: 系统文件和用户文件 。一般来说系统文件(例如Windows操作系统本身,一些系统程序,程序运行所需的库文件,以及一些系统配置文件等)存放的默认位置在 C 盘,当然也可以在安装时候指定在其他盘;其它用户文件,包含用户后来安装的程序以及一些数据文件等,用户可以把它们随意存放在任意的分区。

在 Linux 系统中,主要有两个概念:虚拟文件系统中的文件和 Linux操作系统内核本身。逻辑上可以认为前者属于上层,后者在下层,前者基于后者,后者依赖前者而存在。Linux 把除了它本身(Linux操作系统内核)以外的一切事物都看作是在虚拟文件系统中的文件了。无论是键盘,鼠标,数据,程序,CPU,内存,网卡……无论是硬件、软件、数据还是内存中的东西,我们都可以在虚拟文件系统中的相应子目录对他们进行访问和操作,操作统一。而实现这些管理的幕后就是 Linux操作系统内核本身:启动 Linux 系统的时候,首先电脑把 Linux操作系统内核加载到内存中,内核本身提供了文件管理,设备管理,内存管理,CPU进程调度管理,网络管理等功能,等内核运行起来之后,就在内存中建立起相应的虚拟文件系统,最后就是内核利用它提供的那些功能,通过管理文件的方式,来管理虚拟文件系统中的硬件软件等各种资源了。

Linux 把提供操作系统本身功能(管理计算机软硬件资源)的那些部分划给了 Linux操作系统内核,使得Linux操作系统内核成为一个独立的部分,有它自己独立的开源代码;而其它的一切(软件应用,硬件驱动,数据)都根据其特性有自己的开源代码、或者自由地组织并且存放在那个虚拟文件系统中由 Linux操作系统内核来管理。这样,将系统本身和系统所管理的资源分开,并开放源代码,有助于对系统或者系统所管理的资源进行灵活的定制和扩展,还能按需快速建立起只适合自己使用的操作系统,也利于操作系统本身的发展。

下面用直观的例子,来说明两者的不同,以加深理解。假设我们的机器上面有一个硬盘,硬盘分为三个区。

在Windows系统中,我们启动系统之后就会看到 C, D, E盘符,它们分别对应硬盘上的三个分区,增加硬盘,或者分区,会导致盘符的增加(注意由于历史原因, A, B 用于表示软驱,硬盘分区盘符从C开始按字母递增),这里的每个分区都各自可以被格式化为不同的文件系统(这里的文件系统,包括例如 NTFS 格式, FAT32 格式等),文件系统的基本功能就是为了存放文件的,不同文件系统区别一般在于管理其中存放的文件的功能的强弱,所以分区被格式化成指定格式的文件系统之后,就可以存放任何文件和目录了,我们看到的 C, D, E 内容也就对应了硬盘中相应分区的数据内容。

⭐与Windows中把硬盘分区看成 C, D, E 盘符不同,Linux 中最开始根本就没有硬盘的概念,就只有一个纯粹的虚拟文件系统。如果想要使用哪个硬盘的某个分区,就把那个分区 “挂载” 到某个子目录之下,这样硬盘中的分区,文件系统,目录等内容就呈现到了那个子目录里面。也就是说,在 Linux 中,我们使用硬盘中的数据,实际是先把硬盘的某个分区 “挂载” 到某个子目录下,然后通过那个子目录来访问的。这个例子中,通常硬盘会对应虚拟文件系统中的/dev/sda (如有多个硬盘,则为 /dev/sda,/dev/sdb, ……,按字母递增), 其三个分区对应 /dev/sda1,/dev/sda2,/dev/sda3 (多个分区按数字递增,不同硬盘的分区,对应为 /dev/sdb1, /dev/sdb2 等等), 默认硬盘各个分区会被挂载到虚拟文件系统系统中类似 /mnt/sda1/,/mnt/sda2/, /mnt/sda3/ 的目录(在 Linux 又叫挂载点)中,在/etc/fstab 文件中,我们可以找到分区文件和挂载点的对应关系描述。这样,硬盘相应的分区就做为整个虚拟文件系统根目录下的一颗子树,反映到了子目录(挂载点)上,子目录中的内容就对应分区中的数据。

假设访问上述硬盘第三个分区 dir1 目录中的文件 test.file

Window系统上的路径:E:\dir1\test.file

Linux系统上的路径:/mnt/sda3/dir1/test.file

三、Linux系统目录和Windows系统目录的优缺点
(一)Windows系统目录的优缺点
1.Windows系统优点

优点主要是用户存放东西的位置比较自由,系统结构简单便于新用户上手。

2.Windows系统缺点

(1)目录组织缺乏标准

由于对“系统文件”和“用户文件”存放位置缺乏细致的规定,数据组织的方式显得比较凌乱,并且两种文件之间很容易相互干扰(例如数据文件可能存放在系统区域给系统带来垃圾文件等)。

(2)用户的使用经验对系统的使用效率影响很大

一般来说,我们使用Windows时候合理使用分区会提升的系统效率。例如根据需要设置合理的系统分区(假设为C分区),尽量少往 C 盘存放数据文件,根据具体情况可以将一些 “重要并且常用的” 程序安装在 C 分区,随时保持系统目录的清洁和大小助于提升系统的运行速度,用户安装的一般软件尽量不要安装在 C 盘,安装软件时候指定的位置最好采用默认标准目录名称(例如 X:\ProgramFiles 目录,这里 X 表示盘符而不要自己定义一些奇怪名字的目录,这样便于软件的维护等等。

(3)共享不便

Windows上有经验的用户们会将自己的目录结构组织好,但是每个用户组织自己内容的方式是不一样的,所以他的机器上哪里存放了什么内容,别人很难知道,为共享带来了麻烦。

(二)Linux系统目录的优缺点
1.Linux 系统优点

(1)目录结构反映系统运行机理

当我们了解了这些目录的功能之后,我们对整个 Linux 操作系统的运行机理也会有一个大致的了解。

(2)结构清晰避免逻辑混乱

这样的目录结构,有助于我们以一种高效的方式组织自己的数据,分类清晰并且不会对系统运行有任何影响,规定了最开始每个目录的功能,并没有限制我们的自由,因为我们知道我们可以在哪里创建自己的子目录并且在子目录中任意创建自己的文件。

(3)组织规范便于共享

由于目录具有统一的组织结构,所以 Linux 上面的用户在共享数据的时候,能够很容易地猜测出他所需要的数据大致存放在什么位置,同时也不会影响到私有数据的保密性,毕竟具体来说,怎么存放自己的私有数据,那是用户自己决定的。

2.Linux 系统缺点

最开始虚拟文件系统中的每个子目录的功能是事先规定好了的,我们需要事先知道那些目录存放哪些文件,然后在相应的位置中创建自己的内容,这也是 Linux 系统入门门槛高的一个原因。当然,最开始的新手,也完全可以无视这一点,可以像Windows那样随意地创建目录和文件(尽管不推荐这么做)。

实际上最开始的目录也不多,主要就那么几个,花不了多长时间就会明白它们的作用的,而明白这些作用之后带来的好处,远不止付出那么多。


你可能感兴趣的:(linux,操作系统)