我正在为我的操作系统中期学习,想知道是否可以得到一些帮助。
有人可以解释检查以及内核在 open() 系统调用期间做了什么吗?
谢谢!
很粗略的,你可以想到以下几个步骤:
这个描述对于打开普通文件和/或目录应该基本上是正确的,但是对于各种特殊文件,特别是对于设备来说,情况是不同的。
我会回到教授告诉你的内容——在 open() 期间会发生很多事情,这取决于你正在打开的内容(即设备、文件、目录),除非你写的是教授的内容因为,你会失去积分。
话虽如此,它主要涉及检查这个打开是否有效(即这个文件是否存在,用户是否有读/写权限等),然后分配内核句柄表中的一个条目来跟踪fd 及其当前文件位置(当然还有其他一些东西)