什么是根文件系统
文件系统: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功能,就得有以下条件:
1、在一个现有“文件系统”(根文件系统RFS)下面
2、该RFS中已经有了一些设备文件的存在,比如 /dev 下面的 hd0,hd1,等等
3、2中的/dev其实就是由RFS来管理的
4、还需要有一个目录存在,而该目录也是在该RFS中的即由RFS来管理的
5、当然你要有实际的磁盘设备存在(/dev/hd0只是表示一个“虚”的设备文件名而已)且该设备已被“FS”格式化好了
6、最后你就会用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一系列过程的,你要知道以下几点:
1、/dev/hd0, /mnt/fatc都是RFS中的“文件”(统称),前者是设备文件,后者是目录文件。
[体现在i节点结构中,就是各自的inode->i_mode中会区分是“设备类型文件”还是“目录类型文件”,且前者的 inode->zone[0]存有该设备的设备号(还有inode->i_dev也是设备号,但实际含义不一样),后者的 inode->i_mount就被置位啦,注意因为这个i节点就是一个“被‘安装’/‘挂载’好了FS的i节点]
2、/ 这是目录,但这个是RFS的目录,且是根目录。
3、/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.s_dev这样的参数),然后再在该FS中按正常的过程继续寻找所需要的文件,所以你能找到]
“正常的过程”就是指:要么从一个FS的根目录中开始查找文件,要不从一个文件系统当前用户进程的当前工作目录中开始查找文件。
所以就有一个重要的说法(我是这么理解的):跨文件系统访问文件。这一过程涉及面较广,主要数据结构有:i节点、超级块。
4、最后,当你不需要使用该分区或是你想把硬盘拿走,则你会使用 umount 功能啦,这就对应 sys_umount()这一“系统调用函数”,那你就要知道该函数做了些什么事了。
最后,总的来说:
mount_root()挂载了一个MINI FS又被称为是RFS。
然后你可以在该RFS中再挂载别的FS。RFS与系统“共存亡”,自动被“挂载”,自动被“卸载”。
所以,FAT等也可以是根文件系统,当然也是文件系统。
所以,当你在你电脑上安装了多操作系统时,假设在C盘(FAT32 FS)被装了 win98,在D盘(NTFS FS)被安装了winxp,那么,当你进入了win98时,你FAT32好象就是RFS,那么NTFS就是FS了;当你进入了winxp时,NTFS好象就是RFS,那么FAT32就是FS了。
(为什么C盘是要FAT32呢,因为win98不支持ntfs fs,而你又是装的win98)
什么是根文件系统
根文件系统首先是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。成功之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。在Linux中,必须要有一个根文件系统的概念。根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所挂载(mount)的第一个文件系统,内核代码的映像文件保存在根文件系统中,系统引导启动程序会在根文件系统挂载之后从中把一些初始化脚本(如rcS,inittab)和服务加载到内存中去运行。mount是Linux下的一个命令,它可以将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来,因此我们只要访问这个文件夹,就相当于访问该分区了。 目前mount已经不仅仅局限于Linux了。在Windows系统下的应用也越来越广了,多用在虚拟光驱类软件上,比如Clone CD,Daemon tool,WinMount等。根文件系统在系统启动中到底是什么时候挂载的呢?先将/dev/ram0挂载,而后执行/linuxrc.等其执行完后。切换根目录,再挂载具体的根文件系统.根文件系统执行完之后,也就是到了Start_kernel()函数的最后,执行init的进程,也就第一个用户进程。对系统进行各种初始化的操作。根文件系统之所以在前面加一个”根“,说明它是加载其它文件系统的”根“,既然是根的话,那么如果没有这个根,其它的文件系统也就没有办法进行加载的。它包含系统引导和使其他文件系统得以挂载(mount)所必要的文件。
rf是什么意思?
RF cal:第一次开机时间,相当于出厂时间。rf cal释义: 射频卡尔网络: Rf Cal 组装日期暂未确定rf cal data restore 射频卡数据恢复rf cal data backup 射频数据备份扩展资料:类似词语1、RFCA: 射频消融术 | 射频消融 | 射频导管消融 | 导管射频消融2、radiofrequency catheter ablation RFCA: 导管射频消融术 | 射频导管消融3、RFCA Radiofrequency Current Catheter Ablation: 经导管射频消融例句1、Conclusion RFCA may result in minor myocardial damage, which has no affection on heart function.结论RFCA所造成的心肌损伤为小范围的损伤,不影响心脏的整体功能。2、The successful rate and incidence of complication for RFCA are related to the skill and experience of doctors.RFCA治疗快速性心律失常的成功率及并发症发生率与术者的操作技术及经验密切相关。
rfs什么意思
远程文件服务,网络再生燃料标准(Renewable Fuel Standard);远程文件服务站(remote file server);可再生燃料标准(Renewable Fuels Standard),肿瘤RFS代表着肿瘤病人的无复发生存时间,RFS是英文全称Recurrence free survival的缩写。肿瘤RFS代表病人在经过抗肿瘤治疗后,获得完全缓解时到出现复发或者随访截止的时间,应该说肿瘤的RFS的时间是很多肿瘤的临床研究中一个统计学的终点指标。在经过抗肿瘤治疗后,无复发生存时间越长,代表抗肿瘤治疗的疗效越好。病人最终的总生存时间,可能也会明显延长,这也是进行抗肿瘤治疗所追求的目标。但并不是所有肿瘤RFS的延长,能够最终导致总生存期的延长。有时病人在经过抗肿瘤治疗后,无复发生存时间延长,但最终病人的总生存时间并没有获得理想的延长,这是病人在后续治疗中受到很多因素的干扰所导致。
linux中/是根目录,/home是家目录,二者有什么区别??家目录是不是在根目录里面的??
家目录是在根目录里面。区别:1、目录层次不同:/:根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,是最上级的目录。/home:如果建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用户的主目录。2、目录产生的时间不同:/根目录作为文件系统的必备,一开始就需要在系统运行时建立,而/home目录只有建立新用户的时候才产生。3、文件权限不同:Linux作为多用户系统,对文件权限有严格的管理机制。三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者能允许同组用户有权访问文件,还能将文件的访问权限赋予系统中的其他用户。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器操作系统方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善这个操作系统,使其最大化地适应用户的需要。扩展资料:linux优点:1、Linux由众多微内核组成,其源代码完全开源;2、Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、 TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发成出新的协议栈;3、Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;参考资料来源:百度百科-linux百度百科-Linux目录权限
Linux系统里的家目录是什么意思
/home: 系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。例如:/home/jinlong ;/home/bican使用Linux,用户可以设置目录和文件的权限,以便允许或拒绝其他人对其进行访问。Linux目录采用多级树形结构,用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访问那里的文件。文件结构的相互关联性使共享数据变得容易,几个用户可以访问同一个文件。Linux是一个多用户系统,操作系统本身的驻留程序存放在以根目录开始的专用目录中,有时被指定为系统目录。扩展资料linux其它目录:1、/ _ 根(根目录)第一层目录,位于目录结构的最顶层,用斜线“/”表示,是系统中所有其他目录的根。一般根目录下只存放目录。每一个文件和目录从根目录开始。只有root用户具有该目录下的写权限。请注意,/root是root用户的主目录,这与/.不一样。系统根目录下一般包括:/bin,/boot,/dev,/etc,/home,/root,/sbin,/tmp,/usr,/var等。2、/bin _ 用户二进制文件目录/bin目录又称为二进制目录,包含供系统管理员和普通用户使用的重要linux命令的二进制映像。该目录存放的内容包括各种可执行文件,还有某些可执行文件的符号连接。在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的基本命令都设在这里。常用的命令有:cp、dmesg、kill、login、rm、ping、chomd、bash、cat、echo、ls、 mail、vi等。
嵌入式系统的应用和开发
嵌入式系统的应用和开发 基于嵌入式系统的具体产品应用是计算机工程史上的里程碑。深入到了各行各业,其已成为高科技领域中必不可少的工具。 我下面为你整理了关于嵌入式系统的应用和开发的文章,希望对你有所帮助。 1嵌入式系统简介 嵌入式系统可以抽象出一个典型的组成模型,其可划分为硬件层、软件层及功能层。 1.1嵌入式系统定义 嵌入式系统最通用的定义是以应用为中心,以计算机技术为基础,软硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机[1]。 根据IEEE9(国际电气和电子工程师协会)的定义,嵌入式系统也可定义为控制监视或辅助设备机器和车间运行装置。 嵌入式系统的定义很多,统一起来很难。对于其定义有疑问的部分研究人员将嵌入式系统定义为:“嵌入式系统是以嵌入式微处理器为内核,以微电子技术,计算机技术,电子技术、对象技术为基础,软硬件可根据对象需要所设置,并且嵌入到对象器件内,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用智能化的控制系统。”[2] 1.2嵌入式系统的特点 嵌入式系统是面向专业应用领域的,从其应用角度分析,具有以下特点: (1)硬件层,是所有软件的运行基础,嵌入式系统至少拥有一个高性能处理器为硬件平台。如ARM处理器。 (2)软件层,其能扩充和充分发挥硬件层功能。嵌入式系统需有一个多任务操作系统的软件平台,来控制管理计算机硬件和软件资源以及合理的组织计算机工作流程。如Liunx,UC/OSⅡ等操作系统。 (3)嵌入式系统是先进的技术及资金密集、知识产业化不断创新的集成系统。其将先进的电子科学技术与各行各业的具体应用相结合。 (4)是面向用户、产品及特定应用的。 (5)具有较长的生命周期。与实际产品相结合,并与产品升级同步进行。 (6)对程序质量要求较高。一般都将系统中的软件固化在存储器中,大部分都具有较高的实时性。 (7)嵌入式系统不具备在其上进行进一步开发的能力。需要借助专门的开发工具和环境来满足产品设计完成后的程序功能修改工作。 2基于ARM的嵌入式系统技术应用及开发方法 2.1ARM的技术应用特点 ARM(Advanced RISC Machines)是一种嵌入式微处理器,它具有低功耗、低成本、高性能的特点,采用RISC体系结构,大量使用寄存器,具有高效的指令系统,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,来实现嵌入式应用的特殊要求[3]。基于ARM微处理器的嵌入式系统不同于单片机、DSP系统,其高性能的特点,在硬件部分的电路板设计方面是比较困难的,绝大多数的ARM板都要在4层以上。其实ARM最关键的是软件部分的操作系统,系统开发应更侧重于软件方面,包括系统裁减,底层驱动和应用程序等。 2.2ARM嵌入式系统的开发流程 基于ARM的嵌入式系统设计的开发流程如图1所示。 2.3ARM嵌入式系统的开发方法 (1)建立系统的开发环境 嵌入式系统资源受限制,如果在其硬件平台上直接编写软件,比较困难。因此根据其特点须在特定的开发环境下进行。搭建相应的软硬件平台:在宿主机(HOST)也就是PC机上安装开发工具,并将编写好的软件程序进行交叉编译生成二进制代码,最后将其移植到目标板的特定位置运行。这种在宿主机(HOST)环境下开发,在目标板(TARGET)上运行的开发模式叫交叉开发模式,交叉开发模型如图2所示。 (2)Boot Loader引导程序开发 Boot loader是在嵌入式操作系统内核运行前运行的一段程序,与我们经常提到的BIOS功能相近,每种体系结构都有与其相匹配的Boot Loader。通过Boot loader程序的运行,可以初始化硬件设备,建立系统的内存空间映射图,这样就可以将系统的软、硬件环境设定在一个合适的状态,方便于最终调用操作系统内核,并且为运行用户应用程序准备好正确的环境。 Boot loader程序由汇编和C程序两部分组成,程序执行过程也分为汇编和C程序代码部分两个阶段。汇编程序与硬件设备相关,不便移植,第一阶段需要完成初始化看门狗、设置中断异常向量表、堆栈、配置存储器等,之后再跳转到第二阶段的C语言程序入口处。C程序代码部分主要完成初始化本阶段所需要的外部设备,调用NANDFLASH的API函数,配置SDRAM空间,并将用户的`程序代码从NANDFLASH存储器中复制到SDRAM中,最后再跳转到用户程序的入口[4]。 3嵌入式技术的应用领域 嵌入式技术无处不在,已经深入到了生活的各个领域,为我们的生活带来了很大的方便。 (1)无线通讯领域。特别是智能手机,全球95%的手机采用了ARM芯片,随着手机功能愈像电脑,手机更需要功能强大的嵌入式芯片。现在,全球售出的每一部手机中平均就有2.4块ARM芯片。 (2)工业控制领域。基于ARM核的32位微控制器芯片逐渐向低端微控制器应用领域扩展,在工业控制领域发挥了很大的作用。 (3)网络应用。网络宽带技术不断发展,基于ARM技术的ADSL芯片也逐步进入竞争范围,并取得一定优势。而且,语音及视频处理也应用了ARM技术,同时对DSP的应用领域提出了新的挑战。 (4)仪器仪表方面。有智能仪器、智能仪表、医疗器械、色谱仪、示波器等。 (5)民用方面。如电子玩具、电子字典、游戏机、录像机、复读机、投影仪、照相机、空调、冰箱、洗衣机、调制解调器、防盗控制器、激光驱动器、变速控制器、汽车点火控制器、避雷控制、农业节水控制系统、保安控制系统等方面。 (6)导航控制方面。如导弹控制、航天导航系统、电子干扰系统等。 (7)数据处理方面。如图文图表终端、复印机、硬盘驱动器等。 (8)农业交通方面。智能公路(汽车导航、流量控制、信息监测与汽车服务)、植物工厂(特种植物工厂、无土栽培技术、智能种子工程)、虚拟显示VR机器人、信息家电(家用电器的网络化)等等。 除此以外,众多领域都用到了基于ARM微处理器的嵌入式技术,在生活的各个领域得到了广泛的应用。 ;
嵌入式系统原理及应用
嵌入式系统是以应用为中心以计算机技术为基础并且软硬件可裁剪适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 嵌入式系统起源于半导体集成电路?该半导体集成电路分为晶体管和集成电路。20世纪70年代集成电路产生了微处理器?微处理器是智能内核。它有两个功能其一是运算处理功能即高速海量的解算能力它促使了计算机独立的飞速发展至今;其二是控制功能嵌入式系统属控制功能控制功能产生了微控制器俗称单片机它促使了嵌入式系统的独立发展至今。
Linux的根分区系统类型是什么?
ext4EXT4是第四代扩展文件系统(英语:Fourth extended filesystem,缩写为 ext4)是Linux系统下的日志文件系统,是ext3文件系统的后继版本。Ext4是由Ext3的维护者Theodore Tso领导的开发团队实现的,并引入到Linux2.6.19内核中。从2006年6月份开始,开发人员决定把Ext4从Ext3中分离出来进行独立开发。Ext4的开发工作从那时起开始进行,但大部分Linux用户和管理员都没有太关注这件事情,直到2.6.19内核在2006年11月的发布。Ext4第一次出现在主流内核里,但是它当时还处于试验阶段,因此很多人都忽视了它。2008年12月25日,Linux Kernel 2.6.28的正式版本发布。随着这一新内核的发布,Ext4文件系统也结束实验期,成为稳定版。扩展资料使用Linux,用户可以设置目录和文件的权限,以便允许或拒绝其他人对其进行访问。Linux目录采用多级树形结构,图1.1表示了这种树形等级结构。用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访问那里的文件。文件结构的相互关联性使共享数据变得容易,几个用户可以访问同一个文件。Linux是一个多用户系统,操作系统本身的驻留程序存放在以根目录开始的专用目录中,有时被指定为系统目录。图1.1中那些根目录下的目录就是系统目录。Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
Linux的根分区系统类型是什么?
ext4EXT4是第四代扩展文件系统(英语:Fourth extended filesystem,缩写为 ext4)是Linux系统下的日志文件系统,是ext3文件系统的后继版本。Ext4是由Ext3的维护者Theodore Tso领导的开发团队实现的,并引入到Linux2.6.19内核中。从2006年6月份开始,开发人员决定把Ext4从Ext3中分离出来进行独立开发。Ext4的开发工作从那时起开始进行,但大部分Linux用户和管理员都没有太关注这件事情,直到2.6.19内核在2006年11月的发布。Ext4第一次出现在主流内核里,但是它当时还处于试验阶段,因此很多人都忽视了它。2008年12月25日,Linux Kernel 2.6.28的正式版本发布。随着这一新内核的发布,Ext4文件系统也结束实验期,成为稳定版。扩展资料使用Linux,用户可以设置目录和文件的权限,以便允许或拒绝其他人对其进行访问。Linux目录采用多级树形结构,图1.1表示了这种树形等级结构。用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访问那里的文件。文件结构的相互关联性使共享数据变得容易,几个用户可以访问同一个文件。Linux是一个多用户系统,操作系统本身的驻留程序存放在以根目录开始的专用目录中,有时被指定为系统目录。图1.1中那些根目录下的目录就是系统目录。Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
什么是Linux文件系统,Linux常用的文件系统有哪些
Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。Ext3是一款日志文件系统能够在异常停机中避免文件系统资料不一致的情况,自动修复数据的不一致与错误,然而一般重整文件系统相当耗费时间(尤其容量大的硬盘),当然也不能保证100%资料不流失。比如Btrfs、JFS、ReiserFS、ext、extextextISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NANDFlash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。我们在Linux中常用的文件系统主要有extext2及reiserfs。Linux操作系统使用虚拟文件系统(VFS)向上和用户进程文件访问系统调用接口,向下和具体不同文件系统的实现接口。VFS屏蔽了具体文件的实现细节,向上提供统一的操作接口。
Linux根文件系统基本包括哪些内容?
通常情况下,Linux内核启动后期,会寻找并挂载根文件系统。根文件系统可以存在于磁盘上,也可以是存在于内存中的映像,其中包含了Linux系统正常运行所必须的库和程序等等,按照一定的目录结构存放。Linux根文件系统基本包括如下内容:
基本的目录结构:/bin、/sbin、/dev、/etc、/lib、/var、/proc、/sys、/tmp等;整个根文件系统都是挂在根目录(/)下,FHS对顶层目录的要求和说明如下表所列。
基本程序运行所需的库文件,如glibc等;
基本的系统配置文件,如inittab、rc等;
必要的设备文件,如/dev/ttyS0、/dev/console等;
基本应用程序,如sh、ls、cd、mv等。
你可以去【周立功】那边了解一下的,蛮多信息的。
什么是根文件系统?
问题一:什么是根文件系统 Linux、UNIX操作系统中,mount(挂接)在 / 目录(也就是根目录)上的磁盘分区,叫做根文件系统。(也有人叫:root分区、root文件系统)
问题二:什么是根文件系统 根文件系统首先是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。
问题三:什么是根文件系统 根文件系统首先是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。
Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。成功之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。
在Linux中,必须要有一个根文件系统的概念。根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所挂载(mount)的第一个文件系统,内核代码的映像文件保存在根文件系统中,系统引导启动程序会在根文件系统挂载之后从中把一些初始化脚本(如rcS,inittab)和服务加载到内存中去运行。
mount是Linux下的一个命令,它可以将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来,因此我们只要访问这个文件夹,就相当于访问该分区了。 目前mount已经不仅仅局限于Linux了。在Windows系统下的应用也越来越广了,多用在虚拟光驱类软件上,比如Clone CD,Daemon tool,WinMount等。
根文件系统在系统启动中到底是什么时候挂载的呢?先将/dev/ram0挂载,而后执行/linuxrc.等其执行完后。切换根目录,再挂载具体的根文件系统.根文件系统执行完之后,也就是到了Start_kernel()函数的最后,执行init的进程,也就第一个用户进程。对系统进行各种初始化的操作。
根文件系统之所以在前面加一个”根“,说明它是加载其它文件系统的”根“,既然是根的话,那么如果没有这个根,其它的文件系统也就没有办法进行加载的。它包含系统引导和使其他文件系统得以挂载(mount)所必要的文件。
问题四:什么是根文件系统 下面是从Undertanding the linux kernel 3rd摘录的 12.4. Filesystem Handling Like every traditional Unix system, Linux makes use of a system 's root filesystem : it is the filesystem that is directly mounted by the kernel during the booting phase and that holds the system initialization scripts and the most essential system programs. Other filesystems can be mountedeither by the initialization scripts or directly by the userson directories of already mounted filesystems. Being a tree of directories, every filesystem has its own root directory. The directory on which a filesystem is mounted is called the mount point. A mounted filesystem is a child of the mounted filesystem to which the mount point directory belongs. For instance, the /proc virtual filesystem is a child of the system 's root filesystem (and the system 's root filesystem is the parent of /proc). The root directory of a mounted filesystem hides the content of the mount point directory of the parent filesystem, as well as the whole subtree of the parent filesystem below the mount point.简单的来说,我认为根文件系统就是一种目录结构,那么根文件系统和普通的文件系统有什么区别呢?我认为根文件系统就是要包括Linux启动时所 必须的目录和关键性的文件,例如Linux启动时都需要有init目录下的相关文件,在Linux挂载分区时Linux一定会找/etc/fstab这个 挂载文件等,根文件系统中还包括了许多的应用程序bin目录等,任何包括这些Linux系统启动所必须的文件都可以成为根文件系统。 Linux支持多种文件系统类型,在嵌入式上常用的有:ROMFS,JFFS2,NFS,CRAMFS,YAFFS等等。在Linux系统中是通过mount命令来挂载不同的文件系统。在ARM Linux中常用的文件系统的配置:RAM Disk Driver + EXT2;MTD Driver + JFFS2/YAFFS;NFS;uclinux中常见的文件系统配置为:Blkmem Driver + ROMFS(支持 Nor ......>>
问题五:什么是根文件系统 是文件系统根目录么?就是你分区之后的盘符的首层路径。如:C:/这类的。
问题六:根文件系统的文件系统 (1)jffs2JFFS嵌入式系统文件系统最早是由瑞典 Axis munications公司基于Linux2.0的内核为嵌入式系统开发的文件系统。JFFS2是RedHat公司基于JFFS开发的闪存文件系统,最初是针对RedHat公司的嵌入式产品eCos开发的嵌入式文件系统,所以JFFS2也可以用在Linux, uCLinux中。Jffs2: 日志闪存嵌入式系统文件系统版本2 (Journalling Flash FileSystem v2)主要用于NOR型闪存,基于MTD驱动层,特点是:可读写的、支持数据压缩的、基于哈希表的日志型文件系统,并提供了崩溃/掉电安全保护,提供“写平衡”支持等。缺点主要是当文件系统已满或接近满时,因为垃圾收集的关系而使jffs2的运行速度大大放慢。目前jffs3正在开发中。关于jffs系列文件系统的使用详细文档,可参考MTD补丁包中mtd-jffs-HOWTO.txt。jffsx不适合用于NAND闪存主要是因为NAND闪存的容量一般较大,这样导致jffs为维护日志节点所占用的内存空间迅速增大,另外,jffsx文件系统在挂载时需要扫描整个FLASH的内容,以找出所有的日志节点,建立文件结构,对于大容量的NAND闪存会耗费大量时间。(2)yaffs:Yet Another Flash File Systemyaffs/yaffs2是专为嵌入式系统使用 NAND型闪存而设计的一种日志型文件系统。与jffs2相比,它减少了一些功能(例如不支持数据压缩),所以速度更快,挂载时间很短,对内存的占用较小。另外,它还是跨平台的文件系统,除了Linux和eCos,还支持WinCE, pSOS和ThreadX等。yaffs/yaffs2自带NAND芯片的驱动,并且为嵌入式系统提供了直接访问文件系统的API,用户可以不使用Linux中的MTD与VFS,直接对文件系统操作。当然,yaffs也可与MTD驱动程序配合使用。yaffs与 yaffs2的主要区别在于,前者仅支持小页(512 Bytes) NAND闪存,后者则可支持大页(2KB) NAND闪存。同时,yaffs2在内存空间占用、垃圾回收速度、读/写速度等方面均有大幅提升。(3) Cramfs:pressed ROM File SystemCramfs是Linux的创始人 Linus Torvalds参与开发的一种只读的压缩文件系统。它也基于MTD驱动程序。在cramfs文件系统中,每一页(4KB)被单独压缩,可以随机页访问,其压缩比高达2:1,为嵌入式系统节省大量的Flash存储空间,使系统可通过更低容量的FLASH存储相同的文件,从而降低系统成本。Cramfs文件系统以压缩方式存储,在运行时解压缩,所以不支持应用程序以XIP方式运行,所有的应用程序要求被拷到RAM里去运行,但这并不代表比 Ramfs需求的RAM空间要大一点,因为Cramfs是采用分页压缩的方式存放档案,在读取档案时,不会一下子就耗用过多的内存空间,只针对目前实际读取的部分分配内存,尚没有读取的部分不分配内存空间,当我们读取的档案不在内存时,Cramfs文件系统自动计算压缩后的资料所存的位置,再即时解压缩到 RAM中。另外,它的速度快,效率高,其只读的特点有利于保护文件系统免受破坏,提高了系统的可靠性。由于以上特性,Cramfs在嵌入式系统中应用广泛。但是它的只读属性同时又是它的一大缺陷,使得用户无法对其内容对进扩充。Cramfs映像通常是放在Flash中......>>
问题七:Linux 根文件系统 为什么 重要 没有根,也就没法向上长成树;当然,Linux里的文件系统一般是一棵倒着的树。
既然根对一棵真树那么重要,在Linux里也可以类推了。
根文件系统是其他文件的最终挂载点,没有根文件系统,就像一棵被砍成七零八落的树,乱七八糟了。。。
问题八:什么是linux根文件系统移植 linux文件系统格式挺复杂多样的,如ext、ext2、ext3、ext4、jsf、 、xfs、ReiserFS等。 一般情况下,linux根分区文件系统多数用ext3、ext4,安装时你可以选择。
问题九:Linux内核中有文件系统模块, 那它和根文件系统什么关系哦? linux内核是linux的真实的操作系统,所有的操作系统的相关功能都是由用户接口程序传递到内核由内核来完成的。
linux文件系统是指linux操作系统对整个系统中的所有的数据、文件的管理的一种实现方式。
简单点说:像windows它的文件系统是NTFS文件系统或者FAT文件系统,通过这种方式将windows的各种文件保存在磁盘上,用于存储和访问了。
而linux系统则使用ext这种文件系统来实现。
问题十:Linux 根文件系统 为什么 重要 没有根,也就没法向上长成树;当然,Linux里的文件系统一般是一棵倒着的树。 既然根对一棵真树那么重要,在Linux里也可以类推了。 根文件系统是其他文件的最终挂载点,没有根文件系统,就像一棵被砍成七零八落的树,乱七八糟了。。。如果你还有什么不懂的就去看看《Linux就该这么学》这本书。