linux 设备驱动编程
目 录
驱动
I/O端口
from smth
基本结构
驱动程序
具体实现
PCI
loopback
Sis 900
ISA总线DMA的实现
驱动
Linux系统支持三种类型的硬件设备:字符设备、块设
< type="text/javascript">< type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
备和网络设备。字符设备是直接读取的,不必使用缓冲区。例如,系统的串行口/dev/cua0和/dev/cua1。块设备每次只能读取一定大小的块的倍
数,通常一块是512或者1024字节。块设备通过缓冲区读写,并且可以随机地读写。块设备可以通过它们的设备文件存取,但通常是通过文件系统存取。只有
块设备支持挂接的文件系统。网络设备是通过BSD套接字界面存取的。
Linux系统支持多种设备,这些设备的驱动程序之间有一些共同的特点:
* 内核代码:设备驱动程序是系统内核的一部分,所以如果驱动程序出现错误的话,将可能严重地破坏整个系统。
*
内核接口:设备驱动程序必须为系统内核或者它们的子系统提供一个标准的接口。例如,一个终端驱动程序必须为Linux内核提供一个文件I/O接口;一个
SCSI设备驱动程序应该为SCSI子系统提供一个SCSI设备接口,同时SCSI子系统也应为系统内核提供文件I/O和缓冲区。
* 内核机制和服务:设备驱动程序利用一些标准的内核服务,例如内存分配等。
* 可装入:大多数的Linux设备驱动程序都可以在需要时装入内核,在不需要时卸载。
* 可设置:Linux系统设备驱动程序可以集成为系统内核的一部分,至于哪一部分需要集成到内核中,可以在系统编译时设置。
[目录]
I/O端口
关键词:设备管理、驱动程序、I/O端口、资源
申明:这份文档是按照自由软件开放源代码的精神发布的,任何人可以免费获得、使用和重新发布,但是你没有限制别人重新发布你发布内容的权利。发
布本文的目的是希望它能对读者有用,但没有任何担保,甚至没有适合特定目的的隐含的担保。更详细的情况请参阅GNU通用公共许可证(GPL),以及GNU
自由文档协议(GFDL)。
几乎每一种外设都是通过读写设备上的寄存器来进行的。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和
相关文档:
Linux下getch()和getche()
I would recommend never mixing input techniques in a program. Don't mix fgets() or scanf() with getchar(). Don't mix any standerd C library input function with a non-standard function that bypasses the C stream mechanism, be that getch(), getche(), bioskey(), or anything el ......
[精华] 完全用 GNU/Linux 工作
http://www.chinaunix.net 作者:enfuzion 发表于:2005-12-08 16:05:56
【发表评论】【查看原文】【Linux讨论区】【关闭】
转自http://www.chinaunix.net/jh/4/16102.html
完全用 GNU/Linux 工作
— 摈弃 Windows 低效率的工作方式,发掘&n ......
【转】Linux虚拟机下如何共享ADSL拨号上网
2010-01-20 11:55
今天在vmware上装了一个Red Hat Enterprise Linux 5,装好之后,我想在虚拟机上共享我的adsl拨号上网,设置过程如下:
1. 先在adsl连接属性上允许共享Internet连接:
2.这样做后会弹出一个对话框,告诉你会把本地连接的ip地 ......
STAT(该行程的状态)
D: 不可用信号中断的睡眠状态
R: 正在执行或处于执行队列中
S: 可以用信号中断的睡眠状态
T: 暂停执行
Z: 僵死状态
------------------------------------
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程&nbs ......
和其他操作系统一样,Linux包含进程调度与进程间通信(IPC)、内存管理(MMU)、虚拟文件系统(VFS)、网络接口等,下图给出了Linux的组成及其关系:
Linux内核源代码包括多个目录:
(1)arch:包括硬件特定的内核代码,如arm、mips、i386等;
(2)drivers:包含硬件驱动代码,如cha ......