unix

unix

20世紀70年代初出現的一個操作系統
Unix是20世紀70年代初出現的一個操作系統,除了作為網絡操作系統之外,還可以作為單機操作系統使用。Unix作為一種開發平台和台式操作系統獲得了廣泛使用,主要用于工程應用和科學計算等領域。
    軟件名稱: 軟件平台: 軟件語言: 開發商: 軟件授權: 軟件版本: 軟件大小: 中文名:尤内克斯 外文名:UNIX 學科:計算機科學 類型:多用戶、多任務操作系統 設計原則:簡潔至上、提供機制而非策略

發展曆史

UNIX系統是一個分時系統。最早的UNIX系統于1970年問世。此前,隻有面向批處理作業的操作系統,這樣的系統對于需要立即得到響應的用戶來說是太慢了。在60年代末,Kenneth Thompson和Dennis Ritchie都曾參加過交互方式分時系統Multics的設計,而開發該系統所使用的工具是CTSS。這兩個系統在操作系統的發展過程中都産生過重大影響。在此基礎上,在對當時現有的技術進行精選提煉和發展的過程中,K.Thompson于1969年在小型計算機上開發UNIX系統,後于1970年投入運行。  

1973年,DennisRitchie開發出C語言,用來改寫原來用彙編語言編寫的UNIX,由此産生了UNIX VersionV。1974年,Kenneth Thompson和Dennis Ritchie合寫的“The UNIX Time-Sharing System"在Communication of ACM上發表,正式向外界披露了UNIX系統。  

當時,PDP-11系列小型計算機在世界各地已經得到廣泛應用,UNIX系統一開發後便廣泛配備于美國各大學的PDP-11系列計算機上,由此為UNIX的廣泛應用創造了物質條件。  

1978年,UNIX Version VI發表,随後又于1979年用于VAX-11超級小型機。以後,不斷地出現各種新的版本。美國電話電報公司分别于1981年和1983年發表AT&T UNIX SystemII和UNIX SystemV。美國加州大學伯克萊分校也先後發表了UNIX的版本BSD4.1,BSD4.2和BSD4.3。  

UNIX系統的用戶日益增多,應用範圍也日益擴大。無論在各種類型的微型機、小型機,還是在中、大型計算機,以及在計算機工作站甚至個人計算機上,很多都已配有UNIX系統。不僅新推出的機型配有UNIX系統,而且一些曆史較久的生産廠商,也競相将原有機型配上UNIX系統以便打開銷路、争取市場。  

特點

UNIX系統在計算機操作系統的發展史上占有重要的地位。它确實對已有技術不斷作了精細、謹慎而有選擇的繼承和改造,并且,在操作系統的總體設計構想等方面有所發展,才使它獲得如此大的成功。UNIX系統的主要特點表現在以下幾方面:  

(1)UNIX系統在結構上分為核心程序(kernel)和外圍程序(shell)兩部分,而且兩者有機結合成為一個整體。核心部分承擔系統内部的各個模塊的功能,即處理機和進程管理、存儲管理、設備管理和文件系統。核心程序的特點是精心設計、簡潔精幹,隻需占用很小的空間而常駐内存,以保證系統的高效率運行。外圍部分包括系統的用戶界面、系統實用程序以及應用程序,用戶通過外圍程序使用計算機。  

(2)UNIX系統提供了良好的用戶界面,具有使用方便、功能齊全、清晰而靈活、易于擴充和修改等特點。UNIX系統的使用有兩種形式:一種是操作命令,即shell語言,是用戶可以通過終端與系統發生交互作用的界面;另一種是面向用戶程序的界面,它不僅在彙編語言,而且在C語言中向用戶提供服務。  

(3)UNIX系統的文件系統是樹形結構。它由基本文件系統和若幹個可裝卸的子文件系統組成,既能擴大文件存儲空間,又有利于安全和保密。  

(4)UNIX系統把文件、文件目錄和設備統一處理。它把文件作為不分任何記錄的字符流進行順序或随機存取,并使得文件、文件目錄和設備具有相同的語法語義和相同的保護機制,這樣既簡化了系統設計,又便于用戶使用。  

