首页 第三部分 文件系统

第三部分 文件系统

举报
开通vip

第三部分 文件系统null第三部分 Linux文件系统第三部分 Linux文件系统第一章 Linux文件系统简介第一章 Linux文件系统简介基本概念基本概念文件系统建立在块设备之上 一个物理存储设备可以划分为一个或多个分区 每个分区可以包含一个完整的文件系统 fdisk分区程序文件系统格式化和挂载文件系统格式化和挂载以ext2文件系统为例: 格式化命令mke2fs 如 mke2fs /dev/sda1 挂载命令mount 如 mount -t ext2 /dev/sda1 /mnt 主要的文件系统类型(1)-ext3主...

第三部分 文件系统
null第三部分 Linux文件系统第三部分 Linux文件系统第一章 Linux文件系统简介第一章 Linux文件系统简介基本概念基本概念文件系统建立在块设备之上 一个物理存储设备可以划分为一个或多个分区 每个分区可以包含一个完整的文件系统 fdisk分区程序文件系统格式化和挂载文件系统格式化和挂载以ext2文件系统为例: 格式化命令mke2fs 如 mke2fs /dev/sda1 挂载命令mount 如 mount -t ext2 /dev/sda1 /mnt 主要的文件系统类型(1)-ext3主要的文件系统类型(1)-ext3对ext2的扩展,主要增加了日志功能 日志是对文件系统变化的记录 在系统意外关闭时,可以从日志记录恢复文件系统 避免耗时的文件系统连续性检查 兼容ext2主要的文件系统类型(2)-ReiserFS主要的文件系统类型(2)-ReiserFS与ext3类似,都是日志型的文件系统 提供API,实现高性能的原子文件系统操作 Reiser4主要的文件系统类型(3)-JFFS2主要的文件系统类型(3)-JFFS2主要用于NOR Flash Flash的特性 -Flash擦写效率低(需要整块擦除),且掉电时容易造成数据损坏 -Flash有预定的擦写寿命(10万次),多次擦写同一位置容易过早使Flash失效 JFFS2针对Flash的实现 -日志型文件系统 -采取损耗平衡技术,每次写入时都会尽量使写入的位置均匀分布 制作工具mkfs.jffs2 内核需要支持JFFS2 主要的文件系统类型(4)-cramfs主要的文件系统类型(4)-cramfs用于ROM的文件系统,只读 压缩存储 制作工具mkcramfs 挂载 如 mount -o loop cramfs.image /mnt主要的文件系统类型(5)-NFS主要的文件系统类型(5)-NFS文件系统目录存在于NFS服务器上,客户端将该文件系统挂载到本地的目录上 挂载 mount -t nfs 192.168.10.9:/home/user /mnt 适合于嵌入式程序的开发和调试 将NFS作为根文件系统 -内核配置项 NFS file system support Root file system on NFS 通过Bootloader传递内核参数 主要的文件系统类型(6)-procfs主要的文件系统类型(6)-procfs提供正在运行的系统信息、内核信息等 挂载 mount -t proc none /proc 每个运行的进程都有对应的以PID命名的目录项,目录中包含cmdline(命令行),maps(内存映射)等进程运行时信息 一些系统工具从proc文件系统中读取信息,如ps,top,free,uptime,monut等 主要的文件系统类型(7)-sysfs主要的文件系统类型(7)-sysfs包含系统中的设备和驱动程序的信息 挂载 mount -t sysfs none /sys systool工具(将sysfs下的设备信息以可读性较好的方式显示)主要的文件系统类型(8)-ramfs,tmpfs主要的文件系统类型(8)-ramfs,tmpfs内存中的文件系统,数据在掉电或重启后丢失 可以根据需要改变大小 挂载 mount -t tmpfs none /tmp 可用于保存系统运行时的临时数据文件等,重启后自动清空 主要的文件系统类型(9)-YAFFS主要的文件系统类型(9)-YAFFS主要用于NAND Flash YFFS2针对Flash的实现 -日志型文件系统 -采取损耗平衡技术,每次写入时都会尽量使写入的位置均匀分布 制作工具mkyaffsimage 需要内核支持 第二章 MTD子系统第二章 MTD子系统什么是MTD什么是MTD内存技术设备(Memory Technology Device) 将底层设备的复杂性同上层数据的组织和存储分离 启用MTD启用MTD内核配置选项 CONFIG_MTD CONFIG_MTD_CHAR CONFIG_MTD_BLOCK CONFIG_MTD_MTDRAM CONFIG_MTD_TOTAL_SIZE CONFIG_MTD_ERASE_SIZEMTD设备使用 MTD设备使用 MTD RAM驱动加载 insmod MTDblock insmod MTDram JFFS2文件系统的烧写和加载 insmod jffs2 dd if=jffs2.bin of=/dev/MTDblock0 mkdir /mnt/flash mount -t jffs2 /dev/MTDblock0 /mnt/flash ls -l /mnt/flash 保存修改 dd if=/dev/MTDblock0 of=./new_jffs2.binMTD的配置(1)MTD的配置(1)设备板flash配置MTD步骤 -指定分区 -指定flash的类型和位置 -配置flash驱动 -配置内核驱动MTD的配置(2)MTD的配置(2)指定flash分区 内核配置选项 -MTD partitioning support 传递分区信息给内核的三种方式 -Redboot分区 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 解析 -内核命令行参数传递 mtdparts=MainFlash:384K(Redboot),4K(config),128K(FIS),-(unused) -映射驱动程序 drivers/MTD/maps/ 显示分区信息 cat /proc/mtd MTD的配置(3)MTD的配置(3)flash驱动程序 -CFI(通用闪存接口,Common Flash Interface)或JEDEC接口标准,可以检测制造商、类型、容量、块大小等flash信息 -内核配置选项 RAM/ROM/Flash chip drivers -flash驱动目录drivers/MTD/chips/MTD的配置(4)MTD的配置(4)flash的初始化 主要数据结构: struct platform_device struct resource struct platform_data flash设备注册 platform_add_devices()第三章 Busybox第三章 BusyboxBusybox简介Busybox简介提供命令行程序,“嵌入式Linux的瑞士军刀” 小巧高效,适合资源受限的嵌入式平台 模块化、可配置、裁剪,配置过程和内核相似 支持部分常用的命令选项 命令行程序包含在一个可执行文件中,通过软链接建立各个单独的命令Busybox的使用Busybox的使用解压缩源码包 make menuconfig -Build Options选项中可以选择静态链接(static)或动态链接,以及是否使用交叉编译 -选择其他需要的命令行工具 make CROSS_COMPILE=arm-unknown-linux-gnu- -编译完成后在源码的根目录下生成busybox可执行文件Busybox的操作Busybox的操作可以直接执行,如 #busybox(列出当前支持的所有命令) #busybox ls(执行ls命令) 通过软链接执行,如 #ln -s busybox ls #ls busybox会通过判断argv[0]参数来决定执行哪个命令 Busybox的init程序Busybox的init程序内核加载根文件系统后查找init程序(如/sbin/init、/bin/init等)或内核命令行参数中指定的“init=”选项 init程序解析/etc/inittab文件,其中指定了系统启动时应执行的初始化脚本和其他配置 Busybox的init程序具有同样的功能,如/etc/inittab不存在,使用默认的inittab 通常Busybox的init程序执行的初始化脚本是/etc/init.d/rcSBusybox的安装Busybox的安装安装即创建符号链接,之后不需要每次输入命令时都要输入busybox make CONFIG_PREFIX=“目标目录” install -将busybox可执行程序和符号链接安装到目标目录下,如嵌入式linux设备上的根文件系统的/bin目录,只安装当前busybox配置中支持的命令 也可以在运行时执行 busybox –install –s (需要先加载proc文件系统)课后练习:NFS根文件系统配置课后练习:NFS根文件系统配置服务器的配置 -软件包安装 nfs-kernel-server nfs-common portmap -目录导出 /etc/exports配置文件 -启动服务 /etc/init.d/nfs-kernel-server start 客户端(设备端)配置 -内核配置项 nfs client support root filesystem on nfs -启动时内核参数设置 root=/dev/nfs rw nfsroot=192.168.1.1:/home/study/rootfsnogui ip=192.168.1.8:192.168.1.1:192.168.1.1:255.255.255.0:study:eth0:off第四章 常用开发工具介绍第四章 常用开发工具介绍调试工具调试工具gdb 用于调试应用程序的命令行工具 具有完善的调试功能,如设置断点、查看或监视变量的值、单步运行、堆栈回溯、查看源代等 如需使用gdb调试,应用程序使用gcc编译时需加上-g选项 调试开发板的程序需要交叉调试工具,如arm-linux-gdb,也就是标准gdb的ARM版本,交叉调试工具运行在主机平台,可以通过串口或网口调试远端开发板上运行的程序 图形界面(DDD)代码浏览工具代码浏览工具cscope 可以查看代码中函数的调用关系,如查找该函数在何处被调用,或者查找变量在何处被引用,类似Source Insight 使用前需要先生成数据库,内核代码的Makefile支持该数据库的生成,可以直接在代码的根目录下执行make cscope 图形前端(KDE环境下的kscope) ctags 可以在查看代码时跳转到函数、变量、宏等的定义处 使用前使用ctags命令生成交叉引用数据库,同样,内核代码的Makefile支持该数据库的生成,可以直接在代码的根目录下执行make ctags 在vi编辑器环境下可以使用这两个插件,定制类似Source Insight的代码浏览工具追踪和 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 工具追踪和分析工具strace 查看程序运行时使用的系统调用,包括系统调用的参数和返回值等,可以用来检查系统调用执行的正确性,如文件打开是否成功等 ltrace 查看程序运行时使用的库函数,如标准C库调用,包括参数和返回值等正确性,可以用来检查库函数执行的正确性 对于开发板运行的应用程序,需要使用这两个工具的ARM版本,且需要在开发板上运行(可使用NFS)其他二进制工具其他二进制工具readelf 查看ELF格式可执行程序的组成(ELF头、各种段、调试信息等) objdump 可以查看可执行程序的反汇编代码 objcopy 可以转换各种二进制格式,如将ELF格式转成BIN格式(不带文件头),如 Arm-linux-objcopy -O binary u-boot u-boot.bin strip 用于删除目标代码中无用的段,如符号表、调试信息等,从而减小目标文件的大小 通常在目标代码调试通过后执行(因为调试时需要使用符号表和调试信息) strings 显示二进制文件中的字符串 ldd 显示目标文件所链接的动态库(.so) nm 显示目标文件中的符号,如函数名、变量名等,可以用来帮助解决未解析的符号(unresolved symbol)之类的错误
本文档为【第三部分 文件系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_342377
暂无简介~
格式:ppt
大小:258KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2010-08-08
浏览量:14