本节书摘来自异步社区《鸟哥的linux 私房菜 基础学习篇(第三版)》一书中的第0章,第0.1节,作者:鸟哥著,更多章节内容可以访问云栖社区“异步社区”公众号查看
这几年鸟哥开始在大学任教了,在教学的经验中发现,由于对linux有兴趣的朋友很多可能并非是计算机专业出身,因此对于计算机硬件及计算机方面的概念不熟。然而操作系统跟硬件有相当程度的关联性,所以如果不了解一下计算机概论,要很快地了解linux的概念是有点难度的。因此,鸟哥就自作聪明地新增了一小章来谈谈计算机概论!因为鸟哥也不是相关学科出身,所以写得不好的地方还请大家多多指教。
鸟哥的linux 私房菜 基础学习篇(第三版)
进入21世纪,没有用过计算机的朋友应该算很少了吧?但是,你了解计算机是什么吗?计算机的机壳里面含有什么组件?不同的计算机可以作什么事情?你生活周围都有哪些电器用品内部是含有计算机相关组件的?下面我们就来介绍一下吧!
计算机其实是:接收用户输入指令与数据,经过中央处理器的数据与逻辑单元运算处理后,以产生或存储成有用的信息。因此,只要有输入设备(不管是键盘还是触摸式屏幕)及输出设备(屏幕或直接打印出来),让你可以输入数据使该机器产生信息的,那就是一台计算机了,如图0-1所示。

