UNIX 与 Linux 之间的关系是一个颇有意思的话题。在目前主流的服务器端操做系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,能够说 UNIX 是操做系统中的"老大哥",后来的 Windows 和 Linux 都参考了 UNIX。linux
现代的 Windows 系统已经朝着“图形界面”的方向发展了,和 UNIX 系统有了巨大的差别,从表面上甚至看不出二者的关联。程序员
UNIX 操做系统由肯•汤普森(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)发明。它的部分技术来源可追溯到从 1965 年开始的 Multics 工程计划,该计划由贝尔实验室、美国麻省理工学院和通用电气公司联合发起,目标是开发一种交互式的、具备多道程序处理能力的分时操做系统,以取代当时普遍使用的批处理操做系统。编程
说明:分时操做系统使一台计算机能够同时为多个用户服务,链接计算机的终端用户交互式发出命令,操做系统采用时间片轮转的方式处理用户的服务请求并在终端上显示结果(操做系统将CPU的时间划分红若干个片断,称为时间片)。操做系统以时间片为单位,轮流为每一个终端用户服务,每次服务一个时间片。安全
惋惜,因为 Multics 工程计划所追求的目标太庞大、太复杂,以致于它的开发人员都不知道要作成什么样子,最终以失败收场。服务器
以肯•汤普森为首的贝尔实验室研究人员吸收了 Multics 工程计划失败的经验教训,于 1969 年实现了一种分时操做系统的雏形,1970 年该系统正式取名为 UNIX。网络
想一下英文中的前缀 Multi 和 Uni,就明白了 UNIX 的隐意。Multi 是大的意思,大并且繁;而 Uni 是小的意思,小并且巧。这是 UNIX 开发者的设计初衷,这个理念一直影响至今。架构
有意思的是,肯•汤普森当年开发 UNIX 的初衷是运行他编写的一款计算机游戏 Space Travel,这款游戏模拟太阳系天体运动,由玩家驾驶飞船,观赏景色并尝试在各类行星和月亮上登录。他前后在多个系统上试验,但运行效果不甚理想,因而决定本身开发操做系统,就这样,UNIX 诞生了。编程语言
自 1970 年后,UNIX 系统在贝尔实验室内部的程序员之间逐渐流行起来。1971-1972 年,肯•汤普森的同事丹尼斯•里奇发明了传说中的C语言,这是一种适合编写系统软件的高级语言,它的诞生是 UNIX 系统发展过程当中的一个重要里程碑,它宣告了在操做系统的开发中,汇编语言再也不是主宰。学习
到了 1973 年,UNIX 系统的绝大部分源代码都用C语言进行了重写,这为提升 UNIX 系统的可移植性打下了基础(以前操做系统多采用汇编语言,对硬件依赖性强),也为提升系统软件的开发效率创造了条件。能够说,UNIX 系统与C语言是一对孪生兄弟,具备密不可分的关系。优化
20 世纪 70 年代初,计算机界还有一项伟大的发明——TCP/IP 协议,这是当年美国国防部接手 ARPAnet 后所开发的网络协议。美国国防部把 TCP/IP 协议与 UNIX 系统、C语言捆绑在一块儿,由 AT&T 发行给美国各个大学非商业的许可证,这为 UNIX 系统、C语言、TCP/IP 协议的发展拉开了序幕,它们分别在操做系统、编程语言、网络协议这三个领域影响至今。肯•汤普森和丹尼斯•里奇因在计算机领域作出的杰出贡献,于 1983 年得到了计算机科学的最高奖——图灵奖。
图 1 为肯•汤普森与丹尼斯•里奇的合影,天才都是不修边幅的……
随后出现了各类版本的 UNIX 系统,目前常见的有 Sun Solaris、FreeBSD、IBM AIX、HP-UX 等。
Solaris 和 FreeBSD
咱们重点介绍一下 Solaris,它是 UNIX 系统的一个重要分支。Solaris 除能够运行在 SPARC CPU 平台上外,还能够运行在 x86 CPU 平台上。在服务器市场上,Sun 的硬件平台具备高可用性和高可靠性,是市场上处于支配地位的 UNIX 系统。
对于难以接触到 Sun SPARC 架构计算机的用户来讲,能够经过使用 Solaris x86 来体验世界知名大厂的商业 UNIX 风采。固然,Solaris x86 也能够用于实际生产应用的服务器,在遵照 Sun 的有关许可条款的状况下,Solaris x86 能够免费用于学习研究或商业应用。
FreeBSD 源于美国加利福尼亚大学伯克利分校开发的 UNIX 版本,它由来自世界各地的志愿者开发和维护,为不一样架构的计算机系统提供了不一样程度的支持。FreeBSD 在 BSD 许可协议下发布,容许任何人在保留版权和许可协议信息的前提下随意使用和发行,并不限制将 FreeBSD 的代码在另外一协议下发行,所以商业公司能够自由地将 FreeBSD 代码融入它们的产品中。苹果公司的 OS X 就是基于 FreeBSD 的操做系统。
FreeBSD 与 Linux 的用户群有至关一部分是重合的,两者支持的硬件环境也比较一致,所采用的软件也比较相似。FreeBSD 的最大特色就是稳定和高效,是做为服务器操做系统的不错选择;但其对硬件的支持没有 Linux 完备,因此并不适合做为桌面系统。
其余 UNIX 版本因应用范围相对有限,在此不作过多介绍。
Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于我的爱好而编写的,当时他以为教学用的迷你版 UNIX 操做系统 Minix 太难用了,因而决定本身开发一个操做系统。第 1 版本于 1991 年 9 月发布,当时仅有 10 000 行代码。
李纳斯•托瓦兹没有保留 Linux 源代码的版权,公开了代码,并邀请他人一块儿完善 Linux。与 Windows 及其余有专利权的操做系统不一样,Linux 开放源代码,任何人均可以避免费使用它。
据估计,如今只有 2% 的 Linux 核心代码是由李纳斯•托瓦兹本身编写的,虽然他仍然拥有 Linux 内核(操做系统的核心部分),而且保留了选择新代码和须要合并的新方法的最终裁定权。如今你们所使用的 Linux,我更倾向于说是由李纳斯•托瓦兹和后来陆续加入的众多 Linux 好者共同开发完成的。
李纳斯•托瓦兹无疑是这个世界上最伟大的程序员之一,况且,他还搞出了全世界最大的程序员交友社区 GitHub (开源代码库及版本控制系统)。
关于 Linux Logo 的由来是一个颇有意思的话题,它是一只企鹅。
为何选择企鹅,而不是选择狮子、老虎或者小白兔?有人说由于李纳斯•托瓦兹是芬兰人,因此选择企鹅,有人说由于其余动物图案都被用光了,李纳斯•托瓦兹只好选择企鹅。
我更愿意相信如下说法,企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同全部,不属于世界上的任何国家,可国家都无权将南极洲归入其版图。Linux 选择企鹅图案做为 Logo,其含义是:开放源代码的 Linux 为全人类共同全部,可公司无权将其私有。
两者的关系,不是大哥和小弟,"UNIX 是 Linux 的父亲"这个说法更怡当。之因此要介绍它们的关系,是由于要告诉读者,在学习的时候,其实 Linux 与 UNIX 有不少的共通之处,简单地说,若是你已经熟练掌握了 Linux,那么再上手使用 UNIX 会很是容易。
两者也有两个大的区别:
Linux 受至旷大计算机爱好者的喜好,主要缘由也有两个:
开源软件是不一样于商业软件的一种模式,从字面上理解,就是开放源代码,你们不用担忧里面会搞什么猫腻,这会带来软件的革新和安全。
另外,开源其实并不等同于免费,而是一种新的软件盈利模式。目前不少软件都是开源软件,对计算机行业与互联网影响深远。
开源软件自己的模式、概念比较晦涩,这套《Linux教程》旨在指导读者应用 Linux,你们简要理解便可。
近年来,Linux 已经青出于蓝而胜于蓝,以超常的速度发展,从一个丑小鸭变成了一个拥有庞大用户群的真正优秀的、值得信赖的操做系统。历史的车轮让 Linux 成为 UNIX 最优秀的传承者。
总结一下 Linux 和 UNIX 的关系/区别
Linux 是一个相似 Unix 的操做系统,Unix 要早于 Linux,Linux 的初衷就是要替代 UNIX,并在功能和用户体验上进行优化,因此 Linux 模仿了 UNIX(但并无抄袭 UNIX 的源码),使得 Linux 在外观和交互上与 UNIX 很是相似。
说模仿可能会被人喷,你也能够说微创新或者改进。
相比于 UNIX,Linux 最大的创新是开源免费,这是它可以蓬勃发展的最重要缘由;而目前的 UNIX 大部分都是收费的,小公司和我的都难以承受。
正是因为 Linux 和 UNIX 有着千丝万缕的联系,因此人们把 Linux 叫作“类UNIX系统”,下节咱们将会着重讲解。
UNIX/Linux 系统能够粗糙地抽象为 3 个层次(所谓粗糙,就是不够细致、精准,可是便于初学者抓住重点理解),如图 3 所示。底层是 UNIX/Linux 操做系统,即系统内核(Kernel);中间层是 Shell 层,即命令解释层;高层则是应用层。
图 3 UNIX/Linux 系统结掏层次概要
内核层是 UNIX/Linux 系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各类资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提升资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。
Shell 层是与用户直接交互的界面。用户能够在提示符下输入命令行,由 Shell 解释执行并输出相应结果或者有关信息,因此咱们也把 Shell 称做命令解释器,利用系统提供的丰富命令能够快捷而简便地完成许多工做。
应用层提供基于 X Window 协议的图形环境。X Window 协议定义了一个系统所必须具有的功能(就如同 TCP/IP 是一个协议,定义软件所应具有的功能),可系统能知足此协议及符合 X 协会其余的规范,即可称为 X Window。
如今大多数的 UNIX 系统上(包括 Solaris、HP-UX、AIX 等)均可以运行 CDE (Common Desktop Environment,通用桌面环境,是运行于 UNIX 的商业桌面环境)的用户界面;而在 Linux 上普遍应用的有 Gnome(见图 4)、KDE 等。
图 4 Gnome图形界面
X Window 与微软的 Windows 图形环境有很大的区别:
做为服务器部署,绝大多数 Linux 并不安装或并不启用图形环境,本教程的讲解也基本上为 Linux 命令行下的操做。
本文由博客一文多发平台 OpenWrite 发布!