溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行Unix與Linux操作系統(tǒng)差異的分析

發(fā)布時(shí)間:2021-11-09 17:30:39 來(lái)源:億速云 閱讀:153 作者:柒染 欄目:系統(tǒng)運(yùn)維

這篇文章給大家介紹如何進(jìn)行Unix與Linux操作系統(tǒng)差異的分析,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

Unix與Linux操作系統(tǒng)是同一個(gè)操作系統(tǒng)嗎?是,也不是?;蛟S這個(gè)答案有自相矛盾的地方,但是卻是一個(gè)比較合理的答案。筆者在后續(xù)的文章中,將陸續(xù)對(duì)Unix與Linux這兩個(gè)操作系統(tǒng)的差異進(jìn)行分析。

一、Unix與Linux操作系統(tǒng)的源代碼是不同的。

雖然Unix與Linux操作系統(tǒng)有不少的命令是相同的,但是他們的源代碼則是不同的。也就是說(shuō),在Linux操作系統(tǒng)開(kāi)發(fā)過(guò)程中,采用了很多Unix系統(tǒng)的設(shè)計(jì)理念,并遵循Unix操作系統(tǒng)的POSIX規(guī)范。但是其并沒(méi)有采用Unix操作系統(tǒng)的源代碼,并沒(méi)有采用Unix操作系統(tǒng)的運(yùn)行方式。從這一點(diǎn)來(lái)說(shuō),他們兩個(gè)是不同的操作系統(tǒng)。

現(xiàn)在Unix操作系統(tǒng)走的是商業(yè)化的道理,其源代碼是受到保護(hù)的。這也就是說(shuō),任何社會(huì)團(tuán)體與個(gè)人都不能夠抄襲或者隨意修改Unix操作系統(tǒng)的源代碼。而Linux在開(kāi)發(fā)過(guò)程中,源代碼都是重新書(shū)寫(xiě)的,所以就沒(méi)有版權(quán)上面的限制。無(wú)論是個(gè)人還是商業(yè)團(tuán)體,只要遵循一定的規(guī)范,就可以對(duì)Linux的源代碼進(jìn)行更改或者復(fù)制。不會(huì)涉及到版權(quán)的問(wèn)題。 故Linux操作系統(tǒng)才是一個(gè)真正的開(kāi)源操作系統(tǒng)。

二、Unix與Linux采用相同的系統(tǒng)調(diào)用為此就是同一種操作系統(tǒng)。

Unix從發(fā)展到現(xiàn)在,有了很多種版本。如BSD或者HP-Uinx操作系統(tǒng)等等。他們都是Unix操作系統(tǒng)。為什么這么說(shuō)呢?并不是說(shuō)他們的源代碼的起源是相同的,而是說(shuō)他們都采用了一樣的系統(tǒng)調(diào)用。在Unix操作系統(tǒng)中,最出色的特點(diǎn)就是通過(guò)命令來(lái)完成相關(guān)的操作。在Unix系統(tǒng)中,具有1000多個(gè)命令。但是令人驚奇的是,這么多的命令卻是通過(guò)少數(shù)幾個(gè)函數(shù)調(diào)用與系統(tǒng)內(nèi)核進(jìn)行通信,這些函數(shù)調(diào)用就稱之為系統(tǒng)調(diào)用。

這就好像一個(gè)寫(xiě)字樓,其大門可能只有前后兩個(gè)。但是通往這兩個(gè)大門的道路卻有成千上百條。那么各個(gè)應(yīng)用程序只需要遵守這兩扇大門的通信規(guī)則,就可以跟寫(xiě)字樓內(nèi)部人員進(jìn)行溝通。如在Unix內(nèi)核中有一個(gè)Write函數(shù),主要是往文件中保存相關(guān)的信息。而很多應(yīng)用程序需要往硬盤的文件中保存信息,如文本處理文件、數(shù)據(jù)庫(kù)系統(tǒng)等等。但是這些應(yīng)用系統(tǒng)的話最終都會(huì)調(diào)用Write函數(shù)往文件中保存信息,所以這些應(yīng)用程序開(kāi)發(fā)者只需要了解Write函數(shù),就可以順利往硬盤中保存文件。可見(jiàn),真是因?yàn)榇蠹叶疾捎昧讼嗤南到y(tǒng)調(diào)用,所以應(yīng)用程序才能夠在不同的Unix版本中順利移植。

而Linux操作系統(tǒng)采用的系統(tǒng)調(diào)用跟Unix操作系統(tǒng)是相同的,都遵循POSIX的規(guī)范。從這一點(diǎn)上來(lái)說(shuō),Linux操作系統(tǒng)就是Unix操作系統(tǒng),只是他們的開(kāi)發(fā)者不同而已。為此即時(shí)他們的源代碼不同,但是并不影響這個(gè)定性。由于兩個(gè)操作系統(tǒng)采用了相同的系統(tǒng)調(diào)用,則在Unix操作系統(tǒng)上開(kāi)發(fā)的應(yīng)用軟件,可以很方便的移植到另一個(gè)Linux操作系統(tǒng)上。

所以說(shuō),Unix操作系統(tǒng)與Linux操作系統(tǒng)即是同一個(gè)操作系統(tǒng)(系統(tǒng)調(diào)用相同),又不是相同的操作系統(tǒng)(源代碼不同)。這個(gè)答案看起來(lái)自相矛盾,但是真實(shí)的反映出了這兩個(gè)操作系統(tǒng)相互之間的關(guān)系。

三、內(nèi)核文件與外殼不同。

無(wú)論是Unix操作系統(tǒng)還是Linux操作系統(tǒng),其基本上是有內(nèi)核、外殼和應(yīng)用程序三部分組成。毋庸置疑,內(nèi)核是操作系統(tǒng)中最重要的部分,其直接跟計(jì)算機(jī)硬件打交道。負(fù)責(zé)外殼與系統(tǒng)硬件之間的信息交流。為此也有專家說(shuō),內(nèi)核才算是真正意義上的操作系統(tǒng)。

Unix操作系統(tǒng)與Linux操作系統(tǒng)內(nèi)核文件是不同的。如Unix操作系統(tǒng)其內(nèi)核程序?qū)?yīng)的文件往往是/stand/unix文件;在SUNOS的Unix操作系統(tǒng)中對(duì)應(yīng)的是/kernel./genuix。操作系統(tǒng)在啟動(dòng)的時(shí)候會(huì)把這個(gè)內(nèi)核程序加載到系統(tǒng)內(nèi)存中。而Linux操作系統(tǒng)的內(nèi)核程序與Unix操作系統(tǒng)有比較大的區(qū)別。Linux操作系統(tǒng)采用的內(nèi)核文件為/boot/vlinuz。無(wú)論是系統(tǒng)工程師還是程序員必須要知道這個(gè)最基本的區(qū)別。如在對(duì)系統(tǒng)內(nèi)核進(jìn)行升級(jí)的時(shí)候,就需要知道所采用的內(nèi)核文件。

Unix操作系統(tǒng)與Linux操作系統(tǒng)不僅內(nèi)核文件不同,所采用的外殼也是不同的。當(dāng)目前為止,Unix操作系統(tǒng)主要支持四種外殼,分別為SH、CSH、KSH和BASH。當(dāng)用戶登錄到操作系統(tǒng)之后,就會(huì)啟動(dòng)一個(gè)外殼程序。通常情況下,在同一個(gè)時(shí)刻只能夠啟動(dòng)一個(gè)外殼。系統(tǒng)工程師就是通過(guò)外殼同系統(tǒng)內(nèi)核與硬件進(jìn)行通信。而Linux操作系統(tǒng)目前為止只支持三種外殼程序,分別為BASH(默認(rèn)采用的外殼程序)、CSH、KSH,比Unix操作系統(tǒng)少一種。這個(gè)差異對(duì)于普通用戶來(lái)說(shuō),可能沒(méi)有什么影響。但是對(duì)于系統(tǒng)工程師進(jìn)行一些特定工作的話,就可能會(huì)帶來(lái)比較大的不方便。


四、命令參數(shù)的表示方式不同。

