当前位置: 首页 > Linux

Linux和UNIX的关系和区别

时间:2023-04-06 04:46:11 Linux

UNIX操作系统是由KenThompson和DennisRitchie发明的。其部分技术来源可追溯到1965年开始的Multics工程项目,该项目由贝尔实验室、麻省理工学院和通用电气公司共同发起,旨在开发一种交互式、多道程序和分时的能力操作系统来取代当时广泛使用的批处理操作系统。描述:分时操作系统使一台计算机可以同时为多个用户服务。连接到计算机的终端用户交互地发出命令。将CPU时间分成若干段,称为时间片)。操作系统以时间片为单位,依次为每个终端用户服务,一次一个时间片。不幸的是,Multics工程程序失败了,因为它的目标如此庞大和复杂,以至于它的开发人员不知道如何利用它们。以KenThompson为首的贝尔实验室研究人员从Multics项目的失败中吸取教训,在1969年实现了分时操作系统的原型,并于1970年正式命名为UNIX。想想英文的前缀Multi和Uni,你就会了解UNIX的隐藏含义。Multi表示大、大、复杂;而Uni的意思是小巧精致。这是UNIX开发人员的设计初衷,这一理念一直影响至今。有趣的是,KenThompson开发UNIX的初衷是运行他编写的计算机游戏SpaceTravel。这个游戏模拟了太阳系中天体的运动。玩家驾驶宇宙飞船,观赏风景,尝试着陆在各个星球和卫星上。他先后在多个系统上进行了试验,但效果并不理想,于是他决定开发自己的操作系统。就这样,UNIX诞生了。1970年后,UNIX系统在贝尔实验室内部的程序员中流行开来。1971年到1972年,KenThompson的同事DennisRitchie发明了具有传奇色彩的C语言,这是一种适合编写系统软件的高级语言。它的诞生是UNIX系统发展历程中的一个重要里程碑。它宣告在操作系统的发展中,汇编语言不再是主宰。到1973年,UNIX系统的大部分源代码用C语言改写,为提高UNIX系统的可移植性奠定了基础(以前的操作系统多采用汇编语言,对硬件的依赖性很强),也为提高系统软件的开发效率创造了条件。可以说UNIX系统与C语言是孪生兄弟,有着密不可分的关系。20世纪70年代初期,计算机界又出现了一项伟大的发明——TCP/IP协议,它是美国国防部接手ARPAnet后发展起来的一种网络协议。美国国防部将TCP/IP协议与UNIX系统、C语言捆绑在一起,AT&T向美国各大学颁发非商用许可证,拉开了UNIX系统、C语言、TCP/IP协议。他们影响了操作系统、编程语言、网络协议三个领域至今。肯·汤普森和丹尼斯·里奇因在计算领域做出的杰出贡献于1983年获得了计算机科学领域的最高奖项图灵奖。图一是肯·汤普森和丹尼斯·里奇的合影。天才都是马马虎虎的……然后就出现了各种版本的UNIX系统。目前比较常见的有SunSolaris、FreeBSD、IBMAIX、HP-UX等,这里重点介绍UNIX系统的一个重要分支Solaris。Solaris除了可以运行在SPARCCPU平台上,还可以运行在x86CPU平台上。在服务器市场,Sun的硬件平台具有高可用性和高可靠性,是市场上占主导地位的UNIX系统。对于接入SunSPARC架构计算机有困难的用户,可以使用Solarisx86体验世界知名厂商的商用UNIX风格。当然,Solarisx86也可以用于实际生产应用的服务器中。Solarisx86可在Sun相关许可条款的条件下免费用于学习、研究或商业应用。FreeBSD源自加州大学伯克利分校开发的UNIX版本。它由来自世界各地的志愿者开发和维护,为不同体系结构的计算机系统提供不同级别的支持。FreeBSD是在BSD许可协议下发布的,允许任何人在保留版权和许可协议信息的前提下自由使用和分发,不限制FreeBSD代码在另一协议下的发布,因此商业公司可以自由地将FreeBSD代码集成到他们的产品。Apple的OSX是基于FreeBSD的操作系统。FreeBSD和Linux的用户群体有不少重叠,两者支持的硬件环境比较一致,使用的软件也比较相似。FreeBSD最大的特点就是稳定和高效。作为服务器操作系统是不错的选择;但其硬件支持不如Linux完备,不适合作为桌面系统。其他UNIX版本的适用范围比较有限,这里就不介绍了。Linux的往事Linux内核最初是林纳斯·托瓦兹(LinusTorvalds)在赫尔辛基大学读书时出于爱好编写的。所以我决定自己开发一个操作系统。第1版于1991年9月发布,只有10,000行代码。LinusTorvalds没有保留Linux源代码的版权,将代码公开,并邀请其他人一起改进Linux。与Windows和其他专有操作系统不同,Linux是开源的,任何人都可以免费使用。据估计,现在只有2%的Linux内核代码是LinusTorvalds自己写的,尽管他仍然拥有Linux内核(操作系统的核心部分)并保留了选择新代码和需要合并的新方法最终裁决。现在大家在用的Linux,我更倾向于说是LinusTorvalds和后来加入的众多Linux爱好者共同开发的。LinusTorvalds无疑是世界上最伟大的程序员之一,此外,他还创建了GitHub(一个开源代码库和版本控制系统),这是世界上最大的程序员约会社区。LinuxLogo的由来是一个很有意思的话题,它是一只企鹅。为什么选择企鹅而不是狮子、老虎或小白兔?有人说因为LinusTorvalds是芬兰人所以选择了企鹅,也有人说LinusTorvalds不得不选择企鹅是因为其他动物的图案用完了。我更愿意相信下面的说法。企鹅是南极洲的标志性动物。按照国际惯例,南极洲是全人类所有,不属于世界上任何一个国家,但任何国家都无权将南极洲划入自己的领土。Linux选择企鹅图案作为其标志,意味着开源的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由蓝变蓝,以超常的速度发展,从一只丑小鸭成长为一个真正优秀、值得信赖、拥有庞大用户群的操作系统。历史的车轮让Linux成为了UNIX最好的继承者。UNIX/Linux系统结构UNIX/Linux系统大致可以抽象为三个层次(所谓粗略是指不够详细和精确,但初学者容易抓住要点理解),如图在图2中。底层是UNIX/Linux操作系统,也就是系统内核(Kernel);中间层是Shell层,也就是命令解释层;高层是应用层。图3UNIX/Linux系统层次结构概述1)内核层内核层是UNIX/Linux系统的核心和基础。它直接依附于硬件平台,控制和管理系统中的各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供一个方便、高效、安全、可靠的应用环境。2)Shell层Shell层是与用户直接交互的接口。用户可以在提示符下输入命令行,shell会对其进行解释并执行并输出相应的结果或相关信息,所以我们也称shell为命令解释器,利用系统提供的丰富的命令来完成许多快速轻松地完成任务。3)应用层应用层提供基于XWindow协议的图形环境。XWindow协议定义了一个系统必须具备的功能(就像TCP/IP是一个定义了软件应该具备的功能的协议),但是系统能够满足这个协议并遵守X协会的其他规范,就可以称为XWindow。现在大多数UNIX系统(包括Solaris、HP-UX、AIX等)都可以运行CDE(CommonDesktopEnvironment,通用桌面环境,是运行在UNIX上的商业桌面环境)的用户界面;而在Linux上应用比较广泛,最流行的有Gnome(见图4)、KDE等。图4Gnome图形界面XWindow与MicrosoftWindows图形环境有很大区别:UNIX/Linux系统和XWindow不一定绑定,也就是说UNIX/Linux可以安装也可以不安装XWindow;Microsoft的Windows图形环境与内核紧密捆绑在一起。UNIX/Linux系统不依赖于图形环境,仍然可以通过命令行完成100%的功能,而且由于不使用图形环境,会节省大量的系统资源。