嵌入式Linux-定制根文件系统

本文介绍根文件系统的概念及其在Linux启动中的作用。根文件系统包含关键的目录结构和文件,如/bin、/sbin、/lib等,对于系统初始化至关重要。文章还详细说明了构建根文件系统的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    根文件系统是Linux、UNIX系统启动的第一个文件系统,在启动内核时需要挂载根文件系统来支持访问外部设备以及装载和运行内核模块与应用。

   根文件系统相对于普通的文件系统,特殊之处在于它是内核启动的所mount的第一个文件系统,系用引导启动程序会在根系统挂载之后 从中把一些基本的初始化脚本和服务加载到内存中运行。

   Linux的根文件系统的目录和结构是基本固定的,每个文件夹都有固定的用途。

  /bin 存放用户和系统来说必须的二进制文件

  /sbin 存放针对系统管理的二进制文件,一般不会被普通用户使用

  /usr/bin 不必要的用户二进制文件

  /usr/sbin 不必要的系统管理二进制文件

  /lib 启动系统和运行所必需的库

 嵌入式Linux而言之有/bin,/dev,/etc,/lib,/proc,/var,/usr是需要的,而其他的都是可选的。

 如何制作根文件系统:

  移植busybox,简单看作是UNIX工具的集合,它将必将常用的UNIX命令和工具软件合成到一个可执行文件中,并让它们共享代码中相同的部分,从而减少所需要的空间和资源的需求。

当我们在linux下输入ls  / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。

该标准规定了根目录下各个子目录的名称及其存放的内容:

目录名

存放的内容

/bin

必备的用户命令,例如lscp

/sbin

必备的系统管理员命令,例如ifconfigreboot

/dev

设备文件,例如mtdblock0tty1

/etc

系统配置文件,包括启动文件,例如inittab

/lib

必要的链接库,例如C链接库、内核模块

/home

普通用户主目录

/root

root用户主目录

/usr/bin

非必备的用户程序,例如finddu

/usr/sbin

非必备的管理员程序,例如chrootinetd

/usr/lib

库文件

/var

守护程序和工具程序所存放的可变,例如日志文件

/proc

用来提供内核与进程信息的虚拟文件系统,由内核自动生成目录下的内容

/sys

用来提供内核与设备信息的虚拟文件系统,由内核自动生成目录下的内容

/mnt

文件系统挂接点,用于临时安装文件系统

/tmp

临时性的文件,重启后将自动清除

 

制作根文件系统就是要建立以上的目录,并在其中建立完整目录内容。其过程大体包括:

·        编译/安装busybox,生成/bin/sbin/usr/bin/usr/sbin目录

·        利用交叉编译工具链,构建/lib目录

·        手工构建/etc目录

·        手工构建最简化的/dev目录

·        创建其它空目录

·        配置系统自动生成/proc目录

·        利用udev构建完整的/dev目录

制作根文件系统的 jffs2 映像文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值