1 / 17

制作 Linux 根文件系统

制作 Linux 根文件系统. 本章介绍了 Linux 根文件系统的组织结构,并且分析了 init 进程调用文件系统脚本初始化的过程。只有掌握了文件系统的基本构成,才能自己动手定制 Linux 文件系统。. 学习目标. 根文件系统组织结构 INIT 系统初始化过程 定制文件系统. Linux 的根文件系统至少应包括以下几项内容。 1 .基本的文件系统结构,包含一些必需的目录比如: /dev , /proc , /bin , /etc , /lib , /usr , /tmp 等。 2 .基本程序运行所需的库函数,如 Glibc/uC-libc 。

Download Presentation

制作 Linux 根文件系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 制作Linux根文件系统

  2. 本章介绍了Linux根文件系统的组织结构,并且分析了init进程调用文件系统脚本初始化的过程。只有掌握了文件系统的基本构成,才能自己动手定制Linux文件系统。本章介绍了Linux根文件系统的组织结构,并且分析了init进程调用文件系统脚本初始化的过程。只有掌握了文件系统的基本构成,才能自己动手定制Linux文件系统。 www.farsight.com.cn

  3. 学习目标 • 根文件系统组织结构 • INIT系统初始化过程 • 定制文件系统

  4. Linux的根文件系统至少应包括以下几项内容。 • 1.基本的文件系统结构,包含一些必需的目录比如:/dev,/proc,/bin,/etc,/lib,/usr,/tmp等。 • 2.基本程序运行所需的库函数,如Glibc/uC-libc。 • 3.基本的系统配置文件,比如rc,inittab等脚本文件。 • 4.必要的设备文件支持:/dev/hd*,/dev/tty*,/dev/fd0。 • 5.基本的应用程序,如sh,ls,cp,mv等。

  5. 10.1 根文件系统目录结构 • 10.1.1 FHS目录结构 • Linux根文件系统结构

  6. 10.1.2 文件存放规则 • 1.把全局配置文件放入/etc目录下。 • 2.将设备文件信息放入/dev目录下,设备名可以作为符号链接定位在/dev中或/dev子目录中的其他设备存在。 • 3.操作系统核心定位在/或/boot,若操作系统核心不是作为文件系统的一个文件存在,不应用它。 • 4.库存放的目录是/lib。 • 5.存放系统编译后的可执行文件、命令的目录是/bin,/sbin,/usr。

  7. 10.2 添加系统文件 • 10.2.1 添加共享链接库 • 在在根文件系统的/lib目录下主要包含以下4种类型的文件。 • 1. 实际的共享链接库 • 2.主修订版本的符号链接 • 3.与版本无关的符号链接指向主修订版本的符号链接 • 4.静态的链接库

  8. 10.2.2 添加内核模块 • 1.在内核编译过程中自动添加内核模块 • 2.动态添加内核模块 • 动态加载内核模块有2种方法,以下分别叙述。 • (1)采用modprobe命令加载 • (2)采用insmod命令加载

  9. 10.2.3 添加设备文件 • Linux中任何对象(包括设备)都可以认为是文件。Linux将设备分为最基本的2大类:一类是字符设备(Character Device),另一类是块设备(Block Device)。 • 1.使用mknod指令来添加设备 • 2.在/dev目录下采用MAKEDEV(符号链接/sbin/MAKEDEV)来建立设备文件

  10. 10.3 init系统初始化过程 • 通常,Linux内核的启动可以分为两个阶段。 • 1. 在第1个阶段完成硬件检测、初始化和内核的引导 • 2.在第2个阶段就是init的初始化进程。

  11. 10.3.1 inittab文件 • Linux启动时,运行一个叫作init的程序,然后根据运行级启动后面的任务,包括多用户环境,网络等。所谓的运行级就是操作系统当前正在运行的功能级别。

  12. 10.3.2 System V init启动过程 • 概括地讲,Linux \Unix系统一般有两种不同的初始化启动方式。 • BSD system init •  System V system init • 以下是一个大致的System V init过程。 • (1)init过程执行的第一个脚本文件是/etc/rc.d/rc.sysinit, /etc/rc.d/rc.sysinit主要做在各个运行级别中进行初始化工作 • (2)执行缺省的运行级模式。 • (3)执行/etc/rc.d/rc.local脚本文件。 • (4)执行/bin/login程序。

  13. 10.3.3 Busybox init启动过程分析 • 默认的情况下,Busybox安装之后会生成一个可执行程序Busybox,在目录…/_install/bin下,查看Busybox的属性可以知道/sbin/init是其符号链接,如果使用Busybox做Ramdisk,BusyBox会在内核刚完成加载后就立即启动,此后Busybox会跳转到它的init进程开始执行

  14. 10.4 定制文件系统 • 10.4.1 定制应用程序 • 在定制嵌入式系统的系统应用程序时,如果把常用的应用程序的源码都下载来交叉编译,这一过程的工作量显然是很大的,而且非常繁琐。为了进一步减小所创建的根文件系统的尺寸,可以考虑使用下列工具包软件来替代某些标准的工具。 • 事实上使用Busubox来定制是一个不错的选择

  15. 10.4.2 配置应用程序自动启动 • 在Linux下配置应用程序自动启动大致有以下的3种方法。 • (1)在启动/etc/init.d/下添加启动脚本,创建/etc/rc.d/.../目录下的链接。 • (2)直接在/etc/rc.d/rc.local脚本中添加命令,该脚本应该在启动过程中调用 • (3)通过/linuxrc脚本直接启动,通常是在内核命令行参数中指定init=/program。

  16. Q&A www.farsight.com.cn

  17. 谢谢! www.farsight.com.cn

More Related