2.Lab-9 file system
1. Large files (moderate)
xv6中,一个block大小为1024b,块编号需要4b表示,所以一个块最多容纳256个块编号。
当前 xv6 单个文件最多有12个直接块和一个间接块,一个间接块最多放置256个块,一共268个块。
目标:单个文件增大到65803个块,即需要增加一个二重间接块,修改后的inode结构就是:
- 11个直接块
- 1个一重间接块:256块
- 1个二重间接块:256*256 = 65536
一共就是11 + 256 + 65536 = 65803
代码地址
https://github.com/INnoVationv2/xv6-labs-2023/commit/f64c557e03eaffe3234e7fbf90bbac47fd057133
2. Symbolic links (moderate)
普通的link链接,就是两个文件指向同一个inode,需要增加inode的nlink
符号链接,就是指向目标文件,不增加nlink,目标inode不需要真实存在,只在打开时才需确认文件是否存在,类似于快捷方式。
代码地址
https://github.com/INnoVationv2/xv6-labs-2023/commit/b84e9547d1c9f8b48af6a3b24ef73be9a8addae0