使用计算机离不开IO设备(键盘、鼠标、串口、打印机等),IO设备一般都有几个寄存器,通常我们都是对寄存器进行读写来控制IO设备的行为的。 不论什...
之前在编写字符设备的时候,我们使用过 kmalloc 和 kfree 来分配和释放内存,除了这个方法外,内核还提供了其他分配内存的方法。 本节主...
上一节主要说了如何进行延迟操作,这些延迟都是操作当前线程,使得当前线程阻塞或休眠,等到时间到达后再继续在当前线程执行的延迟方法。如果需要在将来的...
之前我们学会了如何编写一个字符设备,并对其中的一些重要操作进行了说明。对于一个完整的设备而已,可能还有许多工作要做。 本节我们将要说一下内核中是...
本节是本书中《高级字符驱动程序操作》章节的第四节内容,也是最后一节,主要是关于设备读写位置定位和设备文件的访问控制相关的概念和内容。 本节主要有...
本节是本书中《高级字符驱动程序操作》章节的第三节内容。本节主要涉及到的是多路复用IO接口 poll、select 和 epoll。 本文主要的内...
本节是本书中《高级字符驱动程序操作》章节的第二节内容。本节主要涉及到的是进程睡眠和唤醒相关的内容。 本节主要涉及以下内容: 休眠的简单介绍 休眠...
接下来要说的内容是书中的《高级字符驱动程序操作》章节。本章的内容比较长,所以分多节介绍。本节主要介绍的是其中的 ioctl 操作。 1. ioc...
上一节中介绍了并发和竞态的概念,以及介绍了一些手段用于避免产生竞态,包括信号量、completion机制、自旋锁、原子变量等。 本节我们使用其中...