您的位置:首页 > 运维架构 > Linux

Linux 核 心 —— 第1章 硬件基础

2005-04-09 03:16 267 查看

第1章 硬件基础
一个操作系统必需紧密地和其支撑--硬件系统结合在一起。操作系统需要一些只能由硬件
提供的一些服务。为了很好的理解Linux操作系统,读者需要明白一些低层的硬件知识。
本章对当代PC系统的一些硬件作一个介绍。

1975年的1月,当“Popular Electronics”杂志在其封面上给出Altair 8080的照片后,一场革
命就开始了。

Altair 8080当时的价格是非397美金。对于今天而言,其Intel 8080的处理器,256字节的内
存,没有屏幕和键盘的配置是微不足道的。它的发明者Ed Roberts将其新的发明称之为
“个人计算机”。

计算机爱好者看见了Altair得潜力并开始为它写软件和在其上为它配置硬件。对这些先驱
者来说,这是一种摆脱呆版的基于批处理的大型机的自由。一些退学的在校生通过这些
个人计算机一夜之间获得了巨大的财富。市场上出现了大量的硬件设备。软件hackers们
非常高兴地为这些新机器编写软件。有趣的是,是IBM公司在1981年制造了当代PC--IBM
PC并在1982年交给用户使用。当时IBM PC的配置是Intel 8088处理器, 64K内存(可扩展到
256K),两个软磁盘和一个80字符,25行的CGA显示适配器。1983年,IBM推出了IBM
PC-XT,含有一个10M的硬盘。不久之后,许多公司,如compaq,推出了IBM PC的兼容机。
PC的体系结构变成了一个工业标准。这个工业标准使得大量的硬件公司在一个基础上进
行竞争。从而使的PC价格变得越来越便宜。早期PC的许多结构特徵被现代PC所继承。例
如,即使先进的Intel Pentium Pro系统在开始时也运行在Intel 8086的地址模式下。当Linus
Torvalds 开始写Linux时,他选择了当时最多的,价格也较合理的Intel 80386 PC。



图1.1 一个典型的PC主板

从外面看一个PC,最明显的部件是一个系统主机,键盘,鼠标器和 一个显示器。大多数系统还
有CD ROM。如果你想要保护数据,还可以有一个磁带驱动器用来做数据备份。这些设备通称为外设。

虽然CPU是系统的主要控制部件,它不是系统中唯一具有智能的。所有的外设控制器,例如,IDE控
制器,都有一定的智能成份。在一个PC的内部(如图1.1所示),读者可以看见一个含有CPU的主板,
内存和一些ISA或PCI外设控制器插槽。有些控制器,如IDE磁盘控制器,有可能被直接作在系统板上。

1.1 CPU

CPU,或微处理器,是任何一个计算机系统的心脏。CPU通过读取并执行内存中的指令来进行计算,执
行逻辑运算和管理数量流。

(以下略去关于CPU的介绍,有兴趣的读者请参考有关书籍)

1.2 存储器

所有的系统都有一个存储器的层次结构。每一层的速度和大小不一样。最快的存储器是缓冲(cache)存
储器,用来暂时存放主存储器的内容。这种存储器非常快但价格很贵,因此大多数处理器在芯片中只含
有较少的cache存储器。更多的则在系统板上。有些处理器在cache中混合存放数据和指令;有些则分开
存放。一个cache为指令;其他一个 cache为数据。Alpha处理器中含有两个内部存储cache;D-cache为
存放数据;I-cache为存放指令。外部的cache(B-cache)混合存放数据。最后,存储体系结构中的是主存
储器。相对于外部cache,主存比较慢。如果与CPU内部的cache比较,主存的速度就象爬一样。

缓冲与主存之间必须保持一致性(coherent)。换句话说,如果主存中的一个字在cache中的一个或多个地
方,系统必须保证cache中的内容与主存中的一致。cache一致性的工作一部份是有硬件完成的,一部份是
有操作系统完成的。这一点对于大多数系统都是一样的。系统中的软硬件必须互相合作完成功能。

1.3 总线

系统板上的部件通过总线相连。系统总线份外三个逻辑功能部份:地址总线,数据总线和控制总线。地址
总线指定数据传送的地址。数据总线负责运送要传送的数据. 数据总线是双向的。允许数据读进CPU和从
CPU写出。控制总线包含一些信号线用来控制时序和系统中的其他控制信号。

1.4 控制器和外设

外设是真实的设备,例如显示卡或磁盘。外设都由系统主板上的控制器所控制。IDE磁盘由IDE控制器
芯片控制;SCSI磁盘被SCSI磁盘控制器所控制。控制器之间,控制器与CPU通过总线相连。大多数系
统通过PCI和ISA总线将系统的部件相连。控制器与CPU一样是一种处理器,可以看作是CPU的智能助手。
CPU是系统的控制中心。

所有的控制器都不相同。但通常它们都有一些用来控制作用的寄存器。在CPU之上运行的软件必须能
够读和写这些控制寄存器。一个寄存器可能包含一个用来描述错误的状态;另一个寄存器可能被用来
作为控制,例如改变控制器的模式。总线上的每个控制器都可以分别地被CPU所访问。从而设备驱动
程序软件可以写上述寄存器以控制这些控制器。

1.5 地址空间

系统总线将CPU与主存相连,这与将CPU与系统硬件外设相连的总线是分开的。总的来说,硬件外设
所占据的存储空间叫做I/O空间。CPU可以既可以存取系统存储空间,也可以存取I/O空间。然而
控制器只能在CPU的帮助下间接地访问系统主存。从设备的观点看,例如软盘控制器,它只能看见
其控制寄存器所在的ISA空间的地址。一般而言,CPU使用不同的指令系统来存取系统存储器和
I/O空间。例如,可能存在一个指令“从I/O地址0x3f0读一个字节到寄存器x”。CPU就是这样通过
读和写来控制系统的硬件外设的。在I/O空间中,一些常用的硬件外设(IDE控制器,串行口,
软盘驱动器等)的寄存器地址已经被固定下来。例如0x3f0正好是串口一(com1)的一个控制寄存器。

有时候,控制器需要在系统主存之间传送大量的数据。例如将数据写入磁盘。这种情况下,直接
储存存取(DMA)控制器被用来使得硬件外设直接存取系统内存。但是这个过程是在CPU的严格控制和
监督之下。

1.6 定时器

所有的操作系统都需要知道时间。所以PC中含有一个特殊的设备叫做实时时钟(Real Time Clock)。
RTC提供两种功能:每天的时间和准确的时间脉冲。RTC有其自己的电平。因此即使PC没开电源,
RTC也在运行。这就是为什么你的PC的时间一直在更新的原因。RTC提供的时间脉冲使得操作系统可以
准确的调度必须的工作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux cache 存储 ibm 磁盘 ide