(5)UNIX系統包含有非常豐富的語言處理程序、實用程序和開發軟件用的工具性軟件,向用戶提供了相當完備的軟件開發環境。  

(6)UNIX系統的絕大部分程序是用C語言編程的,隻有約占5%的程序用彙編語言編程。C語言是一種高級程序設計語言,它使得UNIX系統易于理解、修改和擴充,并且具有非常好的移植性。  

(7)UNIX系統還提供了進程間的簡單通信功能。  

功能模塊

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

處理機和進程管理模塊

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

存儲管理模塊

存儲管理是對作業從進入就緒狀态起到運行結束之間所使用的存儲器(包括内存和外存)進行管理。可以将存儲管理模塊的任務分為存儲分配、地址映射和存儲保護3部分。  

存儲分配

一個程序在編譯和鍊接後,得到一個稱為内存映像的文件。該文件描述了這個程序在運行時所需要的内存大小,其中包括代碼和數據區的地址。這些地址稱為邏輯地址,并且以首地址0為參考地址。每當一個作業調入内存,進入就緒狀态,存儲管理模塊就要根據可利用的内存空間與作業所需要的内存兩者進行計算,給該作業分配相應的内存空間。  

地址映射

将一個作業裝入内存,意味着一個進程将被創建。存儲管理模塊會把該作業的映像文件首地址(為零)對準内存中進程的首地址。這個進程的首地址或起始地址是内存中的物理地址,稱為偏移量(offset)。映像文件的邏輯地址加上偏移量,得到内存中的地址值均為物理地址。計算邏輯地址到物理地址的轉換工作稱為地址映射。映像中所有的邏輯地址都可轉換為物理地址。  

内存保護

内存空間總是被若幹個進程分享,其中包括操作系統本身要常駐在内存中的那一部分。内存保護的任務是對内存空間中已劃分出的區域,知道它們各屬于哪些進程,并且知道每個進程有權訪問的區域。每當一個進程執行過程中需要訪問某個地址時,存儲管理模塊就要檢查一下這個進程是否有權訪問這個物理地址。通常,每個進程在内存中的區域是該進程可以訪問的合法地址。如果訪問的地址落在該進程的區域之外,即産生了非法訪問。一旦遇到非法訪問,内存保護就要拒絕訪問,并進行出錯處理。  

設備管理模塊

外部設備包括文件存儲介質,例如磁盤、磁帶、光盤、硬盤等輸入輸出設備,例如字符終端、圖形終端、各種打印機、繪圖儀、顯示器等;以及專用的輸入輸出設備,例如數據采集儀、圖像攝入裝置、音頻輸入輸出設備等。  

設備管理模塊的任務是為用戶提供方便和統一的界面,并根據作業對設備的申請,合理地分配這些資源,根據設備的性能和作用對設備分類,再用不同的驅動程序去驅動這些設備工作,以提高設備的效率。  

文件系統

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

用戶界面

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

UNIX标準化

ISO C

1989年下半年,C程序設計語言的ANSI标準X3.159-1989得到批準。此标準被也采納為國際标準ISO/IEC9899:1990。ANSI是美國國家标準學會(American National Standards Institute)的縮寫,它是國際标準化組織(International Organization for Standardization,ISO)中代表美國的成員。IEC是國際電子技術委員會(International Electrotechnical Commission)的縮寫。  

ISO C标準由ISO/IEC的C程序設計語言國際标準工作組維護和開發。ISO C标準的意圖是提供C程序的可移植性,使其能适合于大量不同的操作系統,而不隻是适合UNIX系統。此标準不僅定義了C程序設計語言的語法和語義,還定義了其标準庫。  

1999年,ISO C标準被更新,并被批準為ISO/IEC 9899:1999,它顯著改善了對進行數值處理的應用軟件的支持。除了對某些函數原型增加了關鍵字restrict外,這種改變并不影響本書中描述的POSIX接口。restrict關鍵字告訴編譯器,哪些指針引用是可以優化的,其方法是指出指針引用的對象在函數中隻通過該指針進行訪問。  

