




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1嵌入式文件系统陈文智 浙江大学计算机学院2005年4月2提纲l1、嵌入式linux文件系统简介 l2、linux文件系统框架和特性 l3、嵌入式文件系统实验l实验一:建立文件系统 l实验二:nfs文件系统实验 l实验三:samba介绍与应用 31. 嵌入式linux文件系统简介l嵌入式文件系统与桌面文件系统有较大区别 :嵌入式文件系统要为嵌入式系统的设计目的服务,不同用途的嵌入式操作系统下的文件系统在许多方面各不相同。l嵌入式linux常用文件系统:第二版扩展文件系统(ext2fs)、jffs和yaffs41.1嵌入式文件系统的设计目标 l嵌入式文件系统的设计目标包括:l使用简单方便 l安全
2、可靠 l实时响应 l接口标注的开放性和可移植性l可伸缩性和可配置性 l开放的体系结构l资源有效性l功能完整性l热插拔l支持多种文件类型 51.2 嵌入式linux常用文件系统 lflash memory简介 lflash memory上的两种技术lnand:串行;顺序读取;适合大容量;通常需mtdlnor :并行;随机读取;适合数据或程序存储;xip;lxsbase开发平台上所使用的闪存 lintel strataflash memory 28f128j3a lext2fs 、jffs和yaffs lext、 ext2、xia、vfat、minix、msdos、umsdos、 proc、smb
3、、ncp、iso9660、sysv、hpfs、affs、ufs、vfs等 6l第二版扩展文件系统(ext2fs)的优点 lext2fs支持达4 tb的内存(ext是2g)。lext2fs文件名称最长可以到1012个字符。l当创建文件系统时,管理员可以选择逻辑块的大小(通常大小可选择 1024、2048和4096字节)。lext2fs实现快速符号链接:不需要为此目的而分配数据块,并且将目标名称直接存储在索引节点表中,这使性能有所提高,特别是在速度上。7ljffs和yaffs ljffs文件系统主要针对nor flash设计,是一种基于flash的日志文件系统。 ljffs2的底层驱动主要完成文件
4、系统对flash芯片的访问控制,如读、写、擦除操作。 lyaffs主要针对nand flash设计,和jffs相比它减少了一些功能。自带nand芯片驱动,并且为嵌入式系统提供了直接访问文件系统的api。lyaffs2是yaffs的改进版本。82. linux文件系统框架和特性 l现代操作系统都提供多种访问存储设备的方法 llinux文件系统有两条独立控制设备驱动的途径 :l通过设备驱动的接口 l通过文件管理器接口 9linux文件系统框架 103. 文件系统实验l实验一 建立文件系统 l建立jffs2文件系统 l建立ramfs文件系统 l实验二 nfs文件系统实验 l实验三 samba介绍与应
5、用 11实验一:建立文件系统jffs2(1)ljffs2在linux中有两种使用方式 :l作为根文件系统 l作为普通文件系统在系统启动后被挂载l目录采用ramfs,当系统断电后,该目录所有的数据都会丢失。llinux下常用文件系统结构 :1213实验一:建立文件系统jffs2(2)l1)内核配置 lgeneral setup项设成 “root=1f03 rw console=ttys0,115200 init=/linuxrc” l通过mtd驱动在menuconfig中调用flash memory设备驱动 l选择 cfi flash device mapped on the xsbase255
6、 pxa255 board 14实验一:建立文件系统jffs2(3)l2)jffs2映像生成 ljffs2 image通过 mkfs.jffs2 工具创建成 image lmkfs.jffs2 用法:-e 选项确定闪存的擦除扇区大小(通常是64k)。-p 选项用来在映像的剩余空间用零填充。-o 选项用于输出文件,这里是rootfs.imgl利用bootloader将生成的 rootfs.img下载后写入flash l再次重起开发板,内核就能加载jffs2作为根文件系统 ./mkfs.jffs2 o rootfs e 0 x400000 r root_xsbase p -l15实验一:建立文件系
7、统ramfs(1)lramfs是内存文件系统,它工作于虚拟文件系统(vfs)层 lramfs是一个非常巧妙的,利用vfs自身结构而形成的内存文件系统 16实验一:建立文件系统ramfs(2)l1)使用主机的loopback设备来实现loopback文件系统 l用dd if=/dev/zero of=ramdisk_img bs=1k count=8192 指令创建一个连续的8m大小的空间 l将此空间用 mke2fs格式化l为了对格式化的空间进行mount, 创建一个目录/tmp l在tmp目录里复制或创建设置文件, util, library等l将工作目录进行umount,再用gzip压缩,则
8、生成 ramdisk_img.gz文件l将此加载到 bootloader,则新的ramdisk可用作根文件系统。17实验一:建立文件系统ramfs(3)l修改一些内核配置lxsbase255中 setup_initrd()的 0 xa1000000 成为 sdram 的 ramdisk 地址 ,ramdisk 要下载到bootloader中的这个地址 lconfig_blk_dev_ram_size是 menuconfig中设定的 “default ram disk size” 大小l修改default kernel command string为:“root=/dev/ram rw cons
9、ole=ttys0,115200 init=/linuxrc”。用于重新引导系统。181920实验二 nfs文件系统实验 (1)lnfs是用于在不同机器,不同操作系统之间通过网络互相分享文件 的l建立nfs开发环境的工作分为两个方面:配置nfs服务器和配置客户端 l基本的命令格式lmount的基本命令格式如下:lumount的基本命令格式:mount -t type -rv -o option server:pathname /mount_point umount -dflnrv dir | device . 21实验二 nfs文件系统实验 (2)l配置nfs服务端l在 host pc上打开
10、/etc/exports 文件,并进行如下设置 :l把/mnt/nfs设置完成后重新开始nfs deamon rootxsbase home# vi /etc/exports/mnt/nfs (rw,no_root_squash)rootxsbase home# /etc/rc.d/init.d/nfs stoprootxsbase home# /etc/rc.d/init.d/nfs start22实验二 nfs文件系统实验(3)l配置nfs客户端lnfs客户端是开发板,所以要让开发板上的内核支持nfs,必须重新配置内核生成zimage镜像文件,并下载到板子上。 l通过 make menuc
11、onfig 指令在kernel设置窗进行nfs设置lmenuconfig 窗口打开后,确认nfs设置是否被选上 l重新编译内核,新的内核下就可以使用nfs命令了 file systems -network file systems - nfs file system support* provide nfsv3 client support root file system on nfs 23实验二 nfs文件系统实验(4)l挂载nfs文件系统 l开发板上进行mount操作,把pc上的某个目录挂载上来: 把host pc的/mnt/nfs目录mount到开发板的/mnt目录下使用。ip 192
12、.168.1.1是pc的ip。l接下来就可以在新mount上来的目录下做各种操作,挂载工作完成 rootxsbase255# mount t nfs :/mnt/nfs /mntrootxsbase255# cd /mnt24实验二 nfs文件系统实验(5)l如果出现没法mount上去的情况,可以按照以下步骤进行检查:l用 rpcinfo -p server_name 去查看此server是否存在l用 rpcinfo -u server_name mount 查看mountd daemon 是否有在server上执行 l假如server 都没问题,检查 server 和
13、client 之间的网线连接 l在client上用ps ax 查看portmap和对应的nfs daemons是否运行 l打开服务端pc上的/var/lib/nfs/rmtab文件,清空内容 l重起nfs服务 25实验二 nfs文件系统实验(6)l加载nfs为根文件系统 l1)重新配置内核 l在general setup里面重新设置default kernel command string的值 l在network file systems选项中需要选中“root file system on nfs” l在block devices选项中把“ram disk support”选项去除,选中“n
14、etwork block device support” l配置完内核,重新make zimage,生成新的镜像 26272829l2)配置服务端pc l/tftpboot目录下新增子目录pxa255,用作新的根文件系统 l把原文件系统下的文件拷贝到/tftpboot/pxa255中l重新编辑/etc/exports文件如下:l重新启动nfs服务$ vi /etc/exports/tftpboot/pxa255 (rw,no_root_squash)30l3)重起开发板,使用tftp协议加载新的内核镜像, 系统启动后,使用boot命令直接引导l4)确认新的根目录是否是pc端的/tftpboot
15、/pxa255目录 31实验三 samba介绍与应用 lsamba介绍 lsamba是一组软件包,使linux支持smb(服务消息块)协议,该协议由tcp/ip实现,它是windows网络文件和打印共享基础 lsamba的核心是两个守护进程smbd和nmbd程序,在服务器启动到停止期间持续运行。smbd进程的作用是处理到来的smb软件包,为使用该软件包的资源与linux进行协商,nmbd进程使其它主机(或工作站)能浏览linux服务器。 l一个完整的smb.conf一般由global settings和share definitions两部分组成 32思考:使用busybox构建根文件系统 l
16、busybox 是 debian gnu/linux 的大名鼎鼎的 bruce perens 首先开发,。后来又有许多 debian developers 贡献力量,这其中尤推 busybox 目前的维护者 erik andersen,他患有癌症,可却是一名优秀的自由软件开发者。busybox包括一个迷你的 vi 编辑器,系统不可或缺的 /sbin/init 程序,以及其他诸如 sed, ifconfig, halt, reboot, mkdir, mount, ln, ls, echo, cat . 等等,大小也不过 100k 左右。而且,用户还可以根据自己的需要,决定到底要在 busybo
17、x 中编译进哪几个应用程序的功能。busybox 的体积可以进一步缩小。busybox支持多种体系结构,可以静态或动态链接glic或者uclibc库,以满足不同的需要,也可以修改busybox默认的编译配置以移除不想使用的命令的支持。 33lsamba的启动与停止l在缺省情况下,red hat linux的samba在启动时就已投入运行l也可利用系统脚本来手工启动和停止samba l# /etc/rc.d/init.d/smb start (启动samba) l# /etc/rc.d/init.d/smb stop (停止samba) 34定制samba(1)l定制samba l用户通过对sm
18、b.conf文件进行vi编辑,可以添加、删除及修改smba提供的多种服务。l向用户开放 linux文件资源,只有读权限。lpublic lcomment=public stuff lpath = /lpublic = yeslwritable = nolprintale = nolwrite list = staff 35定制samba(2)l共享cd-roml修改smb.conf之前,先安装光驱,可执行下列命令:l# mount - t iso9660 /dev/cdrom /mnt/cdroml然后定制samba,内容如下:lcdromlpath = /mnt/cdromlready on
19、ly = yeslpublic= yes36定制samba(3)l为多个用户提供服务lcomment = userlsstuff,user2sstuff,user3sstufflpath = /home/user1 (用户userl的主目录)lvalid users = user1 user2 user3lpublic = no (除了user1,user2,user3外不向用户开放)lwritable = yes (三用户对/home/user1中的文件有写权限)lprintable = yes (允许打印)37定制samba(4)l向用户开放/dev目录,浏览设备类型。ldevlcomment = open and browse the /dev directorylpath = /dev (路径为/dev)lready only = yes (只读)lpublic = yes (共享)38samba实验(1)l编译sambal解压samba-3.0.0.tar.gz压缩包 l设置环境变量: $ export ld_libary_path=/usr/local/hybus-arm-linux-r1.1/lib/ $ export cppflags=-i/usr/local/hybus-arm-linux-r1.1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 材料购销合同解除协议书
- 中国玻璃版画行业市场前景预测及投资价值评估分析报告
- 佛山店铺买卖合同协议书
- 2025年弹力背心项目投资可行性研究分析报告
- 书本购销合同协议书范本
- 2025年电力调度与管理自动化系统项目评估报告
- 2025年县蔬菜产业发展及批发市场调查报告完整版
- 陕西黄陵煤矿合同协议书
- 2025年抽取式卫生洁面巾行业深度研究分析报告
- 商标买卖合同协议书模板
- 2024年江西省高考物理试卷真题(含答案解析)
- 基于单片机的汽车智能照明系统-毕业设计(论文)
- 【民族非物质文化遗产的保护与传承探究的国内外文献综述3000字】
- 2024年河南住院医师-河南住院医师口腔修复科考试近5年真题集锦(频考类试题)带答案
- 广州市主要河道采砂技术方案
- 中国基建课件教学课件
- EPC光伏项目投标方案(技术方案)
- 2023企业数字化转型建设方案数据中台、业务中台、AI中台
- 第十三届全国交通运输行业职业技能竞赛试题一
- 名人-陶渊明2-人物介绍
- 财务管理委托代理会计服务 投标文件(技术方案)
评论
0/150
提交评论