首页 > 知识库 > 正文

RFS是什么技术 RFS怎么样

Root File System (RFS)根文件系统也是一种“文件系统”,可以认为是一种“特殊的”“文件系统”,为什么是叫“特殊的”呢?因为这种“根文件系统”承载着某些“特殊的功能”(其实“文件系统”相同的话,所具备的功能是一样的),那就是“操作系统”可能需要通过某种“布局”来管理相关设备的,诸如软盘设备、硬盘设备、虚拟磁盘设备等等,这里可能就是用了一种已被定义好了“数据结构”的“布局”,即“文件系统”,而出现的“根文件系统”,可能是用来担当主要或重要角色。基本信息 中文名:RFS

简介

文件系统:File System => FS;

根文件系统:Root File System => RFS。

根文件系统也是一种“文件系统”,可以认为是一种“特殊的”“文件系统”,为什么是叫“特殊的”呢?是因为这种“根”“文件系统”承载着某些“特殊的功能”(其实“文件系统”相同的话,所具备的功能都是一样的),那就是“操作系统”可能需要通过某种“布局”来管理相关设备的,诸如软盘设备、硬盘设备、虚拟磁盘设备等等,这里可能就是用了一种已被定义好了“数据结构”的“布局”,即“文件系统”,而出现的“根文件系统”呢可能是用来担当主要或重要角色。

Windows下的C盘分区是有一定文件系统的,如FAT32、NTFS,这当然也都是文件系统呀。在安装Windows操作系统时,会要求你先“格式化”C盘[当然我们目前考虑操作系统是被安装在C盘中],采用一种“文件系统”比如NTFS、FAT32等,这一步呀,就类似于安装“根文件系统”,也就是说在C盘中的NTFS文件系统会被称作是“根文件系统”,而在D盘等中的NTFS文件系统会被称作是“文件系统”或你想加上前缀名称也不是不可以,比如“普通文件系统”,而我们从名称上来说的话,因为这里出现了一个字眼“根”,所以我们就有两种名称的叫法了,自然就是FS与RFS,所以这种名称叫法就会让人感觉很是“云里雾里”,而后“不知所云”的],这个“格式化”过程就是将C盘上的存储空间呀按预先定义好的一种FS的“数据结构”去“初始化”这些磁盘,[这里假设MINIX FS也可被Windows用来“格式化”C盘呀]比如建立引导块、建立超级块、建立两类位图块、建立i节点位图块、建立好数据区块等)也就是说,这个磁盘分区必须已经按一定数据结构的方式把磁盘空间“组织”好,以便“某种系统”(OS或FS,好象是FS更准确吧)能“访问”该分区,所以在 0.11内核中会有两种区分:mount_root() 和 sys_mount(),分别指“挂载根文件系统”、“挂载文件系统”[这里我觉得不应该用一个词:安装!

我所理解的意思是,“安装”就是指把某种东西“放”到另一种东西上面去,比如你要安装某种软件到C盘,这种软件的安装程序可能在D盘,这时你会启动D盘上该软件的安装程序,然后安装程序就会把软件默认安装到C盘上,所以这个过程会叫做“安装”,安装前C盘上没有该软件的任何信息,安装后C盘上就会有该软件的信息啦],所以呢,要使用sys_mount()功能,某种设备(具体来说就是某一分区)必须已经被某种FS的格式“安装”好,然后该设备才会被“挂载”(mount)到“一个地方”去。

分析MINIX FS和FAT FS

在0.11内核代码中,从mount_root(void)中的注释可知,该函数会被“系统调用函数”sys_setup()调用,而在系统开机初始化设置时函数sys_setup()会被调用。为什么不会调用sys_mount()呢?那我们又何时使用sys_mount()函数呢?其实sys_mount()函数也是“系统调用函数”。我们在linux系统中,当你在某个shell的命令行中输入mount后回车,你会看到以下提示信息:mount: usage: mount dev dir你大概应该清楚了,而这是“正确的提示信息”,因为我们用错mount用法了(另外,在/bin目录下,可以看到有mount这样一个文件,mount应该就是一个单独的程序了吧:-),好多地方都说mount是shell内部命令,而我更可能会认为cd才是shell的内部命令之一)。

那我们从sys_mount()函数的注释中可以知道,该函数是“安装文件系统调用函数”(我个人觉得这句话不太好理解),而我知道函数的功能,所以我会这么理解:这个函数是一“系统调用函数”,其功能是“将一个‘文件系统’即FS‘挂载’到(现有‘根文件系统’即RFS的)一个“目录”上,即目录文件的i节点。所以呢,这个就与“mount dev dir”这样的提示信息对应起来了;另外,我们需要知道,dev表示的是某个设备上的一个分区,而dir表示的是某一个“现有的”文件系统中的“目录文件”,注意一定是“现有的”,在这里就是我们说的“根文件系统”,所以,你要使用mount功能,就得有以下条件:

在一个现有“文件系统”(根文件系统RFS)下面

该RFS中已经有了一些设备文件的存在,比如 /dev 下面的 hd0,hd1,等等

2中的/dev其实就是由RFS来管理的

还需要有一个目录存在,而该目录也是在该RFS中的即由RFS来管理的

当然你要有实际的磁盘设备存在(/dev/hd0只是表示一个“虚”的设备文件名而已)且该设备已被“FS”格式化好了

最后你就会用mount dev dir这样的方式,将实际的磁盘分区“挂载”到dir中

假如,你有一个硬盘(假设大小是512MB),就只是一个分区,该分区中的FS是 FAT FS(假设unix可以直接访问,大不了看成是与minix fs是一样的,只是名称不同而已,以下就是把它看成就是一个minix fs来分析的)。

所以当你启动了“0.11系统”(这个说法比较简化,意思就是你进入了sh命令行)后,其实RFS就已经被“自动”“挂载”好了(就是mount_root()),这时,你需要在该“0.11系统”中访问那个硬盘,假设硬件上你已经安装好了硬盘了,然后你会在sh命令行中进行“安装”过程了,假如是:

mount /dev/hd0 /mnt/fatc

即将第一个硬盘的第一个分区(目前只有一个分区)“挂载”到“RFS”中的根目录下的mnt目录中的fatc目录上。所以,你可以直接“进入”到 fatc 目录中去访问该硬盘里的文件了。

因为你了解内核代码,所以你应该知道mount一系列过程的,你要知道以下几点:

/dev/hd0, /mnt/fatc都是RFS中的“文件”(统称),前者是设备文件,后者是目录文件。

[体现在i节点结构中,就是各自的inode->i_mode中会区分是“设备类型文件”还是“目录类型文件”,且前者的inode->zone[0]存有该设备的设备号(还有inode->i_dev也是设备号,但实际含义不一样),后者的inode->i_mount就被置位啦,注意因为这个i节点就是一个“被‘安装’/‘挂载’好了FS的i节点。/ 这是目录,但这个是RFS的目录,且是根目录   。

/mnt/fatc “相当于”就是那个硬盘分区中FS的根目录。但其实该硬盘中的根目录也是/。

[假设当你去访问那个分区“根”目录(其实也是/,但你能直接进去吗?)中的某个文件hello.c,时,你会在现有sh命令行中,cd /mnt/fatc回车后 ls hello* -l,然后你会发现有hello.c这个文件,其实你就应该需要知道RFS是怎么“定位”寻找到该hello.c文件的,当中有一个重要的过程就是需要取每一个文件的inode信息即iget()函数,该函数中发现某文件的inode->i_mount被置位时,就“特别小心”了,为什么?因为该inode表示被“挂载”了一个文件系统,所以RFS会“切换”到那个FS的根目录中去(使用了ROOT_INO,super_block[i].s_dev这样的参数),然后再在该FS中按正常的过程继续寻找所需要的文件,所以你能找到]“正常的过程”就是指:要么从一个FS的根目录中开始查找文件,要不从一个文件系统当前用户进程的当前工作目录中开始查找文件。所以就有一个重要的说法(我是这么理解的):跨文件系统访问文件。这一过程涉及面较广,主要数据结构有:i节点、超级块。

最后,当你不需要使用该分区或是你想把硬盘拿走,则你会使用 umount 功能啦,这就对应 sys_umount()这一“系统调用函数”,那你就要知道该函数做了些什么事了。

总结

mount_root()挂载了一个MINIX FS又被称为是RFS。

然后你可以在该RFS中再挂载别的FS。RFS与系统“共存亡”,自动被“挂载”,自动被“卸载”。

所以,FAT等也可以是根文件系统,当然也是文件系统。

所以,当你在你电脑上安装了多操作系统时,假设在C盘(FAT32 FS)被装了 win98,在D盘(NTFS FS)被安装了winxp,那么,当你进入了win98时,你FAT32好象就是RFS,那么NTFS就是FS了;当你进入了winxp时,NTFS好象就是RFS,那么FAT32就是FS了。

声明:本网内容收集自互联网,旨在传播知识仅供参考,不代表本网赞同其观点,文字及图片版权归原网站所有。

更多精彩内容推荐:

补肾最有效的方法是什么?

补肾最有效的方法是什么?健康苦行僧,开讲啦!肾脏是身体的本钱,生命之源。如果肾脏出现问题,就会引起身体的很多问题,会让人早衰,日常生活也会受到非常严重的影响。那么日常生活中我们怎么做才能帮助补肾壮阳,合理养肾呢?一:养肾的食物补肾养肾的食物有很多,比如韭菜,秋葵,甲鱼,鳝鱼,山药...

山东为什么不发展滨州?

我是冰哥聊史论古今,我来回答。我是山东人,老家不是滨州的,但是去滨州出过几次差,和滨州的朋友也聊过当地的经济,所以对这个问题算是有点发言权。以下是我梳理的关于滨州未发展的一些原因,对其他地区可能也有借鉴意义。先通过经济数据来了解滨州整体的经济形势。2018年的山东省GDP排名中,...

你身边闷声发大财的人都是做什么生意的?

身边一个人,做建材石膏板,一张板也就一两块钱的利润,四年时间,几百万的别墅,门面买了一排,跟着干活的亲戚都发财了...

贵阳白云区今后的发展将会如何?

贵阳的白云区就像一句不恰当的俗话"媳妇熬成婆”的感觉,几个区当中小河被花溪并了,乌当区虽一直在贵阳市的核心区域中,但总是不温不火,之前的白云区,花溪区,小河区因交通问题,距老城中心都比较远,所以都有进城去的说法。但白云区在几个区当中发展可以说是最差的一个。随着金阳新区的成立,市政...

每天吃一片阿司匹林有什么益处和风险?

对于心脑血管疾病的朋友来说,阿司匹林并不陌生,我们大多数人都长期服用阿司匹林,可是我们真的了解阿司匹林吗?每天一片阿司匹林,到底有什么好处和风险?我们常说的阿司匹林一天一片是只100mg的阿司匹林,因为阿司匹林剂量不同效果不一样,比如大剂量阿司匹林是用来解热镇痛的,当然不能一天一...

南阳南部规划多远?

感谢邀请,从目前南阳的规划来看,南阳发展还是非常有侧重点的,向南也是规划到宁西铁路和二广高速交叉点一带。从2017年到2020年的用地规划来看,南阳向南部重点发展的是白河到沪陕高速、二广高速之间的区域,这片区域也将对村庄进行安置,进行产业化发展,只有一小部分在沪陕高速以南,再向南...

如果房价死扛不降,会出现什么后果?

先来假设一下,如果房价死扛不降,也不涨的话,则楼市失去了价差,所有的投机客都会被困在里面,楼市中只剩下了刚性需求。其实现在的楼市就是这种情况,也是我们想要达到一种状态。因为房价降,会对我们的经济形成很大的冲击,本就不乐观的基本面自然不想再让楼市来添乱。房价再涨,就会把其它行业的资...

“郑许一体化”会给许昌带来怎样的发展前景?

感谢邀请,郑许一体化在2018年已经作为一个重点项目来推进建设,它也是未来郑州大都市区的一部分,将来会使许昌与郑州靠的更近,势必让许昌经济发展的更好,这几年许昌也有很多表现来印证了这个政策下带来的变化。第一、许昌产业更加集聚,城市发展速度加快。许昌在向北推进中首先是撤许昌县划为建...

长期喝红豆薏米粥会怎样?

长期喝红豆薏米粥会怎么样?健康苦行僧,开讲啦!要问吃什么祛湿,可能很多人都会回答道:红豆薏米粥,是呀,红豆薏米粥可以说是祛湿的经典搭配了,二者都有利水祛湿,健脾养胃的功效,搭配食用,能够很好地帮助祛湿,那么长期食用红豆薏米粥真的会祛湿吗,怎么感觉湿气加重了一些。长期食用红豆薏米粥...

哪10个专业“中看不中用”,毕业后工作难找?

6月份即将过去,无数学子们即将毕业踏入社会,根据有关数据统计,今年毕业的大学生人数多达上千万,这么大的毕业生数量,给国家提出来一个大问题——就业。年年都说毕业季就是失业季,事实的确如此。从2000年开始,大学毕业生的人数是逐年递增,一年增加几十万,就业形势是一年更比一年难,现在可...

老公不愿意和我亲近怎么办?

老公不愿意和你亲近你有两种办法,一种你想办法让自己变成你老公喜欢的样子,另一种你亲近别人刺激一下你老公的心理,如果还不见效,那基本上没戏了,离婚即可。一、为什么不愿意亲近你知己知彼,方可获胜,你首先得弄清楚你老公为什么不愿意亲近你,例如传染病、其他疾病、身体太累、不喜欢你、卫生洁...

你看过最性感的电影是什么?

有最恐怖的,最唯美的,最劲爆的,有最性感的电影吗?...

手上没有小月牙,身体就很差劲吗?

难道说要是手上没有小月牙,是不是就证明身体很差劲呀?...

有没有发现现在大街上要钱的乞丐很少了,甚至基本没有了,他们去哪了?

我觉得是被社会淘汰了。网络发达,给乞丐造成一定的打击。以前经常会在街上看到一些卖惨的乞丐。1、有些看着没腿没脚的,用一板车辅助行动。2、有些是一老一年轻,老的用一张棉被裹着,男的跪着磕头。3、一女的带着一个婴儿在那跪着。4、一年轻男女跪在那里,坚着牌子父母竟然死亡,什么什么的一堆...

清远长隆是不是骗局?

在清远长隆最初动工的时候,我听到的消息---包括长隆内部员工---所说的是:在清远长隆完工后,广州番禺长隆的野生动物园部分将取消,其功能将由清远长隆代替,而原长隆动物园地块,将转型为新奇特互动项目为主的旅游项目。这其实是一个非常符合内在逻辑的想法。对于广州和清远的经济发展,还有长...

R开头单词技术英文单词英语通信技术quentin_xu蚂蚁一omnstiypuzw339565007e1363515414tohome
猜你喜欢
热门推荐
秒速时时彩