在Linux中,操作系统似乎知道它连接到哪种存储设备。例如。我看到 /dev/sda 代表 SSD 设备,/dev/mmcblk 代表 SD 卡。
我想知道操作系统如何知道插入了哪种设备?另外,允许其与这些设备交互的操作系统组件是什么?是设备驱动程序吗?我读到操作系统将所有设备呈现为一个文件。设备驱动程序是否提供了一个通用接口以允许此文件抽象?
答案1
你主要是对的。操作系统需要知道存储设备的类型,因为它与 SD 卡(可能是具有 MMC 协议的 CPU 上的专用 MMC 垫)的接口与 SSD(SATA?)或某些外部驱动器(USB)的接口完全不同。大容量储存?)。您有完全不同的设备驱动程序,通过不同的硬件总线与不同的协议进行通信。其实,不用想知道如何知道是哪种设备,而是想知道如何让那些完全不同的设备看起来都一样。