【早晚学Linux】Linux和Unix的关系及区别

Unix和Linux之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,Unix诞生于20世纪60年代末,Windows诞生于20世纪80年代中期,Linux诞生于20世纪90年代初,可以说Unix是操作系统中的“老大哥”,后来的Windows和Linux都参考了Unix。

现代的Windows系统已经朝着“图形界面”的方向发展了,和Unix系统有了巨大的差异,从表面上甚至看不出两者的关联。
从Unix到Linux

Linux内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版Unix操作系统Minix太难用了,于是决定自己开发一个操作系统。第一版本于1991年9月发布,当时仅有10000行代码。

李纳斯•托瓦兹没有保留Linux源代码的版权,公开了代码,并邀请他人一起完善Linux。与Windows及其它有专利权的操作系统不同,Linux开放源代码,任何人都可以免费使用它。

据估计,现在只有不到百分之二的linux核心代码是由李纳斯自己编写的,虽然他仍然拥有Linux内核(操作系统的核心部分),并且保留了选择新代码和需要合并的新方法的最终裁定权。现在大家所使用的Linux,我更倾向于说是由李纳斯和后来陆续加入的众多的Linux爱好者共同开发完成的。

关于Linux的logo由来是一个很有意思的话题,它是一只企鹅。

为什么选择企鹅呢?众说纷纭,有人说是因为李纳斯是荷兰人,所以选择企鹅,有人说是因为其它动物图案都被用光了,李纳斯只好选择企鹅。

我更愿意相信一下说话,企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类所共同所有,不属于世界上的任何国家,任何国家都无权将南极洲纳入其版图。Linux选择企鹅图案作为Logo,其含义是:开放源代码的Linux为全人类所共同所有,任何公司无权将其私有。
UNIX与Linux的亲密关系
二者的关系,不是大哥和小弟,”UNIX 是 Linux 的父亲”这个说法更怡当。之所以要介绍它们的关系,是因为要告诉读者,在学习的时候,其实 Linux 与 UNIX 有很多的共通之处,简单地说,如果你已经熟练掌握了 Linux,那么再上手使用 UNIX 会非常容易。、二者也有两个大的区别:

  • Unix 系统大多是与硬件配套的,也就是说,大多数 Unix 系统如 AIX、HP-UX 等是无法安装在 x86 服务器和个人计算机上的,而 Linux 则可以运行在多种硬件平台上;
  • UNIX 是商业软件,而 Linux 是开源软件,是免费、公开源代码的。
    Linux 受至旷大计算机爱好者的喜爱,主要原因也有两个:
  • 它属于开源软件,用户不用支付可费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿使用,无约束地继续传播。
  • 它具有 UNIX 的全部功能,任何使用 UNIX 操作系统或想要学习 UNIX 操作系统的人都可以从 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系统结构
UNIX/Linux 系统可以粗糙地抽象为 3 个层次(所谓粗糙,就是不够细致、精准,但是便于初学者抓住重点理解),如图 所示。底层是 UNIX/Linux 操作系统,即系统内核(Kernel);中间层是 Shell 层,即命令解释层;高层则是应用层。

【早晚学Linux】Linux和Unix的关系及区别

  1. 内核层
    内核层是 UNIX/Linux 系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。

  2. Shell层
    Shell 层是与用户直接交互的界面。用户可以在提示符下输入命令行,由 Shell 解释执行并输出相应结果或者有关信息,所以我们也把 Shell 称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。

  3. 应用层
    应用层提供基于 X Window 协议的图形环境。X Window 协议定义了一个系统所必须具备的功能(就如同 TCP/IP 是一个协议,定义软件所应具备的功能),可系统能满足此协议及符合 X 协会其他的规范,便可称为 X Window。

现在大多数的 UNIX 系统上(包括 Solaris、HP-UX、AIX 等)都可以运行 CDE (Common Desktop Environment,通用桌面环境,是运行于 UNIX 的商业桌面环境)的用户界面;而在 Linux 上广泛应用的有 Gnome(见图 )、KDE 等。
【早晚学Linux】Linux和Unix的关系及区别
X Window 与微软的 Windows 图形环境有很大的区别:

  • UNIX/Linux 系统与 X Window 没有必然捆绑的关系,也就是说UNIX/Linux 可以安装 X Window,也可以不安装;而微软的 Windows 图形环境与内核捆绑密切。
  • UNIX/Linux 系统不依赖图形环境,依然可以通过命令行完成 100% 的功能,而且因为不使用图形环境还会节省大量的系统资源。

作为服务器部署,绝大多数 Linux 并不安装或并不启用图形环境,本教程的讲解也基本上为 Linux 命令行下的操作。