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