【历史】- Unix英雄传:图文细数十五位计算机先驱
Unix,一款多任务多用户操作系统,最早由AT&T公司员工及合作伙伴在贝尔实验室于1969年开发完成。Unix的衍生及克隆版本包括Berkeley Unix、Minix、Linux、AIX、A/UX、HP-UX以及Solaris。苹果的Mac OS X则基于Berkeley Software Distribution(简称BSD)Unix。在本文中,我们将一同回忆奋战于早期Unix计算机领域第一线的先驱者们以及他们贡献出的丰功伟绩。
Ken Thompson
Ken Thompson是Unix系统的联合开发者之一。他从1966年开始就在贝尔实验室工作,直到2000年12月才正式退休。Thompson曾编写过B编程语言,也就是如今如雷贯耳的C语言的前身。他后来还利用C语言重新编写出整套Unix系统,并再次改写其中的部分内容以容纳Doug Mcllroy的多种pipe。
Dennis Ritchie
Dennis Ritchie是Unix操作系统的联合开发者之一,同时也是C编程语言的创造者。他最初效力于贝尔实验室,并在AT&T供职之后最终进入独立出来所组建的朗讯技术公司,并在那里试过了从1967年到2007年退休之间这段漫长的时光。他的学术论著包括《Unix程序员上手指南》(1971年)以及与Brian Kernighan合著的《C编程语言》(1978年)。
Joe Ossanna
Joe Ossanna自上世纪五十年代中期一直到1977年逝世期间,一直在贝尔实验室工作。他所参与的团队在贝尔实验室与麻省理工学院中设计出了Multics——第一款分时操作系统。其后,他还曾与Thompson、Richie以及Rudd Canaday共同编写Unics,也就是后来Unix的前身。他的杰出功绩在于编写了一套nroff版本(被称为troff),用于管理该团队的新型图形系统CAT照排机。在1973年,他利用PDP-11汇编语言编写出第一款Unix troff,并在两年之后利用C语言进行了重新编写。
Douglas McIlroy
Douglas McIlroy自1958年到他退休的1997年之间一直效力于贝尔实验室。除了在开发Unix pipe/pipeline方面声名卓著之外,他还开发出一系列Unix工具,并且扮演着组件及产品线软件工程团队的幕后推手角色。他曾撰写并编辑过多本论著与期刊,他的作品在计算机行业中取得过无数奖项。目前他正在达特茅斯学院计算机科学系担任兼职教授。
Peter Neumann
Peter Neumann在1960年到1970年这十年间效力于贝尔实验室。而在1965年到1969年之间,他则参与到Multics团队当中。当时他的职责是打理文件系统设计并与Thompson、Ossanna以及Stan Dunten一道进行Multics的输入-输出设计工作。他曾发表过一系列广为人知的文章及论文,其中包括论著《计算机相关风险》。此外,他还是《风险文摘》修订人与《ACM软件工程指南》的创始编辑。Neumann自1971年开始就担任SRI的首席科学家,多年来他一直被视为计算机安全领域的权威专家,并撰有题为《可证明安全的操作系统(简称PSOS)》的报告(论文)。
Rudd Canaday
Rudd Canaday自1964年到1989年期间,一直效力于贝尔实验室,并成为Unix操作系统的第三位联合开发者。他的功劳簿中包含着多项创举,例如创造第一台数据库服务器、第一款涵盖整个企业的Unix应用程序、第一款内网Unix应用程序(效力于AT&T公司时)、第一套自动化测试系统、第一个自动化白页/目录程序以及第一套(或者是首批之一)三维文件系统。Canaday目前作为RHC软件公司联合创始人兼工程总监继续为计算事业奋斗不息。
Brian Kernighan
Brian Kernighan曾与Thompson、Richie及其他前面提到的技术大师一道在贝尔实验室的开发团队中共同打造Unix。他曾撰写过六本论著,其中包括与Dennis Ritchie共同撰写的《C编程语言》,并在工作坚持遵循“所见即所得”这一名言。Kernighan目前在普林斯顿大学计算机科学系担任教授。
Michael Lesk
Michael Lesk在1970年到1984年期间效力于贝尔实验室的Unix开发团队。他的贡献包括文字处理工具以及与编译和网络相关的工具。此外,他还编写了便携式I/O库并参与到C语言开发团队中来。他后来离开了贝尔实验室开始管理贝尔通信研究所的计算机科学研究小组。从1998年到2002年期间,他曾担任美国国家科学基金会信息与智能系统部门负责人。目前,Lesk在罗格斯大学担任图书馆与信息科学教授。
Bill Joy
1986年,Bill Joy获得了由计算设备协会(简称ACM)颁发的Grace Murray Hopper大奖,用于鼓励他在Berkeley Unix操作系统(简称BSD或者Berkeley Software Distribution Unix),一款内置了TCP/IP网络的开源操作系统,合作设计中做出的卓越贡献。Joy的BSD Unix中还包含C shell,一种虚拟化编辑器,以及用于为程序提供超越设备物理内存配置的虚拟内存支持功能。Joy于1982年与合作者共同创建了Sun公司,目前担任Kleiner、Perkins、Caufield&Byers等风险投资企业的合作伙伴。
David Korn
David Korn于1976年加入贝尔实验室,其最卓越的贡献在于开发出Korn shell(一款在用户与操作系统之间进行联络的程序),这款程序以其出色的适用性甚至遮蔽了C与Bourne shell的光芒。他的另一大贡献则是UWIN,一款专为Win32系统打造的X/Open库。当然,这还只是他成就中的一小部分。他曾撰写过两本论著、数十篇论文以及一系列关于Unix及其发展历程的文件资料。Korn目前仍然效力于AT&T实验室。
Rob Pike
Rob Pike在1980年到2002年期间效力于贝尔实验室,并一直作为Unix团队的成员。此外,他还为Plan 9(即Inferno操作系统)做出过卓越贡献,并与同事共同为Unix开发出Blit图形界面。再有,他曾经编写出多款文字编辑器,例如sam与acme,并与Brian Kernighan合作撰写名为《编程实践与Unix编程环境》一书。目前Pike以工程师身份效力于谷歌公司。
Andrew Tanenbaum
Andrew Tanenbaum曾于1979年到1982年期间效力于贝尔实验室。他于1987年编写过名为Minix的Unix克隆版本,旨在为IBM PC环境提供实践操作系统。Minix(也就是迷你Unix的别称)随后在全世界引发热潮。Tanenbaum曾获得过二十多项权威大奖、研究员头衔以及名誉博士学位,并撰写过多本正式出版的教科书。Tanenbaum目前在荷兰阿姆斯特丹自由大学担任计算机科学教授一职。
Rick Rashid
1979年,Rick Rashid被聘为卡内基梅隆大学的计算机科学教授。他的主要贡献包括首个Mach内核版本,即用于取代BSD Unix“微型内核”的备选方案。Mach是首个64位Unix版本,而且与BSD一道成为开放软件基金会OSF/1操作系统的基础。OSF/1最终成为DEC/康柏/惠普、NeXTstep以及苹果Mac OS X的系统基础。Rashid目前担任微软公司首席研究官。
Gordon Bell
Gordon Bell并未担任过贝尔实验室的正式员工,但他确实曾与Thompson及Ritchie共同合作过。他在Digital Equipment公司进行了23年的研发工作。他个人的最大成就在于开发出VAX微型计算机,被业界普遍认为是是此类设备中的王者。他同时也成为科学界采纳并接受Unix超级计算机的最大推手,并促成了美国国防部高级研究计划局(简称DARPA)的建立。他创办了美国国家科学基金会的电脑科学与工程部门,同时担任负责人。目前Bell效力于微软公司。
Linus Torvalds
1991年8月,Linus Torvalds公布了他自己开发的Linux操作系统,这款基于Unix的新型系统在一篇Usenet文章中首次亮相。他最初创建的Linux内核是为了运行于一台配备80386处理器的PC机,这台设备采用Minix操作系统、GNU以及C编译器。不过单凭内核还不足支撑起一款操作系统,我们还需要其它组件——具体来说,包括shell、编译器、库以及工具等。这些组件最终于1992年在GNU项目中被开发完成,并遵循通用公共许可进行发布。当所有组件集成完毕之后,Linux终于正式诞生。1996年,Linux迎来了它的官方吉祥物——企鹅,后面的发展故事相信大家已经耳熟能详了。
【历史】- Unix英雄传:图文细数十五位计算机先驱的更多相关文章
- Unix英雄传:图文细数十五位计算机先驱
Unix,一款多任务多用户操作系统,最早由AT&T公司员工及合作伙伴在贝尔实验室于1969年开发完成.Unix的衍生及克隆版本包括Berkeley Unix.Minix.Linux.AIX.A ...
- [计算机、网络相关历史]unix简史
本文2001年由台湾“网络农夫”所写,其人生平不祥,此文受鸟哥大力推崇,两人应该相识.文章写得很不错,应该是查了很多资料整理而成的,美中不足的是好多语句不通顺,国考语文绝对不及格,哈哈. 0.我的准备 ...
- 细数 Windows Phone 灭亡的七宗罪(过程很详细,评论很精彩,但主要还是因为太慢了,生态跟不上,太贪了,厂商不愿意推广)
曾梦想仗剑走天涯,看一看世界的繁华 年少的心有些轻狂,如今你四海为家 曾让你心疼的姑娘,如今已悄然无踪影 犹记得上大学攒钱买了第一台智能手机Lumia 520时,下载的第一首歌曲<曾经的你> ...
- 细数Qt开发的各种坑(欢迎围观)
1:Qt的版本多到你数都数不清,多到你开始怀疑人生.从4.6开始到5.8,从MSVC编译器到MINGW编译器,从32位到64位,从Windows到Linux到MAC.MSVC版本还必须安装对应的VS2 ...
- 细数iOS上的那些安全防护
细数iOS上的那些安全防护 龙磊,黑雪,蒸米 @阿里巴巴移动安全 0x00 序 随着苹果对iOS系统多年的研发,iOS上的安全防护机制也是越来越多,越来越复杂.这对于刚接触iOS安全的研究人员来说非 ...
- SQL Server 2014 SP2发布下载:数十项更新修复
微软发布了数据库工具SQL Server 2014 SP2服务包下载,本次更新集合了数十项更新修复,涉及安全和功能性补丁,使用SQL Server 2014的用户应该及时安装该服务包. 文件内容 版本 ...
- 细数.NET 中那些ORM框架 —— 谈谈这些天的收获之一
细数.NET 中那些ORM框架 —— 谈谈这些天的收获之一(转) ADO.NET Entity Framework ADO.NET Entity Framework 是微软以 ADO.N ...
- Google将数十亿行代码储存在单一的源码库
过去16年,Google使用一个中心化源码控制系统去管理一个日益庞大的单一共享源码库.它的代码库包含了约10亿个文件(有重复文件和分支)和 3500万行注解,86TB数据,900万唯一源文件中含有大约 ...
- 迄今最安全的MySQL?细数5.7那些惊艳与鸡肋的新特性(上)【转载】
转自: DBAplus社群 http://www.toutiao.com/m5762164771/ 迄今最安全的MySQL?细数5.7那些惊艳与鸡肋的新特性(上) - 今日头条(TouTiao.com ...
随机推荐
- 路由器基础配置之ospf基础配置
我们将以上面的拓扑图进行本次ospf的实验,目的是能当三台pc机互通 先配置好pc机的IP地址,注意一定要给pc机设置好网关,接下来配置路由器的IP地址 router4 enable 进入特权模式 c ...
- Python核心框架tornado的异步协程的2种方式
什么是异步? 含义 :双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,同时在结束时有停止位 现象:没有共同的时钟,不考虑顺序来了 ...
- 微信小程序 嵌套循环
前言 入门教程之列表渲染多层嵌套循环,目前官方的文档里,主要是一维数组列表渲染的案例,还是比较简单单一,给刚入门的童鞋还是无从入手的感觉. <view wx:for="{{items} ...
- python读取大文件和普通文件
读取文件,最常见的方式是: with open('filename', 'r', encoding = 'utf-8') as f: for line in f.readlines(): do_som ...
- 014---Django的中间件
前戏 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上装 ...
- Kubernetes-运维指南
Node隔离与恢复 cat unschedule_node.yaml apiVersion: kind: Node metadata: name: k8s-node-1 labels: kuberne ...
- JAVA大作业汇总1
JAVA大作业 代码 ``` package thegreatwork; import javafx.application.; import javafx.scene.control.; impor ...
- 纯js实现复制内容到剪切板
下面的方法可以完美实现: 复制指定input 或者 textarea中的内容: 指定非输入框元素中的内容 代码如下: function copyToClipboard(elem) { // creat ...
- bzoj 一些题目汇总
2140: 稳定婚姻 /* 求联通分量. */ #include<bits/stdc++.h> using namespace std; typedef long long LL; inl ...
- C#读写txt文件的两种方法介绍 v
C#读写txt文件的两种方法介绍 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出 ...