




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
博创科技嵌入互Linux定义了一个抽象的内核级接口,能够容许集中不同命名空间(给事物取名,并按一种层次解构组织他们的形式API(用来便利和操作对象的一套系统调用安全模型(用来保护,隐藏何共享事物的方案实现(把逻辑模型同实际硬件联系到一起的软件博创科技嵌入互cblf普通文件
博创科技嵌入互Linux中的设备有2种类型:字符设备(无缓冲且只能顺博创科技嵌入互一般来说,每个设备在/dev 可以通过cat/proc/devices在/dev下除了字符设备和块设备节点之外还通常还会存在:FIFO管道、Socket、软/硬连接、。这博创科技嵌入互设备文 简要说01
0=为空设备号保留1=2=3=5=8=9=11=
任何对该文件的写入都将作为printk的输出博创科技嵌入互设备文 14
RAM0=1=0=1=
第1个RAMdiskinitrd只能使用第2个RAM4block 0=5 其他TTY0=1=
当前TTY7block 对回环设备的绑定由mount(8)或losetup(8)处理0=1=
第2博创科技嵌入互设备文 8 SCSI磁盘(0-0=16=32=
第1个SCSI磁盘(整个磁盘)第2个SCSI磁盘(整个磁盘)第3个SCSI磁盘(整个磁盘分区表示方法如下(以第3个SCSI磁盘为例33=34=
10 1 135 实时时钟(RealTime1329
32=33=63=64=65=通用帧缓冲(framebuffer)0=1=
第2
博创科技嵌入互设备文 89
0=/dev/i2c-1=/dev/i2c-
第1个I2C适配器第2个I2C136- Unix98PTY方法是通过使用适当的mount选项(通常是:mode=0620,gid=<"tty"组的将devpts文件系统挂载到 0=1=180 USB
第1个Unix98PTY第2个Unix98PTY96=111=180
USB块设备(U盘之类0=8=16=
第1个USB块设备第2个USB块设备第3个USB块设备博创科技嵌入互API创建打开读写I/O操作关闭博创科技嵌入互头文定义intcreat(constchar*pathname,函数参数pathname指向欲建立的文件路径字符串。creat()open()open(constchar*pathname返回creat()会返回新的文件描述词,若有错误发生则会返回-1,并把错误代码设给errno附加creat()无法建立设备文件,如果需要请使用mknod()博创科技嵌入互头文定义intopen(constchar*pathname,intintopen(constchar*pathname,intflags,mode_t函数参数pathname指向欲打开的文件路径字符串。下列是参数flags常用的旗标O_RDONLY以只读方式打开O_WRONLY以只写方式打开文O_RDWR以可读写方式列的旗标利用OR(|)O_CREAT若欲打开的文件O_TRUNC若文件存在并且以可写的方式打开时,此旗标会令文件长度清为0,而原来存于该 O_APPEND当读写文件时会从文件尾开始移动,也就是所写入的数据会以附加的方式加入到O_NONBLOCK以不可阻断的方式打开文件,也就是无论有无数 或等待,都会立即回进程之中返回文件打开成功返回文件的描述符,失败返回-博创科技嵌入互 ssize_tread(intfd,void*buf,size_tread()会把参数fd所指的文件传送count个字节到buf指针所指的内存中。若参数count为 如果顺利read()会返回实际读到的字节数,最好能将返回值与参数count作比较,若返回的 博创科技嵌入互ssize_twrite(intfd,constvoid*buf,size_twrie()如果顺利wri-ro中。博创科技嵌入互intioctl(intfd,intrequest,成动返回0。当有错误发生时则返回-1,错误代码存入errno中博创科技嵌入互intclose(int当使用完文件后若已不再需要则可使用close()关闭该文件,二close()会让数据写回磁盘并释放该文件所占用的资源。参数fd为先前由open()或creat()若文件顺利关闭则返回0,发生错误时返回-1虽然在进程结束时,系统会自动关闭已打开的文件,但仍建议自行关闭文件值博创科技嵌入互博创科技嵌入互文 只读权限表示只允许读其内容, 对其做任何的更改操作可执行权限表示允许将该文件作为一个程序执行根据需要把权限设置为需要的任何组合。博创科技嵌入互查看文 对文件来说,有三种不同类型的用户可进行 当用ls-l命令显示文件或 $ls-lsobsrc.-rw-r--r--1rootroot483997Ju1l517:3lsobsrc.博创科技嵌入互查看文 d:表示是一 ,事实上在ext2fs中 是一个特殊的件-:表示这是一个普l:表示这是一个符 文件,实际上它指向另一个文件 s、p:这些文件关系到系统的数据结构和管道到后9位就是文件的 博创科技嵌入互文 人(g)”、“其它人(o)”的读(r)、写(w)、执行(x)的权对普通文件而言,“r”代表可以阅读文件内容,“w”代表对文件而言,"r"代表可以列出所包括的文件,"w"可以在内创建或删除文件(同时需要x权限),"x"表明可以做为活动。博创科技嵌入互文 组和其他用户的权限。有时候,字符似乎过于麻烦,因此还有另法是以数字来r:对应数值4w对应数值2-:对应数值数字设定的关键是mode的取值,将rwx1表示,没有则用0表示,那么rwxr-xr--则可以表示成111101再将其每三位转换成为一个十进制数,就是754博创科技嵌入互改变文件 自 其他 可 转换成二进制数就是110110100,再每三位转换成为一个十进制数,就得到664,因此我们执行命令: od664按照上面的规则,rwx合起来就是4+2+1=7。 博创科技嵌入互在文本模式下,可执 od命令去改变文件 的权限。我们先执行ls-l看 内的情况[root@localhost~]#ls--rw-r--r-18drwxr-xr-294-r--r--r-110 drwxr-xr-28-rwxr-xr-1115-rwxr-xr-1115-rwxr-xr-1115drwxr-xr-296可以看到当然文件conkyrc.sample文件的权限是644,然后把这个文件的权限改成777[root@localhost od777然后ls-l看一下执行后的结果:[root@localhost~]lsl总用量368-18drwxr-xr-294-r--r--r-110 drwxr-xr-28-rwxr-xr-1115-rwxr-xr-1115-rwxr-xr-1115drwxr-xr-296可以看到conkyrc.sample文件的权限已经修改为博创科技嵌入互实现虚拟文件系统ext3fs、ReiserFS、IBMJFS等CD-ROM:ISO嵌入式常用的文件系统博创科技嵌入互 MinixLinux的第一个文件系统,有局限,的文件大小是64M字节19924Linux设计的文件系统--EXT(ExtendFileSystem)博创科技嵌入互 博创科技嵌入互博创科技嵌入互博创科技嵌入互博创科技嵌入互博创科技嵌入互文件系统VFS(virtualfilesystem)VFS允许Linux支持许多(通常是不同的)文件系统,每一个都向VFS表现一个通用的软件接口。Linux文件系统对于Linux 博创科技嵌入互博创科技嵌入互博创科技嵌入互Mediaext2-Linuxufs-fat-DOSvfat-winhpfs-minix-well….Isofs-CDROMsysv-SysvUnixhfs-Macintoshaffs-AmigaFastFSNTFS-NT’sFS
AFS-Andrewsmbfs-ncpfs-Specialprocfs-umsdos-Unixinuserfs-redirectorto博创科技嵌入互博创科技嵌入互当一个块设备文件系统安装的时候,(包括root文件系统),VFS必须 构,并把这些信息映射到一个VFS超级块的数据结构VFS博创科技嵌入互 ctionbetweenprocessesandVFS博创科技嵌入互Systemcall mount()umount()sysfs()statfs()fstatfs()ustat()chroot()pivot_root()chdir()fchdir()getcwd()mkdir()rmdir()getdents()readdir()link()unlink()rename()readlink()symlink()chown()fchown()lchown(od()f od()utime()stat()fstat()lstat()access()open()close()creat()umask()
Mount/unmountfilesystemsGetfilesysteminformationGetfilesystemstatisticsChangerootdirectoryManipulatecurrentdirectoryCreateanddestroydirectoriesManipulatedirectoryentriesManipulatedirectoryentriesManipulatesoftlinksModifyfileModifyfileattributesReadfilestatusOpenandclosefiles博创科技嵌入互Systemcall dup()dup2()fcntl()select()poll()truncate()ftruncate()lseek()_llseek()read()write()readv(writev()sendfile()readahead(pread()pwrite()mmap()munmap()madvise()mincore()fdatasync()fsync()sync()msync(flock(
ManipulatefiledescriptorsAsynchronousI/OnotificationChangefilesizeChangefileCarryoutfileI/OoperationsCarryoutfileI/OoperationsSeekfileandaccessitHandlefilememorymapHandlefilememorymapSynchronizefiledataManipulatefilelock博创科技嵌入互UNIXlinkhardlinks硬连–multipledirentrieswithsameinodeequalstatus;firstisnot"real"entryfiledeletedwhenlinkcountgoesto0can'thardlinktodirectories(avoidsoracrosssoftsymbolic)links软(符号)连–littlefileswithjustaliasesforanothernorestrictions,cyclespossible,danglinglinks博创科技嵌入互•ln/a/os1.txt博创科技嵌入互ln–s/a/os1.txt博创科技嵌入互Linuxmust"knowabout"filesystembeforemultiple(mounted)instancesofeachtypespecial(virtual)filesystems(like/proc)structuringtechniquetotouchkerneldata/proc,/devsockfs,pipefs,tmpfs,rootfs,associatedwithfictitiousblockdevice(major#minor#distinguishesspecialfilesystem博创科技嵌入互 建立的时候,文件系统初始化代码调用所有内建的文件系的初始化例程当加载一个文件系统模块的时候,它自身 登记,当卸载的候,它就注销 个file_system_type数据结构代表,这里面包括文件系统的名称和一个指向它的VFS超级块的 register_filesystem()/unregister_filesystemaddsfile_system_typeobjecttolinked-listfile_systems(head;kernelglobalvariable)file_systems_lock(rwspinlocktoprotectlist)参见fs/filesystems.cinclude/linux/fs.hfile_system_type博创科技嵌入互file_system_type
博创科技嵌入互检查/proc/filesystems来查看登记了哪博创科技嵌入互第二代扩展文件系统ext2fs由ReyCard设计,其目标是为Linux提供一个强大的可扩文件支持标准unix持长文件名,255Configurableblocksizefrom1024to4096ConfigurablenumberofPartitionsblocksintogroups,wheredatablocksandarestoredinadjacentPre-allocatesdatablockstoregularfilesbeforetheyareusedSupports“fast”symboliclinksImplementedforrobustnesswhenupdatingdiskSupportsautomaticconsistencySupportsimmutableandappend-only博创科技嵌入互照块取整。块组…块组…块组博创科技嵌入互 1(擦除Flash就是把对 块的内容恢复为1),因此,一般情况,向Flash写入内容时,需要先擦除对应 区间,这种擦除是块(block)为单AFlashFlash2l在嵌入式Linux下,MTD(MemoryTechnologyDevice, 博创科技嵌入互Jffs2:日志闪存文件系统版本2(JournallingFlashFileSystemJFFS文件系统最早是由瑞典AxisCommunications公司基于Linux2.0的文件系统,所以JFFS2也可以用在Linux,uCLinux中。 博创科技嵌入互yaffs:YetAnotherFlashFileyaffs/yaffs2是专为嵌入式系统使用NAND型闪存而设计的一种日型文件系统。与jffs2相比,它减少了一些功能(例如不支持数据压yaffs/yaffs2自带 的驱动,并且为嵌入式系统提供了直文件系统的API,用户可以不使用Linux中的MTD与VFS,直对文件系统操作。当然,yaffs也可与MTD驱动程序配合使用yaffs与yaffs2的主要区别在于,前者仅支持小页(512Bytes)在内存空间占用 回收速度、读/写速度等方面均有大幅提升博创科技嵌入互由LinusTorvalds参与开发的小型只读压Inode、文件名称 信息不压单个文件最大为数据压缩存适合不需要写、且体积较大的文件系统,如/lib,/opt与JFFS2、Cloop相比 速度压缩率可以超过文件时,每 4k内容,解压缩到cacheii)#mkcramfs/liblib.cramfs#mkcramfs/usrusr.cramfs挂载文件系#mount–tcramfslib.cramfs/lib–o#mount–tcramfsusr.cramfs/usr–o博创科技嵌入互文件的大小为名修改参数值。如#echo2048>/proc/sys/shmmni,修 博创科技嵌入互 文件 该进程令行参博创科技嵌入互mountmount[-mount-a[-fFnrsvw][-tmount[-fnrsvw][-ooptionsdevice|mount[-fnrsvw][-tvfstype][-ooptions]device系統管理者或/etc/fstab中允許的使用者说明:博创科技嵌入互mount-t指定文件系統的-odefaults使用缺省rwsuiddev,exec,autonouser,-oro用只读模式掛-orw用可讀寫模式掛-oloop=使用loop模式用來將一个文件當#mount-oloop/tmp/image.iso博创科技嵌入互umountumount[-umount-a[-f][-r][-n][-v][-tvfstypes][-Oumount[-f][-r][-n][-v]special|博创科技嵌入互df-a,包含所有的具0Blocks的文件-block-size={SIZE}{SIZE}大小的-h,--human-readable使用人可讀的-H,-h,但是1000为單位而不是-i,inode信息,不列出已使博创科技嵌入互-k,--kilobytes就像是--block--l,--local限制列出的文件-m,--megabytes--blockno-sync取得信息前sync(缺省值-P,--portabilityPOSIX輸出--sync在取得信息-t,--type=TYPE限制列出文件系統的-T,--print-type显示文件系統的-x,--exclude-type=TYPE限制列出文件系統不要显示--help显示這个幫手並且--version 本信息並且離博创科技嵌入互mkfs使用方式:-V在/dev/hda5上建一个msdos的文件系統,同时检存在,並且將過程詳細列出來mkfs-V-tmsdos-c博创科技嵌入互博创科技嵌入互 引导加载程序使用的 设备文件及其他特殊文 系统配置文*home用户 必要 库,例如 库、内核模 临时挂载的文件系统 在嵌入式Linux上为可选博创科技嵌入互 root用户 必要的系统管理员 临时文 大多数用户使用的应 程序和工具程序博创科技嵌入互库 博创科技嵌入互库我们这里讨论Glibc 库位于 下,其中包括实际的共 还需 动 器及其符 :Ld-博创科技嵌入互 Ld-
lbLIBRARY_NAME-博创科技嵌入互 ld:动 libBrokenLocale:修正进程,让locale常执行libSegFault:用来捕捉内存区段错误以及进行回溯libanl:异步名称查询libc:主 学库,许多涉及认证的应用程libdl:用来动态加载共享库,使用了dlopen()libm:数学 libpthread:Linux的Posix1003.1c多线程libpthread_db:多线程调libutil:登录管理博创科技嵌入互 博创科技嵌入互博创科技嵌入互例如#cd${TARGET_ROOTFS}/dev#mknod–m600memc11#mknod–m666nullc1#mknod–m666zeroc1#mknod–m644randomc1…博创科技嵌入互如果系统支持devfs,则可以在内核配置的时候添加上博创科技嵌入互它通过在sysfs的/class/和/block/树中查找一dev的文件,以确定所创建的设备节点文件的主在内核配置的时候添加上sysfs及tmpfsudev软件包,交叉编译,然后 到目标根文件系中,最后配置好udev博创科技嵌入互 如果逐一交叉编译这么多二进制文件是很花时间在嵌入式系统上,我们只需要将命令集浓缩成仅博创科技嵌入互S博创科技嵌入互在 博创科技嵌入互博创科技嵌入互BuildBuildBusyBoxasastaticbinary(noshared缺省配置为使 Build[*]DoyouwanttobuildBusyBoxwithaCross博创科技嵌入互ArchivalUtilitiesConsoleUtilitiesDebianFindingUtilitiesInitUtilitiesLogin/PasswordManagementMiscellaneousUtilitiesLinuxMo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025合同范本雇佣短期合同律师合同参考样本
- 商业步行街场经营管理合同
- 消费电子厂商与经销商渠道拓展合作协议
- 2025合同模板 股权转让协议条款明确适合修改使用或参考范本
- 2025购买住宅用地定金合同模板
- 疼痛诊疗学(医学高级):运动系统疾病题库考点(强化练习)
- 小学二年级心理健康教育教案
- 四大规划面试题目及答案
- 电气火灾试题及答案
- 新闻宣传业务试题及答案
- 半条被子(红军长征时期故事) PPT
- 加入民盟的申请书完整版
- 商业秘密保护课件
- 电梯安装标准合同模板
- 《交流电气化铁道牵引供电系统》教学课件合集
- 松下NPM贴片机基本操作培训教程课件
- 中国哲学史考研笔记
- 掘进机整机出厂检验报告
- 《群落生态学》PPT课件(完整版)
- 旅行社的导游管理制度
- DB4201∕T 645-2021 房地产经纪服务规范
评论
0/150
提交评论