根据这个定义你知道哪些东西是计算机了吗?包括一般商店用的简易型加减乘除计算机、打电话用的手机、开车用的卫星定位系统(gps)、提款用的提款机(atm)、你常使用的桌面型计算机、可携带的笔记本电脑,还有近年来很红火的eee pc(或称为netbook、上网本)等,这些都是计算机!
那么计算机主要的组成部件是什么呢?下面我们以常见的个人计算机来作说明。
0.1.1 计算机硬件的五大单元
关于计算机的组成部分,其实你可以观察你的桌面型计算机分析一下,依外观来说,计算机主要分为三部分。
◆ 输入单元:包括键盘、鼠标、卡片阅读机、扫描仪、手写板、触摸屏幕等。
◆ 中央处理器(cpu):含有算术逻辑、控制、记忆等单元。
◆ 输出单元:例如屏幕、打印机等。
我们主要通过输入设备(如鼠标与键盘)来将一些数据输入到主机里面,然后再由主机的功能处理成为图表或文章等信息后,将结果传输到输出设备,如屏幕或打印机上面。重点在于主机,里面含有什么组件呢?如果你曾经拆开过计算机机箱,会发现其实主机里面最重要的就是一块主板,上面安插了中央处理器(cpu)以及内存,还有一些适配卡而已。
整台主机的重点在于中央处理器(central processing unit, cpu),cpu为一个具有特定功能的芯片,里头含有微指令集,如果你想要让主机进行什么特异的功能,就得要参考cpu是否有相关内置的微指令集才可以。由于cpu的工作主要在于管理与运算,因此在cpu内又可分为两个主要的单元,分别是算术逻辑单元与控制单元 (注1)。其中算术逻辑单元主要负责程序运算与逻辑判断,控制单元则主要协调各组件与各单元间的工作。
既然cpu的重点是进行运算与判断,那么要被运算与判断的数据是从哪里来的?cpu读取的数据都是从内存读取来的。内存内的数据则是从输入单元传输进来的。而cpu处理完毕的数据也必须要先写回内存中,最后数据才从内存传输到输出单元。
综合上面所说的,我们会知道其实计算机是由几个单元所组成的,包括输入单元、输出单元、cpu内部的控制单元、算术逻辑单元与内存五大部分。相关性如图0-2所示。
图0-2中的系统单元其实指的就是计算机主机内的主要组件,而重点在于cpu与内存。特别要看的是实线部分的传输方向,基本上数据都是流经过内存再转出去。至于数据会流进/流出内存,则是cpu所发布的控制命令。而cpu实际要处理的数据则完全来自于内存,这是个很重要的概念。
而由上面的图示我们也能知道,所有的单元都是由cpu内部的控制单元来负责协调的,因此cpu是整个计算机系统的最重要部分。那么目前世界上有哪些主流的cpu呢?是否刚刚我们谈到的硬件内全部都是相同的cpu种类呢?下面我们就来谈一谈。
0.1.2 cpu的种类
如前面说过的,其实cpu内部已经含有一些小指令集,我们所使用的软件都要经过cpu内部的微指令集来完成才行。这些指令集的设计主要又被分为两种设计理念,这就是目前世界上常见到的两种主要cpu种类,分别是精简指令集(risc)与复杂指令集(cisc)系统。下面我们就来谈谈这两种不同cpu种类的区别。
◆ 精简指令集(reduced instruction set computing, risc)(注2)
● 这种cpu的设计中,微指令集较为精简,每个指令的执行时间都很短,完成的操作也很单纯,指令的执行性能较佳;但是若要做复杂的事情,就要由多个指令来完成。常见的risc微指令集cpu主要有sun公司的sparc系列、ibm公司的power architecture(包括powerpc)系列与arm系列等。
● 在应用方面,sparc架构的计算机常用于学术领域的大型工作站中,包括银行金融体系的主要服务器也都有这类的计算机架构;至于powerpc架构的应用上,例如sony公司出产的play station 3(ps3)就是使用powerpc架构的cell处理器;那arm呢?你常使用的各品牌手机、pda、导航系统、网络设备(交换机、路由器)等,几乎都是使用arm架构的cpu。老实说,目前世界上使用范围最广的cpu可能就是arm呢(注3) !
◆ 复杂指令集(complex instruction set computer, cisc)(注4)
● 与risc不同的,在cisc的微指令集中,每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂,所以每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。常见的cisc微指令集cpu主要有amd、intel、via等x86架构的cpu。
● 由于amd、intel、via所开发出来的x86架构cpu被大量使用于个人计算机(personal computer)用途上面,因此,个人计算机常被称为x86架构的计算机。那为何称为x86架构(注5)呢?这是因为最早的那个intel发展出来的cpu代号称为8086,后来依此架构又开发出80286, 80386等,因此这种架构的cpu就被称为x86架构了。
● 在2003年以前由intel所开发的x86架构cpu由8位升级到16、32位,后来amd依此架构修改新一代的cpu为64位,为了区别两者的不同,因此64位的个人计算机cpu又被统称为x86_64的架构!
● 那么不同的x86架构的cpu有什么区别呢?除了cpu的整体结构(如第二层缓存、每次运作可执行的指令数等)之外,主要是在于微指令集的不同。新的x86的cpu大多含有很先进的微指令集,这些微指令集可以加速多媒体程序的运行,也能够加强虚拟化的性能,而且某些微指令集更能够增加能源效率,让cpu耗电量降低。由于电费越来越高,购买计算机时,除了整体的性能之外,节能省电的cpu特色也可以考虑。
例题
最新的intel/amd的x86架构中,请查询出多媒体、虚拟化、省电功能各有哪些重要的微指令集(仅供参考)。
答: 多媒体微指令集:mmx, sse, sse2, sse3, sse4, amd-3dnow!
虚拟化微指令集:intel-vt, amd-svm
省电功能:intel-speedstep, amd-powernow!
64/32位兼容技术:amd-amd64, intel-em64t
0.1.3 接口设备
单有cpu也无法运作计算机的,所以计算机还需要其他的接口设备才能够实际运行。除了前面稍微提到的输入/输出设备以及cpu与内存之外,还有什么接口设备呢?其实最重要的接口设备是主板!因为主板负责将所有的设备连接在一起,让所有的设备能够进行协调与通信。而主板上面最重要的组件就是主板芯片组!这个芯片组可以将所有的设备汇集在一起!其他重要的设备还有。
◆ 存储设备:包括硬盘、软盘、光盘、磁带等。
◆ 显示设备:显卡对于玩3d游戏来说是非常重要的,它与显示的精度、色彩与分辨率都有关系。
◆ 网络设备:没有网络就活不下去,所以网卡对于计算机来说也是相当重要。
更详细的各项周边设备我们将在下个小节进行介绍。在这里我们先来了解一下各组件的关系!那就是计算机是如何运行的呢?
0.1.4 运作流程
如果不是很了解计算机的运行流程,鸟哥拿个简单的想法来思考好了。假设计算机是一个人体,那么每个组件对应哪个地方呢?可以这样思考。
◆ cpu=大脑:每个人会做事情都不一样(微指令集的区别),但主要都是通过大脑来进行判断与控制身体各部分的活动。
◆ 内存=大脑中的记录区块:在实际活动过程中,我们的大脑能够将外界的互动暂时记录起来,提供cpu来进行判断。
◆ 硬盘=大脑中的记忆区块:将重要的数据记录起来,以便未来再次使用这些重要的经验。
◆ 主板=神经系统:好像人类的神经一样,将所有重要的组件连接起来,包括手脚的活动都是大脑发布命令后,通过神经(主板)传输给手脚来进行活动。
◆ 各项接口设备=人体与外界通信的手、脚、皮肤、眼睛等:就好像手脚一般,是人体与外界互动的关键部位。
◆ 显卡=脑袋中的影像:将来自眼睛的刺激转成影响后在脑袋中呈现,所以显卡所产生的数据来源也是cpu控制的。
◆ 电源(power)=心脏:所有的组件要能运作,得要有足够的电力供给才行。这电力供给就好像心脏一样,如果心脏不够强,那么全身也就无法动弹的!心脏不稳定呢?那你的身体当然可能断断续续地不稳定!
在图0-3所示的关系图当中,我们知道整个活动中最重要的就是大脑。而大脑当中与现在正在进行的工作有关的就是cpu与内存。任何外界的接触都必须要由大脑中的内存记录下来,然后由大脑中的cpu依据这些数据进行判断后,再发送命令给各个接口设备。如果需要用到过去的经验,就得由过去的经验(硬盘)当中读取了。
也就是说,整个人体最重要的地方就是大脑,同样,整台主机当中最重要的就是cpu与内存,而cpu的数据通通来自于内存,如果要由过去的经验来判断事情时,也要将经验(硬盘)挪到目前的记忆(内存)当中,再交由cpu来判断,这一点得要再次强调。下个章节当中,我们就对目前常见的个人计算机各个组件来进行说明。
0.1.5 计算机分类
知道了计算机的基本组成与周边设备,也知道其实计算机的cpu种类非常多,再来我们想要了解的是计算机如何分类。计算机的分类非常多,如果以计算机的复杂度与运算能力进行分类的话,主要可以分为以下几类。
◆ 超级计算机(supercomputer)
● 超级计算机是运行速度最快的计算机,但是它的维护、操作费用也最高。主要是用于需要有高速计算的项目中。例如国防军事、气象预测、太空科技,用在模拟的领域较多。
◆ 大型计算机(mainframe computer)
● 大型计算机通常也具有数个高速的cpu,功能上虽不及超级计算机,但也可用来处理大量数据与复杂的运算。例如大型企业的主机、全国性的证券交易所等每天需要处理数百万笔数据的企业机构,或者是大型企业的数据库服务器等。
◆ 迷你计算机(minicomputer)
● 迷你计算机仍保有大型计算机同时支持多用户的特性,但是主机可以放在一般作业场所,不像前两个大型计算机需要特殊的空调场所。通常用来作为科学研究、工程分析与工厂的流程管理等。
◆ 工作站(workstation)
● 工作站的价格又比迷你计算机便宜许多,是针对特殊用途而设计的计算机。在个人计算机的性能还没有提升到目前的状况之前,工作站计算机的性能/价格比是所有计算机当中较佳的,因此在学术研究与工程分析方面相当常见。
◆ 微电脑(microcomputer)
● 微电脑又可以称为个人计算机,也是我们这里主要探讨的目标。它体积小,价格低,但功能还是五脏俱全的。大致又可分为桌上型电脑、笔记本电脑等。
若光以性能来说,目前的个人计算机性能已经够快了,甚至比工作站等级以上的计算机运算速度还要快。但是工作站计算机强调的是稳定不死机,并且运算过程要完全正确,因此工作站以上等级的计算机在设计时的考虑与个人计算机并不相同!这也是为何工作站等级以上的个人计算机售价较贵的原因。
0.1.6 计算机上面常用的计算单位(大小、速度等)
计算机的运算能力是由速度来决定的,而存放在计算机存储设备当中的数据大小也是有单位的。
◆ 大小单位
● 计算机依据有没有通电来记录信息,所以理论上它只认识0与1而已。0/1的单位我们称为bit。但bit实在太小了,并且在存储数据时每份简单的数据都会使用到8个bit的大小来记录,因此定义出byte这个单位,它们的关系为:
● 1byte = 8bit
● 不过同样地,byte还是太小了,在较大的容量情况下,使用byte相当不容易判断数据的大小,举例来说,1000000b这样的显示方式你能够看得出有几个零吗?所以后来就有一些常见的简化单位表示法,例如k代表1024,m代表1024k等。而这些单位在不同的进位制下有不同的数值表示,下面就列出常见的单位与进位制对应表,如表0-1所示。
◆ 表0-1
● 一般来说,文件大小使用的是二进制的方式,所以1gb的文件大小实际上为:1024x1024x1024b这么大。速度单位则常使用十进制,例如1ghz就是1000x1000x1000hz的意思。
◆ 速度单位
● cpu的运算速度常使用mhz或者是ghz之类的单位,这个hz其实就是秒分之一。而在网络传输方面,由于网络使用的是bit为单位,因此网络常使用的单位为mbit/s,即每秒多少mbit。举例来说,大家常听到的8m/1m adsl传输速度,如果转成文件容量的byte时,其实理论最大传输值为:1mb/s/125kb/s的上传/下载速度。
假设你今天购买了500gb的硬盘一个,但是格式化完毕后却只剩下460gb左右的空间,这是什么原因?
答:因为一般硬盘制造商会使用十进制的单位,所以500gb代表为500 x 1000 x 1000 x 1000b之意。转成文件的大小单位时使用二进制(1024为底),所以就成为466gb左右的空间了。
硬盘厂商并非要骗人,只是因为硬盘的最小物理量为512bytes,最小的组成单位为扇区(sector),通常硬盘容量的计算采用“多少个sector”,所以才会使用十进制来处理的。相关的硬盘信息在这一章后面会提到。