因此,根据我在设备驱动程序( Linux)方面的两本书,值得注意的是O‘’REILLY版本(“Linux设备驱动程序(第3版)”)有3种类型的设备驱动程序:
那么,视频和声音驱动程序在哪里呢?我问您是因为AFAIK您的屏幕有一个总线,它将帧从主板发送到监视器,屏幕上的图像是一个内存映射(方阵),它以一定的帧/秒刷新。声音驱动器还以44.1 KHz的采样速率向DAC发送16位(2字节)帧。这些是角色驱动程序吗?我认为它们与网络驱动程序类似,因为网络接口、屏幕、扬声器、麦克风和网络摄像头都是读写帧(字节数组)的设备。
发布于 2014-09-10 03:14:27
更准确地描述这类装置的方法是:
/dev/null和/dev/random这样的特殊设备。不过,这不需要一次一个字节:许多设备将数据作为更大的帧返回。(例如,/dev/input下的Linux输入设备以32字节帧返回数据,每个帧代表一个事件。)mmap()将数据映射到内存。它们通常用于表示存储设备(如磁盘),但也可用于表示其他更不寻常的事物。/dev。字符和块设备都可以使用ioctl()实现不符合常规框架的特殊操作(例如,改变串口的波特率、弹出CD等),因此,在某种程度上,使用哪一种操作可能是任意的。不过,对于您所描述的设备类型:
/dev/dsp:从它读取数据将读取表示麦克风输入的PCM数据,并将PCM数据写入它将通过声卡播放。更现代的ALSA音响系统使用更复杂的设备和格式,但概念是相同的。/dev/fb0。该设备表示屏幕上的图像--例如,使用32位颜色的1024x768屏幕将由一个3MB的缓冲区表示--并向其写入将改变该图像。最常用的方法是将它映射到内存中。
不过,大多数现代视频设备并不那么简单。它们中的许多部分作为内核驱动程序实现,部分作为X11设备驱动程序实现,可以直接映射和写入视频硬件。它们有时可能包括额外的字符或块设备(例如,某些Nvidia显卡使用字符设备/dev/nvidia),但从该设备读取或写入数据的详细信息基本上是专有的。发布于 2014-09-10 01:59:09
他们是性格驱动者。
gfx http://www.x.org/wiki/Development/Documentation/HowVideoCardsWork/
音频http://www.alsa-project.org/~tiwai/writing-an-alsa-driver/
https://stackoverflow.com/questions/25756121
复制相似问题