1623
1623年,德国科学家契克卡德(Wilhelm Schickard)制造能够进行6位数的加减运算,是为了帮助自己的挚友天文学家开普勒(kepler)做机械运算,但是这个发明很晚世人发现。
1642
法国科学家帕斯卡为了帮助父亲费力的计算税率税款,19岁的帕斯卡研发出一种系列齿轮组成的,外壳用黄铜材料制作,长20英寸宽4英寸高3英寸的厂方盒子计算器,面板上有一列显示数字的小窗口,旋紧发条后才能转动, 用专用的铁笔来拨动转轮以输入数字。 这种机器开始只能够做6位加法和减法。然而,即使只做加法,也有个“逢十进一”的进位问题。聪明的帕斯卡采用了一种小爪子式的棘轮装置。当定位齿轮朝9转动时,棘爪便逐渐升高;一旦齿轮转到0,棘爪就“咔嚓”一声跌落下来,推动十位数的齿轮前进一档。可惜成本较高,不受当代重视
1725
18世纪,工业革命开始,1725年,法国纺织工人鲁修为便于转织图样,在织布机套上穿孔纸带,他的合作伙伴则在1726年着手改良设计,将纸带换成相互串连的穿孔卡片,以此达到仅需手工进料的半自动化生产。1801年,法国人雅卡尔发明提花织布机,利用打孔卡控制织花图样,与前者不同的是,这部织布机变更连串的卡片时,无需更动机械设计,此乃可编程化机器的里程碑。
1880
美国宪法规定每十年必须进行一次人口普查,1880年排山倒海的普查资料就花费了8年时间处理分析,因此美国统计学家赫尔曼·何乐礼在1890年开发出一种排序机,利用打孔卡储存资料,再由机器感测卡片,协助美国人口调查局对统计资料进行自动化制表,结果不出3年就完成户口普查工作。
何乐礼在1896年成立制表机器公司,几经并购,后来成为国际商业机器有限公司(IBM)的一部分。到了1950年,IBM的卡片已在业界与政府机构广泛使用,为了让卡片可作为证明文件重复使用,卡片上都印有“请勿折叠、卷曲或毁损”的警告字样,这行警语后来还成为后二次大战时期的流行标语
1823
1823年,英国数学家巴贝奇在政府的支持下,开始建造以蒸汽引擎驱动的差分机,用来比较数字间的差异,经历10年未能竟功,巴贝奇遂转而研究设计得更为完整,直接利用打孔卡输入和储存资料的分析机,可惜最后巴贝奇穷其毕生精力都未能造出任一完整的差分机或分析机。
于1834年给出现代计算机的基本结构:堆栈、处理器、控制器。巴贝奇在1835年提到,分析机是一部一般用途的可编程化计算机,同样是以蒸汽引擎驱动,吸收提花织布机的优点,使用打孔卡输入资料,其中的重要创新是用齿轮模拟算盘的算珠。他最初的计划是打算利用打孔卡控制机器进行运算,印出高精确度的对数表(特殊用途计算机),后来才转而开发一般用途的可编程化计算机。
尽管巴贝奇的设计健全,方向正确(至少是仅需部分修正),计划仍因各种大小问题而阻扰不断。一来巴贝奇难以共事,任何人不合其意便起争端,加上他的机器全是手工打造,上千个零件只要一个零件有一点小差错,就会引起重大错误,因此需要远超寻常的制造公差。英国政府也因差分机的经验,不愿继续资助如此先进的科技,于是资金告馨后,这项计划就在与技工的吵吵闹闹中告终。
1895
英国工程师弗莱明(John Ambrose Fleming)利用爱迪生效应发明了人电子管。从此,人类进入了微电子时代。1912年,美国发明家德·福雷斯特(Lee de Forest)在加州的帕洛·阿托(Palo Alto)市发现了电子管的放大作用,为电子工业奠定了基础。1913年,麻省理工的教授万尼伐尔·布什(Vannevar Bush)制造出了第一台模拟式计算机微分分析仪。该计算机靠电机驱动,并利用齿轮转动的角度来进行模拟计算。
1936
1936年11月12日,阿兰·图灵(Alan Turing)发表了计算机理论的奠基性论文《论可计算数及其在判定问题中的应用》(On Computable Numbers, with Application to the Entscheidungsproblem)。阐明了现代计算机理论,从理论上定义了现代通用计算机,可计算性等重要概念。为了模拟人的运算过程,图灵指出一台能实现数字计算和逻辑判断的机器必须具备以下功能:
1.一条无限长的纸带。纸带分为一个个格子,每个格子里有一个来自有限字母表的字母,字母表中有一个空白符号。纸带上的格子被编号为0, 1, 2, …,纸带一端可以无限伸展。2.一个扫描器。扫描器能沿着纸带移动,能读出当前所在格子内的字母,并能改变该字母。3.一套控制规则。它根据图灵机的当前状态及当前扫描器读出的字母来决定扫描器的下一步动作,并改变状态寄存器中寄存的状态,令图灵机进入新状态。4.一个状态寄存器。它用来保存图灵机的当前状态。图灵机的所有可能状态的数目是有限的,并且有一个特殊状态——停机状态。满足上面这四个条件的机器就是有名的图灵机。图灵的这篇论文把奥地利数学家库尔特·哥德尔(Kurt Godel)在1931年给出的不可能性定理,用图灵机精确地表达了出来。
图灵机每一部分都有限,只是有一个无限长的纸带,这是一个理想设备。图灵认为这样的一台机器就能模拟人类所能进行的任意计算过程。图灵对计算机理论的重要贡献之一是给出了停机问题,即数理逻辑中的可计算性问题。它问的是“能否判断任意一个程序会在有限时间内结束运行”这样一个问题。用数学语言来表示就是:给定一个程序P和输入I, 程序P在输入I下是否会停止?
1936年,图灵证明了图灵定理——不存在可以判断停机问题的通用算法。证明给出了计算机和程序的纯数学定义——图灵机。图灵定理告诉我们,停机问题在图灵机上是不可判定问题。从数理逻辑的观点来看,停机问题说的就是一阶逻辑的不完备性。因此,图灵机的本质是哥德尔不完备定理的另一种表述,图灵机是哥德尔的以通用算术为基础的一种形式语言。图灵因其图灵机和图灵定理,被认为是计算机科学之父。
1945
冯·诺依曼计算机 【von Neumann machine】 使用冯诺依曼体系机构的电子数字计算机。1945年6月,冯·诺依曼提出了在数字计
算机内部的存储器中存放程序的概念(Stored Program Concept),这是所有现代电子计算机的模板,被称为“冯· 诺依曼结构”,按这一结构建造的电脑称为存储程序计算机(Stored Program Computer),又称为通用计算机。冯·诺依曼计算机主要由运算器、控制器、存储器和输入输出设备组成,它的的特点是:程序以二进制代码的形式存放在存储器中;所有的指令都是由操作码和地址码组成;指令在其存储过程中按照执行的顺序进行存储;以运算器和控制器作为计算机结构的中心等。冯诺依曼计算机广泛应用于数据的处理和控制方面,但是存在一定的局限性。
1946
1946年2月15日在美国宾夕法尼亚大学正式投入运行,它的名称叫ENIAC(埃尼阿克),第一台计算机是美国军方定制,专门为了计算弹道和射击特性表面而研制的,承担开发任务的“莫尔小组”由四位科学家 和工程师埃克特 、莫克利、戈尔斯坦、博克斯 组成。
1946年这台计算机主要元器件采用的是电子管 。该机使用了1500个继电器 ,18800个电子管,占地170m,重量达30多吨,耗电150KW,造价48万美元。这台计算机每秒能完成5000次加法运算,400次乘法运算,比当时最快的计算工具快300倍,是继电器 计算机的1000倍、手工计算的20万倍。但但是埃尼阿克并不完善,它没有存储器,只有寄存器,仅能寄存10个数码。而且耗电惊人,当时的一个笑话说,只要它一开机,整个费城的路灯都会变暗。计算机界有名的“debug”一词也来自埃尼阿克,因为埃尼阿克中的电线常被虫子(bug)咬断,检修人员常常要到机器里去查找被咬断的电线,再把它接上,于是寻错就被“debug”一词取代。尽管埃尼阿克很简陋,但是它象征着第一代电子计算机的诞生。
至今,电子计算机已有了70年的历史。在工艺上,它经历了四代,第一代是电子管计算机,第二代是晶体管计算机,第三代是集成电路计算机,第四代是大规模集成电路计算机。
1947
1947年12月23日,美国贝尔实验室的肖克利(William B Shockley),巴丁(John Bardeen),布拉顿(Walter H. Brattain)研制出了世界上第一只晶体管。人类进入了固体电子时代。
1948
1948年6月10日,香农在《贝尔系统技术杂志》(Bell System Technical Journal)上发表了著名论文《通讯的数学原理》(A Mathematical Theory of Communication)。一年后,他又发表了另一著名论文《加密的通信》(Communication Theory of Secrecy Systems)。这两篇论文阐述了通信的基本问题,给出了通信系统模型,提出了信息量的数学表达式,并解决了信息通道容量、信息源的统计特性、信息源编码、信息通道编码等一系列基本技术问题。这两篇论文成是信息论的奠基性著作。
1954
1954年,贝尔实验室用800只晶体管制成了世界上第一台晶体管计算机TRADIC。
1958
1958年,美国德州仪器的工程师Jack Kilby发明了集成电路(IC),将三种电子元件结合到一片小小的硅片上。更多的元件集成到单一的半导体芯片上,计算机变得更小,功耗更低,速度更快。这一时期的发展还包括使用了操作系统,使得计算机在中心程序的控制协调下可以同时运行许多不同的程序。1964年—1972年的计算机叫集成电路计算机。
本征半导体:不含杂质且无晶格缺陷的半导体称为本征半导体。在极低温度下,半导体的价带是满带(见能带理论),受到热激发后,价带中的部分电子会越过禁带进入能量较高的空带,空带中存在电子后成为导带,价带中缺少一个电子后形成一个带正电的空位,称为空穴。空穴导电并不是实际运动,而是一种等效。电子导电时等电量的空穴会沿其反方向运动 [1] 。
它们在外电场作用下产生定向运动而形成宏观电流,分别称为电子导电和空穴导电。这种由于电子-空穴对的产生而形成的混合型导电称为本征导电。导带中的电子会落入空穴,电子-空穴对消失,称为复合。复合时释放出的能量变成电磁辐射(发光)或晶格的热振动能量(发热)。在一定温度下,电子- 空穴对的产生和复合同时存在并达到动态平衡,此时半导体具有一定的载流子密度,从而具有一定的电阻率。温度升高时,将产生更多的电子- 空穴对,载流子密度增加,电阻率减小。
1964
multics是一个分时操作系统,该系统开始作为一个合资项目,是1964年由贝尔实验室、麻省理工学院及美国通用电气公司所共同参与研发的,其目的是为了开发出一套安装在大型主机上多人多工的操作系统。
美国通用电气公司所共同参与研发的,是一套安装在大型主机上多人多任务的操作系统。Multics其目的是想要让大型主机可以达成提供300个以上的终端机连线使用,后来因计划进度落后,资金短缺,宣告失败
据说第一个客户是福特汽车公司
1969
在1969年 ken thompson肯·汤普森
1943年汤普逊出生于美国新奥尔良。1960年就读加州大学伯克利分校主修电气工程,取得了电子工程硕士的学位。1966年加入了贝尔实验室。汤普逊参与了贝尔实验室与麻省理工学院以及通用电气公司联合开发的一套多用户分时操作系统,名叫Multics,同时他自己写了一个“star travel”游戏可运行于Multics之上。贝尔实验室后来撤出Multics计划。汤普逊只好找到一台老式PDP-7机器,重写了他的“star travel”游戏。
在开发Multics的期间,汤普逊创造出了名为Bon的程式语言。汤普逊花了一个月的时间开发了全新的操作系统,UNiplexed Information and Computing System(UNICS),可执行于PDP-7机器之上,后来改称为UNIX。第一版的Unix就是基于B语言来开发的。Bon语言在进行系统编程时不够强大,所以Thompson和Ritchie对其进行了改造,并于1971年共同发明了C语言。1973年Thompson和Ritchie用C语言重写了UNIX。安装于PDP-11的机器之上。
1970
第四代计算机是指从1970年以后采用大规模集成电路(LSI)和超大规模集成电路(VLSI)为主要电子器件制成的计算机。例如80386微处理器,在面积约为10mm X l0mm的单个芯片上,可以集成大约32万个晶体管。第四代计算机的另一个重要分支是以大规模、超大规模集成电路为基础发展起来的微处理器和微型计算机。
1977
BSD (Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,在1977至1995年间由加州大学伯克利分校开发和发布的。历史上, BSD曾经被认为是UNIX的一支——“BSD UNIX”, 因为它和AT&T UNIX操作系统共享基础代码和设计。在20世纪80年代,衍生出了许多变形的UNIX授权软件。比较著名的如DEC的Ultrix及Sun公司的SunOS。1990年代,BSD很大程度上被System V4.x版以及OSF/1系统所取代,晚期BSD版本为几个开源软件开发提供了平台并且一直沿用至今。今天,“BSD”并不特指任何一个BSD衍生版本,而是类UNIX操作系统中的一个分支的总称。
威廉·纳尔逊·乔伊(Bill Joy)于1979年在加州大学伯克利分校获得电气工程与计算机科学硕士学位。1986年,乔伊因他在BSD操作系统中所做的工作获得了Grace Murray Hopper奖。1986年6月,BSD 4.3发布。该版本主要是将BSD 4.2的许多新贡献作性能上的提高,原来的BSD 4.1没有很好地协调。在该版本之前,BSD的TCP/IP实现已经跟BBN的官方实现有较大差异。经过数月测试后,DARPA认为BSD 4.2更合适,所以在BSD 4.3中作了保留。
1981
86-DOS也就是QDOS,它由Tim Paterson用6周时间写成,它是基于当时十分流行的CP/M的思想编写的,它使用8086芯片,代码约为4000行汇编。Microsoft以5万美元买得这个操作系统,修改它并把新的操作系统称为MS-DOS,然后把这个东西交给了IBM。IBM经过测试发现了300余个错误,经过修改后,IBM发行了自己的DOS,称为PC-DOS。 Bill Gates瞬间成为了全球富翁
1985
贝尔实验室从电报公司中脱离出来,随后10年处于法律纠纷之中,导致技术与财富严重落后,之后unix各种专卖之后,unix开始收费,以至于之前流传出去的版本,各个研究院不能进行免费使用。
Richard stallman 对此十分不满,发起gnu(gnu is not unix),gnu的宗旨是gpl(general public license),还有fsf(free software foundation),x-window(unix图形化)是第一个假如gpl宗旨的,发行初期,只有应用软件如gcc vi等,没有操作系统,gun处理停滞状态,寻找一个操作系统
gpl:
general public license
copyleft
大多数软件许可证决意剥夺你共享和修改软件的自由。相比之下,GNU通用公共许可证试图保证你共享和修改自由软件的自由。——保证自由软件对所有用户是自由的。GPL适用于大多数自由软件基金会的软件,以及由使用这些软件而承担义务的作者所开发的软件。(自由软件基金会的其他一些软件受GNU库通用许可证的保护)。你也可以将它用到你的程序中。当我们谈到自由软件(free software)时,我们指的是自由而不是价格。
为了保护你的权利,我们需要作出规定:禁止任何人不承认你的权利,或者要求你放弃这些权利。如果你修改了自由软件或者发布了软件的副本,这些规定就转化为你的责任。
例如,如果你发布这样一个程序的副本,不管是收费的还是免费的,你必须将你具有的一切权利给予你的接受者;你必须保证他们能收到或得到源程序;并且将这些条款给他们看,使他们知道他们有这样的权利。
开源后续
lesser GPL:
基于库接口方式调用,无需开源
GPLV2 GPLV3
bsd许可协议 :
1.如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
2.如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
3.不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
apache许可协议 :
ASF:Apache Software Foundation 跟bsd类似,不以原作者名义做宣传就行
双线授权:
community :遵循开源协议
enterprise:在原来community之上提供功能服务
1991
Linus Torvalds宣布成立Linux,(据说是sun unix太贵),遵循gpl协议,操作系统跟应用程序不约而同。gnu linux 完整的os