0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于Unix的历史和Linux的演化整理

454398 来源:蜗窝科技 作者:linuxer 2020-10-13 15:19 次阅读

一、前言

作为一个Linuxer,对unix感兴趣是顺理成章的事情,对unix的了解反过来也可以促进对GNU/Linux的理解。不过在接触unix的过程中,大家一般都会有下面的疑问:

1、unix这个商标是属于哪一个公司或者机构?

2、为何unix有那么多的变种?为何各个公司都有自己的unix,例如IBM的AIX(Advanced Interactive eXecutive)操作系统、SUN公司的Solaris操作系统、HP公司的HP-UX操作系统。

3、Linux和unix的关系为何?

……

本文和技术无关,主要想整理一些Unix的历史和Linux的演化

二、Unix的诞生

1969年的8月份,在老婆带着孩子回娘家后,AT&T公司Bell实验室的宅男程序员Ken Thompson花费了一个月的时间,使用汇编语言开发了第一个版本的unix,并将它运行在DEC公司的PDP-7的小型机上。这样的成果当然不是凭空产生,Thompson 和Dennis Ritchie作为Bell实验室的代表,参与了MULTICS项目。该项目是一个MIT、GE和Bell实验室的联合项目,旨在提供一个时分操作系统。在Bell实验室退出该项目后,Thompson变得无所事事(特别是老婆孩子又不在身边),反正闲着也是闲着,于是写出了第一个版本的unix。

unix这个名字源自MULTICS(Multiplexed Information and Computing Service),Thompson认为MULTICS是一个overdesigned and overbuilt and over everything的操作系统,他本人认为优秀的操作系统的特点应该是简单、优雅和易用。在这样的思路指引下,这个简介的OS被命名为Unics (Uniplexed Information and Computing Service),后续被修正为unix。

当然,一个人的力量是有限的,Thompson以及他的同事都加入了这个unix操作系统的开发。特别是在Dennis Ritchie发明了c语言之后,unix用c语言重写一遍。虽然当时已经存在了FORTRAN和COBOL这样的高级语言,但并不适合开发unix操作系统。c语言的发明是和unix相关的,开发unix需要一个适合unix kernel及其系统软件的高级语言工具,没有适合的工具,unix开发团队只能自己创造。在Thompson 和Dennis Ritchie的带领下,unix开发团队在1969到1979年之间release了若干用数字标识的版本。First Edition,Second Edition……Seventh Edition。本来,unix这点事都是AT&T公司内部的事,不过1974年,Dennis Ritchie和Thompson在CACM上发表了论文:The UNIX Time-Sharing System,这一下子,unix成了尽人皆知的秘密了。

本来,AT&T公司成立Bell实验室进行一些前瞻性的研究,最终当然是想转化为产品,对于Unix也不例外。然而,在当时,AT&T公司和美国政府签署了美国电话业务的专营协议,该协议规定AT&T不能从事软件销售业务,也就是说,AT&T公司不能把Unix当作一个产品来销售。因此,从Sixth Edition开始,AT&T将unix分发给美国的大学(当然,也收取了distribution fee),这些分发给大学的发布包里面包含了文档和unix kernel的source code。

三、BSD和System V

Thompson 在1975/1976学年来到了加州伯克利分校做客座教授,并且带了些研究生一起继续进行Unix的后续开发,在伯克利,很多新的特性加入到了unix操作系统中,并发布了一些早期的BSD版本。这些BSD版本引起了Defense Advanced Research Projects Agency‘s (DARPA) 的关注,在DARPA的支持下,伯克利的Computer Systems Research Group (CSRG)负责开发 一个标准的unix平台,主要用于DARPA未来的各种研究。BSD (Berkeley Software Distribution)是由加州大学伯克利分校基于AT&T的unix发布包进行二次开发和发布的。BSD为unix带来了很多的新的特性,特别是1983年发布的4.2版本的BSD,该版本实现了TCP/IP协议栈。

与此同时,美国司法部依据《反托拉斯法》对AT&T公司进行拆分。拆分之后,分离出来的公司可以对Unix进行商业化运作,这个从AT&T分离出来的公司就是AT&T USG(Unix Support Group)。USG在1982年release了System III。1983年,Computer Research Group (CRG), UNIX System Group (USG) 连同一起第三方组织成立了UNIX System Development Lab,并发布了System V的第一个版本。1989年System V发布了最后一个版本SVR4。

这样,各大商业计算机制造公司在为自己的硬件平台撰写操作系统的时候就有两种选择,一种是购买商业版本的System V并进行二次开发,另外一种是使用BSD版本的unix进行开发。使用BSD版本进行开发对商业公司是有风险的,因为BSD中包括了AT&T的source code。大部分商业公司选择了前者,也就是基于system V进行开发。例如Sun公司的Sun OS是基于BSD的,随后,Sun公司的OS更名为Solaris,Solaris是基于System V的。IBM的AIX和HP的HP-UX都是基于System V的(AIX虽然是base system V的,但是也引入了4.2和4.3 BSD的source code,其实即便是System V,也会引入一些BSD的特性或者source code)。值得一提的是1980年,Microsoft也从AT&T获得了unix的授权,并发展了Xenix操作系统。后来SCO公司收购了Xenix并更名为SCO unix。

四、unix的版权之争

