版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、、什么是文件系统 (Filesystem)文件系统是包括在一个磁盘(包括光盘、 软盘、闪盘及其它存储设备 )或分区的目录结构;一个可应用的磁盘设备可以包含一个或多个文件系统; 如果您想进入一个文件系统, 首先您 要做的是挂载 (mount) 文件系统;为了挂载 (mount) 文件系统,您必须指定一个挂载点。二、主要嵌入式采用的文件系统* Linux 中, rootfs 是必不可少的。 PC 上主要实现有 ramdisk 和直接挂载 HD(Harddisk , 硬盘 ) 上的根文件系统;嵌入式中一般不从 HD 启动,而是从 Flash 启动,最简单的方法 是将rootfs load至U RAM
2、的RAMDisk,稍复杂的就是直接从Flash读取的Cramfs,更复杂的是在Flash上分区,并构建JFFS2等文件系统。* RAMDisk将制作好的rootfs压缩后写入 Flash,启动的时候由Bootloader load 到RAM, 解压缩,然后挂载至 /。这种方法操作简单,但是在 RAM 中的文件系统不是压缩的,因此 需要占用许多嵌入式系统中稀有资源 RAM。ramdisk 就是用内存空间来模拟出硬盘分区 ,ramdisk 通常使用磁盘文件系统的压缩存放 在flash中,在系统初始化时,解压缩到SDRAM并挂载根文件系统,在linux系统中,ramdisk有 二种 ,一种就是可以格
3、式化并加载,在 linux 内核 2.0/2.2 就已经支持 ,其不足之处是大小固定 ;另一种是2.4的内核才支持,通过,ramfs来实现,他不能被格式化,但用起来方便,其大小随所需 要的空间增加或减少 ,是目前 linux 常用的 ramdisk 技术 .* initrd 是 RAMDisk 的格式, kernel 2.4 之前都是 image-initrd , Kernel 2.5 引入了 cpio-initrd ,大大简化了 Linux 的启动过程,附合 Linux 的基本哲学: Keep it simple, stupid(KISS). 不过 cpio-initrd 作为新的格式,还没
4、有经过广泛测试,嵌入式 Linux 中主要采 用的还是 image-initrd 。* Cramfs 是 Linus 写的很简单的文件系统, 有很好的压缩绿, 也可以直接从 Flash 上运行,不须load到RAM中,因此节约了RAM。但是Cramfs是只读的,对于需要运行时修改的目录 (如: /etc, /var, /tmp) 多有不便,因此,一般将这些目录做成 ramfs 等可写的 fs。* SquashFS是对Cramfs的增强。突破了 Cramfs的一些限制,在 Flash和RAM的使用量方面也具有优势。不过,据开发者介绍,在性能上可能不如 Cramfs。这也是一种新方法,在嵌入式系统
5、采用之前,需要经过更多的测试三、建一个包含所有文件的目录1。建一个目录 rootfs 用来装文件系统2。mkdir bin devetc lib procsbintmpusrvar3. ln -fs bin/busyboxlinuxrc( 使用 busybox)4. 到系统 /dev 把所有的 device 打一个包,拷贝到 dev 下面 ( 最省事的做法 );或者使用 mknod 来自己建所需要的 device, 我自己用的如下:crw-rw-rw- 1 root root 5, 1 2006-02-24 13:12 consolecrw-rw-rw- 1 root root 5, 64 2
6、006-02-24 13:12 cua0crw-rw-rw- 1 root root 63, 0 2006-02-24 13:12 dk0crw-rw-rw- 1 root root 63, 1 2006-02-24 13:12 dk1drwxr-xr-x 2 root root 4096 2006-02-24 13:12 flashbrw-rw-rw- 1 root root 3, 0 2006-02-24 13:12 hdacrw-rw-rw- 1 root root 36, 10 2006-02-24 13:12 ipseccrw-rw-rw- 1 root root 241, 0 20
7、06-02-24 13:12 ixNpecrw-rw-rw- 1 root root 1, 2 2006-02-24 13:12 kmemcrw-rw-rw- 1 root root 126, 0 2006-02-24 13:12 ledmanlrwxrwxrwx 1 root root 16 2007-09-19 14:08 log -> /tmp/var/log/logcrw-rw-rw- 1 root root 1, 1 2006-02-24 13:12 memcrw-rw-rw- 1 root root 90, 0 2006-02-24 13:12 mtd0brw-rw-rw-
8、1 root root 31, 0 2006-02-24 13:12 mtdblock0brw-rw-rw- 1 root root 31, 1 2006-02-24 13:12 mtdblock1brw-rw-rw- 1 root root 31, 2 2006-02-24 13:12 mtdblock2brw-rw-rw- 1 root root 31, 3 2006-02-24 13:12 mtdblock3brw-rw-rw- 1 root root 31, 4 2006-02-24 13:12 mtdblock4brw-rw-rw- 1 root root 31, 5 2006-02
9、-24 13:12 mtdblock5brw-rw-rw- 1 root root 31, 6 2006-02-24 13:12 mtdblock6crw-rw-rw- 1 root root 90, 1 2006-02-24 13:12 mtdr0crw-rw-rw- 1 root root 1, 3 2006-02-24 13:12 nullcrw-rw-rw- 1 root root 108, 0 2006-02-24 13:12 pppcrw-r-r- 1 root root 5, 2 2006-03-29 15:56 ptmxdrwxr-xr-x 2 root root 4096 2
10、006-03-29 15:56 ptscrw-rw-rw- 1 root root 2, 0 2006-02-24 13:12 ptyp0brw-rw-rw- 1 root root 1, 0 2006-02-24 13:12 ram0crw-rw-rw- 1 root root 1, 8 2006-02-24 13:12 randomcrw-rw-rw- 1 root root 5, 0 2006-02-24 13:12 ttycrw-rw-rw- 1 root root 4, 0 2006-02-24 13:12 tty0crw-rw-rw- 1 root root 3, 0 2006-0
11、2-24 13:12 ttyp0crw-rw-rw- 1 root root 4, 64 2006-02-24 13:12 ttyS0crw-rw-rw- 1 root root 1, 9 2006-02-24 13:12 urandomcrw-rw-rw- 1 root root 1, 5 2006-02-24 13:12 zero 举例: mknod console c 5 1 这样 crw-rw-rw- 1 root root 5, 1 2006-02-24 13:12 console5。将编译好的 busybox 拷贝到 /bin 下面,除了 busybox 外,所有其他的命令都是他的
12、 linkash chgrp clear dd echo fgrepgzipiplsmodprobe mv ping pwdsedstty tar true zcatbusyboxchmodcpdfegrepgrep hostname kill mkdir more netstat ping2file rmsh sync tftpumount cat chown date dmesg false gunzipifconfiglnmknod mount pidofpsrmdir sleep sysinfo touch uname所有的命令你可以在 busybox 下面用 make menucon
13、fig 来增减6。同样 /sbin 下面也是 busybox 的 linkhalt ifconfiginitinsmodklogdlosetuplsmodmkswapmodprobe reboot rmmod route swapoffswapon7。同样 /usr/bin 下面也是 busybox 的 linkbasenamedirnameenv free id logger reset tail trtty uptime which xargsawk cut du expr head killallmkfifo sort test tracerouteuniqwcwhoami yes上面几
14、乎是最全的 link ,各个看官可以酌情删减,不过link 也不占什么空间!8。同样 /usr/sbin 下面放着所有编译完的可执行文件,具体就不多说了9。非常重要之 /lib ,务必重视找到你编译环境的 target 目录,把需要的 lib 文件先用 strip 压縮 (非 target 目录下的, 而 已编译环境提供的 strip) ,先把最基本的 libc, ld 等等,必须同样做跟 target/lib 里面一样的 link。然后根据特定的应用加相应的lib,不要把不用的加进去,lib比较占空间。10。在 /etc 下面加上需要的配置文件,最最重要的是rcS#!/bin/shexpor
15、t PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/sbin/scriptsUTC=yesmount -n -t procproc /procmount -n -t ramfsramfs /tmpmount -n -t devptsdevpts /dev/pts# build var directories/bin/mkdir -m 0777 /tmp/var/bin/mkdir -m 0777 /var/lock/bin/mkdir -m 0777 /var/log/bin/mkdir -m 0777 /var/run/bin/mkdir -m 0777 /v
16、ar/tmp#/bin/mkdir -m 0777 /tmp/etc#/bin/cp -a /usr/etc/* /etc#/bin/cp -a /usr/dev/* /dev/# loads the NPE ethernet modules into the kernel.insmod /lib/modules//intel/ixp400.ko# Firmware code for NPE Engine.cat /etc/IxNpeMicrocode.dat > /dev/ixNpeinsmod /lib/modules//intel/ixp400_et
17、h.ko netdev_max_backlog=500insmod /lib/modules/led.koinsmod /lib/modules/push_button.ko 下面的具体应用没有再举例加上了,这个是系统 init 必须的。其他的情况类似如此了,下面里面给了一个lunksys的GPL项目的target。四、生成一个 ramdisk#!/bin/shMODULE_NAME=ramdiskRAMPATH='pwd'TMPPATH=$RAMPATH/tmpSOURCE=$RAMPATH/./targetif ! -d $TMPPATH thenmkdir $TMPPAT
18、Hfiif 'whoami' != 'root' then echo "You should run the shell as root, Please rerun as a root."echo "Aborting."exit 1fi# Clear in tmp pathrm -rf $TMPPATH/tmpmntrm -rf $TMPPATH/ramrootfsmkdir $TMPPATH/tmpmnt# Clear the old ramdiskrm -f $RAMPATH/$MODULE_NAME# Make a temp file which size is suitabledd if=/dev/zero of=$TMPPATH/ramrootfsbs=1k count=6144# Create a ext2 filesystemmk
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广西贵港桂平市社步镇卫生院招聘编外工作人员的1人备考题库含答案详解(培优)
- 2026浙江温州外国语高级中学(温州中学国际部)招聘经济教师1人备考题库含答案详解(夺分金卷)
- 2026内蒙古兴安盟乌兰浩特市妇幼保健计划生育服务中心招聘控制数人员9人备考题库及答案详解1套
- 2026海南三亚市全国选聘市投资促进局局长1人备考题库附答案详解(综合题)
- 2026安徽芜湖市人才发展集团代招聘7人备考题库(三)含答案详解(培优)
- 2026中铁工程设计咨询集团有限公司社会招聘10人备考题库含答案详解(研优卷)
- 2026对外经济贸易大学非事业编工作人员招聘1人备考题库参考答案详解
- 206中国科学院东北地理与农业生态研究所大豆功能基因组学学科组招聘1人备考题库含答案详解(预热题)
- 2026安徽新媒体集团社会招聘3人备考题库有答案详解
- 2026江苏省住房和城乡建设厅直属事业单位江苏省城乡发展研究中心招聘高层次人才备考题库及参考答案详解一套
- 第22课 现代科技革命和产业发展
- 大学生国家安全教育的意义
- 第4章 商品发布:创建精致商品页面提高商品转化率
- 盾构通用环管片选型技术课件
- 沈阳天峰生物制药有限公司替代进口高端磷脂产业化项目环境影响报告书
- Unit+4+Extended+reading+课件【高效备课精研+知识精讲提升】 牛津译林版(2020)高中英语必修第三册
- GB/T 2411-2008塑料和硬橡胶使用硬度计测定压痕硬度(邵氏硬度)
- GB/T 23827-2021道路交通标志板及支撑件
- GB/T 11763-2008棉籽
- 小型构件预制厂管理制度
- 过程能力指数cp与cpk及cmk培训教材课件
评论
0/150
提交评论