根文件系统简介

news/2024/5/6 11:33:14/文章来源:https://blog.csdn.net/qq_66545503/article/details/127354217

根文件系统

根文件系统一般也叫做rootfs,那么什么叫根文件系统?看到“文件系统”这四个字,很多人,第一反应就是FATFS、FAT、EXT4、YAFFS和NTFS等这样的文件系统。在这里,根文件系统并不是FATFS这样的文件系统代码,EXT4这样的文件系统代码属于Linux内核的一部分。Linux中的根文件系统更像是一个文件夹或者叫做目录(在我看来就是一个文件夹,只不过是特殊的文件夹),在这个目录里面会有很多的子目录。根目录下和子目录中会有很多的文件,这些文件是Linux运行所必须的,比如库、常用的软件和命令、设备文件、配置文件等等。以后我们说到文件系统,如果不特别指明,统一表示根文件系统。对于根文件系统专业的解释,百度百科上是这么说的。
根文件系统首先是内核启动时所mount(挂载)的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。
百度百科上说内核代码镜像文件保存在根文件系统中,但是我们嵌入式Linux并没有将内核代码镜像保存在根文件系统中,而是保存到了其他地方。比如NAND Flash的指定存储地址、EMMC专用分区中。根文件系统是Linux内核启动以后挂载(mount)的第一个文件系统,然后从根文件系统中读取初始化脚本,比如rcS,inittab等。根文件系统和Linux内核是分开的,单独的Linux内核是没法正常工作的,必须要搭配根文件系统。如果不提供根文件系统,Linux内核在启动的时候就会提示内核崩溃(Kernel panic)的提示。
根文件系统的这个“根”字就说明了这个文件系统的重要性,它是其他文件系统的根,没有这个“根”,其他的文件系统或者软件就别想工作。比如我们常用的ls、mv、ifconfig等命令其实就是一个个小软件,只是这些软件没有图形界面,而且需要输入命令来运行。这些小软件就保存在根文件系统中。

在构建根文件系统之前,我们先来看一下根文件系统里面大概都有些什么内容,以Ubuntu为例,根文件系统的目录名字为‘/’,没看错就是一个斜杠,所以输入如下命令就可以进入根目录中:
cd / //进入根目录

图中根目录下子目录和文件不少,但是这些都是Ubuntu所需要的,其中有很多子目录和文件我们嵌入式Linux是用不到的,所以这里就讲解一些常用的子目录:
1、/bin目录
看到“bin”大家应该能想到bin文件,bin文件就是可执行文件。所以此目录下存放着系统需要的可执行文件,一般都是一些命令,比如ls、mv等命令。此目录下的命令所有的客户都可以使用。
2、/dev目录
dev是device的缩写,所以此目录下的文件都是和设备有关的,此目录下的文件都是设备文件。在Linux下一切皆文件,即使是硬件设备,也是以文件的形式存在的,比如/dev/ttymxc0(I.MX6ULL根目录会有此文件)就表示I.MX6ULL的串口0,我们要想通过串口0发送或者接收数据就要操作文件/dev/ttymxc0,通过对文件/dev/ttymxc0的读写操作来实现串口0的数据收发。
3、/etc目录
此目录下存放着各种配置文件,大家可以进入Ubuntu的etc目录看一下,里面的配置文件非常多!但是在嵌入式Linux下此目录会很简洁。
4、/lib目录
lib是library的简称,也就是库的意思,因此此目录下存放着Linux所必须的库文件。这些库文件是共享库,命令和用户编写的应用程序要使用这些库文件。
5、/mnt目录
临时挂载目录,一般是空目录,可以在此目录下创建空的子目录,比如/mnt/sd、/mnt/usb,这样就可以将SD卡或者U盘挂载到/mnt/sd或者/mnt/usb目录中。
6、/proc目录
此目录一般是空的,当Linux系统启动以后会将此目录作为proc文件系统的挂载点,proc是个虚拟文件系统,没有实际的存储设备。proc里面的文件都是临时存在的,一般用来存储系统运行信息文件。
7、/usr目录
要注意,usr不是user的缩写,而是Unix Software Resource的缩写,也就是Unix操作系统软件资源目录。这里有个小知识点,那就是Linux一般被称为类Unix操作系统,苹果的MacOS也是类Unix操作系统。关于Linux和Unix操作系统的渊源大家可以直接在网上找Linux的发展历史来看。既然是软件资源目录,因此/usr目录下也存放着很多软件,一般系统安装完成以后此目录占用的空间最多。
8、/var目录
此目录存放一些可以改变的数据。
9、/sbin目录
此目录页用户存放一些可执行文件,但是此目录下的文件或者说命令只有管理员才能使用,主要用户系统管理。
10、/sys目录
系统启动以后此目录作为sysfs文件系统的挂载点,sysfs是一个类似于proc文件系统的特殊文件系统,sysfs也是基于ram的文件系统,也就是说它也没有实际的存储设备。此目录是系统设备管理的重要目录,此目录通过一定的组织结构向用户提供详细的内核数据结构信息。
11、/opt
可选的文件、软件存放区,由用户选择将哪些文件或软件放到此目录中。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_24637.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloudAlibaba 通过Dubbo实现微服务之间的RPC调用

