我了解Linux中的安装方式,也了解设备文件。但是我不明白为什么我们需要挂载。
例如,如下面的问题的公认答案中所述,使用以下命令:
mount /dev/cdrom /media/cdrom
我们将CDROM设备安装到该设备,/media/cdrom
并最终能够使用以下命令访问CDROM的文件
ls /media/cdrom
它将列出CDROM的内容。
为什么不完全跳过安装,然后执行以下操作?
ls /dev/cdrom
并列出CDROM的内容。我希望答案是:“这就是Linux的设计方式”。但是如果是这样,那为什么要这样设计呢?为什么不/dev/cdrom
直接访问目录?安装的真正目的是什么?
原因之一是块级别的访问级别比ls
可以使用的级别低。/dev/cdrom
,或者分别dev/sda1
是您的CD ROM驱动器和硬盘的分区1,但是它们没有实现ISO 9660 / ext4,它们只是指向那些称为Device Files的设备的RAW指针。
mount决定的事情之一是如何使用原始访问-哪些文件系统逻辑/驱动程序/内核模块将管理读/写,或转换ls /mnt/cdrom
为需要读取的块,以及如何解释那些块的内容会陷入诸如此类的事情file.txt
。
在其他时候,这种低级别的访问可能就足够了。我刚刚读取并写入了串行端口,USB设备,tty终端和其他相对简单的设备。我绝不会尝试手动从/ dev / sda1读/写来编辑文本文件,因为我基本上必须重新实现ext4逻辑,其中可能包括:查找文件inode,查找存储块,读取完整的块,进行更改,写入完整的块,然后更新inode(也许),或者全部写入日志-太难了。
亲自查看此内容的一种方法就是尝试一下:
[root@ArchHP dev]# cd /dev/sda1
bash: cd: /dev/sda1: Not a directory
/dev
是一个目录,您可以cd
并且ls
喜欢。/dev/sda1
不是目录;这是一种特殊的文件类型,内核将其作为该设备的“句柄”提供给文件。
请参阅设备文件上的Wikipedia条目,以进行更深入的处理。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句