1999年以來,已經公布了3個技術勘誤來修正ISO C标準中的錯誤,分别在2001年、2004年和2007年公布。如同大多數标準一樣,在批準标準和修改軟件使其符合标準兩者之間有一段時間延遲。随着供應商編譯系統的不斷演化,對最新ISO C标準的支持也就越來越多。  

IEEE POSIX

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

SUS

Single UNIX Specification(SUS,單一UNIX規範)是POSIX.1标準的一個超集,它定義了--些附加接口擴展了POSIX.1規範提供的功能。POSIX.1相當于Single UNIX Specification中的基本規範部分。  

POSIX.1中的X/Open系統接口(X/Open System Interface,XSI)選項描述了可選的接口,也定義了遵循XSI(XSI conforming)的實現必須支持POSIX.1的哪些可選部分。這些必須支持的部分包括:文件同步、線程棧地址和長度屬性、線程進程共享同步以及XOPEN__UNIX符号常量。隻有遵循XSI的實現才能稱為UNIX系統。  

FIPS

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習中已成為強制性要求。  

UNIX版本

Open Solaris

在UNIX的各發行版中,Open Solaris是唯一一個由商業版轉為開放源代碼的個例。  

Oracle Solaris

在UNIX商業版中,Solaris是一個非常優秀的操作系統。  

IBM AIX

AIX(Advanced Interactivee Xecutive)是IBM公司所有的UNIX操作系統。AIX源自于System V Release 3,運行在IBM公司的Power PC硬件架構之上。  

HP-UX

HP-UX(Hewlett Packard UNIX,HPUX)是美國惠普公司在System v的基礎上開發的UNIX操作系統。  

UNIX V6

1975年發表的UNIX V6版是比較成熟的版本,貝爾實驗室免費向美國各大學提供該版本,并開始廣泛地配備于各大學的PDP-11系列計算機上。1977年,UNIX首次移植到非PDP類型的計算機上。  

BSD UNIX

除了貝爾實驗室外,另一個使用比較廣泛的UNIX版本是美國加州大學貝克利分校開發的BSD UNIX,該版本大量安裝在SUN工作站上。1993年推出了4.4BSD版本。BSD是網絡的主要平台,對DARPA的TCP/IP提供了支持,其中的網絡文件系統(NFS)提供了與很多計算機機種的連接,NFS及AT&T開發的遠程文件共享(RFS)使UNIX系統在網絡支持方面保持領先地位。  

Solaris

Solaris曾是使用最廣泛、最成功的商業UNIX實現版本。Sun公司的操作系統最初叫做Sun OS,主要基于BSD UNIX版本。  

類Unix操作系統

類Unix操作系統具有可靠性高、安全性強和數據庫支持功能強大等優點,已成為最為安全、可靠、流行的大型服務器操作系統,被廣泛應用于各行業的工業服務器設備。然而,此類系統存在操作複雜、普适性低以及缺乏有效監測與維護手段等問題,并存在重要數據丢失和系統崩潰的風險,大幅縮短了硬件設備使用壽命。  

常用的類Unix系統服務器硬件檢測方法包括基于Linux Live技術的檢測方法、基于Windows togo技術的檢測方法和基于類Unix系統硬件檢測軟件的方法。雖使用Linux Live技術能抽取出開源軟件的源代碼,靈活定制硬件自動檢測軟件及生成所需的精簡版檢測報告。但由于Linux Live系統自帶的軟件驅動庫版本老舊且不完整,在不同硬件配置機器間的檢測中,需耗費大量時間從系統ISO驅動文件庫中查找及安裝驅動程序(>30min),且常由于缺乏與最新服務器硬件匹配的驅動文件,造成系統無法啟動。基于Windows togo技術的檢測方法雖擁有完整的系統,但相較于基于Linux Live技術的檢測方法需要占用的U盤空間大(16GB以上),且對于U盤的讀取速度要求過高。而基于類Unix系統硬件檢測軟件的方法又存在檢測功能單一、兼容性不足和操作難度大的問題。  

與Linux對比

UNIX和Linux的授權方式不同

