文件描述符表、文件结构表和文件节点(SylixOS 学习笔记-更新中)

文件描述符表、文件结构表和文件节点

  • 文件描述符表:每个进程都维护着自己的一个文件描述符表,每个文件描述符占其中一。该表记录进程打开的文件相关信息,因文件描述符为进程所有,文件描述符表也为进程内共享;文件表结构体内存在一个指针变量指向存放在内核空间的文件结构表
  • 文件结构表:内核为所有打开的文件维护一个文件结构表,记录保存了进程对文件读写的相关信息。对于一个文件来每个进程都各自拥有文件结构,是因为这可以使每个进程都有自己的对该文件的当前读写指针(文件操作偏移量),同时存在
    一个文件节点指针,指向文件节点结构体
  • 文件节点:每个打开的文件都有一个文件节点,对于一个给定的文件只有一个文件节点,用于记录文件相关的权限、用户等信息;

在SylixOS中,IO系统结构分为ORIG型和NEW_1型,ORIG模型使用文件描述符,文件结构表,设备头及底层驱动实现构成,NEW_1 型驱动结构在 ORIG 的基础上增加了文件节点,从而引入文件访问权限、文件用户信息、文件记录锁等内容,这里针对NEW_1型驱动展开。

IO系统相关描述:

  • 每一个文件描述符对应一个文件结构,不同的文件描述符可以对应同一个文件结构;当对应同一个文件结构的所有文件描述符被关闭时,操作系统会释放对应的文件结构,同时调用相应的驱动程序。
  • 不同的文件结构可以指向同一个逻辑设备,例如一个 FAT文件系统设备就可以被打开很多个文件结构。
  • 不同的逻辑设备也可以对应同一个驱动程序,例如物理结构相同的串口 0、串口 1 可以对应一组为其服务的驱动程序,每一组驱动程序具体服务的硬件设备则由底层 BSP 决定。
    在这里插入图片描述

NEW1型驱动

数据结构相关定义及描述:

文件描述符表结构体定义
文件结构g5hjkl’

文件节点结构体定义
设备头定义

  • 每个进程都维护着自己的一个文件描述符表,每个文件描述符占其中一项,与每个文件描述符相关联的是:
    • 指向文件结构的指针;
    • 文件引用计数;
    • 文件描述符标志(FD_CLOEXEC)。
  • 内核为所有打开的文件维护一个文件结构表,每一个文件结构表项包括(部分):
    • 设备头指针(这个指针指向设备节点);
    • 文件名;
    • 文件节点指针;
    • 文件属性标志(读、写等);
    • 文件当前指针(指示文件偏移)。
  • 每个打开的文件都有一个文件节点,文件节点包括(部分):
    • 设备描述符;
    • inode(同一个文件只有一个 inode);
    • 文件权限信息(可读、可写、可执行);
    • 文件用户信息;
    • 当前文件大小;
    • 文件记录锁指针。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值