必威电竞|足球世界杯竞猜平台

UNIX
來源:互聯網

UNIX,是一種多用戶計算機操作系統,具有簡單性、可移植性(在許多不同系統上運行的能力)、多任務和多用戶功能、軟件庫和分層文件系統廣泛等特性,最初由美國電話電報公司(AT&T Corporation)貝爾實驗室開發。

1969年,第一個UNIX版本被由計算機科學家肯·湯普遜(Ken Thompson)和丹尼斯·里奇(Dennis Ritchie)領導的小組在一臺PDP-7小型計算機上創建。

UNIX是FreeBSDLinux等自由開源操作系統的靈感來源,也是蘋果公司Mac OS X的基礎,在20世紀后期被廣泛應用于Internet服務器、工作站大型計算機

歷史

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

1973年,丹尼斯·里奇開發出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系統的用戶日益增多,應用范圍也日益擴大。無論在各種類型的微型機、小型機,還是在中、大型計算機,以及在計算機工作站甚至personal computer上,很多都已配有UNIX系統。不僅新推出的機型配有UNIX系統,而且一些歷史較久的生產廠商,也競相將原有機型配上UNIX系統以便打開銷路、爭取市場。

誕生

1965年時,貝爾實驗室(Bell Labs)加入一項由通用電氣(General Electric)和麻省理工學院(MIT)合作的計劃;該計劃要建立一套多使用者、多任務、多層次(multi-user、multi-processor、multi-level)的MULTICS操作系統。直到1969年,因MULTICS計劃的工作進度太慢,該計劃被停了下來。當時,Ken Thompson(后被稱為UNIX之父)已經有一個稱為"星際旅行"的程序在GE-635的機器上跑,但是反應非常慢,正巧被他發現了一部被閑置的PDP-7(Digital的主機),Ken Thompson和Dernis Ritchie就將"星際旅行"的程序移植到PDP-7上。而這部PDP-7(如圖1-1所示)就此在整個計算機歷史上留下了芳名。

MULTICS其實是"Multiplexed Information and Computing Service"的縮寫,在1970年時,那部PDP-7卻只能支持兩個使用者,當時,Brian Kernighan就開玩笑地稱他們的系統其實是:"UNiplexed Information and Computing Service",縮寫為"UNICS",后來,大家取其諧音,就稱其為"UNIX"了。1970年可稱為"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系統還提供了進程間的簡單通信功能。

流行

1971年,Ken Thompson寫了充分長篇的申請報告,申請到了一臺PDP-11/24的機器。于是Unix第一版出來了。在一臺PDP-11/24的機器上完成。這臺電腦只有24KB的物理內存和500K磁盤空間。Unix占用了12KB的內存,剩下的一半內存可以支持兩用戶進行Space Travel的游戲。而著名的fork()系統調用也就是在這時出現的。

到了1973年的時候,Ken Thompson 與Dennis Ritchie感到用匯編語言做移植太過于頭痛,他們想用高級語言來完成第三版,對于當時完全以匯編語言來開發程序的年代,他們的想法算是相當的瘋狂。一開始他們想嘗試用Fortran,可是失敗了。后來他們用一個叫BCPL(Basic Combined Programming Language)的語言開發,他們整合了BCPL形成B語言,后來Dennis Ritchie覺得B語言還是不能滿足要求,于是就改良了B語言,這就是大名鼎鼎的c語言。于是,Ken Thompson 與Dennis Ritchie成功地用C語言重寫了Unix的第三版內核。至此,Unix這個操作系統修改、移植相當便利,為Unix日后的普及打下了堅實的基礎。而Unix和C結合成為一個統一體,C與Unix很快成為世界的主導。

Unix的第一篇文章“The UNIX Time Sharing System”由Ken Thompson和Dennis Ritchie于1974年7月的 The Communications of the ACM發表。這是UNIX與外界的首次接觸。結果引起了學術界的廣泛興趣并對其源碼索取,所以,Unix第五版就以“僅用于教育目的”的協議,提供給各大學作為教學之用,成為當時操作系統課程中的范例教材。各大學公司開始通過Unix源碼對Unix進行了各種各樣的改進和擴展。于是,Unix開始廣泛流行。

版本

Open Solaris

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

Oracle Solaris

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

IBM AIX

IBM 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 OS,主要基于BSD UNIX版本。

IRIX

是由SGI(Silicon GraphicsInc.,一般用簡稱:SGI)以System V與BSD延伸程序為基礎所發展成的UNIX操作系統,IRIX可以在SGI公司的RISC型電腦上運行,即是采行32位、64位MIPS架構的SGI工作站、服務器。

標準與特性

標準

Unix 操作系統因其開放性、可移植性、多用戶多任務以及穩定性等特點,加上本身強大的網絡通訊功能,被廣泛的應用在各主要行業中。UNIX用戶協會最早從20世紀80年代開始標準化工作,1984年頒布了試用標準。后來IEEE為此制定了POSIX標準(即IEEE1003標準)國際標準名稱為ISO/IEC9945.它通過一組最小的功能定義了在UNIX操作系統和應用程序之間兼容的語言接口。POSIX是由Richard Stallman 應IEEE的要求而提議的一個易于記憶的名稱,含義是Portable OPerating System 接口(可移植操作系統接口) ,而X表明其API的傳承。

UNIX特性

功能模塊

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

處理機和進程管理模塊

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

存儲管理模塊

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

存儲分配

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

地址映射

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

內存保護

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

設備管理模塊

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

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

文件系統

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

用戶界面

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

標準化

ISO C

1989年下半年,C程序設計語言的ANSI標準X3.159-1989得到批準。此標準被也采納為國際標準ISO/IEC9899:1990。ANSI是美國國家標準學會(American National Standards Institute)的縮寫,它是國際標準化組織(International Organization for Standardization,ISO)中代表美國的成25員。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 接口,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操作系統具有可靠性高、安全性強和數據庫支持功能強大等優點,已成為最為安全、可靠、流行的大型服務器操作系統,被廣泛應用于各行業的工業服務器設備。然而,此類系統存在操作復雜、普適性低以及缺乏有效監測與維護手段等問題,并存在重要數據丟失和系統崩潰的風險,大幅縮短了硬件設備使用壽命。

目前常用的類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版權歸美國電話電報公司所有。為了促進UNIX的發展,AT&T公司以低廉甚至免費的許可將UNIX源碼授權給學術機構做研究或教學之用,許多機構在此源碼基礎上加以擴充和改進,形成了所謂的UNIX衍生版,這些衍生版反過來也促進了UNIX的發展。

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

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處理器、英特爾的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上面。

參考資料 >

UNIX.Britannica.2024-01-25

..2024-01-25

..2024-01-25

生活家百科家居網