操作系统课程实验驱动程序简介.pptVIP

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统课程实验驱动程序简介

操作系统课程实验 驱动程序简介 2004.1 巨星陨落 2002年8月6日。 在与癌症进行了多年的斗争之后,荷兰计算机科学家Dijkstra在荷兰Nuenen自己的家中与世长辞,终年72岁。 Dijkstra,父亲是化学家,母亲是数学家。1930年出生于荷兰的Rotterdam。 曾担任程序员,数学教授,等等。1972年曾获得图灵奖。1999年退休。 巨星陨落 1965年,Fortran语言正在随着IBM 360计算机而流行于整个世界。 Fortran语言的支柱是goto语句。 Dijkstra当时首次提出,goto语句太容易把程序弄乱,应从一切高级语言中去掉,只用三种基本控制结构就可以写各种程序。 结构程序设计概念影响了后来的高级语言,也影响了一代程序员的风格和习惯。 巨星陨落 1965年,人们为并行程序中随机出现的难以预测的错误而头痛不已。 由于错误不可重现,难以找到真正原因。 Dijkstra第一个提出“哲学家就餐”问题,并给出了PV操作的概念,完美的解决了这一问题。 Dijkstra为首的一批科学家的努力,使操作系统走上了健康发展的道路。 巨星陨落 加权有向图的最短路径问题 经典,完美的Dijkstra算法 应用无处不在 巨星陨落 第一个Algol 60编译器的设计者和实现者。 THE操作系统的设计者和开发者。 被西方学术界称为“结构程序设计之父”和“先知先觉” 。 与D. E. Knuth并称为20世纪最伟大的计算机科学家。 巨星陨落 阿兰图灵的自杀是在半个世纪之前,冯诺依曼去世也已多年,作为这个新兴的行当中的从业者,我们似乎已经很习惯于从相信,从书上读到的每个名字都是仍然在世的活生生的人。 今天,一颗真正的巨星在我们的眼前陨落!作为一名普通的程序员,我从内心感到惋惜和悲痛。 Dijkstra引导了并且将继续引导这个星球上所有的程序员,他的贡献和影响将与世长存! 什么是驱动程序? 为了使外部设备能够正常工作,操作系统需要通过特定的程序和外部设备交互,这种特定的程序称为驱动程序。 驱动程序是我们所学习的实验中最实用的一个。 这节课会给出一个简单的虚拟磁盘驱动程序的例子,并且讲述它的原理。 设备和设备文件 什么是硬件设备? 除了CPU和总线、内存之外的所有计算机硬件。(硬盘,声卡,显示器,等等) 在Linux中,将所有可能出现的设备都当作一个特殊的文件,叫做设备文件。 所有的设备文件都保存在/dev目录下面。 设备和设备文件 观察一下设备文件: 打开一个终端窗口 输入 cd /dev,意思是到/dev目录下去。 输入ls,可以看到所有的设备文件。 输入ls -l,可以看到设备文件的细节。 第一列标为c的是字符设备文件,标为b的是块设备文件。 每行中间有两个整数,用逗号分隔,表示主设备号和次设备号。 主设备号和次设备号 主设备号标明了设备的类型,比如软盘是2,硬盘是3,SCSI硬盘是8,等等。 次设备号标明了系统中每一个这样的设备,比如第一个硬盘是0,第二个是1,等等。 也就是说,设备号为(3, 0)的设备文件,表示了实际系统中的第一个硬盘。 建立设备文件 使用Linux命令mknod建立一个设备文件。 比如输入mknod /dev/my_disk b 42 0命令,说明要建立一个块设备文件,名字是my_disk,主设备号是42,次设备号是0。 主设备号42在系统中是空闲的,因此一般应该能够建立成功。 看看你是否成功的建立了这个文件。 输入命令 ls -l /dev/my_disk 试试这个例子! 从我这里copy两个文件radimo.c和radimo.h。 不妨放在/root目录下。 编译这个程序: gcc -c -I/usr/src/linux-2.4.20-8/include radimo.c 编译生成一个模块radimo.o,就是我们的驱动程序。 试试这个例子! 加载这个模块:insmod radimo.o 刚才我们已经创建了一个设备文件/dev/my_disk,在驱动程序没有加载之前,这个设备文件是无效的。 加载驱动程序后,这个设备才有效。 这是一个用内存虚拟的磁盘,容量2M。 试试这个例子! 格式化这个磁盘,使用ext2格式: mke2fs /dev/my_disk 在系统中挂接这个磁盘: mount /dev/my_disk /mnt 这个命令和使用u盘有些相似? 查看系统中已经挂接的磁盘: 输入命令df,至少可以看到两个磁盘,一个是硬盘,一个是刚才挂接的虚拟磁盘。 试试这个例子! 现在你的/mnt目录成为了一个大小为2M的虚拟磁盘。 可以把任意的大小不超过2M的文件复制进去。 玩够了,就输入umount /dev/my_disk卸载这

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档