问题标题问:为什么我们需要在Linux上安装?
解释此问题的一种方法:为什么我们需要发出明确的mount
命令才能使文件系统在Linux上可用?
答案:我们不会。
您不需要显式挂载文件系统,可以安排它自动完成,并且Linux发行版已经对大多数设备做到了这一点,就像Windows和Mac一样。
因此,这可能不是您要问的。
第二种解释:为什么有时我们需要发出明确的mount
命令来使文件系统在Linux上可用? 为什么不让操作系统始终为我们做它,并对用户隐藏它呢?
当您提出以下问题时,这是我正在问题文本中阅读的问题:
为什么不完全跳过安装,然后执行以下操作
ls /dev/cdrom
并列出了CD-ROM的内容吗?
想必,您的意思是:为什么不让该命令做什么?
ls /media/cdrom
现在呢?
那么,在那种情况下,/dev/cdrom
它将是目录树,而不是设备文件。因此,您真正的问题似乎是:为什么首先要有设备文件?
我想为已经给出的答案添加答案。
用户为什么能看到设备文件?
每当您使用CD-ROM或任何其他存储文件的设备时,都会使用一块软件来将CD-ROM上的内容解释为文件的目录树。每当您使用ls
或使用任何其他类型的命令或应用程序访问CD-ROM上的文件时,便会调用它。该软件是用于将文件写入CD-ROM的特定文件系统的文件系统驱动程序。每当您在文件系统上列出,读取或写入文件时,该软件的工作就是确保在相关设备上执行相应的低级读取和写入操作。每当您mount
使用文件系统时,您都在告诉系统该设备使用哪个文件系统驱动程序。是否使用mount
命令,或将其留给操作系统自动完成,这将需要完成,当然,文件系统驱动程序软件也必须首先存在。
文件系统驱动程序如何工作?答案:它是通过读取和写入设备文件来完成的。为什么?正如您已经说过的,答案是:Unix是按这种方式设计的。在Unix中,设备文件是设备的常见低层抽象。特定设备的真正特定于设备的软件(设备驱动程序)应该实现对设备的打开,关闭,读取和写入操作,作为对设备文件的操作。这样一来,高级软件(例如文件系统驱动程序)就不需要了解各个设备的内部工作情况。低级设备驱动程序和文件系统驱动程序可以由不同的人分别编写,只要他们同意彼此交互的通用方法即可,这就是设备文件的用途。
因此,文件系统驱动程序需要设备文件。
但是,为什么我们普通用户可以看到设备文件?答案是Unix是为操作系统程序员设计的。它旨在允许其用户编写设备驱动程序和文件系统驱动程序。实际上,这就是他们的写作方式。
对于Linux同样如此:您可以编写自己的文件系统驱动程序(或设备驱动程序),安装并使用它。它使Linux(或Unix的任何其他变体)易于扩展(这实际上是启动Linux的原因):当市场上有一些新的硬件出现,或者设计了一种新的,更智能的实现文件系统的方法时,某人可以编写代码来支持它,使其正常运行,并将其贡献给Linux。
设备文件使此操作更加容易。