Yanyan's Wiki 操作系统 (2022)

本周阅读材料

教科书

教科书 Operating Systems: Three Easy Pieces:

  • 第 39 章 - Files and Directories

设备驱动程序

我们身边其实有许多设备驱动程序——AbstractMachine IOE 的实现本身也可以看作是驱动程序,它们把具体的设备抽象成了统一的接口。在此基础上,Lab2 的框架代码也对设备作出了封装。在课后再阅读这些代码,或许会有新的体验。

此外,我们也展示了 Linux 的一个 “虚拟字符设备”:launcher.c。在课堂上,它被编译成一个可以被动态加载的库,就像我们在 M4 - crepl 中那样,其中的函数能够在操作系统启动后被加载。

在驱动程序的基础上,我们构建了 “文件系统” 的世界,也是大家刚开始熟悉 Linux 和 C 语言编程时就广泛熟悉的概念,例如我们在 M1 - pstree 中就使用了文件系统 API 遍历 /proc 目录。逐渐的,我们有关操作系统实现的课程讲解开始和操作系统的设计 “连接起来”,使得同学们对操作系统有了更完整的理解。至少现在,你应该有一种强烈的感觉:在设备驱动的基础上,文件系统的实现和普通的 “业务逻辑” 并没有本质的区别。操作系统的神秘感已经不知不觉在减少了!

Creative Commons License    苏 ICP 备 2020049101 号