在Unix操作系統(tǒng)與Linux操作系統(tǒng)其大部分命令都是相同的。但是在一些參數(shù)的表示方法上有所差異。如ls命令都是用來(lái)查看當(dāng)前目錄下文件、子目錄相關(guān)信息的。這個(gè)命令時(shí)兩個(gè)操作系統(tǒng)中使用的頻率***的命令,都帶有比較多的參數(shù)。但是在一些參數(shù)的具體表述上會(huì)有所差別。

如在這兩個(gè)操作系統(tǒng)中命令后面可以加一類比較特殊的參數(shù),即可有可無(wú)的參數(shù)。在Unix系統(tǒng)中利用單橫桿夾一個(gè)英文字母表示。如ls –l等等。這個(gè)可選項(xiàng)也是Unix命令中的一個(gè)參數(shù)。這些參數(shù)往往是系統(tǒng)中預(yù)先定義好的,用來(lái)實(shí)現(xiàn)一些比較特殊的功能。通常情況下,一個(gè)命令可以帶許多類型的參數(shù),如文件名參數(shù)與可選項(xiàng)參數(shù)等等,用來(lái)提高命令的靈活性,讓命令可以在多個(gè)方式下運(yùn)行。另外需要注意的一個(gè)問(wèn)題是,一般情況下命令與參數(shù)之間必須要有空格來(lái)進(jìn)行區(qū)分。如果在命令與參數(shù)之間有多個(gè)空格的話,外殼程序中有一個(gè)叫做命令解釋器的工具會(huì)對(duì)其進(jìn)行壓縮,***只剩下一個(gè)空格。當(dāng)然有些情況下系統(tǒng)工程師可能不喜歡系統(tǒng)這種“自作聰明”的方法,則也可以通過(guò)一些措施阻止操作系統(tǒng)這么做。

而在Linux操作系統(tǒng)中雖然也可以支持可選項(xiàng),但是其表示的方法有所差異。在Unix操作系統(tǒng)中,主要通過(guò)單橫桿來(lái)表示可選項(xiàng)參數(shù)。但是在Linux操作系統(tǒng)中,則其可選項(xiàng)的表示方式不統(tǒng)一,有的是需要一個(gè)單橫桿,而有些命令則需要使用雙橫桿來(lái)表示這個(gè)參數(shù)為可選項(xiàng)參數(shù)。另外在Unix操作系統(tǒng)中,這些可選項(xiàng)參數(shù)為單個(gè)的英文字母;而在Linux操作系統(tǒng)中,則其可能用的是具有一定含義的英文單詞,如ls --all等等。由于在Linux操作系統(tǒng)中這種不統(tǒng)一的情況,所以其命令的記憶量要比Unix操作系統(tǒng)要多。特別是像筆者這樣,既要負(fù)責(zé)Unxi系統(tǒng)的維護(hù),平時(shí)可能又要參與Linux相關(guān)的項(xiàng)目時(shí),這個(gè)就特別容易搞混。所以有時(shí)候就不得不查看系統(tǒng)的聯(lián)機(jī)幫助來(lái)判斷命令的正確格式。

還好在兩個(gè)操作系統(tǒng)中,都有一個(gè)在線幫助文檔。如在Unix操作系統(tǒng)與Red Hat 9操作系統(tǒng)中都可以通過(guò)man命令來(lái)查看命令的幫助說(shuō)明,如man ls系統(tǒng)就會(huì)顯示ls命令的相關(guān)幫助,并且還會(huì)帶出這個(gè)命令下面的所有可用參數(shù),包括可選參數(shù)。其實(shí)到底是采用單橫桿還是雙橫桿都會(huì)有具體的指明。所以說(shuō)很多像筆者這樣的系統(tǒng)工程師都要感謝這個(gè)在線幫助文檔,讓我們能夠同時(shí)勝任Unix操作系統(tǒng)與Linux操作系統(tǒng)的維護(hù)與開(kāi)發(fā)工作。雖然命令之間有一些格式上的差異,但是畢竟大部分命令的名字都相同的。所以通過(guò)這個(gè)在線幫助文檔的支持,可以在最短時(shí)間內(nèi)確認(rèn)這個(gè)差異。

關(guān)于如何進(jìn)行Unix與Linux操作系統(tǒng)差異的分析就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI