File system学习(二)

File system(二)

基于linux v0.11内核

文件类型与属性

在shell下输入ls -l命令,出现的第一个字符即为文件类型,其中各类型表示如下:
- ‘-’正规文件
- ‘d’目录名      也是一种文件
- ‘s’符号连接
- ‘p’命名管道
- ‘c’字符设备文件  如:tty终端
- ‘b’块设备文件   如:/dev目录下的

符号连接不影响被连接的文件,硬连接与被连接的文件地位相同,被当做一般文件对待

例如:-rwxr-xr-x 1 ftpadm ftp 479 10月 26 17:28 README
文件类型后的每三位表示用户权限、组权限、他人权限。(read、write、execute)
权限后紧跟链接计数,此处为1。(硬连接,为0时该文件被删除)
ftpadm为用户名。
ftp为组名。
479表示文件大小
紧接着是最后修改的时间
最后为文件名

linux内核中,文件类型信息保存在inode的i_mode字段中,使用高4bit位来表示,并使用了文件类型宏,如S_ISBLK 、 S_ISDIR 等(定义在include/sys/stat.h)

高速缓冲区

代码在buffer.c中

File system低层函数

1. bitmap.c
  包含了对inode bitmap和logic block bitmap的置位操作的函数。
  操作inode bitmap:free_inode()、new_inode()
  操作logic block bitmap:free_block()、new_block()。
2. inode.c
  inode分配函数iget(),放对内存inode存取函数iput(),根据 i 节点信息取文
  件数据块在设备上对应的逻辑块号函数 bmap()。
3. namei.c
  主要包括函数 namei()。该函数使用iget()、iput()和bmap()
  将给定的文件路径名映射到其 i 节点。
4. super.c
  专门用于处理文件系统超级块,包括函数get_super()、put_super()和free_super()等。

文件和目录管理系统

open.c 文件用于实现与文件操作相关的系统调用。主要有文件的创建、打开和关闭,
文件宿主和属性的修改、文件访问权限的修改、
文件操作时间的修改和系统文件系统 root 的变动等。
发布了24 篇原创文章 · 获赞 0 · 访问量 1009

猜你喜欢

转载自blog.csdn.net/deltapluskai/article/details/79600328