從根本上講,UNIX和Linux最大的區别在于前者是對源代碼實行知識産權保護的傳統商業軟件。在UNIX發展初期,當時的UNIX版權歸AT&T公司所有。為了促進UNIX的發展,AT&T公司以低廉甚至免費的許可将UNIX源碼授權給學術機構做研究或教學之用,許多機構在此源碼基礎上加以擴充和改進,形成了所謂的UNIX衍生版,這些衍生版反過來也促進了UNIX的發展。  

後來AT&T公司意識到了UNIX的商業價值,不再将UNIX源碼授權給學術機構,并對之前的UNIX及其變種聲明了版權權利。這對UNIX的發展産生了很大的影響。在随後的幾十年中,UNIX的發展經常伴随着産權糾紛。對于UNIX來說,應用比較廣泛的發行版大多數都是商業公司來維護,例如OracleSolaris、IBMAIX以及HPUX等。  

Linux從一開始就是遵循GNU通用公共許可協議(GNU General Publice License,簡稱GNU GPL或GPL),GPL授予程序接受人以任何目的運行此程序的自由、再發行複制件的自由以及改進程序、并公開發布改進的自由。因此,任何個人或者公司都可以在GPL的允許範圍之内對Linux的代碼進行修改,并且進行再發行。另外,Linux可以運用于任何的領域,包括商業應用。 

 

UNIX和Linux不存在技術上面的傳承關系

盡管Linux的設計思想受到了MINIX的很大影響,但是這種影響并不是技術上的,更多的是理念上的。Linux并沒有使用UNIX的一行代碼,是Linux完全從頭構建的操作系統。因此,Linux不是UNIX的衍生版,它是一個全新的操作系統。  

UNIX和Linux對于硬件的要求不同

由于長期以來,UNIX都是由一些大型的公司在維護,因此UNIX通常與這些公司所生産的硬件相配套。例如,Oracle Solaris在很長的一段時間都隻有SPARC平台的版本,HP-UX可以在HP的PA-RISC處理器、Intel的Itanium處理器的電腦上運行、IBMAlX則運行在IBM的Power PC架構之上。正因為如此,很大程度上限制了UNIX的廣泛應用。  

UNIX是一個功能非常全面的操作系統,在某些方面超越Linux

經過30多年的不斷發展,UNIX的一些基本技術已變得十分成熟,有的已成為各類操作系統的常用技術。無數的實踐表明,UNIX是能達到大型主機可靠性要求的少數操作系統之一。許多UNIX大型:主機和服務器在國内外的大型企業中每天24小時不間斷地運行。例如,不少大企業或政府部門,将其整個企業/部門信息系統建立并運行在以UNIX為主服務器的客戶機/服務器架構上。  

Linux成功地模仿了UNIX系統和功能,它能夠在普通PC計算機上實現全部的UNIX特性,具有多任務、多用戶的能力。更為重要的是,Linux是一個開放源代碼的産品,任何個人或者公司都可以修改Linux内核的源代碼,實現或者增強自己想要的功能。  

實際上,UNIX與Linux的區别還有很多,例如,UNIX擁有強大的網絡功能,作為互聯網基石的TCP/IP協議就是在UNIX系統上開發和發展起來的。UNIX多用于超級計算機、小型機或者工作站,這些技術的成長與UNIX是分不開的。UNIX是曆史上影響最大、最成功的操作系統。  

聯系

Linux的起源可以追溯到古老的UNIX系統。正因為受到了UNIX的影響,才誕生了Linux。Linux繼承了UNIX的許多優良傳統,例如強大的網絡功能、完善的命令以及良好的健壯性與穩定性。無論是從外觀上,還是從功能上,UNIX與Linux都是非常相似的。例如,UNIX的大部分常用命令都可以在Linux中找到相應的命令。  

另外,Linux同樣是一個遵循POSIX标準的操作系統。因此,許多UNIX上面的應用可以非常方便地移植到Linux上面。同樣,Linux上面的應用也可以非常方便地轉移到UNIX上面。  

相關詞條

相關搜索

其它詞條