http://soft.buaa.edu.cn/linux/content/teamexperiment.htm

一. PCI桥设备驱动的开发

       PCI总线不仅是目前应用广泛的计算机总线标准,而且是一种兼容性最强、功能最全的计算机总线。参照教材关于PCI驱动的介绍,并通过查阅相关资料,本实 验要求设计并编写Intel21555非透明PCI桥的设备驱动,可通过lspci或查看/proc/bus/pci/devices查看本机上的PCI 相关控制器和设备。
关于PCI桥及21555的具体接口特性可参考:
http://www.intel.com/cd/network/communications/APAC/ZHO/275013.htm
关于PCI桥的驱动程序框架可参考:
http://www.linux-cn.com/html/linux/embed/20070422/9690.html http://www.ossforge.com/html/kaiyuanjishu/Linux_Unix/20071002/9898.html

二. USB驱动程序开发

       查阅资料,并根据教材中关于USB设备原理的讲解,针对自己使用的U盘或者摄像头,编写相应的端设备驱动程序,并通过设备的读(写)等进行方式验证。本实 验着力从Linux系统下设备驱动的架构,并应首先熟悉目前的Linux系统是如何配置和与U盘连接的。
相关参考资料:
http://blog.chinaunix.net/u/16651/showart_237803.html
http://www.linux-cn.com/html/linux/embed/20070422/9689_4.html

三. 网络设备驱动开发

       网络设备是Linux一种重要的设备管理类型。请参照教材关于网络设备驱动程序的原理,针对Intel 82559 PCI以太网卡编写对应的驱动程序。
关于硬件芯片的相关参数可参考:
http://www.intel.com/design/network/products/lan/controllers/82559.htm

四. 块设备驱动开发

       块设备是与字符设备并列的概念,这两类设备在Linux中驱动的结构有较大差异,总体而言,块设备驱动比字符设备驱动要复杂得多,在I/O操作上表现出极 大的不同,缓冲、I/O调度、请求队列等都是与块设备驱动相关的概念。
      请参考RAMDISK的实现机制,自行在内核中申请一块空间,并根据学习的文件系统的相关知识,模拟实现一种可支持多任务并发访问的“块设 备”。

五. 进程映像保存和恢复

       根据所学习的相关内核知识,制定一种策略,从系统中选择一个特定的进程,将其暂存到外存的文件中。在将来需要的时候,要求能够恢复进程的运行。 为了实现上的可行性,可对进程的组成及行为特性等进行适当的限制。

六. 网络文件系统的实现

       参考NFS的实现机制,自行设计并实现一种简单的网络文件机制,使用户可以跨系统方便地共享文件。

七. 跨进程调用函数

       自行设计并实现一种调用机制,使得一个进程中的函数能够快速的调用另一个进程中的函数。

八. 在slab中增加新的结构类型

       假设有一种新的结构类型,在驱动程序的开发中将大量使用,而且需要频繁的创建和撤销,请设计并实现一种方案,将该结构添加的slab机制中。


Reply via email to