计算机系统 = 硬件 + 软件两大部分组成,硬件(计算机的实体),包括:主机、外设(鼠标、键盘、显示器)。软件就是我们看得见但是摸不着的,操作系统就是软件,微信、微博也是软件。
硬件是计算机系统的物理基础,决定了这个计算机系统它的天花板瓶颈在哪,软件决定了我们可以把这个硬件的性能发挥到什么样的程度。所以计算机性能的好坏取决于软、硬件功能的总和。
系统软件包括:操作系统、数据库管理系统(DBMS)、标准程序库(编程的时候使用的那些库函数)、网络软件、语言处理程序、服务程序。解释:网络软件就是实现tcp、ip协议之类的那些软件模块。语言处理程序也就是编译程序、汇编程序,语言处理程序,可以把编程中使用的高级语言,翻译成更低级的机器语言。一些服务类的程序也属于系统软件,比如:调试代码用的调试程序。
应用软件包括:微信、qq、抖音、王者荣耀、迅雷、美图秀秀......
计算机硬件发展背景:
在1946年第一台电子数字计算机(埃尼亚克)诞生,1946年刚好是第二次世界大战即将接近尾声的那个时候,当时美国军方在开发新武器的时候需要计算武器的射程还有弹道轨迹这些,如果用手工的方式来计算非常的慢,因此军方提出要制造一台可以快速的进行数学运算的计算机,这个项目请了一个资深的顾问叫做冯诺依曼,这个名字我们在之后还会见到,这台计算机采用了电子管作为它的逻辑元件,其实计算机在进行这种数字计算的时候,本质上它就是在处理一些电信号,所谓逻辑元件就是用来处理这些电信号的最小的一个基本单元,这样的一台计算机其实就是要把很多很多个逻辑元件,用线路把他们连接起来,从而实现用电路来运算的一个功能,可以看到每一个电子管的体积都是很大的,基本上有半个手掌那么大,第一台计算机总共使用了1.8万个电子管,这么多个电子管把它们连接起来把它们组装成一台计算机就需要很多的空间,所以当时第一台计算机的占地面积高达170平方米,同时由于电子管的这种物理特性导致了它的耗电量也很高达到150千瓦。除了占地面积大耗电量惊人之外它的运算速度也不是特别快,每秒只能进行5000次左右的加法运算,以埃尼亚克为代表的这一代计算机我们把它称为电子管时代,原因就是这一代的计算机使用电子管作为逻辑元件体积大耗电量高同时计算速度还比较慢。在这一阶段程序员都是直接使用机器语言来编程的,计算机只能识别0101这样的二进制数,也就是二进制语言。所以程序员当时编程是在一个纸袋上面打孔,有孔的地方表示二进制的0没有孔的地方表示二进制的1,所以在这个阶段如果写程序的这条纸带上出现了一只死掉的小虫子,就会导致纸带机读取的这个二进制0和1出现错误,因此程序漏洞程序的一些问题我们会把它称为程序的 bug ,就是这个原因 bug 这个词本来表示的是小虫子,但是在最开始纸带机编程的这个阶段,一个小虫子就会导致这个程序出现错误。
因此这个说法一直被延续至今,程序的错误我们现在也把它称为程序 bug 。这是第一代的计算机使用很不方便,后来有一个著名的实验室贝尔实验室发明了晶体管,晶体管的电气特性可以用来替代电子管,而每一个晶体管的体积大小要比电子管要小的多。
左边是一个晶体管,右边是电子管,体积缩小了很多,因此用晶体管替代电子管作为计算机的逻辑元件可以让计算机的体积得到大幅的降低,以前本来需要用一整间房子才可以放得下的计算机现在只需要一小片空间,大概一个厕所的大小就可以了,因此计算机逻辑元件的革命导致了我们计算机体积减小功耗降低,同时由于我们可以用晶体管来设计更复杂的电路,因此计算机的运行速度、计算速度也达到了一个质的飞跃,可以达到每秒计算几十万字这样的一个级别,那在这个阶段就开始出现一些高级编程语言比如说 fortune ,同时为了让计算机能够有自我管理的功能,连续的完成一系列的任务,这个时候开始出现操作系统,这是第二个阶段采用了晶体管替代电子管。
制造一台计算机大概需要几万到几十万个晶体管,需要把这些晶体管用手工的方式把它们焊接到电路板上,那几十万个晶体管就有可能有几百万个这种电焊的点,所以这个阶段计算机硬件还是十分不可靠的,任何一个焊点出现问题都有可能导致整个计算机都无法工作,后来有人发明了集成电路从此计算机进入了第三个时代中小规模集成电路时代。
就是把这些一个一个的逻辑元件集成在一个基片上,采用集成电路的制造工艺使得我们的计算机变得越来越小同时功耗更低,同时这种集成电路的可靠性要比晶体管手动焊接的电路可靠性要高得多,在这一阶段各种高级语言开始迅速发展同时有了分时操作系统,不过在这一阶段计算机主要还是用于科学计算等等,一些专业的用途还并没有步入个人的生活。后来随着集成电路工艺的不断的提升慢慢的就开始进入了第四代就是大规模和超大规模集成电路时代。
此时开始出现微处理器和微型计算机,微处理器简单理解其实就是大家熟悉的 cpu,像最近苹果的A13这块手机的芯片它的制造工艺达到了七纳米这样的精度,也就是说每个逻辑元件,每一个晶体管在这个A13芯片里边它做到了宽度不超过七纳米这样的一个工艺水平,所以一块指甲盖大小的微处理器,一个这样的 cpu,它就在里边集成了八十五亿个晶体管,八十五亿个逻辑元件,总之芯片技术的进步导致微处理器的诞生,同时也导致很多微型计算机的诞生,之后微型计算机开始逐渐的步入每一个人的生活,同时这个阶段也开始诞生我们现在耳熟能详的一些操作系统 windows、linux。谈到微处理器的发展我们就不得不提到一个如日中天的名字英特尔。
这张表给出了英特尔公司,这些个年份它推出的一些微处理器,一些 cpu ,最左边这一列是微处理器的型号,然后第二列可以看到一个概念叫做机器字长,简单提一下,所谓机器字长指的就是这个 cpu ,这个微处理器它一次整数运算所能处理的二进制的位数,最开始8080这个 cpu 只能一次处理八个二进制位,而8086可以一次处理十六个二进制位,机器字长的提升显然是会直接影响到 cpu 的运算速度的比如使用8080这个 cpu ,想要计算十六个二进制位的加法,必须进行两次的整数运算,因为每一次只能处理八位而如果采用8086这款 cpu 只需要进行一次的整数运算,自从进入奔腾处理器这个系列之后,英特尔的 cpu 基本上就是保持了64位这样的一个机器字长,我们个人使用的微型计算机基本上就是随着微处理器技术的发展而发展的。
聊起计算机硬件的发展我们不得不提到这样的一段历史就是在1947的时候,贝尔实验室有三个人发明了晶体管,其中一个人叫做肖克利,他是1956年的诺贝尔物理学奖得主,就是因为他发明了晶体管当然了除了他之外还有另外的两个人和他一起。只不过肖克利后来从贝尔实验室退出了创建一个叫做肖克利实验室股份有限公司,他想靠这个公司生产晶体管来卖钱。
但由于晶体管之父这个头衔很响亮所以在他创业初期的时候吸引了一堆人才,其中有八个人分别叫做这样的一些名字其中一个人叫摩尔,先记住这个名字,不过肖克利这个人他虽然很牛但是他对于公司的管理运营不是很好,所以他的这八个小弟觉得跟着他继续干没有前途,于是八个人集体辞职,由于背叛了肖克利,所以肖克利把他们称为八叛徒,后来这八个人他们联合创立了一个公司叫做仙童半导体公司,这个公司很厉害他们刚开始也是干老本行就是给 IBM 之类的企业生产晶体管,后来在1959年先同半导体公司发明了集成电路,集成电路技术的出现才导致计算机从晶体管时代,步入了集成电路时代,后来仙童这个公司被人收购了之后这几个人就陆续的退出了仙童半导体公司,其中1968年摩尔等三个人离开了仙童然后创立了后来的英特尔公司。然后1969年也是仙童的一个负责人叫做桑德斯,他离开了仙童创立了后来的 AMD,而英特尔和 AMD 这两家公司又是后来超大规模集成电路的一个推行者,所以仙童这个公司确实很厉害,这个公司孕育了很多很多业界的大牛。刚才说到摩尔这个人和他的其他几个小伙伴创立了英特尔。摩尔这个人他还有一个重要的贡献就是提出了一个很著名的理论叫做摩尔定律。
就是说在集成电路上可以容纳的晶体管数目,每隔差不多十八个月就可以增加一倍晶体管集成的数量,集成电路的整体性能也会提升一倍,这就是著名的摩尔定律。就是说如果我现在比如说花两千块钱买了一个 cpu ,我在十八个月之后,同样花两千块钱我可以买到一个性能提升一倍的 cpu,除了处理器的集成度、运算速度符合摩尔定律所提出的这种规律之外,存储器(主存)的发展也符合摩尔定律。也就说相同成本的情况下每隔大概18个月我们的存储器,也就是主存的容量也可以翻倍,是这样的一个发展速度,值得一提的是世界上第一个较大容量的半导体存储器也是仙童公司制造的。
我们探讨了计算机硬件的发展的阶段我们把它分为四个阶段当然有的教材也可能会把它分为五个阶段或者六个阶段,就是把超大规模集成电路把它单独的划分为一个阶段甚至再加上一个巨大规模集成电路,总之就是逻辑元件的集成度越来越高,每个逻辑元件越来越小,速度越来越快,功耗越来越低,这是硬件的发展。
接下来我们再来简单聊一聊软件的发展,先看一下编程语言,因为所有的软件都是用编程语言把它编出来的,编程语言的发展其实直接就决定了我们的软件世界到底有多丰富,计算机发展的初期所有的编程都需要用机器语言,也就0101这样的机器语言来编制,后来由于这种机器语言可读性很差因此发明了汇编语言,汇编语言其实和机器语言本质上都是一样的只不过汇编语言会把机器语言转换成人类更方便记忆的一些符号,关于机器语言、汇编语言会在之后的小节进行更详细的探索。总之刚开始程序员进行编程的时候,除了要关注要解决的问题是什么之外,也还必须关注到使用的这台机器它的特性是什么样的,它能识别的语言到底是怎么样的,应该怎么来编写?因此这个阶段程序员编写一些软件是很困难的,这也就注定了在这个阶段软件不可能特别多,不可能很丰富。后来为了让编程更方便,慢慢的开始出现了一些高级的编程语言比如说像PASCAL、 C++之类的,程序员在使用这些高级语言编程的时候就不需要再关心机器的具体特性是什么,程序员只需要专注于他要解决的问题就可以了,因为这些高级语言基本上是接近我们人类所使用的自然语言。有了这些高级语言作为基础我们的软件世界也越来越丰富,随着计算机网络技术的发展又出现了一些类似于 Java、Python之类的更适用于网络环境的一些编程语言。总之编程语言就是用来制造软件的,编程语言是否好用、是否方便就直接决定了我们的软件世界是否足够丰富。除了应用软件的发展之外也有操作系统这种系统软件的发展,像刚开始的操作系统,比如DOS系统,我们只能用命令行的方式来操作这个计算机,后来逐渐的出现了一些图形化的界面比如说 Windows, 还有现在的安卓 、ios 这些系统。总之操作系统这种系统类的软件也在不断的发展。
目前来看我们的计算机系统有两极分化的发展趋势其中一极是微型计算机向着更微型化、更加网络化、更高性能、更多用途的方向发展。比如说我们的智能穿戴设备、手机是可以做的越来越小,但是用途越来越广,另一极是朝着巨型化、超高速、并行处理、智能化的方向发展。比如说中国现在最快的一个超级计算机神威·太湖之光,可以每秒进行九点三亿亿次的浮点运算,这个是很厉害的,在全世界这台超级计算机的速度可以排到第三名,如果想看一下其他的超级计算机的排行的话,可以去网站,现在世界排名第四的超级计算机也是我们国家的,就是天河二号。总之这是计算机发展的另一个极端,计算机的体积越来越巨型,计算速度也是超级快。
这个小节当中介绍了计算机发展的历程,计算机系统是由硬件和软件两大部分组成的,我们重点探讨的是计算机硬件的发展,其实只需要记住每一代的计算机它的逻辑元件的更替就好了,第一代是采用电子管作为逻辑元件,耗电量高、体积大,第二代采用晶体管作为逻辑元件,体积比电子管更小同时也更省电,第三代的计算机是采用了中小规模集成电路,其实就是把晶体管、电容之类的这些电子元器件高密度的集成在了一个电路板上,随着集成电路制造工艺的提升,就出现了第四代
的计算机,也就是采用大规模、超大规模集成电路。硬件的发展就是这一小节比较容易作为选择题考察的点,大家需要有个印象。软件的发展只是简单的聊一下,也不是计组这门课需要探讨的重点,这个小节的最后简单的探讨了计算机目前的发展趋势一个是更微型、多用途,一个是更巨型、超高速。
以上就是这个小节的全部内容。