1965 年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘、显示器),连接一台电脑
    02、Linux发展史 - 图1
    计算机操作系统的鼻祖来自MULTICS(多路信息计算系统),我们在这里简称为M系统。
    M系统是1964年由贝尔实验室、麻省理工学院及美国通用电气公司共同参与研发的,其目的是开发出一套安装在大型主机上多人多工的操作系统。因为在当时,计算机一次只能接受一个任务,多人的任务需要排队执行。

    后来,原M系统设计成员Ken Thompson(肯·汤普森)因为无聊,想把一套名为“太空旅游”的游戏移植到他们实验室的一台机器上而开发了一套软件,该套软件参考M系统的思路设计,但是功能目的单一,实验室的人戏称此软件为Unics(单路信息计算系统)。

    由于当时的Unics,每次移植到一个新的机器上,都需要重复在机器上处理,且对不同的机器设备,需要额外的编程处理。对于了解计算机的人来讲,就是驱动都要自己写,自己配。那个时候,系统的传播,受限于硬件和使用者的能力,只能做到极少部分人来使用。

    1971年,肯·汤普森 和DennisRitchie(丹尼斯·里奇)为了使当时的Unics具有更好的移植性、适用于不同的硬件设施,创造了C语言。

    他们于1973年,以C语言重新改写与编译Unics的核心, 并正式命名为Unix,形成Unix的初代版本。该版本由于使用在当时看来是高级语言的C来改写,减轻了对底层硬件依赖的问题,从而可以广泛地在各种机器上使用。

    初代的Unix采用了200多条程序命令,虽然内核很小,但是功能极为精简强悍。当时传统需要用100行到1000行代码的程序,用Unix不超过10条命令就可解决。因为它的极高效率,使得它在AT&T公司内得以疯狂快速地传播。对软件编程不了解的人可以设想一下,本来要一天才能做完的工作,用当时的Unix几分钟就搞定了全天的工作,这种神器能不快速传播吗?

    计算机软件的发展历程就是一个持续优化,提升效率的过程。Unics的发明是为了将复杂的任务简单化处理。同时,为了将软件和硬件的关联处理实现简化而重新创建了一个新的语言(C语言),从而实现软件和硬件的分离,为现代操作系统(Unix)的发展打下了坚实的基础。

    需要指出的是,当时的Unix属于美国AT&T公司下的贝尔实验室,但该公司和学术界合作开发(加州伯克利大学),从而快速将其在各大高校传开。随后在1977年,伯克利大学的Bill Joy在取得了Unix的核心原始码后,着手修改成适合自己机器的版本, 同时增加了很多功能软件与编译工具,最终将它命名为Berkeley Software Distribution (简称BSD)。这个BSD是Unix很重要的一个分支,苹果的操作系统实际源自此分支。

    1979年,AT&T公司出于商业的考量,将Unix的版权收了回去。因此,AT&T在1979年发行的第七版Unix中,特别提到了 “不可对学生提供原始码”的严格限制。 这导致后来学术界自力更生,Andrew Tanenbaum(安德鲁·塔能鲍姆)教授参照Unix的功能,写了一个Minix系统,用于教授学生操作系统。该系统在1986年完成并发布,并于次年发布了相关书籍。这是后来大名鼎鼎的Linus Torvalds(林纳斯·托瓦兹) 能够得以构建Linux初代系统的基础。