网站大量收购独家精品文档,联系QQ:2885784924

linux核心下.pdf

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
linux核心下

Linux核心(The Linux Kernel) (下) First, they ignored us; then they laughed at us; then they fighted us; then we win. --From 1st Linux Conference 原著:David A Rusling 编译:陈怀临等 第八章 设备驱动程序 操作系统的目的之一就是掩盖掉各种硬件的特殊性。使得系统中的硬件设备对于用户而言是透明 的,例如,不管底层是什么样的物理设备,虚拟文件系统提供一个一致的,安装好的文件系统。本 章将描述 Linux 核心如何管理系统中的物理设备。 系统中 CPU 不是唯一的智能设备,每一个物理外设都有其设备控制器。键盘,鼠标和串行接口由 多功能卡 (SuperIO)控制,IDE 磁盘由 IDE 控制器掌握,SCSI 磁盘有 SCSI 控制器控制。每一 个于硬件控制器都有其自己的控制和状态寄存器 (CSR)。这些 CSR 在不同的设备中是不一样的。 一个 Adaptec 2940 SCSI 控制器的 CSR 与 NCR810 SCSI 控制器差别很大。CSR 用来启动和 停止一个设备,用来初始化一个设备和检测故障。用来管理系统中硬件控制器的代码位于 Linux 核心中,而不是在每个应用程序中。用来管理硬件控制器的软件通常叫做设备驱动程序。Linux 核心的设备驱动程序基本上是一些共享库 (Shared Library),在库中含有一些特权的,常住内 存的,一些用来处理底层硬件的例程。Linux 的设备驱动程序用来处理各种硬件的多样性。 操作系统的基本功能之一是对设备处理的抽象化。所有的物理设备被当做正规的文件来处理,可以 被“打开”,“关闭”,“读”和”写“,就像我们用系统调用处理文件一样。 (译者注:“文件”是一个 逻辑上的概念;设备是一个实体。这里谈的是把设备抽象在/dev 文件系统下。)系统中每一个设 备都对应一个设备特殊文件 (device special file),例如,系统中的第一个 IDE 磁盘的设备 文件名是/dev/hda。对于块设备(如,磁盘)和字符设备,它们的的设备特殊文件通常是通过 mknod 命令用主设备号和次设备号来描述和创建。 (译者注:主设备号和次设备号用来定位系统中 两个表。一个主设备对应一个设备驱动程序。次设备的含义是系统中可以存在多个设备属于同一 类,比如多个 IDE 磁盘。 但它们只需要一个同样的设备驱动程序来管理。)网络设备也同样是一 个设备特殊文件,但它是由 Linux 核心来创建当系统发现并初始化网络控制器的时候。被同样一 个设备驱动程序所管理的所有设备拥有一个同样的主设备号。次设备号用来区分不同的设备和设备 控制器。例如,每个 IDE 磁盘主设备的每个分区都有个不同的次设备号。所以,/dev/hda2,这 个第 2 个分区的主设备号是 3,次设备号是 2。Linux 将系统调用中 (比如将一个文件系统安装在 一个块设备上)传递过来的设备特殊文件名映射到相应的设备驱动程序 (根据其相应的主设备名)和 许多系统表中,如字符设备表,chrdevs。 Linux 支持三种硬件设备类型:字符,块和网络设备。字符设备的读写不需要缓冲,例如系统的 串行接口/dev/cua0 和/dev/cua1。块设备的读和写只能以块的单位来进行,块的大小一般是 512 字节或 1024 字节。块设备的读写是通过缓冲 Cache 并且可以被随机存取。随机存取意味著 你可以定位块设备的任一个块并进行读取;块设备的存取可以通过其设备特殊文件,但更通常的是 通过文件系统。只有块设备支持文件系统的安装 (Mount)。网络设备的存取是通过BSD 的 Socket 接口和网络子系统 (请参阅网络章节)。 Linux 支持许多不同的设备驱动程序 (Linux的优点之一)。它们都具备一些共同的属性: 核心态: 设备驱动程序是核心的一部份,就象核心中其他代码一样,如果不正确运行,会严 重地毁坏系统。一个写的不好的驱动程序 可能使系统崩溃,并可能将文件系统打乱丢失数据 . (译者注:作者在这提“核心态”的目的是指核心态下运行的代码可以几乎完全控制一个系统。) 核心接口: 设备驱动程序必须

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档