我对操作系统感兴趣。所以我正在阅读 xv6 这本书来了解操作系统。这是我关于这个主题的第一本书。我读了一行我无法理解的内容。
在内部,xv6 内核使用文件描述符作为每个进程表的索引,以便每个进程都有一个从零开始的文件描述符的私有空间。
我认为文件描述符代表可以写入或读取的数据流。它如何与进程表联系起来?文件描述符表不是进程内存的一部分,代表其打开的文件资源吗?
提前致谢!
答案1
你的理解是正确的。文件描述符表是单个进程内存的一部分(当然,该表的索引可供进程使用,而表本身是一个内核结构,不能从用户空间进程直接访问;但是该表或该表的一部分)表,但仍然特定于该过程)。
文中也是这么说的:
[...]使用文件描述符作为索引每个进程桌子 [...]
这是“使用文件描述符作为特定于每个进程的表的索引”的另一种说法。