由过去的经验当中,鸟哥发现因为兴趣或生活所迫而必须要接触Linux的朋友,很多可能并非IT相关科系出身,因此对于电脑软/硬件方面的概念不熟。然而操作系统这种东西跟硬件有相当程度的关联性,所以,如果不了解一下计算机概论,要很快的了解Linux的概念是有点难度的。因此鸟哥就自作聪明的新增一个小章节来谈谈计概啰!因为鸟哥也不是IT相关专业出身,所以,写的不好的地方请大家多多指教啊!^_^
0.1 电脑:辅助人脑的好工具
现在的人们几乎无时无刻不会碰电脑!不管是桌面型电脑(台式机)、笔记型电脑(笔记本)、平板电脑、智能手机等等,这些东西都算是电脑。虽然接触的这么多,但是,你了解电脑里面的元件有什么吗?以台式机来说,电脑的机箱里面有什么元件?不同的电脑可以应用在哪些工作?你生活周遭有哪些电器产品内部是含有电脑相关元件的?下面我们就来谈一谈这些东西呢!
所谓的电脑就是一种计算机,而计算机其实是:“接受使用者输入指令与资料,通过中央处理器的数学与逻辑单元运算处理后,产生或存储成有用的信息”。因此,只要有输入设备(不管是键盘还是触摸屏)及输出设备(例如电脑屏幕或者直接由打印机打印出来),让你可以输入资料使该机器产生信息的,那就是一部计算机了。
Tips
电脑可以协助人进行大量的运算!以前如果要计算化学反应式都得要算个老半天,有了电脑模拟软件后,就有不一样的情况发生了!以下图为例,鸟哥的工作中,有一项是需要将人们排放的空气污染物带入电脑模式进行模拟后,计算出可能产生的空气污染并得到空气品质状态,最后经过分析软件得到各式各样的图表。通过解析这些图表,就可以让人们知道什么样的污染排放来源可能会产生什么样的空气质量变化喽。
好了,根据这个定义你知道哪些东西是计算机了吗?其实包括一般商店用的简易型加减乘除计算器、打电话用的手机、开车用的卫星定位系统(GPS)、取钱用的提款机(ATM)、你上课会使用的桌面型个人电脑、外出可能会带的笔记本电脑(包括notebook与netbook),还有近几年非常热门的平板电脑与智能手机,甚至是未来可能会大流行的单板电脑(Xapple pi, banana pi, Raspberry pi,注1)与智能手表,甚至于更多的智能可穿戴设备(注2)等等,这些都是计算机喔!
那么计算机主要的组成元件是什么呢?下面我们以常见的个人电脑主机或服务器工作站主机来作为说明好了。
0.1.1 电脑硬件的五大单元
关于电脑的硬件组成部分,其实你可以观察你的桌面电脑来分析一下,依外观来说这家伙主要可分为三部分,分别是:
输入单元:包括键盘、鼠标、读卡器、扫描仪、手写板、触摸屏等等一堆;
主机部分:这个就是系统单元,被主机机箱保护住了,里面含有一堆板子、CPU与内存等;
输出单元:例如屏幕、打印机等等。
我们主要通过输入设备如鼠标与键盘来将一些资料输入到主机里面,然后再由主机的功能处理成为图表或文章等信息后,将结果传输到输出设备,如屏幕或打印机上面。那主机里面含有什么元件呢?如果你曾经拆开过电脑主机机箱(包括拆开你的智能手机也一样喔!),会发现其实主机里面最重要的就是一片主板,上面安插了中央处理器(CPU)以及内存、硬盘(或存储卡)还有一些扩展卡而已。当然大部分智能手机是将这些元件直接焊接在主板上面而不是插卡啦!
整台主机的重点在于中央处理器(Central Processing Unit, CPU),CPU是一个具有特定功能的芯片,里头含有微指令集,如果你想要让主机进行什么特异的功能,就得要参考这颗CPU是否有相关内置的微指令集才可以。由于CPU的工作主要在于管理与运算,因此在CPU内又可以分为两个主要的单元,分别是:数学逻辑单元与控制单元(注3)。其中数学逻辑单元主要负责程序运算与逻辑判断,控制单元则主要在协调各周边元件与各单元间的工作。
既然CPU的重点是进行运算与判断,那么要被运算与判断的资料是从哪里来的?CPU读取的资料都是从内存来的!内存里的资料则是从输入单元所传输进来!而CPU处理完毕的资料也必须要先写回内存中,最后资料才从内存传输到输出单元。
Tips
为什么我们都会说,要加快系统效能,通常将内存容量加大就可以获得相当好的效果?如同下图以及上面的说明,因为所有的资料都要经过内存的传输,所以内存的容量如果太小,资料缓存就不足~影响效能相当大啊!尤其针对Linux作为服务器的环境下!这点要特别记忆喔!
综合上面所说的,我们会知道其实电脑是由几个单元所组成的,包括输入单元、输出单元、CPU内部的控制单元、数学逻辑单元与内存五大部分。这几个东西的相关性如下所示:
上面图示总的“系统单元”其实指的就是电脑机箱内的主要元件,而重点在于CPU与内存。特别要看的是实线部分的传输方向,基本上资料都是经过内存再转出去的!至于资料会流进/流出内存则是CPU所发布的控制命令!而CPU实际要处理的资料则完全来自于内存(不管是程序还是普通文件资料)!这是个很重要的概念噢!这也是为什么当你的内存不足时,系统的性能就很糟糕!也是为什么现在人们买智能手机时,对于可用内存的要求都很高的原因!
而由上面的图示我们也能知道,所有的单元都是由CPU内部的控制单元来负责协调的,因此CPU是整个电脑系统的最重要部分!那么目前世界上有哪些主流的CPU呢?是否刚刚我们谈到的硬件内全部都是相同的CPU架构呢?下面我们就来谈一谈。
0.1.2 一切设计的起点:CPU的架构
如前面说过的,CPU其实内部已经含有一些微指令,我们所使用的软件都要经过CPU内部的微指令集来完成才行。这些指令集的设计主要又被分为两种设计理念,这就是目前世界上常见到的两种主要CPU架构,分别是:精简指令集(RISC)与复杂指令集(CISC)系统。下面我们就来谈谈这两种不同CPU架构的差异喽!
精简指令集(Reduced Instruction Set Computer, RISC):(注5)
这种CPU的设计中,微指令集较为精简,每个指令的执行时间都很短,完成的动作也很单纯,指令的执行效能较好;但是如果要做复杂的事情,就要由多个指令来完成。常见的RISC微指令集CPU主要例如甲骨文(Oracle)公司的SPARC系列、IBM公司的Power Architecture(包括PowerPC)系列,与安谋公司(ARM Holding)的ARM CPU系列等。
在应用方面,SPARC CPU的电脑常用于学术领域的大型工作站中,包括银行金融体系的主要服务器也都有这类的电脑架构;至于PowerPC架构的应用上,例如索尼(Sony)公司出产的Play Station 3(PS3)就是使用PowerPC架构的Cell处理器;那安谋的ARM呢?你常使用的各品牌手机、PDA、导航系统、网络设备(交换机、路由器等)等,几乎都是使用ARM架构的CPU喔!老实说,目前世界上使用范围最广的CPU可能就是ARM这种架构的呢!(注6)
复杂指令集(Complex Instruction Set Computer, CISC):(注7)
与RISC不同的,CISC在微指令集的每个小指令可以执行一些较底层的硬件操作,指令数目多而且复杂,每条指令的长度并不相同。因为指令执行较为复杂所以每条指令花费的时间较长,但每条指令可以处理的工作较为丰富。常见的CISC微指令集CPU主要有AMD、Intel、VIA等的x86架构的CPU。
由于AMD、Intel、VIA所开发出来的x86架构CPU被大量使用于个人电脑(Personal Computer)用途上面,因此,个人电脑常被称为x86架构的电脑!那为何称为x86架构(注8)呢?这是因为最早的那颗Intel开发出来的CPU代号为8086,后来依此架构又开发出来80286,80386……,因此这种架构的CPU就被称为x86架构了。
在2003年以前由Intel所开发的x86架构CPU由8位升级到16、32位,后来AMD依此架构修改新一代的CPU为64位,为了区别两者的差异,因此64位的个人电脑CPU又被统称为x86_64的架构喔!
Tips
所谓的“位”指的是CPU一次数据读取的最大量!64位CPU代表CPU一次可以读写64bits这么多的数据,32位CPU则是CPU一次只能读取32bits的意思。因为CPU读取数据量有限制,因此能够从内存中读写的数据也就有所限制。所以,一般32位的CPU所能读写的最大数据量,大概就是4GB左右。
那么不同的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啊!那其他三个重要的电脑单元的设备还有哪些呢?其实在主机机箱内的设备大多是通过主板(mainboard)连接在一起,主板上面有个连接沟通所有设备的芯片组,这个芯片组可以将所有单元的设备连接起来,好让CPU可以对这些设备下达命令。其他单元的主要设备主要有:
系统单元:如图0.1.2所示,系统单元包括CPU与内存及主板相关元件。而主板上面其实还有很多的接口与相关的扩展卡,包括鸟哥最近常使用的PCI-E 10G网卡、磁盘阵列卡、还有显卡等等。尤其是显卡,这东西对于玩3D游戏来说是非常重要的一环,它与显示的精致度、色彩与分辨率都有关系。
存储单元:包括内存(main memory, RAM)与外存,其中外存其实就是大家常听到的“存储设备”喔!包括硬盘、软盘、光盘、磁带等等的。
输入、输出单元:同时涵盖输入输出的设备最常见的大概就是触摸屏了。至于单纯的输入设备包括前面提到的键盘鼠标之外,目前的体感设备也是重要的输入设备喔!至于输出设备方面,除了屏幕外,打印机、音箱、HDMI电视、投影仪、蓝牙耳机等等,都算喔!
更详细的各项主机与周边设备我们将在下个小节进行介绍!这里我们先来了解一下各元件的关系喽!那就是,电脑是如何运行的呢?
0.1.4 工作流程
如果不是很了解电脑的运行流程的话,鸟哥拿个简单的想法来思考好了~假设电脑是一个人体,那么每个元件对应到哪个地方呢?可以这样思考:
CPU=脑袋瓜子:每个人会做的事情都不一样(微指令集的差异),但主要都是通过脑袋瓜子来进行判断与控制身体各部分的活动;
内存=脑袋中放置正在被思考的资料的区域:在实际活动过程中,我们的脑袋瓜子需要有外界刺激的资料(例如光线、环境、语言等)来分析,那这些互动资料暂时存放的地方就是内存,主要是用来提供给脑袋瓜子判断用的资料。
硬盘=脑袋中放置回忆的记忆区域:跟刚刚的内存不同,内存是提供脑袋目前要思考与处理的资料,但是有些生活琐事或其他没有要立刻处理的事情,就当成回忆先放置到脑袋的记忆深处吧!那就是硬盘!主要目的是将重要的资料记录起来,以便为了将这些重要的经验再次使用;
主板=神经系统:好像人类的神经一样,将所有重要的元件连接其他,包括手脚的活动都是脑袋瓜子发布命令后,通过神经(主板)传递给手脚来进行活动啊!
各周边设备=人体与外界沟通的手、脚、皮肤、眼睛等:就好像手脚一般,是人体与外界互动的重要关键!
显卡=脑袋中的影像:将来自眼睛的刺激转成影像在脑袋中呈现,所以显卡所产生的资料来源也是CPU控制的。
电源供应器(Power)=心脏:所有的元件要能运作得要有足够的电力供给才行!这电力供给就好像心脏一样,如果心脏不够力,那么全身也就无法动弹!心脏不稳定呢?那你的身体当然可能断断续续的~不稳定!
由这样的关系图当中,我们知道整个活动中最重要的就是脑袋瓜子!而脑袋瓜子当中与现在正在进行的工作有关的就是CPU与内存!任何外界的接触都必须要由脑袋瓜子中的内存记录下来,然后给脑袋中的CPU依据这些资料进行判断后,再发布命令给各个周边设备!如果需要用到过去的经验,就得从过去的经验(硬盘)当中读取啰!
也就是说,整个人体最重要的地方就是脑袋瓜子,同样的,整部主机当中最重要的就是CPU与内存,而CPU的资料来源统统来自于内存,如果要由过去的经验来判断事情时,也要将经验(硬盘)挪到目前的记忆(内存)当中,再交由CPU来判断喔!这点得要再次的强调啊!下个章节当中,我们就对目前常见的个人电脑各个元件来进行说明啰!
0.1.5 电脑用途的分类
知道了电脑的基本组成与周边设备,也知道其实电脑的CPU种类非常的多,再来我们想要了解的是,电脑如何分类?电脑的分类方式非常多种,如果以电脑的复杂度与运算能力进行分类的话,主要可以分为这几类:
超级电脑(Supercomputer)
超级电脑是运行速度最快的电脑,但是它的维护、操作费用也最高!主要是用于需要高速计算的项目中。例如:国防军事、气象预测、太空科技,用在模拟的领域较多。详情也可以参考台湾告诉网络与计算中心http://www.nchc.org.tw的介绍!至于全世界最快的前500大超级电脑,则请参考:http://www.top500.org。
大型机(Mainframe Computer)
大型机通常也具有数个高速的CPU,功能上虽不及超级电脑,但也可用来处理大量资料与复杂的运算。例如大型企业的主机、全国性的证券交易所等媒体需要处理数百万笔资料的企业机构,或者是大型企业的数据库服务器等等。
小型机(Minicomputer)
小型机仍保有大型机同时支持多用户的特性,但是主机可以放在一般操作场所,不必像前两个大型电脑需要特殊的空调场所。通常用来作为科学研究、工程分析与工厂的流程管理等。
工作站(Workstation)
工作站的价格又比小型机便宜许多,是针对特殊用途而设计的电脑。在个人电脑的性能还没有提升到目前的状态之前,工作站电脑的性能/价格比是所有电脑当中较好的,因此在学术研究与工程分析方面相当常见。
微型机(Microcomputer)
个人电脑就属于这个部分的电脑分类,也是我们本章主要探讨的目标!体积最小,价格最低,但功能还是五脏俱全的!大致又可分为台式机、便携机等等。
若光以性能来说,目前的个人电脑性能已经够快了,甚至已经比工作站等级以上的电脑运算速度还要快!但是工作站电脑强调的是稳定不死机,并且运算过程要完全正确,因此工作站以上等级的电脑在设计时的考虑与个人电脑并不相同啦!这也是为啥工作站等级以上的电脑售价较贵的原因。
0.1.6 电脑上面常用的计量单位(容量、速度等)
电脑的运算能力除了CPU微指令集设计的优劣之外,主要还是由速度来决定的。至于存放在电脑存储设备当中的资料容量也是有单位的。
容量单位
电脑主要依据有没有通电来记录资料,所以理论上对于每一个记录单位而言,它只认识0与1而已。0/1这个二进制位的单位我们成为bit(位)。但是bit实在太小了,所以在存储资料时每份基本的资料都会使用到8个bits来记录,因此定义出byte(字节)这个单位,他们的关系为:
1 Byte = 8 bits
不过同样的,Byte还是太小了,在较大容量的情况下,使用Byte相当不容易判断资料的大小,举例来说,1000000Bytes这样的显示方式你能够看得出有几个零吗?所以后来就有一些常见的简化单位表示法,例如K代表1024Byte,M代表1024K等。而这些单位在不同的进制下有不同的数值表示,下面就列出常见的单位与进制对应:
进制 Kilo Mega Giga Tera Peta Exa Zetta
二进制 1024 1024K 1024M 1024G 1024T 1024P 1024E
十进制 1000 1000K 1000M 1000G 1000T 1000P 1000E
一般来说,文件大小使用的是二进制的方式,所以1GBytes的文件大小实际上为:1024x1024x1024 Bytes这么大!速度单位则常使用十进制,例如1GHz就是1000x1000x1000Hz的意思。
Tips
那么什么是“进制”呢?以人类最常用的十进制为例,每个“位置”上面最多仅能有一个数值,这个数值不可以比9还要大!那比9还大怎么办?就用“第二个位置来装一个新的1”!所以9还是只有一个位置,10则是用了两个位置了。好了那如果是16进制怎么办?由于每个位置只能出现一个数值,但是数字仅有0~9而已啊!因此16进制中,就以A代表10的意思,以B代表11的意思,所以16进制就是0~9,a,b,c,d,d,f,有没有看到,“每个位置最多还是只有一个数值而已”喔!好了,那回来谈谈二进制。因为每个位置只能有0,1而已,不能出现2(逢2进一位)啦!这样了解乎?
Tips
其实,若要区分二进制还是十进制的容量,目前也经常使用GB与GiB之类的方式来辨别,GB为十进制,加上i成为GiB则是二进制!所有的容量都可以这样处理的!包括KiB,TiB等等喔!
速度单位
CPU的运算速度常使用MHz或者是GHz之类的单位,这个Hz其实就是秒分之一。而在网络传输方面,由于网络使用的是bit为单位,因此网络常使用的单位为Mbps是Mbits per second,也就是每秒多少Mbit。举例来说,大家常听到的20M/5M光世代传输速度,如果转成文件大小的Byte时,其理论最大传输值为:每秒2.5Mbyte/每秒625KBytes的下载/上传速度喔!
例题:
假设你今天买了500GB的硬盘一个,但是格式化完成后却只剩下460GB左右的容量,这是什么原因?
答:
因为一般硬盘制造商会使用十进制的单位,所以500GBytes代表为500*1000*1000*1000Bytes之意。转成文件的容量单位时使用二进制(1024为底),所以就成为466GB左右的容量了。
硬盘厂商并非要骗人,只是因为硬盘的最小物理量为512Bytes,最小的组成单位为扇区(sector),通常硬盘容量的计算采用“多少个sector”,所以才会使用十进制来处理的。相关的硬盘信息在这一章后面会提到的!