What Is Linux? -- Looking into the Linux kernel -- Hardware management

未匹配的标注

Linux 内核的另一个职责是硬件管理。任何 Linux 系统需要与之通信的设备都需要插入内核代码的驱动程序代码。驱动程序代码充当一个中间人,允许内核在应用程序和硬件之间来回传递数据。有两种方法可用于将设备驱动程序代码插入 Linux 内核中:

  • 编译在内核中的驱动程序
  • 添加到内核的驱动程序模块

以前,插入设备驱动程序代码的唯一方法是重新编译内核。每次将新设备添加到系统时,都必须重新编译内核代码。随着 Linux 内核支持的硬件越来越多,这个过程变得更加低效。幸运的是,Linux 开发人员设计了一种更好的方法,可以将驱动程序代码插入正在运行的内核中。

程序员创造了内核模块的概念,允许您在不必重新编译内核的情况下将驱动程序代码插入正在运行的内核中。此外,设备不再使用时,内核模块可以从内核中移除。这大大简化和扩展了 Linux 上硬件的使用。

Linux 系统将硬件设备识别为特殊文件,称为设备文件。设备文件分为三种类型:

  • 字符设备文件
  • 块设备文件
  • 网络设备文件

字符设备文件用于只能逐个字符处理数据的设备。大多数调制解调器和终端都被创建为字符文件。块文件用于可以一次处理大块数据的设备,如磁盘驱动器。

网络文件类型用于使用数据包发送和接收数据的设备,包括网络卡和一种特殊的回环设备[[1]],允许 Linux 系统使用常见的网络编程协议与自身通信。

Linux 为系统上的每个设备创建称为节点的特殊文件。与设备的所有通信都通过设备节点执行。每个节点都有一个唯一的数对,用于将其标识给 Linux 内核。该数对包括一个主设备号和一个次设备号。类似的设备被分组到同一个主设备号中。次设备号用于在主设备组中标识特定的设备。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~