SylixOS中ROOTFS介绍

  1. ROOTFS简介 ROOTFS(根文件系统)是一种特殊的文件系统,根文件系统是内核启动时挂载的第一个文件系统,因此根文件系统包括了SylixOS启动时所必须的目录和关键性的文件,例如内核启动时所必需的etc目录,以及系统命令bin目录等,任何包括这些SylixOS启动所必须的文件都可以成为根文件系统。 SylixOS的ROOTFS属于虚拟类型的根文件系统,因为此文件系统并不存在于具体的物理磁盘中,而是系统启动后动态创建的,并将此系统保存于内存中。

  2. 根目录文件系统映射配置参数 系统内核启动参数函数API_KernelStartParam中提供根文件系统映射关系选项rfsmap,参数用逗号隔开,其中"/boot"、"/etc"、"/tmp"、"/apps"等为可选映射,"/"为必须映射。 例如"/boot:/media/hdd0"表示将"/boot"目录映射到"/media/hdd0";"/apps:/media/hdd2"表示将"/apps"目录映射到"/media/hdd2";"/:/media/hdd1"表示将根目录整体映射到"/media/hdd1";"/:/dev/ram"表示将根目录整体映射到ramfs中。注意"/dev/ram"类型只能使用在"/:"映射中。 根据根文件系统映射关系选项rfsmap传入的配置参数,调用API_RootFsMapInit函数进行初始化操作,保存配置参数到全局变量_G_rfsmapRoot和_G_rfsmapSubp中。

  3. ROOTFS驱动实现分析 SylixOS中ROOTFS相关API接口代码位于/libsylixos/SylixOS/fs/rootfs目录下。 3.1 rootFsDrv函数安装驱动
    宏rootFsDrv所定义的函数API_RootFsDrvInstall实现安装ROOTFS文件系统驱动。此函数创建字符设备驱动,提供创建、释放、打开、关闭、读、写、状态获取、ioctl、符号链接等函数接口。

    1. __rootFsOpen函数 ROOTFS文件节点打开或创建函数。根据不同输入的标志参数,新建文件或者增加文件的引用计数,同时支持符号链接。
    2. __rootFsRemove函数 ROOTFS文件节点删除函数。
    3. __rootFsClose函数 ROOTFS文件节点关闭函数。
    4. __rootFsRead函数 ROOTFS不支持读操作。
    5. __rootFsWrite函数 ROOTFS不支持写操作。
    6. __rootFsLStatGet函数 ROOTFS文件状态及属性获得函数。
    7. __rootFsIoctl函数 ROOTFS文件节点ioctl操作函数。包括获取文件状态、获取文件系统状态、获取一个目录信息、将文件缓存回写、改变文件访问权限、获取文件系统类型等功能。
    8. __rootFsSymlink函数 ROOTFS符号链接创建函数。
    9. __rootFsReadlink函数 ROOTFS链接文件读取函数。

3.2 rootFsDevCreate函数创建设备 宏rootFsDevCreate所定义的函数API_RootFsDevCreate实现创建ROOTFS文件系统设备。ROOTFS文件系统设备挂载目录地址为根目录"/"。 根设备创建完成之后,SylixOS内核会创建"/dev"、"/dev/pty"、"/dev/pipe"、"/dev/input"、"/dev/blk"、"/mnt"、"/media"等目录。

  1. 根目录文件系统映射实现

根目录文件系统映射函数API_RootFsMap实现其他目录结构的映射操作。根据全局变量_G_rfsmapSubp中保存的根目录文件系统映射配置参数,调用symlink函数分别对"/var"、"/usr"、"/tmp"、"/sbin"、"/root"、"/qt"、"/lib"、"/home"、"/etc"、"/boot"、"/bin"、"/apps"目录创建符号链接。

转载于:https://my.oschina.net/u/3432766/blog/1934413

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值