好学IT学院:IT信息技术分享交流平台
标签:UNIX  来源:IT专家网  作者:Tina  发布时间:2009-10-24  ★★★加入收藏〗〖手机版
摘要: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工程师。