框架:
1)Multics (GE,MIT,Bell)
2)UNIX(Ken,Denis Ritch)
3)BSD(Bill joy,BSRG)
4)CP/M
5)Microsoft (Billgates,美国西亚图)
6)苹果(Jobs,美国西亚图)
7)Windows
8)OpenBSD,FreeBSD,NetBSD (首个PC兼容机的正统UNIX)
9)SUN公司(Solaris)
10)Windows NT
11)Minix (Andrew) 欧洲荷兰大学
12)Linux (Linus) 欧洲赫尔辛基大学
13)MIT Ritch Stallman (GNU,GPL)
故事:
1964年,贝尔实验室与麻省理工学院以及通用电气公司联合开发的Multics系统项目。
1969年,因MULTICS项目的工作进度过于缓慢,最后终究遭裁撤的命运,贝尔实验室退出此项目。
贝尔实验室退出Multics计划后,在开发Multics系统期间Ken编写了一个名为“Space Travel”的游戏。后来贝尔实验室撤出了Multics计划。不能在免费使用Multics系统。
Ken向bell实验室的领导申请一台计算机,要开发一个游戏,领导肯定不乐意了。一日游荡于bell实验室,在布满灰尘的破布下面发现一台pdp7主机,Ken就仿照Multics内核重新用汇编语言写了一个内核,并且成功移植了"Space Travel"。
Ken向实验室的人推广自己的游戏,然而都并不对他的游戏感兴趣,都对他的内核感兴趣,要求移植一个内核,由于用汇编语言所写的内核,与硬件紧密相关,移植困难,不过移植成功了。他的同事戏谑地称之为”Unix“,与Multics相对,他的同事”丹尼斯·里奇 Dennis Ritchie,说用一种高级语言重写Unix内核,方便移植,Ken同意了,这对当时来说,是一个很大胆的想法,高级语言所有的程序,CPU难于理解,性能没有汇编语言的好。他们基于b语言增加指针和静态变量,开发出C语言,重写了Unix内核。
1974年,联合发表在美国计算机通信杂志:UNIX内核,当时每年一度的全国各地的科学家、教授都会去参加这个会议,他们听到这个UNIX后,都希望得到一份用于研究,当时的 美国AT&T公司的贝尔实验室是电话电报,美国反陇断法规定任何除了电话电报之外的贝尔实验室的都不能收费,所以Ken和Dennis Ritchie不得不,不情愿的提供给他们
在Bell实验室有重大贡献的人,每年都有一次年休,Ken在1975年休假时,并回到了他的母校加州大学伯克利分校。在那里,之前也获得过UNIX系统,有个叫Bill joy的人成立了一个小组叫BSRG,专门研究UNIX,由于Ken到了,所以"加州大学伯克利分校"成了研究的领头羊。
美国军方DARPA,需要能在网络上传输数据报文的协议,TCP/IP协议,又想不是闭源的,当时的dec公司也有属于自己的系统vax(vms),就找到bill joy,bill joy就基于UNIX系统和小组研发的一些程序打包成为一个新的系统BSD,并且打开售卖。
UNIX的Ken和Dennis Ritchie知道了,在Bell实验室分拆后,UNIX就开始和BSD打官司,"你该卖还是我该卖?""你应该赔我多少钱?"原生的UNIX的名字叫system V,这一场官司持续了10年之久。
80年时,IBM和康柏公司,生产PC兼容机,CPU是8060,8080,内核CP/M是美国科学家“加里·基尔达尔“Gary Arlen Kildall,所创建。
当时一个主机3-4万,系统2-3万,普通人几乎没有能力去承受这个价格的,它们也需求一个廉价的系统。
当时UNIX系统并没有向PC兼容机移植,PC兼容机,刚出现,性能不咋的,UNIX用高级语言研发,对机器性能要不高,UNIX也不屑于向一个非常丑陋的机器上移植。
81年,美国西亚图的小公司,bill gates 开始卖BASIC编程语言,和封装发行UNIX取名,XENIX
不到几个月,他的朋友bob ali 的公司的一个小程序员用6周时间写了一个叫QDOS(Quick and Dirty Operating System),能运行在PC兼容机上,bill gates 敏锐的发现了这个商机,就通过自己的母亲,IBM董事会的董事长的关系找到IBM的董事长沃森,告诉他,"我有一个能运行在PC兼容机的系统,不收费,只要卖出一个系统给我几美分的授权费即可",沃森觉得这有前景、看在他母亲的面子上,就答应了bill gates 签了合同,bill gates此时仍然自己的系统,就托朋友花了5万美元买断那个小程序员的操作系统,程序员一听"我花了几周研发的系统,你们一群疯子,花5买,连忙忙不迭的答应",bill gates和bob ali 拿到系统后对系统敲敲打打,叫做"dos"系统。
由于系统便宜了,很多人,都能买的起这个系统了,bill gates的生意也很好,直到另外3个人的出现。
美国西亚图,jobs,成立了一个公司,叫苹果公司,力图生产超越PC兼容的机器,机器在名为苹果机,用的是unix系统
jobs到Xerox PARC公司看到了图形程序和鼠标,心中预感这个东西将来必火,就找到PARC的领导,领导对这个东西非常厌恶(施乐是生产打印机的,别人都用图形程序显示文本了,谁还用打印机,作为输出设备?),就用很低的价格买到手了。
bill gates听说了,感觉到了危机,就找到乔布斯,说"你看你的研发团队那么忙,也没有研究出什么成果,不如我也来帮你研发,研发成果都是你的“乔布斯就给了他一份系统,不是完整的。
bill gates拿到系统后,回到公司让自己的研发团队研发,基于DOS + 图形程序,叫做 windows,并用更低的价格撬走了jobs的一个准备购买图形的unix系统的主机生产商,乔布斯就大骂"bill gates是小偷" bill gates就告诉他:”你能从我的代码找到属于你的程序的痕迹吗?" 当初Jobs并没有给所有图形程序的代码,他们边研发边修改,其内部完全都不一样了。
bill gates又赚到很多,
BSD和UNIX还在打官司,有程序员转向BSD,又转向UNIX,有的已经放弃了UNIX,UNIX此时被NOVALL收购,novall也很为难,就说你们把属于我的代码还给我,就行了。
BSD将所有UNIX的代码还给了UNIX,当然BSD的研究小组BSRG也在此时解散了,有的成员不甘心,就研发出能在PC兼容机上运行的首个UNIX的正统UNIX系统,OpenBSD,FreeBSD,NETBSD
在BSD小组接受DARPA的项目时,斯坦福捐给了CPU的精巧的指令集,Bill joy和另外几个人,成立了一家公司,Sun,用的是自己的系统BSD,后来System V打官司,为了避免纠纷就改用UNIX,并移植到自己的硬件上,经过特殊的优化后叫做"Solaris"
dec公司生产pdp7 pdp11小型机和vax,当ken在pdp7上实现了unix内核后,并且非常流行,所有买vax的买家都要求安装unix内核,vax本身安装的自己所独有的内核vms,一开始就不卖,到后来,"不装不买,不卖不行",后来公司越来越不行了,被康白收购,康柏被惠普收购。
公司被收购后,研发vms内核的一群程序员都没有工作了,被bill gates发现,将它们拉到微软公司,说:“来跟我干,大秤分金,大口吃肉,大碗喝酒”,于是到了微软公司后,基于vms内核和图形程序开发出了,windowsnt,vms服务器本身就有服务功能,并且是图形化的,所以当这个系统出来后,一年之内,当时的novall公司的服务器的市场份额被夺去半壁江山,两年之后,novall的服务器,销声匿迹了。
在UNIX开始收费时,所有曾经使用UNIX的大学将不能在免费使用UNIX了,其中有一位教授是 欧洲荷兰大学 Andrew 就自己用4000行代码写了一个操作系统,名为Minix,驱动程序用汇编所写的,当时许多黑客比较看好Minix系统,所有上课的学生都要手动为自己的电脑硬件编译驱动,有的学生甚至写了许多驱动,告诉教授要为他完善Minix,教授说:"不能用你们的代码污染我的系统",教授到欧洲各地任教,在芬兰赫尔辛基大学任教时,Linus也是这其中的一位,在Linus20岁生日时,他的外公送给他一个80386主机,1991年8月25日,他在上面实现了LINUX,并发布到网上,说:“我不像那个怪老头,你们随意使用,随意修改,只要将修改的结果反馈给我就可以了” 于是在1991年 0.01版本发布,1993年1.0就出现了
在1985年时,Ritch Stallman MIT的教授,当时UNIX收费,他就不乐意了,就说软件是全人类的结晶,不是你们个人独有的,当时有许多黑客都支持他的想法,于是他成立了一个组织:GNU(Gnu is Not Unix) ,宣言是 GPL(General Public License),当时GNU组织的软件是在UNIX上实现的,正好与自己的组织相违背,并且它承诺会有一个系统的,过了几年都没有出现。
直到1991年,Linux出现,两者相遇,山无棱,天地合,才敢与君绝,惊天地,泣鬼神,原来你也在这里。。。
当时用GNU组织的C库,glibc,和GNU的bash程序,linus内核,组成一个系统,GNU/LINUX
遵循GPL开源协定
开源软件:自由下载、安装、使用、学习、修改、开放源代码、可以收取服务费
自由软件: 自由软件受到选定的“自由软件许可协议协议”保护而发布(或是放置在公有领域),其发布以源代码为主,二进制文件可有可无。自由软件许可证的类型主要有GPL许可证和BSD许可证两种
GPL协定:任何采用GPL任意行代码的程序都要将所有的源码公开
LGPL lesser GPL : 采用GPL库调用接口的程序不用公开源码
Apache、BSD: 采用我的代码可商业化,源码中必须有相关协定,不能以我的组织名义发行代码。
GNU/Linux 只是提供源码,对于一个新的用户来讲,是不是过于有难度了?
所以就出现了一些组织,"世俗的、入流的、食人间烟火的"组织封装LInux系统,发行Linux系统,只不过各有各的特点:有的比较恋旧、有的追求新颖、Log不同罢了
Redhat 公司:美国 北卡罗来纳州
个人版本、企业版本,当个人版本到达0.7时,企业版本才发行0.1,在9.0时,红帽才放弃个人版,因为只有企业版才能有更好的发展,才能赚到钱。但是不能将个人版废弃,捐给Fedora社区,专门为红帽提供新软件测试使用:Fedora 6个月发行一次,redhat 18个月发行一次
Redhat是GPL协定,不同作为闭源软件,但是每次发行的redhat系统提供无偿提供后,出现BUG,补丁可以不提供给你,又或者就提供给你源代码,对于没有基础的人来说这也无济于是。
于是有一个组织就专门编译Redhat提供的源代码。CentOS在红帽提供补丁、发行一个版本后,一般一周后CentOS社区也会出现兼容格式的改造版,只是 Log不同。内部实现都相同
Debian 二次发行版Ubuntu基于Ubuntu的二次发行版mint
slackware 二次发行版S.U.S.E
基于SUSE的二次发行版
opensuse
sle SUSE Linux Enterprise
ARCH
Gentoo
LFS
Andorid Linux + busybox + java + java程序