Skip to content

Commit

Permalink
update ch6:sec3
Browse files Browse the repository at this point in the history
  • Loading branch information
chyyuu committed Jul 19, 2022
1 parent d12053e commit 8ca8349
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions source/chapter6/3using-easy-fs-in-kernel.rst
Original file line number Diff line number Diff line change
Expand Up @@ -335,10 +335,10 @@ K210 真实硬件平台
一个进程可以访问的多个文件,所以在操作系统中需要有一个管理进程访问的多个文件的结构,这就是 **文件描述符表** (File Descriptor Table) ,其中的每个 **文件描述符** (File Descriptor) 代表了一个特定读写属性的I/O资源。

为简化操作系统设计实现,可以让每个进程都带有一个线性的 **文件描述符表** ,记录该进程请求内核打开并读写的那些文件集合。而 **文件描述符** (File Descriptor) 则是一个非负整数,表示文件描述符表中一个打开的 **文件描述符** 所处的位置(可理解为数组下标)。进程通过文件描述符,可以在自身的文件描述符表中找到对应的文件记录信息,从而也就找到了对应的文件,并对文件进行读写。当打开( ``open`` )或创建( ``create`` ) 一个文件的时候,如果顺利,内核会返回给应用刚刚打开或创建的文件对应的文件描述符;而当应用想关闭( ``close`` )一个文件的时候,也需要向内核提供对应的文件描述符,以完成对应文件相关资源的回收操作。
为简化操作系统设计实现,可以让每个进程都带有一个线性的 **文件描述符表** ,记录该进程请求内核打开并读写的那些文件集合。而 **文件描述符** (File Descriptor) 则是一个非负整数,表示文件描述符表中一个打开的 **文件描述符** 所处的位置(可理解为数组下标)。进程通过文件描述符,可以在自身的文件描述符表中找到对应的文件记录信息,从而也就找到了对应的文件,并对文件进行读写。当打开( ``open`` )或创建( ``create`` ) 一个文件的时候,一般情况下内核会返回给应用刚刚打开或创建的文件对应的文件描述符;而当应用想关闭( ``close`` )一个文件的时候,也需要向内核提供对应的文件描述符,以完成对应文件相关资源的回收操作。


因为 ``OSInode`` 也是要一种要放到进程文件描述符表中,并通过 ``sys_read/write`` 系统调用进行读写的文件,因此我们也需要为它实现 ``File`` Trait :
因为 ``OSInode`` 也是一种要放到进程文件描述符表中文件,并可通过 ``sys_read/write`` 系统调用进行读写操作,因此我们也需要为它实现 ``File`` Trait :

.. code-block:: rust
Expand Down

0 comments on commit 8ca8349

Please sign in to comment.