xv6文件系統(tǒng)3,end(inode之上,以及exec)
一層directory抽象:
1、file并不知道自己的name或者path,這些信息都儲存在directory里面;
2、dir是一個特殊的file,里面有通向其他file或dir的數(shù)組inum,這些dir entry被抽象為結(jié)構(gòu)體,結(jié)構(gòu)體中有他們的字符串名稱name,以及他們的inumber;
3、這層提供了一些路徑處理的接口,基本就是string操作,不多贅述
————————
在往上,是path抽象,基本就是對dir層的有一層封裝,也不多說(可以用于查找path對應的inode【文件查找的本質(zhì)】)
——————————
最后是file抽象。file提供的基本抽象也就是write、read兩種權限?!局档米⒁獾氖菦]有exec文件。不過作為簡易系統(tǒng),無傷大雅?!?/p>
write file和read file底層都是inode的接口+log的接口:begin_op+writei+end_op完成
————————
最后回顧一下之前的進程部分重要的一個接口—— exec()
exec涉及到文件加載入內(nèi)存。這里【并沒有區(qū)分file是否可以exec,因為xv6并沒有儲存文件類型?】此處用的仍然是inode+log兩層的接口。
然后進行的就是老生常談的 舊頁表清理+新頁表映射的進程初始化工作了。
標簽: