gpt4 book ai didi

linux - USB 存储驱动程序在 Linux 中如何工作?

转载 作者:IT王子 更新时间:2023-10-29 00:13:19 25 4
gpt4 key购买 nike

我正在尝试找出有关 USB 存储驱动程序如何在 Linux 中工作的高级概述。我正在寻找一篇简单的文章,甚至是描述其工作原理的图片/流程图。

基本上,我希望得到这些问题的答案:

当您将设备插入计算机时,会发生什么?是否有守护进程接收它,或者事件是否在某处触发中断?在将控制权移交给 USB 存储驱动程序之前,核心 USB 驱动程序是否会读取有关设备的信息?它如何决定它是什么类型的设备?设备是如何安装的,什么允许它与计算机的文件系统通信?当我复制文件时,内核中的数据流是什么样的?

我希望这个问题不是太含糊——我用谷歌搜索都无济于事,所以我想知道是否有人知道任何可以解释这个问题的文章或图表,或者他们是否可以自己解释而不费太多力气。谢谢。

最佳答案

不,这是一个很好的问题。

block 写入在 linux 中与 block 设备层一起进行。文件系统正在使用这个 block 开发层。

如果这一层想要写出一些东西,就把它说给usb master设备的驱动程序。此驱动程序正在与主板的 USB Controller 芯片通信。

这个芯片很简单:usb实际上是一个串口,有很多扩展,主要针对自动配置和电源管理。但基本上,您可以写出字节,然后按字节读取。

您的问题:

当您将设备插入计算机时,会发生什么?是否有守护进程接收它,或者该事件是否在某处触发了中断?

设备(USB 从机)说主机(在主板中):“我在这里”。 USB Controller 芯片获取消息并通过中断将其告知内核(通常)。内核重新​​初始化并重新扫描 usb 总线,并说 udev:“这是 usb 树 1.3.5 上的一个新的 1234:5678 usb 设备”

“它如何决定它是什么类型的设备?”

USB 设备有一个供应商和型号 ID,他们可以在询问时说出来。谷歌搜索“usb id”。

“设备如何安装,什么允许它与计算机的文件系统通信?”

内核只加载驱动程序并说 udev(在用户空间中):“这是设备号 22:16 上的新 block 设备”。由此,udev 尝试使用一些用户空间守护进程安装它,它已经依赖于分布。

关于linux - USB 存储驱动程序在 Linux 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20384784/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com