分享
 
 
 

Linux Kernel核心中文手册(1)

王朝system·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Hardware Basic( 硬件基础知识 )

一个操作系统必须和作为它的基础的硬件系统紧密配合。操作系统需要使用一些只有硬件才能提供的功能。为了完整的了解 linux ,你需要了解底层硬件的基础知识。本章对于现代 PC 的硬件进行了。

1975 年 1 月“ Popular Electronics ”杂志封面上印出了 Altair 8080 的图片,一场革命开始了。 Altair 8080 ,跟随早期的“ Star Trek epsode ”命名,只需要 $397 ,就可由个人电子爱好者自己组装。它拥有 Intel 8080 处理器和 256 字节内存,但是没有屏幕和键盘。以今天的标准来衡量,它太简陋了。它的发明者, Ed Roberts ,制造了名词“ personal computer “来命名他的发明,但现在, PC 这个名词已经用来命名几乎所有你可以不依靠帮助就可以自己运行起来的计算机。用这个定义,甚至一些十分强大的 Alpha AXP 系统也是 PC 。

爱好者们看到了 Altair 的潜力,开始为它写软件,制造硬件。对于这些早期的先驱来讲,它代表着自由:从被神职人员控制和运行的大型批处理的主机系统中逃脱出来的自由。你可以在自己家里甚至厨桌上拥有计算机,这使学院的退学生为此着迷并通宵达旦。与此同时出现大量硬件,在一定程度上各自不同,而软件专家则乐于为这些新机器撰写软件。有讽刺意味的是, IBM 在 1981 年发布了 IBM PC 并于 1982 年早期供货,从此定义了现代 PC 的模型。它拥有 Intel 8088 处理器, 64K 内存(可以扩充到 256K ),两个软驱和一个 80x25 的彩色图卡 (CGA) ,用今天的标准衡量,它功能不算很强,但是它销售的不错。 1983 年,紧接着推出的 IBM PC-XT ,则拥有一个豪华的 10M 硬盘。不久大批公司如 Compaq 开始制造 IBM PC 的复制品, PC 的结构成为了事实的标准。这个事实的标准使大批硬件公司可以在这个不断增长的市场上一起竞争,反过来,可以遏制价格,让用户满足。现代 PC 承袭了早期 PC 的许多系统体系特征。甚至基于最强大的 Intel Pentium PRo 的系统也可以运行 Intel 8086 的寻址模式。当 Linus Torvalds 开始开发后来的 Linux 时,他选择了当时最常见和价格最合理的硬件平台:一台 Intel 80386 PC 。

从 PC 的外面看,最明显的部件就是机箱、键盘、鼠标和显示器。在机箱的前面有一些按钮,一个小屏幕显示一些数字,还有一个软驱。现在的大多数系统还有一个 CD-ROM 期、驱动器。假如你需要保护你的数据,那么还会有一个备份用的磁带机。这些设备一律被看作外设。

虽然 CPU 治理整个系统,但它并不是唯一的智能设备。所有的外设控制器,例如 IDE 控制器,也都拥有一定程度的智能。在 PC 内部(图 1.1 ),你可以看到一个主板,包括 CPU 或微处理器、内存和一些 ISA 或 PCI 外设控制卡的槽位。其中一些控制器,如 IDE 磁盘控制器可能内置在系统主板上。

CPU

CPU,或者说微处理器,是所有计算机系统的心脏。微处理器进行数学运算,逻辑操作并从内存中读取指令并执行指令,进而控制数据流向。计算机发展的早期,微处理器的各种功能模块是由相互分离(并且尺寸上十分巨大)的单元构成。这也是名词“中心处理单元”的起源。现代的微处理器将这些功能模块集中在一块非常小的硅晶片制造的集成电路上。在本书,名词 CPU 、微处理器和处理器交替使用。

微处理器处理二进制数据:这些数据由 1 和 0 组成。这些 1 和 0 对应电气开关的开或关。就似乎 42 代表 4 个 10 和 2 个单元,二进制数字由一系列代表 2 的幂数的数字组成。这里,幂数意味着一个数字用自身相乘的次数。 10 的一次幂是 10 , 10 的 2 次幂是 10x10 , 10 的 3 次幂是 10x10x10 ,依此类推。二进制 0001 是十进制 1 ,二进制数 0010 是十进制 2 ,二进制 0011 是十进制 3 ,二进制 0100 是十进制 4 ,等等。所以,十进制 42 是二进制 101010 或者( 2+8+32 或 21+23+25 )。在计算机程序除了使用二进制表示数字之外,另一种基数, 16 进制,也经常用到。在这种进制中,每一位数字表示 16 的幂数。因为十进制数字只是从 0 到 9 ,在十六进制中 10 到 15 分别用字母 A , B , C , D , E , F 表示。例如,十六进制的 E 是十进制的 14 ,而十六进制的 2A 是十进制的 42 ( 2 个 16+10 )。用 C 语言的表示法(本书一直使用),十六进制数字使用前缀“ 0x ”:十六进制的 2A 写做 0x2A 。

微处理器可以执行算术运算如加、乘和除,也可以执行逻辑操作例如“ X 是否大于 Y ”。

处理器的执行由外部时钟控制。

