複製鏈接
請複製以下鏈接發送給好友

unix

鎖定
Unix是20世紀70年代初出現的一個操作系統,除了作為網絡操作系統之外,還可以作為單機操作系統使用。Unix作為一種開發平台和台式操作系統獲得了廣泛使用,主要用於工程應用和科學計算等領域。 [1] 
中文名
尤內克斯
外文名
UNIX
學    科
計算機科學
類    型
多用户、多任務操作系統
設計原則
簡潔至上、提供機制而非策略

unix發展歷史

UNIX系統是一個分時系統。最早的UNIX系統於1970年問世。此前,只有面向批處理作業的操作系統,這樣的系統對於需要立即得到響應的用户來説是太慢了。在60年代末,Kenneth Thompson和Dennis Ritchie都曾參加過交互方式分時系統Multics的設計,而開發該系統所使用的工具是CTSS。這兩個系統在操作系統的發展過程中都產生過重大影響。在此基礎上,在對當時現有的技術進行精選提煉和發展的過程中,K.Thompson於1969年在小型計算機上開發UNIX系統,後於1970年投入運行。 [2] 
1972年,DennisRitchie開發出C語言,用來改寫原來用彙編語言編寫的UNIX,由此產生了UNIX VersionV。1974年,Kenneth Thompson和Dennis Ritchie合寫的“The UNIX Time-Sharing System”在Communication of ACM上發表,正式向外界披露了UNIX系統。 [2] 
當時,PDP-11系列小型計算機在世界各地已經得到廣泛應用,UNIX系統一開發後便廣泛配備於美國各大學的PDP-11系列計算機上,由此為UNIX的廣泛應用創造了物質條件。 [2] 
1978年,UNIX Version VI發表,隨後又於1979年用於VAX-11超級小型機。以後,不斷地出現各種新的版本。美國電話電報公司分別於1981年和1983年發表AT&T UNIX SystemII和UNIX SystemV。美國加州大學伯克萊分校也先後發表了UNIX的版本BSD4.1,BSD4.2和BSD4.3。 [2] 
UNIX系統的用户日益增多,應用範圍也日益擴大。無論在各種類型的微型機、小型機,還是在中、大型計算機,以及在計算機工作站甚至個人計算機上,很多都已配有UNIX系統。不僅新推出的機型配有UNIX系統,而且一些歷史較久的生產廠商,也競相將原有機型配上UNIX系統以便打開銷路、爭取市場。 [2] 
2020年,蘋果發佈操作系統升級版本,將UNIX操作系統的強大功能和蘋果電腦的易用性相結合,提高了電腦的運行速度和電池壽命。 [7] 

unix特點

UNIX系統在計算機操作系統的發展史上佔有重要的地位。它確實對已有技術不斷作了精細、謹慎而有選擇的繼承和改造,並且,在操作系統的總體設計構想等方面有所發展,才使它獲得如此大的成功。UNIX系統的主要特點表現在以下幾方面: [2] 
1、UNIX系統在結構上分為核心程序(kernel)和外圍程序(shell)兩部分,而且兩者有機結合成為一個整體。核心部分承擔系統內部的各個模塊的功能,即處理機和進程管理、存儲管理、設備管理和文件系統。核心程序的特點是精心設計、簡潔精幹,只需佔用很小的空間而常駐內存,以保證系統的高效率運行。外圍部分包括系統的用户界面、系統實用程序以及應用程序,用户通過外圍程序使用計算機。 [2] 
UNIX系統結構 UNIX系統結構
UNIX的kernel是操作系統的樞紐,它為程序分配時間和內存,處理文件存儲和響應系統調用的通信。shell作為用户和內核之間的一個接口。當用户登錄時,登錄程序檢查用户名和密碼,然後啓動另一個稱為shell的程序。shell是一個命令行解釋器(CLI--command line interpreter)。它解釋用户輸入的命令,並安排它們被執行。這些命令本身就是程序:當它們終止時,shell會給用户另一個提示。
2、UNIX系統提供了良好的用户界面,具有使用方便、功能齊全、清晰而靈活、易於擴充和修改等特點。UNIX系統的使用有兩種形式:一種是操作命令,即shell語言,是用户可以通過終端與系統發生交互作用的界面;另一種是面向用户程序的界面,它不僅在彙編語言,而且在C語言中向用户提供服務。 [2] 
3、UNIX系統的文件系統是樹形結構。它由基本文件系統和若干個可裝卸的子文件系統組成,既能擴大文件存儲空間,又有利於安全和保密。 [2] 
4、UNIX系統把文件、文件目錄和設備統一處理。它把文件作為不分任何記錄的字符流進行順序或隨機存取,並使得文件、文件目錄和設備具有相同的語法語義和相同的保護機制,這樣既簡化了系統設計,又便於用户使用。 [2] 
5、UNIX系統包含有非常豐富的語言處理程序、實用程序和開發軟件用的工具性軟件,向用户提供了相當完備的軟件開發環境 [2] 
6、UNIX系統的絕大部分程序是用C語言編程的,只有約佔5%的程序用匯編語言編程。C語言是一種高級程序設計語言,它使得UNIX系統易於理解、修改和擴充,並且具有非常好的移植性。 [2] 
7、UNIX系統還提供了進程間的簡單通信功能。 [2] 
UNIX中的所有東西要麼是文件,要麼是進程。進程是一個執行中的程序,由一個唯一的PID(進程標識符)來識別;文件是一個數據的集合。它們是由用户使用文本編輯器、運行編譯器等創建的。