和AT&T的System V分支不同,BSD版本不是那么focus在商业化Unix上。BSD由大学发布,主要是用于学术研究,希望可以以free software的形式发布。但是,4.3版本以及之前的BSD 中都包括了AT&T的unix code,毫无疑问,这些code应该服从AT&T的license。1991年,CSRG发布了BSD Net/2。它的发布就是为了解决这个问题。在BSD Net/2中,所有AT&T的unix code都被替换或者重写,因此,BSD Net/2是使用BSD license发布的。90年代初,基于Intel公司的CPU的个人PC已经开始流行,386/BSD项目就是将BSD Net/2 porting到386处理器上的一个项目。1992年,386/BSD发布了Version 0.1,之后项目组成员对项目的后续发展产生了分歧,因此386BSD项目分裂成两个项目,freeBSD和NetBSD。freeBSD focus在386平台,主要是修复bug,提高性能。而NetBSD主要想支持更多的硬件平台。openBSD是从NetBSD项目分裂出来的,该项目主要关注系统安全。

没有利益的冲突,也就不会有unix的版权之争了。1991年,CSRG的一些成员开了一家公司,名字是Berkeley Software Design, Inc (BSDI),BSDI旨在为Intel平台提供商业版本的BSD unix。BSDI贩卖的OS非常便宜,侵犯了USL的利益,1992年,USL将BSDI告上法庭。1994年,USL(这时候USL已经属于Novell公司而非AT&T)和BSDI达成和解:伯克利大学从Net/2 release 的18000个文件中移除3个文件,对一些文件进行简单修改,在70个文件中增加USL的copyright,在这些条件下,伯克利大学可以继续自由发布。而USL也不会对作出上述修改的软件及其派生软件进行任何权利的追述。1994年,4.4BSD-Lite发布,那些原来BSD Net/2 base的项目都使用了4.4BSD-Lite的源代码,也就不存在版权问题了。

五、结束语

今天,由于GNU/linux的迅猛发展,Unix的前途似乎一片黯淡。Novell从AT&T手中购买了UNIX 但却交给X/open管理,自己则发展了一套命名为UNIXWave 的操作系统。后来unix几经转手,目前属于谁已经不是那么重要了,重要的是,这个在40年前设计的操作系统,其思想在现在仍然闪烁着智慧的光芒。正是由于BSD忙于应付官司而给了linux kernel机会,否则,如果在386有非常优秀的BSD系统的话,Torvalds也许就不会创建linux kernel这个项目。时光飞逝,任何产品,任何公司,任何英雄都是浮浮沉沉,唯有思想存留。作为linuxer,希望能够采颉linux kernel的光芒,分享给大家,一起享受软件的乐趣。
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10942

    浏览量

    206544
  • UNIX
    +关注

    关注

    0

    文章

    293

    浏览量

    41039
收藏 人收藏

    评论

    相关推荐

    #硬声创作季 Linux云计算运维:05 Unix的诞生历史

    Linux操作系统UNIX
    Mr_haohao
    发布于 :2022年09月27日 22:57:23

    LinuxUnix有哪些不同之处?

    LinuxUnix都是功能强大的操作系统,都是应用广泛的服务器操作系统,有很多相似之处,甚至有一部分人错误地认为UnixLinux操作系统是一样的,然而,事实并非如此,以下是两者的
    发表于 03-02 18:51

    LinuxUnix有什么不同

    LinuxUnix 到底有什么不同?
    发表于 05-07 06:25

    UnixLinux的一段暗黑史分享

    关于UnixLinux的一段暗黑史(上篇)
    发表于 06-11 16:54

    见证Unix操作系统发展历史

    见证Unix操作系统发展历史 从总体来看,Unix的发展可以分为三个阶段:   第一阶段为Unix的初始发展阶段
    发表于 01-29 11:12 636次阅读

    Linux-Unix工具盒

    这是一份收集Unix/Linux/BSD命令和任务的文档,它有助于高级用户或IT工作。它是一份简明扼要的实用指南。
    发表于 01-05 16:22 43次下载

    The Linux Programming Interface - A Linux and UNIX System Programming Handbook

    The Linux Programming Interface - A Linux and UNIX System
    发表于 03-02 11:42 7次下载

    收集Unix/Linux/BSD命令和任务的文档

    收集Unix/Linux/BSD命令和任务的文档
    发表于 10-30 15:46 8次下载
    收集<b class='flag-5'>Unix</b>/<b class='flag-5'>Linux</b>/BSD命令和任务的文档

    unixlinux的区别

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。UNIX操作系统(尤尼斯),是一个强大的多用户、
    发表于 11-14 10:08 6039次阅读
    <b class='flag-5'>unix</b>和<b class='flag-5'>linux</b>的区别

    LinuxUNIX到底有关系和区别

    UNIXLinux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Lin
    的头像 发表于 02-18 11:56 3174次阅读
    <b class='flag-5'>Linux</b>与<b class='flag-5'>UNIX</b>到底有关系和区别

    linuxunix有什么区别

    UNIXLinux之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX诞生于20世纪60年代末,Windows诞生于20世纪80年代中期,Linux诞生于20世纪
    发表于 06-08 09:12 1.2w次阅读

    Linux的发展历史LinuxUnix有怎么样的关系

    这篇文章将介绍Linux的发展历史以及Linux与著名操作系统Unix之间的关系。不会深入探讨Linux的技术问题。
    的头像 发表于 06-27 09:00 2003次阅读

    UNIXLinux有什么区别联系

     UNIXLinux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Li
    发表于 07-15 16:02 556次阅读

    UnixLinux、ios和Android四大系统的发展及关系

    Unix, 简化形成了LinuxLinux则是Android的内核,而苹果则是使用unix系统作为iOS和MacOS的内核。
    的头像 发表于 08-24 16:35 3932次阅读
    <b class='flag-5'>Unix</b>、<b class='flag-5'>Linux</b>、ios和Android四大系统的发展及关系

    UnixLinux的差异

    摘要:程序员都知道,Linux 不是 Unix,不过二者之间确实存在关系,即 Linux 系统是从 Unix 派生出来的,而 Linux
    发表于 09-04 12:42 278次阅读