【历史】- Unix时代的开创者Ken Thompson
自图灵奖诞生以来,其获得者一直都是计算机领域的科学家与学者,而在所有这些界的图灵奖中只有唯一的一届有个例外,那就是Ken Thompson与Dennis M. Ritchie,他们都是计算机软件工程师。
Ken Thompson,1943年出生于美国新奥尔良。1960年,Ken进入加州大学伯克利分校主修电气工程。1965年从伯克利毕业后,又花了一年的时间在该校取得了电子工程硕士的学位。不知道是时代造就英雄,还是英雄顺应时代而生,在Ken读书期间,正好赶上了计算机时代蓬勃发展的起步阶段,自小喜欢电气的Ken接触到计算机后,立即完全沉迷了进去,从1962年的开始,他就在学校的计算机中心找到份工作,专门负责程序的编写。这也为其后他一手开创的Unix时代奠定了良好基础。
1966年离开校园的Ken加入了贝尔实验室。那时的计算机系统还是批处理的天下,程序员只能在又慢又笨重大型机上工作,一般来讲是先将程序卡片装入设备,然后再等1个小时再过来取回运算的结果,其效率之低可想而知。应市场的需要,当时贝尔实验室与麻省理工学院以及通用电气公司联合开发了一个多用户分时操作系统,取名为Multics(多路信息计算系统),Ken当时就是这个系统的开发人员之一,在开发Multics的期间,Ken创造出了名为Bon的编程语言。可惜因为这个系统不但开发周期长,成本高,而且庞大而缓慢,市场前景完全不被看好,最后贝尔实验室从这个项目中撤了出来。这对于Ken而言,简直是个巨大的不幸,因为他自己用写的一个“star travel”游戏就是完全基于Multics的,退出Multics项目意味着Ken将没有机器可以再玩这个游戏了。
面对此情此景,Ken作为一个创造者的本性立即体现了出来,于是他决定自己写一个操作系统来满足他玩游戏的需要,说干就干,Ken找到了一台废弃已久的老式PDP-7,并在这台机器上重写了他的游戏。在这个过程中,Ken有了一个主意,要开发一个全新的操作系统。利用PDP-7上的汇编语言,Ken只花了一个月就编写完了操作系统的内核,在这个一个月中,他一周一个内核,一个文件系统,一个编辑器和一个编译程序的完成。做完这个系统后,Ken将其命名为UNiplexed Information and Computing System,缩写为 UNICS,后来做了一下改动,称为UNIX。在开发第一版Unix的过程中,Ken还开发出一种新的语言,即C语言的前身——B语言,这种语言简洁明了,接近于硬件语言,第一版的Unix就是基于B语言来开发的。
Unix的出现开始虽然并不为大家所看好,但是却引起了贝尔实验室另一位同事的注意,这就是Dennis M. Ritchie,于是Dennis主动加入了进来共同完善这个系统。至此一场轰轰烈烈的Unix的传奇时代才真正的拉开了序幕。1972年,他们联手将Unix移植到当时最先进的大型机PDP-2上,由于Unix是如此的简洁、稳定与高效,以至于当时大家都放弃了PDP-2上自带的DEC操作系统,而完全改用Unix,这时的Unix已经开始走向成熟了。
在1973年之前Unix还不太为外界所知,到同年10月,Unix在IBM举办的操作系统原理专题研讨会上被提及,当Ken和Dennis在会上宣读论文并展示Unix后,整个会场轰动了,大家都立即涌上来索取这种新型的操作系统的程序。随着Unix的需求量的日益增加,Ken与Dennis决定将Unix进一步改写,以便可以移植到各种不同的硬件系统,由于Unix的原码中不少是用汇编完成,不具备良好的移植性,正好Dennis在1973年在B语言的基础上开发出了C语言,C语言灵活,高效性,与硬件无关,并且不失其简洁性,正是Unix移植所需要的法宝,于是旧版的Unix与C语言完美结合在一起产生了新的可移植的Unix系统。随着Unix的广泛使用,C语言也成为了当时最受欢迎的编程语言一直到延续至令。
说到Unix与C语言,还有一段小故事,当时安装了Unix的PDP-11被放在贝尔实验室供大家使用,有一天大家伙发现Ken总是可以得到最高的权限轻松进入他们的帐户,在贝尔实验室这种高人云集的地方,这简单是太不能容忍了,于是有若干高人跳了出来,仔细分析Unix代码,找到后门,修改后再重新编译整个Unix,当所有人都以为这个世界应该从此清静了的时候,却发现Ken还是很容易就取得了他们的帐户权限,为此大家郁闷不已。只到很多年后,Ken才道出其中的原委,原来代码里确实存在后门,不过并不在Unix代码中,而是藏在编译Unix的编译器里,每次编译器编译时就会自动加入后门代码,而当时整个贝尔实验室都用的是Ken所写的C编译器。
由于Unix与C语言的深远影响,1983年美国计算机协会将当年的图灵奖破例颁给了作为软件工程师的Ken与Dennis,并在当年还决定新设立一个奖项――软件系统奖,以奖励那些优秀的软件开发者,当然首个软件系统奖也是非他们两人莫属了。
虽然Unix与C语言让Ken与Dennis功成名就,但是他们两人都没有走那些IT史上自己创业的通用套路,而是一直留在贝尔实验室从事其喜爱的软件开发工作。到了2000年12月时,Ken正式退休,离开了工作了几十年的贝尔实验室开始享受他晚年的时光,但是Ken怎么能闲得下来呢,于是他干脆将他的另一个爱好:飞机,变成正式的职业,成为了一名专职的飞行员。至此,他所开创的Unix时代已经完全与他无关了。
【历史】- Unix时代的开创者Ken Thompson的更多相关文章
- Unix时代的开创者Ken Thompson
自图灵奖诞生以来,其获得者一直都是计算机领域的科学家与学者,而在所有这些界的图灵奖中只有唯一的一届有个例外,那就是Ken Thompson与Dennis M. Ritchie,他们都是计算机软件工程师 ...
- [计算机、网络相关历史]unix简史
本文2001年由台湾“网络农夫”所写,其人生平不祥,此文受鸟哥大力推崇,两人应该相识.文章写得很不错,应该是查了很多资料整理而成的,美中不足的是好多语句不通顺,国考语文绝对不及格,哈哈. 0.我的准备 ...
- 【说文解字】Unix与Linux
历史 Unix操作系统是由Ken Thompson和Dennis Ritchie于1969-1970年发明. 它的部分技术来源可以追溯到Multics工程,后者因为过于庞大复杂而失败. 研究人员吸取教 ...
- (译文)The Linux Programming Interface:第1章(历史和标准)
1 HISTORY AND STANDARDS (译者:鱼时代 校对:fgn) Linux 是UNIX操作系统家族中的一员,在计算机出现以来,UNXI已经有很长的历史了.在这一章中的第一部分将对Un ...
- 【Linux】- cat命令的源码历史
转自:Cat 命令的源码历史 以前我和我的一些亲戚争论过计算机科学的学位值不值得读.当时我正在上大学,并要决定是不是该主修计算机.我姨和我表姐觉得我不应该主修计算机.她们承认知道如何编程肯定是很有用且 ...
- unix简史及应用
Unix 简史 1965年时,贝尔实验室(Bell Labs)加入一项由奇异电子(General Electric)和麻省理工学院(MIT)合作的计画:该计画要建立一套多使用者.多任务.多层次(mul ...
- linux历史及基本知识
1. Linux的历史: 1973年,Ken Thompson以C语言写出第一个正式版的UNIX内核, 1977年:重要的UNIX分支——BSD(Berkeley Sofeware Distribut ...
- Linux入门(历史与现状)
Linux 入门之 历史与现状 Linux是一个计算机的操作系统,与windows类似,是一款系统软件.操作系统首先是一个计算机程序,使用计算机语言开发,比如C语言.VC语言.是计算机硬件和应用软 ...
- 第02课 操作系统及Linux 系统介绍
1.操作系统介绍 操作系统(Operating System,简称OS),是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心. 操作系统的作用是管 ...
随机推荐
- C++定义一个简单的Computer类
/*定义一个简单的Computer类 有数据成员芯片(cpu).内存(ram).光驱(cdrom)等等, 有两个公有成员函数run.stop.cpu为CPU类的一个对象, ram为RAM类的一个对象, ...
- 新知识 HtMl 5
快要毕业了,即将走向实习岗位,但是这日子过的太无聊了,昨天逃课回宿舍打开电脑想看电影但是没什么好看的,于是上床睡觉了,越躺越无聊,然后爬了起来到学习图书馆找了本HTML5的课本,学习了起来(我感觉ht ...
- HTML中的【块】与【内嵌】
块元素与内嵌元素 块的特征 默认独占一行 没有宽度时默认撑满一行 支持所有的css命令 内嵌的特征 同行可以连续跟同类的标签 内容撑开宽度 不支持宽高 不支持上下的内外边距 代码换行被解析 块与内嵌的 ...
- python线程与进程小结
传统方式是调用2个方法执行1个任务,方法按顺序依次执行 # -*- coding:utf-8 -*- import threading import time def run(n): print('t ...
- PAT (Basic Level) Practice (中文)1002
1002 写出这个数 (20 分) 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1 ...
- 匈牙利算法模板 hdu 1150 Machine Schedule(二分匹配)
二分图:https://blog.csdn.net/c20180630/article/details/70175814 https://blog.csdn.net/flynn_curry/artic ...
- ISE中FPGA的实现流程
一.ISE实现的步骤 在综合之后,我们开始启动FPGA在ISE中的实现过程,整个过程包括以下几个步骤: 1.Translate ...
- PHP.45-TP框架商城应用实例-后台20-权限管理-RBAC表构造与代码生成
权限管理 三张主表{p39_privilege(权限).p39_role(角色).p39_admin(管理)} 两张中间表{p39_role_pri(角色-权限).p39_admin_role(管理- ...
- 2 web服务器:固定返回值
1.老师给的思路 #tcp socket 服务端 socket = socket.socket() socket.bind() socket.listen() client_socket = sock ...
- idea离线安装lombock插件
技术交流群:233513714 安装过程 1.首先找到插件包 插件包可以在两个地方下载,分别是IDEA的官方插件仓库和GitHub里lombok-intellij-plugin仓库中的release包 ...