我个人认为linux的软件设计思想异常强大。 例如,把所有设备都当作文件处理,会大大减轻程序员的负担。 向提倡这一思想的大神s表示敬意。
首先,我们来看一下linux系统中设备管理的基本知识。
我们的linux操作系统与外部设备(例如磁盘、光盘等)的通信都是通过设备文件进行的,APP应用可以打开、关闭这些设备文件,或者从这些设备中读取数据,并向这些设备写入数据这个操作和读写普通文件一样是easy的。 linux为各种类型的设备文件(如read (,write )、open (打开)和close )提供相同的接口。
因此,在系统与设备进行通信之前,请先创建设备文件。 此设备文件存储在/dev目录中。 实际上,系统缺省生成许多设备文件,但您可能需要自己手动创建一些设备文件。 在这种情况下,请使用mkdir、mknod等命令。
mknod的标准格式为: mknod devname { b|c } major minor
DEVNAME是要创建的设备文件名。 如果要将设备文件放在特定文件夹下,则必须首先在mkdir的dev目录下创建一个新目录。
2、b和c分别表示块设备和字符设备。
b表示系统从块设备读取数据时,直接从内存缓冲区读取数据,而不通过磁盘。
c表示字符设备文件和设备在传输数据时作为字符进行传输,一次传输一个字符。 例如,打印机、终端作为文字传输数据。
3、MAJOR和MINOR分别表示主设备编号和副设备编号。
为了管理设备,系统为每个设备分配一个编号。 1个设备编号由主设备编号和辅助设备编号组成。 主要设备编号表示一种设备类型,而次要设备编号用于区分同一类型的设备。 在linux操作系统中,设备文件编号被指定为32位无符号整数。 其中,前12位为主设备编号,后20位为从设备编号,因此向系统申请设备文件时,主设备编号不能超过4095,从设备编号不能超过2^20 -1。
同调
然后可以使用mknod命令申请设备文件。
mkdir -p /dev/cobing
mknod /dev/cobing/mydev1 c 128 512