计算机是电脑的学名。最初电脑被发明的作用是用于高难度的计算,主要应用于国防军事领域和科学计算等等。

一、数学的推动(仅了解)

早在远古时代,人们最早使用的计算工具可能是手指,英文中表示数字的单词‘digit’不仅仅只有‘数字’的意思,同时还有‘手指’的意思。石器时代人们使用石头来打猎,因此还有可能是用石头来辅助计算。但手指和石头的缺点是太低效了,不能满足随着时间进程而逐渐增加的计算目标。

于是又出现了结绳记事,但结绳记事的缺点也很明显,就是结绳记事计算速度慢且有长度限制。

又不知过了多久,人类开始使用“筹码”来计数,而在那个时期,最有名的当属中国商周时期出现的算筹。古代的算筹实际上是一根根同样长短和粗细的小棍子,大约二百七十几枚为一束; 多用竹子制成,也有用木头、兽骨、象牙、金属等材料制成的。数学家祖冲之计算圆周率时使用的工具就是算筹。而算筹的缺点是:使用算筹计算太麻烦了,很不方便——计算时需要慢慢摆放。

算筹之后,世界各地的数学计算工具发展没有本质上的变化,直到“算盘”的出现。算盘最早可能在汉代萌芽,在南北朝时期定型,利用进位制计数。使用时需要配合一套口诀——好比计算机的软件。算盘本身还可以存储数字,使用时很方便。至今,算盘还在被使用。

python学习笔记286(Python0-2计算机基础)(1)

算盘性能很好,但并不是说就能够满足于机械化计算出现的各个时代。在算盘之后的15世纪,随着天文和航海的发展,计算工作越来越繁重,算盘及算盘出现前的各个计算工具已经很难满足这么繁重的计算,计算工具急需改进。

于是,1630年,英国数学家奥特雷德在使用当时流行的对数刻度尺做乘法运算时,突然想到,如果用两根相互滑动的对数刻度尺,不久省去了用两脚规度量长度了么。他的这个想法导致了机械化计算的诞生,但奥特雷德对这件事情并没有在意,此后200年里,他的发明也就没有被实际应用。

18世纪末,发明蒸汽机的瓦特成功制作了第一把计算尺,在尺座上增加了一个滑标,用来“存储”计算的中间结果,这种滑标很长时间一直被后人所沿用。

1850年以后,计算尺迅速发展,成为工程师随身携带的”计算器“,一直到20世纪五六时年代,计算尺仍然是工科大学生的一种身份标志。

