1.1
机制和策略的区分是其中一个在Unix设计背后的最好观念. 大部分的编程问题其实可以划分为2部分:
"提供什么能力"(机制)
"如何使用这些能力"(策略).
如果这两方面由程序的不同部分来表达,或者甚至由不同的程序共同表达,软件包是非常容易开发和适应特殊的需求.
驱动应当做到使硬件可用,将所有关于如何使用硬件的事情留给应用程序.
1.2
内核的角色可以划分(如同图内核的划分)成下列几个部分:
进程管理
内存管理
文件系统
设备控制
每块可以在运行时添加到内核的代码, 被称为一个模块.(没有连接成一个完整可执行文件),
可以动态通过insmod()连接到内核,以及通过rmmod()程序去连接.
1.3
设备和模块的分类如下:
字符设备
一个字符(char)设备是一种可以当作一个字节流来存取的设备。
常常至少实现 open, close, read, 和 write 系统调用.
块设备
如同字符设备,块设备通过位于/dev目录的文件系统结点来存取.
一个块设备(例如一个磁盘)应该是可以驻有一个文件系统的