热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Unix:一个革命性操作系统的过去现在与未来

文章标题:Unix:一个革命性操作系统的过去现在与未来。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

40年前的这个夏天,一个程序员坐在他的电脑前,输入了一系列的代码,于是软件历史上最重要的一个产品就此诞生了。

    1969年的八月,来自AT&T实验室的程序员Ken Thompson发现当他的妻子和孩子出去度假的时候,他终于有时间来实现自己关于新操作系统的想法了。他用汇编语言为Digital Equipment公司编写了第一版的Unix操作系统。他使用DEC的小型机PDP-7,各花了一周的时间来完成外壳程序,编辑器和汇编程序。自从贝尔实验室在早些时候撤销了一个被称作Multics(多路信息与计算服务)的分时共享系统的项目(该项目早就陷入了困境)时,Thompson和他的同事Dennis Ritchie就感觉一直无所事事。他们不看好当时的那些主流操作系统,也不想继续那个荒唐和愚蠢的Multics。经过多次关于全新操作系统的讨论。Thompson编写了第一个版本的Unix。这个版本的Unix在后续的几年内得到了他的同事Doug McIlroy, Joe Ossanna 以及Rudd Canaday的帮助。一些来自Multics的创意被加入到了新操作系统里。但是这个全新的操作系统的精华就在于简单就是最好的。

    Ritchie 和Thompson在CACM的期刊中写道:“一个强大的交互式操作系统既不需要花费大量的设备也不需要大批的人力。我们希望我们操作系统的用户们发现Unix的最大特点就是简单,优雅并且容易操作。”

   
    Thompson和Ritchie


    显然他们做到了。Unix已经成为IT界的基石,它已经被广泛的应用到大学,政府部门里的服务器以及工作站中。而它的影响力远比它应用的范围大的多。由于对计算机界的贡献,ACM在1983年授予Thompson 和Ritchie计算机界的最高荣誉---图灵奖。 Unix的诞生使得一代的程序员开始重新思考编程的真谛。

    早期的起步

    罗马不是一天建成的。在1971年,Unix被移植到了PDP-11小型机上,这个平台远比早期的PDP-7强大的多。新的系统中加入了全新的文本格式以及文本编辑器。而它的第一批使用者就是来自贝尔实验室专利部门的打字员们。

    在1972年,Ritchie发明了高级C程序语言(这是基于Thompson早期的B语言),随后Thompson用C语言重新编写了Unix,而这极大的增强了系统的便携性。而这个版本被命名为Unics(Uniplexed Information and Computing Service),这也是对当年Multics的致敬,不久这个名字又被改回Unix。

    而是时候让大家了解这个全新的操作系统了。Ritchie 和 Thompson于1974年6月在CACM期刊上发表了《Unix,全新的分时系统》的论文。这篇论文引起了巨大的反响。早期Unix在贝尔实验室很受冷落。但是现在它有ACM作为后盾。编辑们称这个优雅的操作系统是个划时代的作品。

    专门研究IT历史的专家Peter Salus评论说:“这篇CACM的论文影响深远,Ken因为Unix而被大家重视。”

    黑客们的天堂

    Thompson和Ritchie被称作是黑客们的教父。黑客们称赞他们是集超凡的创造力与无穷的智慧于一身。他们研究问题的方法,编写代码的方式,在大学里对程序员们的精彩演讲,以及拒绝微软,IBM的资助,白手起家创办公司的事迹都被人们津津乐道。而Unix也是当时一些像加州大学Bill Joy,卡耐基梅隆大学Rick Rashid,贝尔实验室David Korn等一些著名黑客专研的模板。Thompson和Ritchie在论文中写道:“几乎从一开始,这个系统就可以自己进行完善。所有源代码都可以在互联网上查看与修改。当互联网上有新的创意发布出来我们很乐于修改或者重写系统。”

    AT&T的程序员Korn评价说:“Unix最大的特点就是可以自己编写工具来替换系统原有的工具。这比你从其他地方购买软件好得多。你知道你到底需要什么,并且可以开发出更好的工具。”Korn是最有影响力的Unix开源工具Korn Shell的作者。

    作家Salus回忆1970年他在多伦多大学使用IBM360系统进行APL编程时说:“那个IBM的系统十分糟糕。但是在1978年的圣诞,我的一位哥伦比亚大学的朋友送给我一台安装有Unix系统的小型机,它实在是太方便了。”他说Unix最大的优点就是他的管道特性。这一特点在1973年被引入,可以很方便的将一个程序的输出连接到另一个程序上。流水线的概念是由贝尔实验室的Mcllroy发明的。这一特点被大多数操作系统抄袭,例如Linux,DOS,Windows。

    而Unix另外的一个优点就是它不需要几百万的大型机才可以运行。它是由低廉的DEC PDP-7编写成的。Salus评价说:“我们不得不佩服Ken的智慧,可以用如此廉价的机器编写出这么强大的操作系统。”

    当时大学的研究员们普遍使用Unix因为它相对来说简单而且便于操作,并且它是开源的,拥有很多免费软件,特别适用于科学计算。
 

[1] [2] 下一页


推荐阅读
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 如何更改电脑系统的自动校时服务器地址?
    本文介绍了如何通过注册表编辑器更改电脑系统的自动校时服务器地址。通过修改注册表中的数值数据或新建字符串数值的方式,可以将默认的时钟同步服务器地址更改为自己所需要的域名或IP地址。详细步骤包括双击时间区域,点击internet时间,勾选自动校正域名设置定时等操作。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
author-avatar
流浪者时空
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有