目录 一、创建模块化项目 二、公共api接口模块 三、服务提供者 四、服务调用者 五、测试 六、案例代码 在微服务架构中,微服务之间的调用一般我们有两种比较好的解决策略,分别是通过OpenFeign的基于http协议的传输的调用和基于RCP协议的Dubbo框架来…

基于SSM的餐饮管理系统的设计与实现

目 录 前 言 1 第1章 概述 2 1.1 选题背景及意义 2 1.2 技术概述 2 1.2.1 JSP技术概述 2 1.2.2 SpringSprngMVC介绍 3 1.2.3 MySQL数据库概述 3 1.2.4 Mybatis介绍 3 1.2.5 Maven介绍 3 1.3 开发平台介绍 4 1.3.1 Tomcat服务器 4 1.3.2 Eclipse简介 4 第2章 可行性研究 5 2.1 技…

Redis学习和笔记

Redis学习 作为一个程序员,你没有办法不学Redis redis是一个NoSql的(远程字典服务的,key_value的数据库) redis 能干嘛 内存存储,持久化,内存中是断电就失去,所有说持久化很重要效率高&#…

Linux Command mount 挂载

Linux Command mount 挂载 tags: 文件管理 文章目录Linux Command mount 挂载1. 简介2. 语法3. 退出状态4. 命令选项5. mount 挂载5.1 列出挂载的文件系统5.2 列出特定文件系统5.3 挂载文件系统5.4 使用 /etc/fstab 挂载文件系统5.5 挂载 USB 驱动器5.6 安装 CD-ROM5.7 挂载 I…

电路方案分析(十二)USB Type-C PD 移动电源参考设计方案

USB Type-C PD 移动电源参考设计方案 tips:TI设计方案参考分析:TI Designs:TIDA-01627 1.系统描述 2.系统概述 3.系统供电方案 4.测试数据 5.设计文件 6.关键术语 说明 此移动电源参考设计提供高度集成的 USB Type-C™电力传输 (PD) 解决…

Docter安装

上传安装包 docker-ce-18.06.0.ce-3.el7.x86_64.rpm 安装 yum install docker-ce-18.06.0.ce-3.el7.x86_64.rpm -y 启动docter systemctl start docker systemctl stop docker systemctl restart docker systemctl status docker(查看状态) 查看doct…

浮点型在内存中的存储

目录 1、浮点数的存储方式 (1) 转化为二进制 (2) 转化为国际标准形式 (3) 使用国际标准形式存储 (4) 存储方式验证 2、从内存中取出浮点数需满足的规则 (1) E 不全为0 或 不全为1 (2) E 全为 0 (3) E 全为 1 浮点数在内存中存储的方式和整型不一样。所以我们在存储的…

2022/10语音识别大作业:基于HMM(隐马尔可夫模型)的Matlab孤立数字语音识别

别看了你要找的就在这。csdn上所有这方面的资源都是收费的,而且没有直接能用的好的,我的也是基于重金买来的两份结合起来做了三天的大修之后才能运行。所以这也不是一份免费分享。但是本文解决了其他资源没有解决的问题,所以50是一个公道的价…

C++——程序员的逼格神器-github

github的重要性: 网络时代的程序员必备。 github的作用: 版本管理多人协作开源共享 常用方案: gitTortoiseGitgithub [Tortoise,程序员常称其为小乌龟,小海龟] 安装配置步骤 1.注册 GitHub: Where the world bui…

