Linux内核-第一节:系统硬件

本文介绍了计算机硬件的基础知识,包括CPU的工作原理、内存层次结构、总线系统、控制器及外部设备的作用,以及计时器的重要性。

 操作系统总是和它所依赖的硬件系统紧密协作为用户提供完美服务的,为了在用户的眼中表现的完美性感,操作系统必须为用户提供强大的服务,而要完成这些服务,操作系统必须调动特定的硬件资源来完成服务。所以,把操作系统理解成用户和硬件的代理人是很恰当的,要理解操作系统,我们至少先得了解下它所在的硬件环境是神马个情况。 当1976年一月份的<<大众电子>>杂志以一副Altair 8080计算机图片作为其封面画时,计算机世界的一场革命就开始了。当时这台机器使用的是最早的Intel 8080处理器,内存只有可怜的256字节,相比于今天的计算机来说,简直就是一碟小菜。 但是,幸运的是,对的确幸运的是,有无数的对计算机充满热情的人们,看到了这台在今天看起来不起眼的机器的内在潜力,他们不断地为这台计算机编写各种软件,并且设计新的硬件来提高它的性能,正是由于这群人的无私奉献,计算进才有了长足的发展,到了1981年的时候,IBM首先提出了现代PC的模型,并推出其首款IBM PC机,这台机器装备的是Intel 8086处理器,并拥有64KB的内存(有拓展的256KB内存),并且有两个软驱,以及一个80x25的CGA彩色图形显示适配器,这台机器迅速获得成功,并奠定了IBM PC在个人计算机市场上的长久成功,事实上,从这以后,IBM PC所使用的计算机机构已经成为了事实上的PC机架构标准,这个标准使得大批的硬件供应商为了争夺市场而不断竞争,当然这对于消费者来说是个好消息,硬件产品不会过于昂贵,并且,竞争会使得不断有新的更好的硬件被开发出来,加速了计算机的发展,即使当过去了30年时间,现在的计算机架构中的很多的特性,还是使用的原来的架构方式,例如,即使是强大的Intel Pentium Pro 处理器也能以Intel 8086的寻址模式进行工作。当Linus Torvalds开始写最初的Linux内核的时候,他所针对的硬件平台就是当时最普遍,最流行的Intel 80386处理器。 如果从外观上看一台现代计算机,几个比较明显的部件就是,主机箱,键盘,鼠标,显示器,以及主机箱上的一些控制CD-ROM的按钮。虽然,CPU总的来说是系统的主控制部件,但是CPU并不是这个系统中唯一的有运算,控制功能的部件,比如,磁盘控制器芯片。在主板上,我们可以看见CPU,内存条,以及PCI外设控制器等等。

 

1.1 CPU:

 

      CPU,是计算机系统的核心部件,微处理器主要执行的任务就是,计算,机型逻辑操作,控制数据流。这些都是通过执行一些特定的指令完成的,指令存储在内存中,所以CPU需要从内存中不断地读取指令,并执行它。早期逻辑控制部件是被分隔出来的单元。现代的CPU将所有的运算,控制部件集成到一块非常小的硅片上。 处理器以2进制的形式操作数据,由于2进制只含有0和1两个数,这就大大的方便了硬件设计,0和1分别对应的是门电路的两种态。开或者关。2进制数据的每一位对应的是2的幂,相对于2进制来说,16进制数据也经常用在计算机中,来代表程序或数据。类似的,16进制每一位对应的是16的幂。 CPU能够进行的算术运算如,加,乘,除。还有一些逻辑运算。 处理器的运作是由一个外部时钟控制的,这个时钟,也就是系统时钟,产生周期性的时间脉冲,在每一次时间脉冲中,CPU做同样的工作。例如,CPU能够在一次时间脉冲中执行一条指令,CPU的运行速度是通过系统时钟滴答的速度来衡量的,比如,一个100MHZ的处理器能够在每秒钟接受到100000000次的时钟滴答,所以,有一个更快的时钟意味着有一个更快的CPU,CPU执行的指令很简单,例如,一条指令可能会将内存地址X的内容读入寄存器Y. 寄存器是CPU中的一个存储部件,用来存储数据或者是指令,指令可能会使CPU暂停当前工作,转移到内存中的一条指令。这些寄存器使得CPU有强大的力量,使得CPU能在1秒中执行百万乃至上亿条指令。 为了使CPU执行指令,首先得先从内存中将指令提取出来,指令可能自身就定位了内存中其要操作的数据的位置。 寄存器的大小完全的依赖于其类型,Intel 8086处理器的寄存器就和Alpha AXP处理器的寄存器不同,最初,Intel 8086寄存器是32位,而Alpha AXp的寄存器是64位的。一般情况下,任何的处理器都有一堆通用寄存器,以及一些专用寄存器,这些专用寄存器可能有: 程序计数器PC: 这个寄存器存储的总是下一条要执行的指令的地址,PC寄存器的内容会在每一次的指令提取时被更新。 栈指针SP: 处理器不得不对外部的读写存储器机型频繁访问来获取临时的数据,栈提供了一种更简便的保存,恢复外部内存临时数据的方式,通常,CPU有特殊的用来将数据压入栈以及从栈中弹出数据的指令。不同的系统,栈增长的方式是不一样的,有的处理器系统栈像内存正大的方向增长,而有的处理器系统向内存减小的方向增长,一些处理器如ARM,同时支持这两种方式。 处理器状态PS: PS 寄存器存储的是当前处理器的状态信息,例如,很多的处理器至少有内核态以及用户态两种模式,PS寄存器,将会包含识别当前模式的信息。

 

 

