Unix内核与内存寻址技术解析
1. Unix内核基础
在Unix系统中, sync() 系统调用起着关键作用。它会将所有“脏”缓冲区(即内容与对应磁盘块不同的缓冲区)写入磁盘,以此强制进行磁盘同步。为避免数据丢失,所有操作系统都会定期将脏缓冲区写回磁盘。
设备驱动程序是内核与I/O设备交互的桥梁。它包含在内核中,由控制一个或多个设备(如硬盘、键盘、鼠标、显示器、网络接口以及连接到SCSI总线的设备)的数据结构和函数组成。每个驱动程序通过特定接口与内核的其他部分(甚至其他驱动程序)进行交互,这种方式具有以下优点:
- 特定设备的代码可以封装在特定模块中。
- 供应商无需了解内核源代码,只需知道接口规范就能添加新设备。
- 内核以统一方式处理所有设备,并通过相同接口访问它们。
- 可以将设备驱动程序编写为模块,动态加载到内核中,无需重启系统,还能动态卸载不再需要的模块,从而减小存储在RAM中的内核映像大小。
用户程序若要操作硬件设备,会使用常见的文件相关系统调用和通常位于 /dev 目录下的设备文件向内核发出请求。实际上,设备文件是设备驱动程序接口中用户可见的部分。每个设备文件都指向一个特定的设备驱动程序,内核会调用该驱动程序在硬件组件上执行请求的操作。
早期Unix引入时,图形终端既不常见又昂贵,所以Unix内核直接处理的只有字母数字终端。当图形终端广泛普及后,像X Window System这样的临时应用程序应运而生,它们作为标准进程运行,直接访问图形接口的I/O端口和RAM视频区域。一些现代的Unix内核,如Linux 2.6,为图形卡的帧缓冲区提供了抽象,
超级会员免费看
订阅专栏 解锁全文
8216

被折叠的 条评论
为什么被折叠?



