UNIX和Linux之间的关系是一个非常有趣的话题。目前主流的服务器端操作系统中,UNIX诞生于60年代末,Windows诞生于80年代中期,Linux诞生于90年代初。可以说UNIX是操作系统中的
UNIX和Linux之间的关系是一个非常有趣的话题。目前主流的服务器端操作系统中,UNIX诞生于60年代末,Windows诞生于80年代中期,Linux诞生于90年代初。可以说UNIX是操作系统中的”老大哥”后来Windows和Linux都引用了UNIX。
现代的Windows系统已经向“图形界面”的方向发展,与UNIX系统有着天壤之别,表面上甚至看不出两者之间的联系。
UNIX坎坷的历史肯·汤普森和丹尼斯·里奇发明了UNIX操作系统。其部分技术来源可以追溯到1965年以来的Multics工程计划,该计划由贝尔实验室、麻省理工学院和通用电气公司共同发起。其目标是开发一种具有多通道程序处理能力的交互式分时操作系统,以取代当时广泛使用的批处理操作系统。
描述:分时操作系统使一台计算机能同时为多个用户服务,与计算机相连的终端用户交互地发出命令。操作系统通过时间片轮换的方式处理用户的服务请求,并将结果显示在终端上(操作系统将CPU的时间分成若干段,称为时间片)。操作系统以时间片为单位,依次为每个最终用户服务,一次一个时间片。
不幸的是,由于Multics项目计划所追求的目标是如此的庞大和复杂,以至于它的开发者不知道该怎么做,最终以失败告终。
由肯·汤普森领导的贝尔实验室的研究人员从Multics项目的失败中吸取了教训,并于1969年实现了分时操作系统的原型。1970年,该系统被正式命名为UNIX。
想想英文前缀Multi和Uni,你就明白UNIX的含义了。多意味着大,大而复杂;Uni的意思是小,小,聪明。这是UNIX开发者最初的设计意图,这个理念一直影响到今天。有趣的是,Ken Thompson开发UNIX的初衷是运行一款电脑游戏《太空旅行》,这是他写的。这款游戏模拟了太阳系中天体的运动,玩家驾驶宇宙飞船,观看风景并尝试在各种行星和卫星上着陆。他先后在几个系统上实验,运行效果都不理想,于是决定开发自己的操作系统。于是,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 年获得了计算机科学的最高奖——图灵奖。
70年代初,计算机领域还有一个伟大的发明——TCP/IP协议,是美国国防部接手ARPAnet后开发的。美国国防部将TCP/IP协议与UNIX系统和C语言捆绑在一起,由美国电话电报公司开发,是发给美国大学的非商业许可证,是UNIX系统、C语言和TCP/IP协议发展的前奏,影响了操作系统、编程语言和网络协议至今。肯·汤普森(Ken Thompson)和丹尼斯·里奇(Dennis Ritchie)因在计算机领域的突出贡献,于1983年获得了计算机科学最高奖——图灵奖。
肯·汤普森和丹尼斯·里奇。
随后,出现了各种版本的UNIX系统,如Sun Solaris、FreeBSD、IBM AIX、HP-UX等。
让我们把重点放在Solaris上,它是UNIX系统的一个重要分支。Solaris可以在x86 CPU平台上运行,也可以在SPARC CPU平台上运行。在服务器市场,Sun的硬件平台具有高可用性和可靠性,是市场上占主导地位的UNIX系统。
对于访问具有Sun SPARC架构的计算机有困难的用户,他们可以通过使用Solaris x86来体验世界知名厂商的商业UNIX风格。当然,Solaris x86也可以用作实际生产应用程序的服务器,Solaris x86可以免费用于学习、研究或商业应用程序,但须遵守Sun的相关许可条款。
FreeBSD源于美国加州大学伯克利分校开发的UNIX版本。它由来自世界各地的志愿者开发和维护,为不同架构的计算机系统提供不同程度的支持。FreeBSD是在BSD许可协议下发布的,该协议允许任何人随意使用和分发它,同时保留版权和许可协议信息。在另一个协议下对FreeBSD代码的分发没有限制,所以商业公司可以自由地将FreeBSD代码合并到他们的产品中。苹果的OS X是基于FreeBSD的操作系统
BSD和Linux有不少重叠的用户群,支持的硬件环境也比较一致,使用的软件也差不多。FreeBSD最大的特点就是稳定高效,作为服务器操作系统是个不错的选择。但其硬件支持不如Linux完善,不适合桌面系统。
其他UNIX版本由于应用范围相对有限,此处不做介绍。
Linux 内核最初是由李纳斯?托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,于是决定自己开发一个操作系统。第 1 版本于 1991 年 9 月发布,当时仅有 10 000 行代码。
Linux内核最初是Linus Torvalds在赫尔辛基大学读书时作为个人爱好写的。当时他觉得教学用的mini UNIX操作系统Minix太难用了,于是决定自己开发一个操作系统。版本1发布于1991年9月,当时只有10 000行代码。
利纳斯托瓦兹
Listovaz没有保留Linux源代码的版权,公开了代码,并邀请其他人一起改进Linux。与Windows和其他专有操作系统不同,Linux是开源的,任何人都可以免费使用。
据估计,Linux核心代码中只有2%是Linus Towaz自己写的,尽管他仍然拥有Linux内核(操作系统的核心部分),并保留选择需要合并的新代码和新方法的最终裁决权。现在大家用的Linux,我更愿意说,是Linus Towaz和后来陆续加入的很多Linux好人共同开发的。
纳斯托瓦兹无疑是世界上最伟大的程序员之一。更有甚者,他创建了GitHub(开源代码库和版本控制系统),全球最大的程序员友谊社区。
Linux Logo的由来是一个很有趣的话题,它是一只企鹅。
为什么选择企鹅而不是狮子、老虎或兔子?有人说因为Linus Towaz是芬兰人,所以选择了企鹅。还有人说,Linus Towaz不得不选择企鹅,因为所有其他动物设计都用完了。
我更愿意相信下面这种说法:企鹅是南极洲的标志性动物。根据国际公约,南极洲是全人类共同拥有的,不属于世界上任何一个国家,但任何一个国家都无权将南极洲纳入其版图。选择Linux Penguin作为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超越shine on you,以超乎寻常的速度发展,从一只丑小鸭发展成为真正优秀、值得信赖的操作系统,拥有庞大的用户群。历史的车轮让Linux成为UNIX最好的继承者。
总结Linux和UNIX的关系/区别。Linux是类似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 层,即命令解释层;高层则是应用层。
UNIX/Linux系统大致可以抽象为三个层次(所谓粗糙是指不够细致和精确,但对于初学者来说很容易抓住重点),如下图所示。是底层的UNIX/Linux操作系统,也就是系统内核;是中间的外壳层,即命令解释层;更高的一层是应用层。
UNIX/Linux系统结算层次结构概述
1)内核层内核层是UNIX/Linux系统的核心和基础。它直接依附于硬件平台,控制和管理系统中的各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供一个便捷、高效、安全、可靠的应用环境。
2)壳层外壳层是与用户直接交互的接口。用户可以在提示符下输入命令行,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 等。
应用层提供了基于X Window协议的图形环境。X Window协议定义了一个系统必须具备的功能(就像TCP/IP是定义软件应该具备的功能的协议一样),但是系统能够满足这个协议,并且符合X协会的其他规范,所以可以称为X Window。
目前,大多数UNIX系统(包括Solaris、HP-UX、AIX等。)可以运行CDE (Common Desktop Environment,一种运行在UNIX上的商业桌面环境)的用户界面;Gnome和KDE在Linux上被广泛使用。
Gnome图形界面
X Window与微软的Windows图形环境截然不同:
UNIX/Linux 系统与 X Window 没有必然捆绑的关系,也就是说,UNIX/Linux 可以安装 X Window,也可以不安装;而微软的 Windows 图形环境与内核捆绑密切。UNIX/Linux 系统不依赖图形环境,依然可以通过命令行完成 100% 的功能,而且因为不使用图形环境还会节省大量的系统资源。
作为服务器部署,大多数Linux并不安装或启用图形环境,而是在Linux命令行下运行。