第三章-Linux文件系统与设备文件系统-Linux设备驱动程序-教学课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第三章-Linux文件系统与设备文件系统-Linux设备驱动程序-教学课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 Linux 文件系统 设备 驱动程序 教学 课件
- 资源描述:
-
1、设备驱动程序第三章 Linux文件系统与设备文件系统 目录lLinux文件操作 lLinux文件系统 ldevfs设备文件系统 ludev设备文件系统 目录lLinux文件操作 lLinux文件系统 ldevfs设备文件系统 ludev设备文件系统 文件操作的相关系统调用l创建l参数mode指定新建文件的存取权限,它同umask一起决定文件的最终权限l打开lOpen()函数有两个形式,其中pathname是我们要打开的文件名,flags可以是下表的一个值或者是几个值的组合l如果文件打开成功,open函数会返回一个文件描述符,以后对该文件的所有操作就可以通过对这个文件描述符进行操作来实现文件操作
2、的相关系统调用lO_RDONL、YO_WRONY、O_RDWR这三个标志只能使用任意的一个l如果使用了O_CREATE标志,则使用的函数是后者。这个时候我们还要指定mode标志,用来表示文件的访问权限。Mode可以是下表的值的组合文件操作的相关系统调用l除了可以通过上述宏进行或逻辑产生标志以外,我们也可以自己用数字来表示,Linux总共用5个数字来表示文件的各种权限:第一位表示设置用户ID,第二位表示设置组ID,第三位表示用户自己的权限位,第四位表示组的权限,第五位表示其他人的权限。每个数字可以取1(执行权限)、2(写权限)、4(读权限)、0(无)或者是这些值的和。文件操作的相关系统调用l读写
3、l函数Write()实现将把length个字节从buf指向的缓冲区写文件描述符fd所指向的文件中,返回值为实际写入的字节数。l函数read()实现从文件描述符fd所指定的文件中读取length个字节到buf指向的缓冲区中,返回值为实际读取的字节数。l以O_CREAT为标志的open函数实际上实现了文件创建的功能,因此,下面的函数等同creat()函数。文件操作的相关系统调用l定位l该函数将文件读写指针相对whence移动offset个字节。操作成功时,返回文件指针相对于文件头的位置。l关闭lFd是要关闭的文件描述符C库函数的文件操作lC库函数的文件操作是独立于具体的操作系统平台的,不管是在DO
4、S、Windows、Linux还是在VxWorks中都是这些函数。l创建和打开l读写l关闭目录lLinux文件操作 lLinux文件系统 ldevfs设备文件系统 ludev设备文件系统 Linux文件系统目录结构目录目录内容内容/顶层根目录。其它目录都在这个根目录下顶层根目录。其它目录都在这个根目录下 /bin基本命令可执行文件的存放位置基本命令可执行文件的存放位置 /sbin系统管理类命令可系统管理类命令可执行文件的存放位置执行文件的存放位置 /devdev 是设备是设备(device)的英文缩写。这是个十分重要的目录。它包含了的英文缩写。这是个十分重要的目录。它包含了所有所有Linux系
5、统中使用的外部设备文件。要注意的是这里的设备系统中使用的外部设备文件。要注意的是这里的设备文件不是指设备的驱动程序,而是指访问外部设备的接口文件。文件不是指设备的驱动程序,而是指访问外部设备的接口文件。/usr用户应用程序和文档目录用户应用程序和文档目录 /etc这个目录下存放系统的配置文件。这个目录下存放系统的配置文件。/liblib是库(是库(library)英文缩写。这个目录用于存放系统动态链接库。)英文缩写。这个目录用于存放系统动态链接库。所有动态链接程序都要用到这个目录下的库文件。所有动态链接程序都要用到这个目录下的库文件。/proc这是这是Linux的一个特殊文件系统,主要用于存放
6、内核及进程信息的一个特殊文件系统,主要用于存放内核及进程信息 /tmp临时文件目录,许多程序都需要用到此目录进行读写操作临时文件目录,许多程序都需要用到此目录进行读写操作 /var系统日志和一些服务程序临时文件的存放目录系统日志和一些服务程序临时文件的存放目录Linux文件系统与设备驱动 Linux文件系统与设备驱动l应用程序和VFS之间的接口是系统调用,而VFS与磁盘文件系统以及普通设备之间的接口是file_operations结构体成员函数。l由于字符设备的上层没有磁盘文件系统,所以字符设备的file_operations成员函数就直接由设备驱动提供了,file_operations正是字
7、符设备驱动的核心。l而对于块存储设备而言,ext2、fat、jffs2等文件系统中会实现针对VFS的file_operations成员函数,设备驱动层将看不到file_operations的存在。磁盘文件系统和设备驱动会将对磁盘文件的访问最终转换成对磁盘上柱面和扇区的访问。Linux文件系统与设备驱动lFile结构体l文件结构代表一个打开的文件,系统中每个打开的文件在内核空间都有一个关联的struct file。l它由内核在打开文件时创建,并传递给在文件上进行操作的任何函数。在文件的所有实例都关闭后,内核释放这个数据结构。lInode结构体lVFS inode包含文件访问权限、属主、组、大小、
8、生成时间、访问时间、最后修改时间等信息。l从一个inode中获得主设备号和次设备号:Linux文件系统与设备驱动l同一类设备使用相同的主设备号。l查看/dev目录可以获知系统中包含的设备文件。mknod/dev/global_chardev c 254 0 l查看/proc/devices可以获知系统中注册的设备,第1列为主设备号,第2列为设备名。目录lLinux文件操作 lLinux文件系统 ldevfs设备文件系统 ludev设备文件系统 传统方式lint register_chrdev(unsigned int major,const char*name,struct file_oper
展开阅读全文