JVM之对象的内存模型、创建过程、对象引用、生命周期

JVM之对象的内存模型、创建过程、对象引用、生命周期Java对象内存模型对象头实例数据对齐填充部分对象的创建类加载检查分配内存初始化零值设置对象头执行init方法引用计数法对象的引用强引用软引用弱引用虚引用对象的生命周期创建阶段(Created)应用阶段(In Use)不可见阶段(Inv…

代理ARP (路由式代理ARP+vlan内代理ARP+vlan间代理ARP) [理论+实验验证]

衷心感谢三位大佬的博客 ! ! ! ! 这篇博客主要是为了记录笔记方便查看而整理, 主要内容整理来源: (58条消息) 代理ARP实验_在下小黄的博客-CSDN博客_arp代理实验 (58条消息) 代理ARP_士别三日wyx的博客-CSDN博客_arp代理 (59条消息) 华为ARP代理的三种方…

字节在职三年,如何想要三个月内将软件测试学好,我建议你这样学

目录 13年本科毕业,目前已经工作将近7年时间,第一段工作是在字节工作3年时间,目前是再另外一家大厂工作。今天跟大家分享一下我工作的心得,希望对你有所帮助 我对软件测试的理解 软件测试是软件开发的最后一道防线,…

【Vue 快速入门系列】样式绑定与条件渲染

文章目录前言样式绑定条件渲染前言 在vue中好像一切数据都是可以动态的,那么我们应如何让dom元素中的样式动起来呢?我们既然可以改变dom元素的样式,我们能不能将其隐藏起来呢?今天将会介绍到Vue中如何将属性与dom元素的样式进行绑…

Java List 扩容机制探究(ArrayList 、Vector、LinkedList)

文章目录List扩容ArrayList 扩容机制结论:无参构造创建的ArrayList的初始空间为0,在添加第一个元素的时候空间会默认为10,之后扩容会为当前容量的1.5倍。0->10->15->22->33->49源码分析1.ArrayList list new ArrayList();2. …

Android多媒体架构

Android多媒体架构 要实现我们的媒体播放器 主要使用的就是android media MediaPlayer 这样的一个类 来为我们的播放器的实现提供一个主要功能 而这个类的实现又依赖于 JNI层的 1)一些接口 2)Libmedia.so 库 (这个库才是 mediaplayer类的真正实现) 再往下就是我们的se…

产品能力|书山有路-趣味算法(第二版)读书笔记part1

系列文章目录 趣味算法(第二版)读书笔记: day1: 序章|学习的方法和目标. day2:算法之美|打开算法之门与算法复杂性 day3.算法之美|函数特性与图形 day4.数学之美|斐波那契数列 后续补充完善 提示:写完文章后,目录可以…

Kubernetes_16_静态Pod网关apiserver的audit审计日志

系列文章目录 文章目录系列文章目录前言一、理论:kube-apiserver的审计日志1.1 kube-apiserver.yaml 文件的五行修改1.2 audit-policy.yaml文件的修改二、实践:编写策略文件,打印想要的审计日志2.1 步骤1:编写修改policy.yaml文件…

05_排序与分页

1.排序数据 1.1排序规则 如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的。 使用ORDER BY子句排序 ASC (ascend):升序 DESC (descend):降序 ORDER BY子句在SELECT语句的结尾。 1.2单列排序 1.简单使用排序 #如果没有使用排序操作&am…

每日算法、面试题

目录 2022/10/16 一、算法 翻转字符串里的单词 找出字符串中第一个匹配项的下标 二、面试题 SpringMvc中如何解决POST请求的中文乱码问题 SpringMvc的工作流程 2022/10/16 一、算法 翻转字符串里的单词 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 …

【Nginx】三、Nginx实现四层负载均衡Nginx实现限流防盗链流量镜像

Nginx实现四层负载均衡一、Nginx实现四层负载均衡1、四层负载均衡与七层负载均衡区别2、Nginx四层负载均衡配置3、SocketTool工具4、TCP&UDPDebug工具二、Nginx实现限流三、Nginx实现防盗链四、Nginx流量镜像一、Nginx实现四层负载均衡 我们之前介绍的HTTP负载均衡&#x…