这个时钟,即系统时钟,对处理器产生稳定的时钟脉冲,在每一个时钟脉冲里,处理器执行一些工作。例如,处理器可以在每一个时钟脉冲里执行一条指令。处理器的速度用系统时钟的频率来描述。一个 100Mhz 的处理器每秒钟接受到 100 , 000 , 000 次时钟脉冲。用时钟频率来描述 CPU 的能力是一种误解,因为不同的处理器在每一次时钟脉冲中执行的工作量不同。虽然如此,假如所有的条件同等,越快的时钟频率表示处理器的能力越强。处理器执行的指令非常简单,例如:“把内存位置 X 的内容读到寄存器 Y 中“。寄存器是微处理器的内部存储空间,用来存储数据并进行操作。执行的操作可能使处理器停止当前操作而转去执行内存中其他地方的指令。正是这些微小的指令集合在一起,赋予现代的微处理器几乎无限的能力,因为它每秒可以执行数百万甚至数十亿的指令。

执行指令时必须从内存中提取指令,指令自身也可能引用内存中的数据,这些数据也必须提取到内存中并在需要的时候保存到内存中去。

一个微处理器内部寄存器的大小、数量和类型完全决定于它的类型。一个 Intel 80486 处理器和一个 Alpha AXP 处理器的寄存器组完全不同。另外, Intel 是 32 位宽而 Alpha AXP 是 64 位宽。但是,一般来讲,所有特定的处理器都会有一些通用目的的寄存器和少量专用的寄存器。大多数处理器拥有以下非凡用途的专用的寄存器:

Program Counter ( PC )程序计数器

这个寄存器记录了下一条要执行的指令的地址。 PC 的内容在每次取指令的时候自动增加。

Stack Pointer ( SP )堆栈指针

处理器必须能够存取用于临时存储数据的大容量的外部读写随机存取内存( RAM )。堆栈是一种用于在外部内存中存放和恢复临时数据的方法。通常,处理器提供了非凡的指令用于将数据压在堆栈中,并在以后需要是取出来。堆栈使用 LIFO (后进先出)的方式。换句话说,假如你压入两个值 x 和 y 到堆栈中,然后从堆栈中弹出一个值,那么你会得到 y 的值。

一些处理器的堆栈向内存顶部增长,而另一些向内存的底部增长。还有一些处理器两种方式都可以支持,例如: ARM 。

Processor Status ( PS )

指令可能产生结果。例如:“ X 寄存器的内容是否大于 Y 寄存器的内容?“可能产生真或假的结果。 PS 寄存器保留这些结果以及处理器当前状态的其他信息。多数处理器至少有两种模式: kernel (核心态)和 user (用户态), PS 寄存器会纪录能够确定当前模式的那些信息。

Memory( 内存 )

所有系统都具有分级的内存结构,由位于不同级别的速度和容量不同的内存组成。

最快的内存是高速缓存存储器,就象它的名字暗示的一样 - 用于临时存放或缓存主内存的内容。这种内存非常快但是比较昂贵,因此多数处理器芯片上内置有少量的高速缓冲存储器,而大多数高速缓存存储器放在系统主板上。一些处理器用一块缓存内存同时缓存指令和数据,而另一些处理器有两块缓存内存 - 一个用于指令,另一个用于数据。 Alpha AXP 处理器有两个内置的内存高速缓存存储器:一个用于数据( D-Cache ),另一个用于指令( I-Cache )。它的外部高速缓冲存储器(或 B-Cache )将两者混在一起。

最后一种内存是主内存。相对于外部高速缓存存储器而言速度非常慢,对于 CPU 内置的高速缓存存储器,主内存简直是在爬。

高速缓存存储器和主内存必须保持同步(一致)。换句话说,假如主内存中的一个字保存在高速缓存存储器的一个或多个位置,那么系统必须保证高速缓存存储器和主内存的内容一样。使高速缓冲存储器同步的工作一部分是由硬件完成,另一部分则是由操作系统完成的。对于其它一些系统的主要任务,硬件和软件也必须紧密配合。

Buses (总线)

系统板的各个组成部分由被称为总线的连接系统互连在一起。系统总线分为三种逻辑功能:地址总线、数据总线和控制总线。地址总线指定了数据传输的内存位置(地址),数据总线保存了传输的数据。数据总线是双向的,它答应 CPU 读取,也答应 CPU 写。控制总线包含了各种信号线用于在系统中发送时钟和控制信号。有许多种不同的总线类型, ISA 和 PCI 总线是系统用于连接外设的常用方式。

Controllers and Peripherals (控制器和外设)

外设指实在的设备,如由系统板或系统板插卡上的控制芯片所控制的图形卡或磁盘。 IDE 控制芯片控制 IDE 磁盘,而 SCSI 控制芯片控制 SCSI 磁盘。这些控制器通过不同的总线连接到 CPU 并相互连接。现在制造的大多数系统都是用 PCI 或 ISA 总线将系统的主要部件连接在一起。控制器本身也是象 CPU 一样的处理器,它们可以看作 CPU 的智能助手, CPU 拥有系统的最高控制权。

所有的控制器都是不同的,但是通常它们都有用于控制它们的寄存器。 CPU 上运行的软件必须能够读写这些控制寄存器。一个寄存器可能包含描述错误的状态码,另一个寄存器可能用于控制用途,改变

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有