- A inode contains information like owner, permissions, updated time and something elese, but doesn’t include the path name(s) of the file.
owner group type(regular file, directory, pipe, ) permissions last accessed time last modified time inode last modified time file size disk address - The in-core copy of the inode contains some additional fields:
- the status of the in-core node
- the logical device number
- the inode number
- pointers to other in-core inodes. the in-core inodes are linked in the same way as the buffers.
- a reference count indicating the number of instances of the file.
- each disk node should have at most one in-core copy.
- the in-core copy node will be locked when the process is executing a system call. And the lock will be released at the conclusion of the system call. A inode is never locked across system calls.
- The reference count remains between system calls set to prevent kernel from reallocating an active in-core indoe.
- The system call open() will encrement/decrement the reference count; while other system calls will allocate/release indoes.
- If there’s no in-core inode in the free list, the kernel will return error instead of making the process asleep waiting for an inode. While the situation for buffer is different: since a buffer should not be locked across system calls, a buffer will be available after a system call.
- (direcotry 和 super block, mount, link 等需要再好好看~)
The Design of Unix Operating System (5) the internal presentation of file
最新推荐文章于 2024-09-20 22:35:41 发布