在上世纪60年代,计算机并不像现在一样普遍。一般只有各机构或学校才会购置一台。在当时,计算机普遍使用了分时操作系统(一种将运行时间分为时间片,按时间片轮流为各终端提供服务的系统),且最多只能提供30个终端,也就是最多可以为30个用户提供服务。
为了解决终端数量不够用的问题,麻省理工学院与通用电气公司计划合作开发MULTICS操作系统(multi-user、multi-processor、multi-level,多用户、多任务、多层次),使其能够为超过300个终端提供服务。后来贝尔实验室也加入了这一计划,却因进度慢、花费大而在1969年退出了该项目。
肯·汤普逊也是贝尔实验室的一员,他在参加MULTICS的开发时开发出了Bon语言,并用其做出了“星际旅行”(Space travel)游戏。不幸的是,这款游戏只能在之前的MULTICS系统上运行。于是,为了能够将游戏移植到其他计算机上,他在妻子回家探亲时花了一个月用汇编语言开发出了Unics。之后,肯在其基础上开发了第一个UNIX系统。为了开发它,肯·汤普逊还在BCPL的基础上创造了B语言。
1971年,肯·汤普逊的同事兼“星际旅行”爱好者 丹尼斯·里奇也加入了开发。两人一起将Unix移植到了当时最先进的大型机PDP-2上。由于Unix的稳定性、高效性,大家都放弃了PDP-2自带的DEC操作系统。这时的Unix已经逐渐趋于成熟了。
1973年10月,Unix在IBM举办的操作系统原理专题研讨会上被提及,一经展示便受到了热烈欢迎。于是,Unix的需求量日益增加,肯和丹尼斯决定重写整个系统,使其具有更良好的可移植性。正好同年C语言完成,两人迫不及待地用它几乎重写了Unix。由于C语言强大的可移植性,Unix几乎可以在任何架构的处理器上运行,只要那种架构的处理器有对应的C编译器和库。C语言也随之成为了最受欢迎的编程语言之一,直到现在。
当时的贝尔实验室主要被掌握在AT&T(美国电信电话公司)手上,因此Unix的版权实际属于AT&T。而AT&T开始时并没有发现Unix的商业价值,廉价甚至免费地将源码授权给一些学术机构做研究或教学,许多机构将其进行改善和拓展,形成了一系列的Unix变种。这其中,便有加州大学柏克莱分校开发的著名伯克利软件套件,BSD。
随着Unix变种的发展,AT&T也意识到了Unix的商业价值,收回了之前对源码的授权,并对之前的Unix及其变种声明了著作权。Andrew S. Tanenbaum教授为了能 在课堂上教授学生操作系统运作的细节,决定在不使用任何 AT&T 的源代码前提下,自行开发与 UNIX 兼容的操作系统,以避免版权上的争议,于是MINIX(取 mini-unix之意)出现了。
1991年李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学就读。在校期间,他对Unix类的操作系统产生了兴趣,并开始在Minix上编写一些应用程序。由于Minix只是为了教学,功能并不强大。而李纳斯·托瓦兹经常想要用他的终端仿真器去访问大学主机上的新闻组和邮件。为了方便地操作文件,他自己开发出了Linux。那时,他才21岁!
最初Linux只能在x86上运行,而随着李纳斯·托瓦兹开源Linux,它受到了来自全世界程序员的改进与拓展,最终兼容了几乎所有硬件。
之后,Linux迅速发展,形成了种类众多的发行版。常见的发行版有:
Ubuntu
Redhat
Fedora
openSUSE
Linux Mint
Debian
Manjaro
Mageia
CentOS
Arch
Linux的应用现状
如今Linux主要被用于服务器中。Linux高效、稳定在这里得到了很好的体现。一台Linux服务器甚至能连续运行几年不停机(而windows可能几天几乎蓝屏)。
在手机操作系统占有绝大多数市场的安卓系统也是基于Linux的,但安卓删掉了Linux的几乎所有命令。
路由器、机顶盒等小型设备也安装了专门修改过的Linux,使其对系统资源占用更低。
桌面系统
这是Linux最薄弱的环节,现在的桌面系统几乎被windows占据了全部的市场。但随着UbuntuFedora等优秀桌面环境的兴起,同时各大硬件厂商对其支持的加大,Linux 在个人桌面领域的占有率在逐渐的提高
小故事
当时安装了Unix的PDP-11被放在贝尔实验室供大家使用,有一天大家伙发现肯总是可以得到最高的权限轻松进入他们的帐户,在贝尔实验室这种高人云集的地方,这简单是无法容忍。于是有若干高人仔细分析Unix代码,找到后门后,修改再重新编译了整个Unix。当所有人都以为这个世界应该从此清静了的时候,却发现Ken还是很容易就取得了他们的帐户权限,为此大家郁闷不已。直到很多年后,Ken才道出其中的原委,原来代码里确实存在后门,不过并不在Unix代码中,而是藏在编译Unix的编译器里,每次编译器编译时就会自动加入后门代码,而当时整个贝尔实验室都用的是Ken所写的C编译器。