unix功能模塊

操作系統要管理計算機系統的硬件資源和軟件資源,以便為用户所使用。硬件資源一般指CPU中央處理機)、存儲器(內存和外存)、外部設備等。軟件資源是指系統程序和數據,即操作系統、系統實用程序及應用軟件,以及用户的程序和數據,它們都以文件的方式存放在存儲器中。操作系統由若干個功能模塊有機地聯繫在一起,協調地進行工作。這些模塊是:處理機和進程管理模塊、存儲管理模塊、設備管理模塊、文件系統和用户界面。 [2] 

unix處理機和進程管理模塊

由於處理機(CPU)是計算機中關鍵的資源,進程的執行與CPU密切相關,因此處理機和進程管理模塊可簡稱為進程管理模塊。確定哪些作業將調入內存運行和完成運行後撤出內存的工作稱為作業調度。把如何控制一個作業在運行階段的三個狀態間的轉換稱為進程調度。因而,如何充分發揮資源的利用率,使響應時間短,使各用户作業等待執行的時間最短,是制訂相應的作業調度算法和進程調度算法的原則。只是在不同的操作系統中,對以上目標有不同的着重點,因而調度算法也就有所不同。 [2] 

unix存儲管理模塊

存儲管理是對作業從進入就緒狀態起到運行結束之間所使用的存儲器(包括內存和外存)進行管理。可以將存儲管理模塊的任務分為存儲分配、地址映射和存儲保護3部分。 [2] 
存儲分配
一個程序在編譯和鏈接後,得到一個稱為內存映像的文件。該文件描述了這個程序在運行時所需要的內存大小,其中包括代碼和數據區的地址。這些地址稱為邏輯地址,並且以首地址0為參考地址。每當一個作業調入內存,進入就緒狀態,存儲管理模塊就要根據可利用的內存空間與作業所需要的內存兩者進行計算,給該作業分配相應的內存空間。 [2] 
地址映射
將一個作業裝入內存,意味着一個進程將被創建。存儲管理模塊會把該作業的映像文件首地址(為零)對準內存中進程的首地址。這個進程的首地址或起始地址是內存中的物理地址,稱為偏移量(offset)。映像文件的邏輯地址加上偏移量,得到內存中的地址值均為物理地址。計算邏輯地址到物理地址的轉換工作稱為地址映射。映像中所有的邏輯地址都可轉換為物理地址。 [2] 
內存保護
內存空間總是被若干個進程分享,其中包括操作系統本身要常駐在內存中的那一部分。內存保護的任務是對內存空間中已劃分出的區域,知道它們各屬於哪些進程,並且知道每個進程有權訪問的區域。每當一個進程執行過程中需要訪問某個地址時,存儲管理模塊就要檢查一下這個進程是否有權訪問這個物理地址。通常,每個進程在內存中的區域是該進程可以訪問的合法地址。如果訪問的地址落在該進程的區域之外,即產生了非法訪問。一旦遇到非法訪問,內存保護就要拒絕訪問,並進行出錯處理。 [2] 

unix設備管理模塊

外部設備包括文件存儲介質,例如磁盤、磁帶、光盤、硬盤等輸入輸出設備,例如字符終端、圖形終端、各種打印機、繪圖儀、顯示器等;以及專用的輸入輸出設備,例如數據採集儀、圖像攝入裝置、音頻輸入輸出設備等。 [2] 
設備管理模塊的任務是為用户提供方便和統一的界面,並根據作業對設備的申請,合理地分配這些資源,根據設備的性能和作用對設備分類,再用不同的驅動程序去驅動這些設備工作,以提高設備的效率。 [2] 

unix文件系統

文件系統又可稱為信息管理模塊,或者文件管理模塊,主要負責對軟件資源的管理。所有的軟件資源都以文件的形式存放在存儲介質中,並以文件為單位,在計算機中傳遞信息。因此,文件被定義為一組相關信息元素的集合。所有的文件在計算機中形成一個文件系統,雖然與操作系統的一個管理模塊同名,但是由於它們出現的場合及上下文不同,通常是可以區分的。 [2] 

unix用户界面

用户界面(User interface)又稱為用户接口。用户通過用户接口使用操作系統。良好的用户接口將使用户感覺到操作系統的友好和方便。用户接口通常包括作業控制語言、操作語言和系統調用。 [2] 

unixUNIX標準化

unixISO C

1989年下半年,C程序設計語言的ANSI標準X3.159-1989得到批准。此標準被也採納為國際標準ISO/IEC9899:1990。ANSI是美國國家標準學會(American National Standards Institute)的縮寫,它是國際標準化組織(International Organization for Standardization,ISO)中代表美國的成員。IEC是國際電子技術委員會(International Electrotechnical Commission)的縮寫。 [3] 
ISO C標準由ISO/IEC的C程序設計語言國際標準工作組維護和開發。ISO C標準的意圖是提供C程序的可移植性,使其能適合於大量不同的操作系統,而不只是適合UNIX系統。此標準不僅定義了C程序設計語言的語法和語義,還定義了其標準庫。 [3] 
1999年,ISO C標準被更新,並被批准為ISO/IEC 9899:1999,它顯著改善了對進行數值處理的應用軟件的支持。除了對某些函數原型增加了關鍵字restrict外,這種改變並不影響本書中描述的POSIX接口。restrict關鍵字告訴編譯器,哪些指針引用是可以優化的,其方法是指出指針引用的對象在函數中只通過該指針進行訪問。 [3] 
1999年以來,已經公佈了3個技術勘誤來修正ISO C標準中的錯誤,分別在2001年、2004年和2007年公佈。如同大多數標準一樣,在批准標準和修改軟件使其符合標準兩者之間有一段時間延遲。隨着供應商編譯系統的不斷演化,對最新ISO C標準的支持也就越來越多。 [3] 

unixIEEE POSIX

POSIX是一個最初由IEEE(Institute of Electrical and Electronics Engineers,電氣和電子工程師學會)制訂的標準族。POSIX指的是可移植操作系統接口(Portable Operating System Interfacc)。它原來指的只是IEEE標準1003.1-1988(操作系統接口),後來則擴展成包括很多標記為1003的標準及標準草案。 [3] 

unixSUS

Single UNIX Specification(SUS,單一UNIX規範)是POSIX.1標準的一個超集,它定義了--些附加接口擴展了POSIX.1規範提供的功能。POSIX.1相當於Single UNIX Specification中的基本規範部分。 [3] 
POSIX.1中的X/Open系統接口(X/Open System Interface,XSI)選項描述了可選的接口,也定義了遵循XSI(XSI conforming)的實現必須支持POSIX.1的哪些可選部分。這些必須支持的部分包括:文件同步、線程棧地址和長度屬性、線程進程共享同步以及XOPEN__UNIX符號常量。只有遵循XSI的實現才能稱為UNIX系統。 [3] 

unixFIPS

FIPS代表的是聯邦信息處理標準(Federal Information Processing Standard),這一標準是由美國政府發佈的,並由美國政府用於計算機系統的採購。FIPS151-1(1989年4月)基於IEEE標準1003.1-1988及ANSIC標準草案。此後是FIPS151-2(1993年5月),它基於IEEE標準1003.1-1990。在POSIX.1中列為可選的某些功能,在FIPS151-2中是必需的。所有這些可選功能在POSIX.1-2001習中已成為強制性要求。 [3] 

unixUNIX版本

Open Solaris
在UNIX的各發行版中,Open Solaris是唯一一個由商業版轉為開放源代碼的個例。 [4] 
Oracle Solaris
在UNIX商業版中,Solaris是一個非常優秀的操作系統。 [4] 
IBM AIX
AIX(Advanced Interactivee Xecutive)是IBM公司所有的UNIX操作系統。AIX源自於System V Release 3,運行在IBM公司的Power PC硬件架構之上。 [4] 
HP-UX
HP-UX(Hewlett Packard UNIX,HPUX)是美國惠普公司在System v的基礎上開發的UNIX操作系統。 [4] 
UNIX V6
1975年發表的UNIX V6版是比較成熟的版本,貝爾實驗室免費向美國各大學提供該版本,並開始廣泛地配備於各大學的PDP-11系列計算機上。1977年,UNIX首次移植到非PDP類型的計算機上。 [5] 
BSD UNIX
除了貝爾實驗室外,另一個使用比較廣泛的UNIX版本是美國加州大學貝克利分校開發的BSD UNIX,該版本大量安裝在SUN工作站上。1993年推出了4.4BSD版本。BSD是網絡的主要平台,對DARPA的TCP/IP提供了支持,其中的網絡文件系統(NFS)提供了與很多計算機機種的連接,NFS及AT&T開發的遠程文件共享(RFS)使UNIX系統在網絡支持方面保持領先地位。 [5] 
Solaris
Solaris曾是使用最廣泛、最成功的商業UNIX實現版本。Sun公司的操作系統最初叫做Sun OS,主要基於BSD UNIX版本。 [5] 
SCO UNIX(x86)
SVR3.2,影響較大的PC UNIX。
Ultrix(DEC)
根據4.2BSD再加上許多4.3BSD的東西。
Xenix(x86)
Intel硬件平台上的UNIX,以SVR2為基礎。 [8] 

unix類Unix操作系統

類Unix操作系統具有可靠性高、安全性強和數據庫支持功能強大等優點,已成為最為安全、可靠、流行的大型服務器操作系統,被廣泛應用於各行業的工業服務器設備。然而,此類系統存在操作複雜、普適性低以及缺乏有效監測與維護手段等問題,並存在重要數據丟失和系統崩潰的風險,大幅縮短了硬件設備使用壽命。 [6] 
常用的類Unix系統服務器硬件檢測方法包括基於Linux Live技術的檢測方法、基於Windows togo技術的檢測方法和基於類Unix系統硬件檢測軟件的方法。雖使用Linux Live技術能抽取出開源軟件的源代碼,靈活定製硬件自動檢測軟件及生成所需的精簡版檢測報告。但由於Linux Live系統自帶的軟件驅動庫版本老舊且不完整,在不同硬件配置機器間的檢測中,需耗費大量時間從系統ISO驅動文件庫中查找及安裝驅動程序(>30min),且常由於缺乏與最新服務器硬件匹配的驅動文件,造成系統無法啓動。基於Windows togo技術的檢測方法雖擁有完整的系統,但相較於基於Linux Live技術的檢測方法需要佔用的U盤空間大(16GB以上),且對於U盤的讀取速度要求過高。而基於類Unix系統硬件檢測軟件的方法又存在檢測功能單一、兼容性不足和操作難度大的問題。 [6] 

unix與Linux對比