1.2 内存

  

      所有的系统都有一个内存分层结构,每一层中的内存在速度上容量上都大不相同,内存分层结构中存取速度最快的是cache, cache是用来临时的保存主存中的数据的,cache十分的昂贵,但是,其速度比内存更快,因此,大部分的处理器上都集成了一个cache,并且主板上也由cache部件,有的处理器使用同一块cache存储数据和指令,但是也有一些系统,使用两块不同的cache,一块存数据,另外的一块存指令。Alpha AIX 处理器就有两块内置cache,一块存数据,另外的一块存指令,外置的cache既可以存数据,也可以存指令,所以相对于外置的cache,主存慢的蛋疼,相对于内置的cache,主存就像在爬着前进。主存和cache必须在步调上是一致的,也就是说,如果内存中的一个子被保存在cache中的几个单元中时,系统必须保证cache中的内容和主存中的内容是相同的,这个相干性是由硬件以及操作系统共同保证的。

 

1.3 总线

 

      系统主板上面的每一个部件都是通过总线相互连接的,逻辑上,系统总线被分成3个类,数据总线,地址总线,以及控制总线,地址总线指的是的是内存中数据传输的地址,数据总线指的是要传输的数据值,数据总线是全双工的,允许数据读入CPU 或者从CPU 读取数据。 控制总线包含各种传输时间信号,控制信号的线。 计算机里存在很多的总线标准,比如老式的ISA 总线,以及新式的 PCI 总线。

 

 

1.4 控制器及外部设备

 

      计算机外设就是连接计算机的众多外部设备,图形卡,磁盘控制器芯片, 或者一些可以插在扩展槽里面的功能部件。 IDE 磁盘是由IDE,磁盘控制芯片控制,SCSI磁盘是由SCSI磁盘控制芯片控制的,这些控制器通过总线连接到CP,注意,连接不同磁盘使用的总线类型是不同的,由专门的数据通道, 外设控制器各不相同,一般来说不同控制器控制对应的专门的硬件,控制器类似于CPU 也是一种芯片,一般这些控制器芯片里面也有寄存器,运行在CPU上的程序要想控制这些外设,必须能够访问这些外设控制器芯片,同样,这些外设控制器芯片中的寄存器的功能也各不相同,总线上的每个控制器能够被CPU单独的寻址,因此驱动程序指令能够向这些控制器芯片寄存器写入数据,从而控制这些设备。

 

 

1.5 地址空间

      连接CPU 以及主存的系统总线与连接CPU 以及外部设备控制器之间的系统总线是不一样的,其相互分开,内存中硬件驻留的那部分叫做I / O空间,这部分空间可能又被划分成几个子空间,CPU 能够访问系统内存空间,以及 I /O 内存空间,但是,外设控制器自己只能在CPU 允许的情况下间接的访问系统内存空间,从外设控制器的角度看,比如是个磁盘控制器,它只能看见的就是其控制寄存器所在的地址空间,其不能看见之外的系统内存空间,一般情况下,CPU 用来访问系统内存空间以及 I /O 地址空间的指令是不同的,例如可能有一条指令是将I /O空间0x024数据读入寄存器X,这个也就是CPU 控制外设的方式,通过读写这些外设在I/O空间中的寄存器完成的,并且,经过多年沿用的习惯,外设的寄存器都已经有固定的I /O 空间地址了,比如0x3f0就是一个串行口COM1的控制寄存器的地址, 有时 ,可能需要进行大量的I /O 操作,有一种 DMA 控制器使得硬件能够直接的与内存进行数据交换,而绕过了CPU 的控制,从而加快了读写速度。

 

 

1.6 计时器

 

      操作系统需要知道当前的系统时间,所以现代的PC 机都由一个特殊的外设,叫做RTC (Real Time Clock), 这个部件有两个功能, 能够精确的记录日期时间,RTC有自己的供电电池,所以,即使是PC 机断电时RTC也是在运行的,只要电池有电,这个就是为什么计算机总能知道准确时间的原因, 计时器就使得操作系统能够准确的安排要执行的计划任务。      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值