Linux设备驱动与安全及版本管理全解析
网络管理与Linux模块特性
网络操作通常由操作系统管理,因为大多数网络操作并非特定于某个进程,传入的数据包是异步事件。系统需要收集、识别和调度这些数据包,然后再由进程处理。操作系统负责在程序和网络接口之间传递数据包,并根据程序的网络活动控制其执行。此外,所有的路由和地址解析问题都在内核中实现。
Linux的一个显著优点是可以在运行时扩展内核的功能。能在运行时添加到内核的代码片段被称为模块。Linux内核支持多种类型的模块,包括但不限于设备驱动。每个模块由目标代码组成(未链接成完整的可执行文件),可以通过 insmod 程序动态链接到运行的内核,通过 rmmod 程序取消链接。
设备与模块的分类
Unix系统将设备分为三种类型,模块通常实现其中一种类型,可分为字符模块、块模块或网络模块。不过这种分类并非绝对,程序员也可以编写大型模块,在一个代码块中实现多个驱动。但优秀的程序员通常会为每个新功能创建一个独立的模块,因为模块化是可扩展性的关键。
- 字符设备 :字符设备可以像文件一样按字节流访问,字符驱动负责实现这种行为,通常至少实现
open、close、read和write系统调用。例如文本控制台(/dev/console)和串口(/dev/ttyS0等)就是字符设备,它们通过文件系统节点访
超级会员免费看
订阅专栏 解锁全文

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