UNIX和Linux的授權方式不同
從根本上講,UNIX和Linux最大的區別在於前者是對源代碼實行知識產權保護的傳統商業軟件。在UNIX發展初期,當時的UNIX版權歸AT&T公司所有。為了促進UNIX的發展,AT&T公司以低廉甚至免費的許可將UNIX源碼授權給學術機構做研究或教學之用,許多機構在此源碼基礎上加以擴充和改進,形成了所謂的UNIX衍生版,這些衍生版反過來也促進了UNIX的發展。 [4] 
後來AT&T公司意識到了UNIX的商業價值,不再將UNIX源碼授權給學術機構,並對之前的UNIX及其變種聲明瞭版權權利。這對UNIX的發展產生了很大的影響。在隨後的幾十年中,UNIX的發展經常伴隨着產權糾紛。對於UNIX來説,應用比較廣泛的發行版大多數都是商業公司來維護,例如OracleSolaris、IBMAIX以及HPUX等。 [4] 
Linux從一開始就是遵循GNU通用公共許可協議(GNU General Publice License,簡稱GNU GPL或GPL),GPL授予程序接受人以任何目的運行此程序的自由、再發行復製件的自由以及改進程序、並公開發布改進的自由。因此,任何個人或者公司都可以在GPL的允許範圍之內對Linux的代碼進行修改,並且進行再發行。另外,Linux可以運用於任何的領域,包括商業應用。 [4] 
UNIX和Linux不存在技術上面的傳承關係
儘管Linux的設計思想受到了MINIX的很大影響,但是這種影響並不是技術上的,更多的是理念上的。Linux並沒有使用UNIX的一行代碼,是Linux完全從頭構建的操作系統。因此,Linux不是UNIX的衍生版,它是一個全新的操作系統。 [4] 
UNIX和Linux對於硬件的要求不同
由於長期以來,UNIX都是由一些大型的公司在維護,因此UNIX通常與這些公司所生產的硬件相配套。例如,Oracle Solaris在很長的一段時間都只有SPARC平台的版本,HP-UX可以在HP的PA-RISC處理器、Intel的Itanium處理器的電腦上運行、IBMAlX則運行在IBM的Power PC架構之上。正因為如此,很大程度上限制了UNIX的廣泛應用。 [4] 
UNIX是一個功能非常全面的操作系統,在某些方面超越Linux
經過30多年的不斷髮展,UNIX的一些基本技術已變得十分成熟,有的已成為各類操作系統的常用技術。無數的實踐表明,UNIX是能達到大型主機可靠性要求的少數操作系統之一。許多UNIX大型:主機和服務器在國內外的大型企業中每天24小時不間斷地運行。例如,不少大企業或政府部門,將其整個企業/部門信息系統建立並運行在以UNIX為主服務器的客户機/服務器架構上。 [4] 
Linux成功地模仿了UNIX系統和功能,它能夠在普通PC計算機上實現全部的UNIX特性,具有多任務、多用户的能力。更為重要的是,Linux是一個開放源代碼的產品,任何個人或者公司都可以修改Linux內核的源代碼,實現或者增強自己想要的功能。 [4] 
實際上,UNIX與Linux的區別還有很多,例如,UNIX擁有強大的網絡功能,作為互聯網基石的TCP/IP協議就是在UNIX系統上開發和發展起來的。UNIX多用於超級計算機、小型機或者工作站,這些技術的成長與UNIX是分不開的。UNIX是歷史上影響最大、最成功的操作系統。 [4] 
聯繫
Linux的起源可以追溯到古老的UNIX系統。正因為受到了UNIX的影響,才誕生了Linux。Linux繼承了UNIX的許多優良傳統,例如強大的網絡功能、完善的命令以及良好的健壯性與穩定性。無論是從外觀上,還是從功能上,UNIX與Linux都是非常相似的。例如,UNIX的大部分常用命令都可以在Linux中找到相應的命令。 [4] 
另外,Linux同樣是一個遵循POSIX標準的操作系統。因此,許多UNIX上面的應用可以非常方便地移植到Linux上面。同樣,Linux上面的應用也可以非常方便地轉移到UNIX上面。 [4] 
參考資料