Linux开山篇1

之前我讲了shell编程,shell是能直接操作内核的解释型语言,写一个部署分布式集群的脚本,用其他语言可能要花上几个小时,而用shell一个小时搞定!

今天我带着大家了解计算机硬件方面的知识。就是计算器。

操作系统和硬件有相当程度上的关联性,了解计算器概论对了解Linux是相当有帮助

所谓计算机就是一种计算器,而计算器其实就是:接受用户指令与数据,经由中央处理器的数学与逻辑单元运算处理后,以产生或储存成有用的信息。因此只要有输入和输出设备,让你可以输入数据使该机器产生信息,那就是一部计算器了。

计算器可以协助人们进行大量的运算。利用计算机仿真软件后,将排放空气的污染物带入计算机模式进行仿真后,计算出可能产生的空气污染并得到空气质量状态,最后经过分析软件得到各式各样的图表。经过这些图表的分析,就可以知道什么样的污染来源可能产生什么样的污染排放来源可能会产生什么样的空气质量变化

总而言之,不管是手机,还是定位系统 智能手表等都是计算器

计算机的硬件组成的五大单元:

硬件根据外观来区分那就是:输入单元,主机部分,输出单元。输入单元将数据输入,主机的功能处理成为图表或文章等信息后,将结果输出到输出设备。

主机的组件:最重要的是一片主板,上面安插了中央处理器(CPU)以及主存储器,硬盘(或记忆卡)还有一些适配卡装置。现在大部分的只能手机是将这些组件直接焊接在主板上面。

上面有提到,主机的重点在于中央处理器(CPU),CPU为一个具有特定功能的芯片,里面包含了微指令集。所以一个主机有什么样的功能就要参考这颗CPU是否有相关内建的微指令集才可以。CPU的工作主要在于管理和运算,因此CPU内又可以分为两个主要的单元,分别是:算数逻辑单元和控制单元。算数逻辑单元主要负责程序运算与逻辑判断,控制单元则主要协调各周边组件与各单元间的工作。

CPU的重点是在进行运算与判断,那么运算与判断的数据都是从主存储器中来。主存储器的数据则是从输入单元传输进来。CPU处理完毕的数据也必须要先写回主存储器中,最后数据才从主存储器传输到输出单元。

我们经常接触的手机或者是电脑系统卡顿,一般的处理方式是将内存加大。因为所有的数据都要经过主存储器的传输。数据流入流出则是CPU所发布的控制指令。所以内存容量是很关键的。

总结:计算机的五大单元:输入单元,输出单元,CPU内部的控制单元,算数逻辑单元 和主存储器。

一切设计的起点:CPU的架构

CPU内部含有一些微指令,我们所有使用的软件都要经过CPU内部的微指令集来执行。指令集的设计主要又分为两种设计理念,也是现在主要的CPU架构。分别是:精简指令集(RISC),复杂指令集(CISC)系统

精简指令集:这种CPU的设计中,微指令集较为精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效果达到最佳。复杂的事情是由多个指令来完成。常见的RISC微指令集CPU主要是:Oracle的SPARC系列、IBM的Power Architecture 系列,ARM的ARM CPU 系列等 目前世界上使用最广的就是ARM这种架构了。

复杂指令集:CISC在微指令集的每个小指令可以执行一些低廉的硬件操作,指令数目而复杂,每条指令花费的时间较长,但每条个别指令可以处理的工作较为丰富。常见的CISIC微指令集CPU主AMD,Intel,VIA等的x86架构的CPU。

AMD,Intel,VIA所开发的x86架构被大量使用于个人计算机,因此个人计算机常被称为x86架构的计算机。x86的名称来源于最早Intel发展出来的CPU代号称为8086,后来以此架构又开发出80286、80386...因此这种架构的CPU就被称为x86架构了。

在2003年以前由Intel所开发的x86架构CPU升级到16,32位,后来AMD以此架构修改新一代的CPU为64位。64位的个人计算机CPU又被称为x86_64架构。

位指的就是一次性数据读取的最大量。64位代表一次性可以读取64位的数据。就是从内存中读写的数据是有限的,一般32位的CPU所能读写的最大数据量大概是在4GB左右。

不同的x86架构的CPU的区别:CPU的整体结构(如第二层快取、每次运作可执行的指令数),微指令集的不同。新的x86CPU大多含有很先进的微指令集,这些指令集可以加速多媒体程序的运作,也能够加强虚拟化的效能,而且某些微指令集更能够增加能源效率,让CPU的耗电量降低。

其他设备单元:

五大单元中最重要的控制,算术逻辑被整合到CPU中,其他在主机壳内的设备大多是透过主板连接在一块的,主板上面有个连接沟通所有设备的芯片组,这个芯片组可以将所有的单元设备连接起来。

系统单元:CPU, 内存 ,主板。

记忆单元:主存储器与辅助内存。其中辅助内存其实就是大家常听到的储存装置:硬盘,软盘,光盘,磁带等。

输入输出单元:智能手机的触摸屏就是同时涵盖了输入输出的设备。

计算机的用途分类:

超级计算机:速度最快,花的钱最多。用于国防军事,气象预测,太空科技,也就是一些模拟的领域。

大型计算机:大企业的主机,全国性的证券交易所

迷你计算机:保留大型计算机同时支持多用户的特性,但是主板可以放在一般的作业场所,通常用来做科学研究,工程分析,工厂的流程管理。

工作站:是针对特殊用途而设计的计算机。工作站的计算机的性能/价格是所有计算机中价格最佳的,因此在学术研究与工程分析方面相当的常见。

微电脑:个人PC,体积最小,价格最低,功能最全。

目前个人计算机的工作效能已经超越工作站了,但是工作站的价格还是比个人PC贵原因就是在于稳定,运算过程完全正确。

计算机上面常用的计算单位(容量,速度)

计算机的运算能力除了CPU微指令集的设计优势以外,主要还是靠速度来决定。至于存放在计算机储存设备当中的数据容量也是有单位的。

容量单位:

·计算机对数据的判断主要依据有没有通电来记录信息。计算机只认识0/1,0/1这个二进制单位称为bit,bit又太小,所以用8个bit来记录,就是1个byte.

在较大的容量情况下,使用byte不容易判断数据的大小,举个例子:1000000bytes 这样的显示方式就比较困难。所以后面出现了,1k=1024bytes,1M=1024k等。后面还有G T P E Z

速度单位:

CPU的指令周期常使用MHz或者是GHz之类的单位,Hz代表的就是秒分之一。而网络传输方面,由于网络常使用的单位位Mbps。

e.g. 购买的500GB的硬盘在格式化完毕后只剩下460GB。因为硬盘使用十进制的单元,所以500GByte 代表500*1000*1000*1000byte之意,转成文件的容量单位时使用二进制,所以就是466GB左右的容量。硬盘的最小物理量为512Bytes,最小的组成单位为扇区(sector),通常硬盘容量的计算采用了多少sector,所以采用十进制来处理。

个人计算机架构与相关设备组件

通常我们接触到的计算机指的就是x86的个人计算机架构。Linux最早在发展的时候,就是依据个人计算机的架构来发展的。所以想要深入学习Linux就先了解计算机架构对于学习Linux来说时事半功倍的。早期x86的两大流派(Intel和AMD)的CPU架构与设计理念有差异,经过多年的相互学习,两者都已经类似乐。不过市场的老大还是Intel。

了解Intel主板架构:由于主板是连接各组件的一个重要项目,因此在主板上面沟通各部组件的芯片组设计优劣式就会影响效能早期的芯片通常分为两个网桥来控制各组件的沟通,分别是:

1:北桥:负责连接速度较快的CPU,主储存器与显示适配器界面等组件

2:南桥,负责连接速度较慢的装置接口,包括硬盘,USB,网络卡等。

北桥最重要的就是CPU与主储存器之间的桥接,目前主流的架构中,大多将北桥内存控制器整合到CPU封装当中。

早期芯片分的南北桥,CPU要读写主储存器动作还是需要北桥的支持会瓜分一部分北桥的总可用宽带。目前将记忆控制器整合到CPU后,CPU与主存储器之间的沟通交流是直接的,速度变快不少。

执行脑袋运算与判断的CPU

CPU负责大量运算,因此CPU是具有相当发热量的组件,CPU上头通常会安插一颗风扇来主动散热。

目前CPU都是双核,四核以上的架构了,原本的单核心CPU仅有一个运算单元,所谓的多核心则是在一颗CPU分装当中嵌入两个以上的运算核心。简单的说就是一个实体的CPU外壳中含有2个以上的CPU单元。

不同的CPU型号大多具有不同的脚位(CPU上面的插脚),能够搭配的主板芯片组也不同,所以主板升级的时候要考虑CPU的型号。Intel的i5,i7系列产品中,型号很多是不同的。

CPU的效能除了比较微指令以外,那就是频率了。不过不同的CPU不能用频率来判断好坏,微指令集不同,架构也可能不同,可使用第二层快取及计算器制业可能不同,加上每次频率能够进行的工作指令集不同。所以不要说你的频率高CPU就好去笑别人,那可能真的会被笑。

因为早期的CPU架构主要透过北桥来连接系统中最重要的CPU,主储存器与显示配置器装置,所有的设备都要通过北桥来连接,因此每个每个设备的工作频率应该相同。就有了所谓的前端总线(FSB)这个东西。但是CPU的指令周期比其他设备来的快,又为了满足FSB的频率,那就要在CPU内部再进行加速,就又有了外频与倍频。

外频指的是CPU与外部连接主键进行数据传输的速度。倍频值的是CPU内部用来加速工作效能的一个倍数,两者相乘才是CPU的频率。

这里要提一下超频,超频指的是将CPU的倍频或者是外频更改为较高的频率的一种方式(一般倍频固定无法修改)。

因为北桥的独断专型,现在已经被干掉了。被整合到了CPU内部,大快人心有没有,以后所以的数据文件直达圣听。而且现在CPU会主动帮你降频或者是超频。Intel用的是turbo技术。

32位与64位的CPU与总线(宽度)

CPU的各项数据通通来自于主储存器,因此主储存器提供的数据愈多的话的,整体系统的效能会越快。通过CPU内的内存控制芯片对主储存器间的传输速度(前端总线速度)来说明。

主储存器也有频率,这个频率限制来自于CPU内的内存控制器所决定的。CPU内建的内存控制芯片对主储存器的工作频率最高可达1600MHz。每次频率传输的数据量大多是64位,这个64位就是所谓的宽度。

CPU每次能够处理的数据量称为自组大小,自组大小依据CPU的设计而有32位和64位。32位和64位就是这么来的。

超线程

现在的CPU的双核,四核以上的,但是Intel还是有一个特别有意思的东西,叫做CPU的超线程,现在CPU指令周期都太快了,因此运算核心都处于闲置的状态。系统也是多任务系统,同时间会有许多程序来让CPU执行,所以如果CPU可以同时执行2个程序,那么系统的效能不就又增加了吗。

达成超线程的功能:在每一个CPU内部将重要的缓存器分为两群,而让程序分别使用者两缓存器,也就是说,可以有两个程序同时竞争CPU的运算单元,而不是透过操作系统的多任务切换,这个过程就像是一个CPU同时有了2个核心.所以i7等级的CPU其实只有四个实体核心,但是用过HT机制,操作系统就可以抓到8个核心,同时运作8个程序。

在测试中发现,HT虽然可以提升效能,不过,在有些情况下却可能降低效能,主要是因为实际上只有一个运算单元。

明天我会继续将这个知识点讲完。

希望与我一起奋斗在路上的人我们能一起并肩同行。关注我的公众号,我们交流进步。

Linux开山篇1_第1张图片
hagnsing宣传栏

你可能感兴趣的:(Linux开山篇1)