




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 嵌入式文件系统 陈文智浙江大学计算机学院2012年11月 浙江大学 2 提纲 1 嵌入式Linux文件系统简介2 Linux文件系统框架和特性3 嵌入式文件系统实验实验一 建立文件系统实验二 NFS文件系统实验实验三 Samba介绍与应用 3 1 嵌入式Linux文件系统简介 嵌入式文件系统与桌面文件系统有较大区别 嵌入式文件系统要为嵌入式系统的设计目的服务 不同用途的嵌入式操作系统下的文件系统在许多方面各不相同 嵌入式Linux常用文件系统 第二版扩展文件系统 Ext2fs JFFS和YAFFS 4 1 1嵌入式文件系统的设计目标 嵌入式文件系统的设计目标包括 使用简单方便安全可靠实时响应接口标注的开放性和可移植性可伸缩性和可配置性开放的体系结构资源有效性功能完整性热插拔支持多种文件类型 5 1 2嵌入式Linux常用文件系统 FlashMemory简介FlashMemory上的两种技术NAND 串行 顺序读取 适合大容量 通常需MTDNOR 并行 随机读取 适合数据或程序存储 XIP Xsbase开发平台上所使用的闪存IntelStrataFlashMemory28F128J3AExt2fs JFFS和YAFFSext ext2 xia vfat minix msdos umsdos proc smb ncp iso9660 sysv hpfs affs ufs vfs等 6 第二版扩展文件系统 Ext2fs 的优点Ext2fs支持达4TB的内存 Ext是2G Ext2fs文件名称最长可以到1012个字符 当创建文件系统时 管理员可以选择逻辑块的大小 通常大小可选择1024 2048和4096字节 Ext2fs实现快速符号链接 不需要为此目的而分配数据块 并且将目标名称直接存储在索引节点表中 这使性能有所提高 特别是在速度上 7 JFFS和YAFFSJFFS文件系统主要针对NORFLASH设计 是一种基于Flash的日志文件系统 JFFS2的底层驱动主要完成文件系统对Flash芯片的访问控制 如读 写 擦除操作 YAFFS主要针对NANDFLASH设计 和JFFS相比它减少了一些功能 自带NAND芯片驱动 并且为嵌入式系统提供了直接访问文件系统的API YAFFS2是YAFFS的改进版本 8 2 Linux文件系统框架和特性 现代操作系统都提供多种访问存储设备的方法Linux文件系统有两条独立控制设备驱动的途径 通过设备驱动的接口通过文件管理器接口 9 Linux文件系统框架 10 3 文件系统实验 实验一建立文件系统建立JFFS2文件系统建立RAMFS文件系统实验二NFS文件系统实验实验三Samba介绍与应用 11 实验一 建立文件系统JFFS2 1 JFFS2在Linux中有两种使用方式 作为根文件系统作为普通文件系统在系统启动后被挂载目录采用Ramfs 当系统断电后 该目录所有的数据都会丢失 Linux下常用文件系统结构 12 13 实验一 建立文件系统JFFS2 2 1 内核配置GeneralSetup项设成 root 1f03rwconsole ttyS0 115200init linuxrc 通过MTD驱动在menuconfig中调用flashmemory设备驱动选择CFIFlashdevicemappedontheXSBASE255PXA255board 14 实验一 建立文件系统JFFS2 3 2 JFFS2映像生成Jffs2image通过mkfs jffs2工具创建成imagemkfs jffs2用法 e选项确定闪存的擦除扇区大小 通常是64K p选项用来在映像的剩余空间用零填充 o选项用于输出文件 这里是rootfs img利用bootloader将生成的rootfs img下载后写入flash再次重起开发板 内核就能加载JFFS2作为根文件系统 15 实验一 建立文件系统RAMFS 1 RAMFS是内存文件系统 它工作于虚拟文件系统 VFS 层RAMFS是一个非常巧妙的 利用VFS自身结构而形成的内存文件系统 16 实验一 建立文件系统RAMFS 2 1 使用主机的loopback设备来实现loopback文件系统用ddif dev zeroof ramdisk imgbs 1kcount 8192指令创建一个连续的8M大小的空间将此空间用mke2fs格式化为了对格式化的空间进行mount 创建一个目录 tmp在tmp目录里复制或创建设置文件 util library等将工作目录进行umount 再用gzip压缩 则生成ramdisk img gz文件将此加载到bootloader 则新的ramdisk可用作根文件系统 17 实验一 建立文件系统RAMFS 3 修改一些内核配置XSBase255中setup initrd 的0 xA1000000成为SDRAM的ramdisk地址 ramdisk要下载到Bootloader中的这个地址CONFIG BLK DEV RAM SIZE是menuconfig中设定的 DefaultRAMdisksize 大小修改DefaultKernelcommandstring为 root dev ramrwconsole ttyS0 115200init linuxrc 用于重新引导系统 18 19 20 实验二NFS文件系统实验 1 NFS是用于在不同机器 不同操作系统之间通过网络互相分享文件的建立NFS开发环境的工作分为两个方面 配置NFS服务器和配置客户端基本的命令格式Mount的基本命令格式如下 Umount的基本命令格式 21 实验二NFS文件系统实验 2 配置NFS服务端在HostPC上打开 etc exports文件 并进行如下设置 把 mnt nfs设置完成后重新开始NFSdeamon 22 实验二NFS文件系统实验 3 配置NFS客户端NFS客户端是开发板 所以要让开发板上的内核支持NFS 必须重新配置内核生成zImage镜像文件 并下载到板子上 通过makemenuconfig指令在kernel设置窗进行NFS设置menuconfig窗口打开后 确认NFS设置是否被选上重新编译内核 新的内核下就可以使用nfs命令了 23 实验二NFS文件系统实验 4 挂载NFS文件系统开发板上进行mount操作 把PC上的某个目录挂载上来 把HostPC的 mnt nfs目录mount到开发板的 mnt目录下使用 Ip192 168 1 1是PC的ip 接下来就可以在新mount上来的目录下做各种操作 挂载工作完成 24 实验二NFS文件系统实验 5 如果出现没法mount上去的情况 可以按照以下步骤进行检查 用rpcinfo pserver name去查看此server是否存在用rpcinfo userver namemount查看mountddaemon是否有在server上执行假如server都没问题 检查server和client之间的网线连接在client上用psax查看portmap和对应的NFSdaemons是否运行打开服务端PC上的 var lib nfs rmtab文件 清空内容重起NFS服务 25 实验二NFS文件系统实验 6 加载NFS为根文件系统1 重新配置内核在Generalsetup里面重新设置Defaultkernelcommandstring的值在NetworkFileSystems选项中需要选中 RootfilesystemonNFS 在Blockdevices选项中把 RAMdisksupport 选项去除 选中 Networkblockdevicesupport 配置完内核 重新makezImage 生成新的镜像 26 27 28 29 2 配置服务端PC tftpboot目录下新增子目录pxa255 用作新的根文件系统把原文件系统下的文件拷贝到 tftpboot pxa255中重新编辑 etc exports文件如下 重新启动NFS服务 30 3 重起开发板 使用tftp协议加载新的内核镜像 系统启动后 使用boot命令直接引导4 确认新的根目录是否是PC端的 tftpboot pxa255目录 31 实验三Samba介绍与应用 Samba介绍Samba是一组软件包 使Linux支持SMB 服务消息块 协议 该协议由TCP IP实现 它是windows网络文件和打印共享基础samba的核心是两个守护进程smbd和nmbd程序 在服务器启动到停止期间持续运行 Smbd进程的作用是处理到来的SMB软件包 为使用该软件包的资源与Linux进行协商 nmbd进程使其它主机 或工作站 能浏览Linux服务器 一个完整的smb conf一般由Globalsettings和shareDefinitions两部分组成 32 思考 使用BusyBox构建根文件系统 Busybox是DebianGNU Linux的大名鼎鼎的BrucePerens首先开发 后来又有许多Debiandevelopers贡献力量 这其中尤推busybox目前的维护者ErikAndersen 他患有癌症 可却是一名优秀的自由软件开发者 Busybox包括一个迷你的vi编辑器 系统不可或缺的 sbin init程序 以及其他诸如sed ifconfig halt reboot mkdir mount ln ls echo cat 等等 大小也不过100K左右 而且 用户还可以根据自己的需要 决定到底要在busybox中编译进哪几个应用程序的功能 busybox的体积可以进一步缩小 BusyBox支持多种体系结构 可以静态或动态链接glic或者uclibc库 以满足不同的需要 也可以修改BusyBox默认的编译配置以移除不想使用的命令的支持 33 samba的启动与停止在缺省情况下 RedHatLinux的samba在启动时就已投入运行也可利用系统脚本来手工启动和停止samba etc rc d init d smbstart 启动samba etc rc d init d smbstop 停止samba 34 定制samba 1 定制samba用户通过对smb conf文件进行vi编辑 可以添加 删除及修改smba提供的多种服务 向用户开放Linux文件资源 只有读权限 public comment publicstuffpath public yeswritable noprintale nowritelist staff 35 定制samba 2 共享CD ROM修改smb conf之前 先安装光驱 可执行下列命令 mount tiso9660 dev cdrom mnt cdrom然后定制samba 内容如下 cdrom path mnt cdromreadyonly yespublic yes 36 定制samba 3 为多个用户提供服务comment userl sstuff user2 sstuff user3 sstuffpath home user1 用户userl的主目录 validusers user1user2user3public no 除了user1 user2 user3外不向用户开放 writable yes 三用户对 home user1中的文件有写权限 printable yes 允许打印 37 定制samba 4 向用户开放 dev目录 浏览设备类型 dev comment openandbrowsethe devdirectorypath dev 路径为 dev readyonly yes 只读 public yes 共享 38 Samba实验 1 编译Samba解压samba 3 0 0 tar gz压缩包设置环境变量 39 Samba实验 2 运行configure修改include config h文件 添加 defineHAVE GETTIMEOFDAY TZ1运行make生成可执行文件 40 Samba实验 3 将Samba应用到开发板在将要烧到flash的文件系统下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水库应急排洪方案
- 水粉基础知识培训课件
- 施工区域物品堆放与管理方案
- 混凝土耐久性检测与技术管理方案
- 糖尿病口腔医41课件
- 智算中心数据集成与清洗方案
- 水的奥秘课件
- 医学模式及其转变73课件
- 新教材2025人教版八年级上册 全部单词默写版
- 2025版电影制片人投资合作协议范本
- 专业公路工程知识考察试题及答案
- 陕西西安铁一中学2025届英语八下期末检测试题含答案
- 2025上半年高级软件水平考试《系统分析师(案例分析)》真题及解析
- 江西国泰集团股份有限公司考试真题2024
- 《电解质失衡课件讲解》课件
- 蜘蛛人作业培训
- 施工照片拍摄培训课件
- 网络安全运维培训内容
- 广西桉树造林技术改进及病虫害防治措施深入研究
- 经皮肾术后护理试题及答案
- 2024年内科护理学(第七版)期末考试复习题库(含答案)
评论
0/150
提交评论