根文件系统的构建与分析(三)之根文件目录及最简/dev目录
根文件系统的构建与分析(三)
转载请注明 http://blog.csdn.net/jianchi88 Author:Lotte 邮箱:baihaowen08@126.com
一、FHS(Filesystem Hierarchy Standard)标准介绍
当我们在linux下输入ls / 的时候,见到的目录结构以及这些目录下的内容都大同小异,这是因为所有的linux发行版在对根文件系统布局上都遵循FHS标准的建议规定。
该标准规定了根目录下各个子目录的名称及其存放的内容:
| 目录名 | 存放的内容 |
| /bin | 必备的用户命令,例如ls、cp等 |
| /sbin | 必备的系统管理员命令,例如ifconfig、reboot等 |
| /dev | 设备文件,例如mtdblock0、tty1等 |
| /etc | 系统配置文件,包括启动文件,例如inittab等 |
| /lib | 必要的链接库,例如C链接库、内核模块 |
| /home | 普通用户主目录 |
| /root | root用户主目录 |
| /usr/bin | 非必备的用户程序,例如find、du等 |
| /usr/sbin | 非必备的管理员程序,例如chroot、inetd等 |
| /usr/lib | 库文件 |
| /var | 守护程序和工具程序所存放的可变,例如日志文件 |
| /proc | 用来提供内核与进程信息的虚拟文件系统,由内核自动生成目录下的内容 |
| /sys | 用来提供内核与设备信息的虚拟文件系统,由内核自动生成目录下的内容 |
| /mnt | 文件系统挂接点,用于临时安装文件系统 |
| /tmp | 临时性的文件,重启后将自动清除 |
二、最基本的目录
在嵌入式系统中,可以对根目录下的目录进行裁剪,例如:
• 为多用户提供可扩展环境的所以目录都可以删除;如(/home,/mnt,/root)
• 根据引导加载情况,/boot目录可以删除。
• 系统与程序正常运行的必要目录一般保留
/bin,/dev,/etc,/proc,/sbin,/usr,/lib,/sys 一般保留。
Linux的根文件系统包括支持linux系统正常运行的基本内容,一般应包括以下几项内容:
� 基本的文件系统结构,如bin、dev、etc、sbin,lib、usr、proc。
� 基本程序运行所需的动态库。
� 基本的系统配置文件。
� 必要的设备文件支持。
� 基本的应用程序,如sh、ls、cp等(busybox提供)
构建根文件系统就是往相应的目录添加相应的文件。如:
� 在/dev添加设备文件(本篇介绍《根文件系统的构建与分析(三)之根文件目录及最简/dev目录》),
� 在/etc添加配置文件(请参考后续),
� 在/bin添加命令或者程序(根文件系统的构建与分析(四)之瑞士军刀busybox生成系统基本命令),
� 在/lib添加动态库等(请参考《根文件系统的构建与分析(二)之构建动态库》)。
三、最简化的/dev目录
在linux机器上,/dev目录常常可以看到几百个设备节点,但要手工创建它们吗?不需要,我们只需要创建几个设备节点。但是哪几个呢?构建/dev目录时,有两种方法:即静态构建和mdev设备管理工具构建。看了《根文件系统的构建与分析(一)之流程分析》这篇的都应该依稀记得最后提到init进程至少用到有两个,/dev/console和/dev/null。
下面我们创建根文件系统目录:
vim build_rootfs.sh
plain?
- 1 #!/bin/bash
- 2
- 3 echo "------ build file system directory -------"
- 4 mkdir /opt/build_rootfs
- 5 mkdir /opt/build_rootfs/{bin,dev,etc,usr,lib,sbin,proc,sys,tmp}
- 6 mkdir /opt/build_rootfs/usr/{bin,sbin,lib}
- 7
- 8 mknod /opt/build_rootfs/dev/console c 5 1
- 9 mknod /opt/build_rootfs/dev/null c 1 3
- 10
- 11 chmod 777 /opt/build_rootfs/dev/console
- 12 chmod 777 /opt/build_rootfs/dev/null
- 13
- 14 echo "------ end -------"
plain?
- [root@localhost opt]# ls build_rootfs
- bin dev etc lib proc sbin sys tmp usr
根文件系统的构建与分析(三)之根文件目录及最简/dev目录的更多相关文章
- 根文件系统的构建与分析(四)之瑞士军刀busybox生成系统基本命令
根文件系统的构建与分析(四) 转载请注明 http://blog.csdn.net/jianchi88 Author:Lotte 邮箱:baihaowen08@126.com ls /bin, ...
- Linux之根文件系统的构建20160611
说一下LINUX根文件系统的构建: 制作文件系统 1. 交叉编译busybox 安装:make install CONFIG_PREFIX=/work/nfs_root/fs_mini_mdev_ne ...
- 构建根文件系统之init进程分析
busybox是ls.cp等命令的集合. 执行ls时,实际上是执行了busybox ls 执行cp时,实际上是执行了busybox cp 分析init程序之前,再让我们回想一下我们的目标:u-boot ...
- 一步一步制作yaffs/yaffs2根文件系统(四)---构建etc、dev等剩余目录
开发环境:Ubuntu 12.04 开发板:mini2440 256M NandFlash 64M SDRAM 交叉编译器:arm-linux-gcc 4.4.3点此可下载 BusyBox版本: ...
- yaffs2根文件系统的构建过程
基于BusyBox-1.19.2 (以其它作者的作为参考) 1. 下载BusyBox的源码 http://busybox.net/ 2. 解压#tar xvzf busybox-1.19.2.tgz ...
- 根文件系统及Busybox简介
转:http://blog.csdn.net/wqc02/article/details/8930184 1.根文件系统简介...2 2.Busybox简介...2 2.1Busybox简介...2 ...
- Linux--安装过程中的根文件系统的分析
前言: 在这篇文章中S3C6410公版的Linux BSP和U-Boot为了分析,名词和数据文件的所有内容本文是基于环境为例,所有的代码是在设置的示例进行分析的过程中.哈. 假设有不对或者不完好的地方 ...
- linux 内核移植和根文件系统的制作【转载】
原文地址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1 Linux内核基础知识 在动手进行Linux内核移植之 ...
- linux 内核移植和根文件系统的制作
1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1 Linux版本 Linux内核的版本号 ...
随机推荐
- linux sed使用(转)
sed入门详解教程 sed 是一个比较古老的,功能十分强大的用于文本处理的流编辑器,加上正则表达式的支持,可以进行大量的复杂的文本编辑操作.sed 本身是一个非常复杂的工具,有专门的书籍讲解 sed ...
- 如何用VC编写供PB调用的DLL
和编写一般的DLL方法相同,需要注意以下两点: (1)调用约定 c函数有_stdcall._cdecl._fastcall等多种调用约定,调用约定用来说明函数参数的压栈顺序和由谁(函数自身还是调用者) ...
- UVALive 4998 Simple Encryption
题目描述: 输入正整数K1(K1<=5000),找一个12位正整数K2使得K1K2=K2(mod 1012). 解题思路: 压缩映射原理:设X是一个完备的度量空间,映射ƒ:Χ→Χ 把每两点的距离 ...
- EL标签
1.EL的作用 jsp的核心语法: jsp表达式 <%=%>和 jsp脚本<% %>. 开发jsp的原则: 尽量在jsp页面中少写甚至不写java代码. 使用EL表达式替换掉 ...
- linux时间管理 之 jiffies
1.jiffies 又称时钟滴答,是一个全局变量,它的值在系统引导的时候初始化为0,在时钟中断初始化完成后,每次时钟中断发生,在时钟中断处理例程中都会将jiffies的值 +1. jiffies_64 ...
- Kotlin 第二弹:Android 中 PDF 创建与渲染实践
这是 Kotlin 练习的的第二篇.这一篇的由来是因为刚刚在 Android 开发者官网查看 API 的时候,偶然看到了角落里面的 pdf 相关. 我仔细看看了详细文档,发现这个还蛮有意思的,关键是编 ...
- 深度学习(六十二)SqueezeNet网络设计思想笔记
- PhotoPicker 从头到脚
1. 简介 PhotoPicker, 是一款开源的图片选择器.效果上和微信相似. 2. 使用方法 2.1 添加依赖 dependencies { compile 'me.iwf.photopicker ...
- 预热篇- 总结Delphi Xe4 做App的的可行性分析. ios平台的问题还需要自行学习
首先澄清一个问题, 很多同学其实是误会了, 以为只要搞定了Delphi 就能很快写快餐程序了. ios 本身的知识还是需要一些的, 并没有什么捷径可以走. 但如果一个团队有分工协作的话, Delph ...
- c++ 字符串查找函数
头文件:#include <string.h> 定义函数:int strcasecmp (const char *s1, const char *s2); 函数说明:strcasecmp( ...