二、计算机的发展历史(由https://www.jianshu.com/p/6fb655c286bc转载而来)

(一)史前时代

1623年:德国科学家契克卡德(W. Schickard)制造了人类有史以来第一台机械计算机,这台机器能够进行六位数的加减乘除运算。

python学习笔记286(Python0-2计算机基础)(2)

python学习笔记286(Python0-2计算机基础)(3)

1642年:法国科学家帕斯卡(B.Pascal)发明了著名的帕斯卡机械计算机,首次确立了计算机器的概念。

python学习笔记286(Python0-2计算机基础)(4)

python学习笔记286(Python0-2计算机基础)(5)

1674年:莱布尼茨改进了帕斯卡的计算机,使之成为一种能够进行连续运算的机器,并且提出了“二进制”数的概念。(据说这个概念来源于中国的八卦)

python学习笔记286(Python0-2计算机基础)(6)

python学习笔记286(Python0-2计算机基础)(7)

1725年:法国纺织机械师布乔(B.�Bouchon)发明了“穿孔纸带”的构想。

1805年: 法国机械师杰卡德(J.Jacquard)根据布乔“穿孔纸带”的构想完成了“自动提花编织机”的设计制作,在后来电子计算机开始发展的最初几年中,在多款著名计算机中我们均能找到自动提花机的身影。

python学习笔记286(Python0-2计算机基础)(8)

1822年:英国科学家巴贝奇(C.�Babbage)制造出了第一台差分机,它可以处理3个不同的5位数,计算精度达到6位小数。

python学习笔记286(Python0-2计算机基础)(9)

python学习笔记286(Python0-2计算机基础)(10)

1834 年:巴贝奇提出了分析机的概念,机器共分为三个部分:堆栈,运算器,控制器。他的助手, 英国著名诗人拜伦的独生女阿达.奥古斯塔(Ada Augusta)为分析机编制了人类历史上第一批计算机程序。阿达和巴贝奇为计算机的发展创造了不朽的功勋,他们对计算机的预见起码超前了一个世纪以上,正是他们的辛勤努力,为后来计算机的出现奠定了坚实的基础。

python学习笔记286(Python0-2计算机基础)(11)

python学习笔记286(Python0-2计算机基础)(12)

1847年:英国数学家布尔(G.Boole)发表著作《逻辑的数学分析》。

python学习笔记286(Python0-2计算机基础)(13)

1854年:布尔发表《思维规律的研究——逻辑与概率的数学理论基础》,并综合自己的另一篇文章《逻辑的数学分析》,从而创立了一门全新的学科-布尔代数,为百年后出现的数字计算机的开关电路设计提供了重要的数学方法和理论基础。

1868年:美国新闻工作者克里斯托夫.肖尔斯(C.Sholes)发明了沿用至今的QWERTY键盘。

python学习笔记286(Python0-2计算机基础)(14)

1873年:美国人鲍德温(F. Baldwin)利用自己过去发明的齿数可变齿轮制造了第一台手摇式计算机。

1886年:美国人Dorr E. Felt (1862-1930), 制造了第一台用按键操作的计算器。

python学习笔记286(Python0-2计算机基础)(15)

1890年:美国在第12次人口普查中使用了由统计学家霍列瑞斯(H.Hollerith)博士发明的制表机,从而完成了人类历史上第一次大规模数据处理。此后霍列瑞斯根据自己的发明成立了自己的制表机公司,并最终演变成为IBM公司。

python学习笔记286(Python0-2计算机基础)(16)

1893年:德国人施泰格尔研制出一种名为“大富豪”的计算机,该计算机是在手摇式计算机的基础上改进而来,并依*良好的运算速度和可*性而占领了当时的市场,直到1914年第一次世界大战爆发之前,这种“大富豪”计算机一直畅销不衰。

1895年: 英国青年工程师弗莱明(J.�Fleming)通过“爱迪生效应”发明了人类第一只电子管。

(二)计算机发展进程

1.第一代电子管计算机(1946~1958):特点: 操作指令是为特定任务而编制的,每种机器有各自不同的机器语言,功能受到限制,速度也慢。另一个明显特征是使用真空电子管和磁鼓储存数据。

2.第二代晶体管计算机 (1956-1963):特点: 晶体管代替了体积庞大电子管,使用磁芯存储器。体积小、速度快、功耗低、性能更稳定。还有现代计算机的一些部件:打印机、磁带、磁盘、内存、操作系统等。在这一时期出现了更高级的COBOL和FORTRAN等编程语言,使计算机编程更容易。新的职业(程序员、分析员和计算机系统专家)和整个软件产业由此诞生。

3.第三代集成电路计算机 (1964-1971):以中小规模集成电路,来构成计算机的主要功能部件。主存储器采用半导体存储器。运算速度可达每秒几十万次至几百万次基本运算。在软件方面,操作系统日趋完善。

4.第四代大规模集成电路计算机 (1971-至今):从1970年以后采用大规模集成电路(LSI)和超大规模集成电路(VLSI)为主要电子器件制成的计算机,重要分支是以大规模、超大规模集成电路为基础发展起来的微处理器和微型计算机。

python学习笔记286(Python0-2计算机基础)(17)

(三)二进制(重点)

二进制:满2进1,即1 1=10,此处及以下所有的进一都表达的是位数上的增加一位。

二进制是计算机内部唯一组成的进制,所有要能为计算机所识别的数据都必先要转为二进制,二进制的组成数字只有0和1。

与我们生活所用的十进制不同,二进制是满2进1,即(数量上大于等于2则要进一位),同时,在二进制中不包含除0和1以外的任何数字,包括2。二进制里1 1=10 或十进制里16转为二进制 16=10000

除二进制外,常见的进制还有八进制、十进制以及十六进制。其中八进制是满八进一。十六进制是满十六进一,十六进制的组成数字又与其他进制有些不同,十六进制的组成数字为(0123456789abcdef),十六进制里没有十六的说法,所以也没有十六的组成数字,譬如在十进制中,8 8=16,转变为十六进制就是8 8=10。

那么,在计算机中,如何将中文数字以及字母转变为计算机所能识别的数据呢?

首先,在中文转为计算机能识别的数据方面,有一个专门的UTF-8编码(由于此内容所涉其他领域,在此仅为了解此名词),UTF-8编码能够将中文转为计算机能够识别的数据。

其次,在数字识别方面,便是上述的进制转换问题。

在字母方面,ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。ASCII代码的功能即使将字母转变为计算机能识别的数据。

三、计算机组成

在计算机的构成中,主要分为硬件和软件两大系统。

(一)硬件系统

硬件系统又是计算机实体,主要可细分为CPU、GPU、主板、储存器以及输入输出设备

python学习笔记286(Python0-2计算机基础)(18)

硬件系统

1.CPU:CPU是计算机的中央处理器,CPU在计算机中作用是解释和运行转换成机器语言的程序内容。

python学习笔记286(Python0-2计算机基础)(19)

CPU天梯图

2.GPU:GPU是图形处理器(Graphics Processing Unit),计算机显卡的处理器,主要解决密集型数据处理和大型并行数据计算(通过并行提高吞吐量)。

python学习笔记286(Python0-2计算机基础)(20)

GPU天梯图

3.主板:主板是由上百个插槽的板子,CPU和GPU都是插在主板上的。

python学习笔记286(Python0-2计算机基础)(21)

主板天梯图

4.储存器:储存器可分为内存和外存。

内存与外存的区别在于,内存是运行,外存是保存。

(1)内存:运行速度快,读取速度快,但不能永久保存数据。

(2)外存:①相较于内存而言运行速度与读取速度慢,但能够永久保存数据。

②外存又称磁盘,有硬盘和软盘之分

硬盘其实就是我们电脑中所熟知的C盘D盘等等组合而成的磁盘,而这些C盘D盘什么的又是硬盘的分区,其中c盘是主分区,是安装操作系统的,其他盘可以叫做扩展盘,所以c盘也叫做系统盘,不过他们都属于硬盘,而硬盘又是属于磁盘的,这个关系要理清。

软盘在现今出现频率较少,自从U盘发明出来后,软盘的功能就不再显得那么重要了。随着时间进程,软盘慢慢地淡出了市场。

python学习笔记286(Python0-2计算机基础)(22)

软盘

5.输入输出设备:指的是显示屏、鼠标、键盘和音响等等外设设备。

补充:如果你不太懂电脑硬件系统各个设备的差异,你可以参考上述的天梯图,天梯图代表了不同设备不同型号的性能高低,对于新手小白来说是最可靠的指导师,勿信非亲好友的电脑专卖店。

(二)软件系统

计算机软件系统按其功能可分为系统软件和应用软件两大类。

1、系统软件

系统软件是指管理、控制、和维护计算机及其外部设备,提供用户与计算机之间操作界面等方面的软件,它并不专门针对具体的应用问题。

代表性的系统软件有:操作系统、数据库管理系统以及各种程序设计语言的编译系统等,其中最重要的系统软件是操作系统。

(1)操作系统(Operating System)

操作系统是最基本的系统软件,是用于管理和控制计算机所有软、硬件资源的一组程序。操作系统直接运行在裸机上,其他的软件(包括系统软件和大量的应用软件)都是建立在操作系统基础上的,并得到它的支持和取得它的服务。

操作系统是计算机硬件与其他软件的接口,也是用户和计算机之间的接口。

功能:处理机管理、存储管理、设备管理、信息管理等。

操作系统的性能很大程度上决定了整个计算机系统的性能。

分类:

  1. 按与用户对话的界面不同,可以分为命令行界面操作系统和图形用户界面操作系统;
  2. 按能够支持的用户数为标准,可以分为单用户操作系统和多用户操作系统;
  3. 按是否能够运行多个任务为标准,分为单任务操作系统和多任务操作系统;
  4. 按系统单功能为标准,分为批处理系统、分时操作系统、实时操作系统、网络操作系统。

(2)语言处理程序

计算机在执行程序时,首先要将存储在存储器中的程序指令逐条地取出来,并经过译码后向计算机的各部件发出控制信号,使其执行规定的操作。计算机的控制装置能够识别的指令是用机器语言编写的,而用机器语言编写一个程序并不是一件容易的事。绝大多数用户都是用某种程序设计语言(即高级语言),如BASIC语言、C语言等来编写程序。但是用这些高级语言编写的程序CPU不认识,必须要经过翻译变成机器指令后才能被计算机执行。而负责这种翻译的程序称为编译程序。为了在计算机上执行由某种高级语言编写的程序,就必须配置有该种语言的编译系统。

(3)数据库管理系统

计算机的效率主要是指数据处理的效率。

数据库管理系统的功能:有组织的、动态的存储大量的数据信息;使用户能方便的、高效的使用这些数据信息。

数据库软件体系包括数据库、数据库管理系统和数据库系统三个部分。

DBMS是位于用户(或应用程序)和操作系统之间的软件。DBMS是在操作系统支持下运行的,借助于操作系统实现对数据的存储和管理,是数据能被各种不同的用户所共享,保证用户得到的数据是完整的、可靠的。它与用户之间的接口称为用户接口,DBMS提供给用户可使用的数据库语言。

(4)实用程序

实用程序完成一些与管理计算机系统资源及文件有关的任务,如诊断程序、反病毒程序、卸载程序、备份程序、文件解压缩程序等工具类软件。

2、应用软件

应用软件是指专门为解决某个应用领域内的具体问题而编制的软件(或实用程序)。

应用软件一般不能独立地在计算机上运行,必须要有系统软件的支持。应用软件特别是各种专用软件包也经常是由软件厂商提供的。

常见的应用软件有以下几类:

  1. 文字处理软件:用于输入、存储、修改、编辑、打印文字资料(文件、稿件等)。常用的有WPS,Word等;
  2. 信息软件管理:用于输入、存储、修改、检索各种信息。例如工资管理系统、人事管理系统等。这种软件发展到一定水平后,可以将各个单项软件联接起来,构成一个完整的、高效的管理系统,简称MIS;
  3. 计算机辅助设计软件:用于高效的绘制、修改工程图纸,进行常规的设计和计算,帮助用户寻求较优的设计方案。常用的有AutoCAD等;
  4. 实时控制软件:用于随时收集生产装置、飞行器等的运行状态信息,并以此为根据按预定的方案实施自动或半自动控制,从而安全、准确的完成任务或实现预定目标。

最后,按层次的观点,计算机系统的组成如下图所示。其中内层的裸机是指没有任何软件的(纯硬件)机器。

各层次的关系是:内层是外层的支撑,而外层可以不必了解内层细节,只需按约定使用内层提供的服务。

python学习笔记286(Python0-2计算机基础)(23)

四、操作系统简介

详见于下网址

https://blog.csdn.net/universsky2015/article/details/101152124?ops_request_misc=%7B%22request%5Fid%22%3A%22161218248516780255241645%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=161218248516780255241645&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-101152124.pc_search_result_hbase_insert&utm_term=计算机操作系统简介&spm=1018.2226.3001.4187

五、编程语言的发展

详见于下网址

https://blog.csdn.net/GG_SiMiDa/article/details/81216712?ops_request_misc=%7B%22request%5Fid%22%3A%22161218270216780262556335%22%2C%22scm%22%3A%2220140713.130102334..%22%7D&request_id=161218270216780262556335&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-1-81216712.pc_search_result_hbase_insert&utm_term=编程语言的发展&spm=1018.2226.3001.4187

作者:WananJ

未经允许,不得用于商业用途。仅供学习交流!

书稿仓促,如有错误请指正!

,