您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

Unix与Linux操作系统差异分析

添加时间:2013-8-5 17:02:10  添加: 思海网络 

    Unix与Linux操作系统是同一个操作系统吗?是,也不是。或许这个答案有自相矛盾的地方,但是却是一个比较合理的答案。笔者在后续的文章中,将陆续对Unix与Linux这两个操作系统的差异进行分析。若各位读者对这个话题感兴趣的话,请关注笔者后续的文章。

  一、Unix与Linux操作系统的源代码是不同的。

  虽然Unix与Linux操作系统有不少的命令是相同的,但是他们的源代码则是不同的。也就是说,在Linux操作系统开发过程中,采用了很多 Unix系统的设计理念,并遵循Unix操作系统的POSIX规范。但是其并没有采用Unix操作系统的源代码,并没有采用Unix操作系统的运行方式。从这一点来说,他们两个是不同的操作系统。

  现在Unix操作系统走的是商业化的道理,其源代码是受到保护的。这也就是说,任何社会团体与个人都不能够抄袭或者随意修改Unix操作系统的源代码。而Linux在开发过车观念中,源代码都是重新书写的,所以就没有版权上面的限制。无论是个人还是商业团体,只要遵循一定的规范,就可以对 Linux的源代码进行更改或者复制。不会涉及到版权的问题。 故Linux操作系统才是一个真正的开源操作系统。

  二、Unix与Linux采用相同的系统调用为此就是同一种操作系统。

  Unix从发展到现在,有了很多种版本。如BSD或者HP-Uinx操作系统等等。他们都是Unix操作系统。为什么这么说呢?并不是说他们的源代码的起源是相同的,而是说他们都采用了一样的系统调用。在Unix操作系统中,最出色的特点就是通过命令来完成相关的操作。在Unix系统中,具有 1000多个命令。但是令人惊奇的是,这么多的命令却是通过少数几个函数调用与系统内核进行通信,这些函数调用就称之为系统调用。

  这就好像一个写字楼,其大门可能只有前后两个。但是通往这两个大门的道路却有成千上百条。那么各个应用程序只需要遵守这两扇大门的通信规则,就可以跟写字楼内部人员进行沟通。如在Unix内核中有一个Write函数,主要是往文件中保存相关的信息。而很多应用程序需要往硬盘的文件中保存信息,如文本处理文件、数据库系统等等。但是这些应用系统的话最终都会调用Write函数往文件中保存信息,所以这些应用程序开发者只需要了解Write函数,就可以顺利往硬盘中保存文件。可见,真是因为大家都采用了相同的系统调用,所以应用程序才能够在不同的Unix版本中顺利移植。

  而Linux操作系统采用的系统调用跟Unix操作系统是相同的,都遵循POSIX的规范。从这一点上来说,Linux操作系统就是Unix操作系统,只是他们的开发者不同而已。为此即时他们的源代码不同,但是并不影响这个定性。由于两个操作系统采用了相同的系统调用,则在Unix操作系统上开发的应用软件,可以很方便的移植到另一个Linux操作系统上。

  所以说,Unix操作系统与Linux操作系统即是同一个操作系统(系统调用相同),又不是相同的操作系统(源代码不同)。这个答案看起来自相矛盾,但是真实的反映出了这两个操作系统相互之间的关系

  三、内核文件与外壳不同

  无论是Unix操作系统还是Linux操作系统,其基本上是有内核、外壳和应用程序三部分组成。毋庸置疑,内核是操作系统中最重要的部分,其直接跟计算机硬件打交道。负责外壳与系统硬件之间的信息交流。为此也有专家说,内核才算是真正意义上的操作系统。

  Unix操作系统与Linux操作系统内核文件是不同的。如Unix操作系统其内核程序对应的文件往往是/stand/unix文件;在 SUNOS的Unix操作系统中对应的是/kernel./genuix。操作系统在启动的时候会把这个内核程序加载到系统内存中。而Linux操作系统的内核程序与Unix操作系统有比较大的区别。Linux操作系统采用的内核文件为/boot/vlinuz。无论是系统工程师还是程序员必须要知道这个最基本的区别。如在对系统内核进行升级的时候,就需要知道所采用的内核文件。

  Unix操作系统与Linux操作系统不仅内核文件不同,所采用的外壳也是不同的。当目前为止,Unix操作系统主要支持四种外壳,分别为 SH、CSH、KSH和BASH。当用户登录到操作系统之后,就会启动一个外壳程序。通常情况下,在同一个时刻只能够启动一个外壳。系统工程师就是通过外壳同系统内核与硬件进行通信。而Linux操作系统目前为止只支持三种外壳程序,分别为BASH(默认采用的外壳程序)、CSH、KSH,比Unix操作系统少一种。这个差异对于普通用户来说,可能没有什么影响。但是对于系统工程师进行一些特定工作的话,就可能会带来比较大的不方便。

    四、命令参数的表示方式不同。

  在Unix操作系统与Linux操作系统其大部分命令都是相同的。但是在一些参数的表示方法上有所差异。如ls命令都是用来查看当前目录下文件、子目录相关信息的。这个命令时两个操作系统中使用的频率最高的命令,都带有比较多的参数。但是在一些参数的具体表述上会有所差别。

  如在这两个操作系统中命令后面可以加一类比较特殊的参数,即可有可无的参数。在Unix系统中利用单横杆夹一个英文字母表示。如ls –l等等。这个可选项也是Unix命令中的一个参数。这些参数往往是系统中预先定义好的,用来实现一些比较特殊的功能。通常情况下,一个命令可以带许多类型的参数,如文件名参数与可选项参数等等,用来提高命令的灵活性,让命令可以在多个方式下运行。另外需要注意的一个问题是,一般情况下命令与参数之间必须要有空格来进行区分。如果在命令与参数之间有多个空格的话,外壳程序中有一个叫做命令解释器的工具会对其进行压缩,最后只剩下一个空格。当然有些情况下系统工程师可能不喜欢系统这种“自作聪明”的方法,则也可以通过一些措施阻止操作系统这么做。

  而在Linux操作系统中虽然也可以支持可选项,但是其表示的方法有所差异。在Unix操作系统中,主要通过单横杆来表示可选项参数。但是在 Linux操作系统中,则其可选项的表示方式不统一,有的是需要一个单横杆,而有些命令则需要使用双横杆来表示这个参数为可选项参数。另外在Unix操作系统中,这些可选项参数为单个的英文字母;而在Linux操作系统中,则其可能用的是具有一定含义的英文单词,如ls --all等等。由于在Linux操作系统中这种不统一的情况,所以其命令的记忆量要比Unix操作系统要多。特别是像笔者这样,既要负责Unxi系统的维护,平时可能又要参与Linux相关的项目时,这个就特别容易搞混。所以有时候就不得不查看系统的联机帮助来判断命令的正确格式。

  还好在两个操作系统中,都有一个在线帮助文档。如在Unix操作系统与Red Hat 9操作系统中都可以通过man命令来查看命令的帮助说明,如man ls系统就会显示ls命令的相关帮助,并且还会带出这个命令下面的所有可用参数,包括可选参数。其实到底是采用单横杆还是双横杆都会有具体的指明。所以说很多像笔者这样的系统工程师都要感谢这个在线帮助文档,让我们能够同时胜任Unix操作系统与Linux操作系统的维护与开发工作。虽然命令之间有一些格式上的差异,但是毕竟大部分命令的名字都相同的。所以通过这个在线帮助文档的支持,可以在最短时间内确认这个差异。

  以上这些差异只是Unix操作系统与Linux操作系统差异中的部分内容。笔者日后会陆续整理这方面的差异。正如上面所说的,Unix与 Linux操作系统其实是同一个操作系统。为此只要系统工程师掌握这些差异,那么他们必定可以同时胜任Linux与Unix操作系统的工作。希望笔者的这些差异总结能够给大家在这方面带来一定的帮助,让大家可以在管理Unix操作系统的同时,成为一名合格的Linux工程师。

关键字:Linux、操作系统、Unix

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站