首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设备驱动程序和文件系统之间的关系是什么?

设备驱动程序和文件系统之间的关系是什么?
EN

Stack Overflow用户
提问于 2021-04-08 14:43:29
回答 1查看 517关注 0票数 4

背景

你好。

我试图了解文件系统(ext2 2/3等)、设备驱动程序和设备文件之间的关系。

我会列出我对每个学期的理解,然后再提出我的问题。

设备驱动程序

据我所知,设备驱动程序将是处理I/O和访问某个设备(鼠标、闪存等)的逻辑的内核端代码,它需要实现几个功能(如打开、读取等),并在注册设备时将它们分配给某些函数指针。

设备文件

设备文件通常位于/dev中,通过分配给该文件的主值和次要值作为设备驱动程序的接口。

文件系统

我想我还不完全理解这个概念,文件系统应该处理I/O和对存储在驱动器上的文件的一般访问,但是这听起来像一个设备驱动程序,所以希望在这里提供更多的信息。

场景

例如,如果我要将/dev/sdb1 (我的备份ssd )挂载到某个挂载点,比如/mnt/temp - /dev/sdb1将是设备文件,而文件系统类型将是ext4。现在,当我从cd/mnt/temp并使用ls时,应该调用设备驱动程序实现的open方法。

我的要求/问题

  1. 我对设备驱动程序和文件的理解正确吗?如果不是的话,我会希望得到更多的细节。
  2. 在我讨论的场景中,如何调用适当的open函数?
  3. 如果设备驱动程序是实现访问的驱动程序,那么文件系统类型在文件访问中究竟扮演什么角色?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2021-04-09 15:20:43

这是一个很好的问题,但很有分量!:)

关于你的问题2,这是关于open是什么/做什么的一些信息。open是一个libc调用--它是POSIX系统必须实现的C函数。现在的每个发行版基本上都使用名为glibc (glibc实现)的libc发行版,但特别是在RAM或存储资源有限的嵌入式设备上,有时仍然会看到其他libc实现的使用人员。下面是是glibc open的手册。open的工作方式是尝试在给定的路径名下打开文件--它与文件系统对话。对于open来说,文件系统在底层存储层实现方式上的差异并不重要。那么,现在编写的问题2的措辞(“如何在我讨论的场景中调用适当的open函数?”)有点离题:每个文件系统只有一个open函数,而不是多个函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67006403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档