最新01第一二次課UNIX系統(tǒng)簡介課件_第1頁
最新01第一二次課UNIX系統(tǒng)簡介課件_第2頁
最新01第一二次課UNIX系統(tǒng)簡介課件_第3頁
最新01第一二次課UNIX系統(tǒng)簡介課件_第4頁
最新01第一二次課UNIX系統(tǒng)簡介課件_第5頁
已閱讀5頁,還剩119頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

01第一二次課UNIX系統(tǒng)簡介01第一二次課UNIX系統(tǒng)簡介1課件原作者:劉日升教授楊芙清、仲萃豪、孫玉方、劉日升等是開拓我國UNIX操作系統(tǒng)事業(yè)的先驅(qū)者。孫玉方(中科院軟件所副所長,紅旗LINUX的創(chuàng)始人)。二人第一次在中國介紹UNIX,第一次講授UNIX,剖析UNIX內(nèi)核。是中國接觸UNIX的先輩。劉日升;孫玉方;UNIX操作系統(tǒng)分析報(bào)告[J];計(jì)算機(jī)研究與發(fā)展;1982年09期課件原作者:劉日升教授2最新01第一二次課UNIX系統(tǒng)簡介課件3最新01第一二次課UNIX系統(tǒng)簡介課件4最新01第一二次課UNIX系統(tǒng)簡介課件5最新01第一二次課UNIX系統(tǒng)簡介課件6最新01第一二次課UNIX系統(tǒng)簡介課件7最新01第一二次課UNIX系統(tǒng)簡介課件8一、UNIX歷史

Unix的生命力

Unix起源與歷史Unix當(dāng)前流行版本Unix標(biāo)準(zhǔn)化一、UNIX歷史Unix的生命力9UNIX的生命力Unix誕生于1969年,比PC機(jī)、工作站、微處理器甚至視頻顯示終端都要早,與第一塊半導(dǎo)體存儲器是同一時(shí)代的古物。按照計(jì)算機(jī)工業(yè)的標(biāo)準(zhǔn),那已經(jīng)是好幾個(gè)地質(zhì)紀(jì)年前的事了。世界上第一臺PC機(jī)是由IBM公司在1981年推出。英特爾公司成立于1968年,1971年11月15日:世界上第一塊個(gè)人微型處理器4004誕生。1972年:8008微處理器。1974年:8080微處理器。1978年:8086-8088微處理器Unix比其它任何操作系統(tǒng)都更廣泛地應(yīng)用在各種機(jī)型上。沒有哪一種操作系統(tǒng)能像Unix那樣,能同時(shí)在作為研究工具、定制技術(shù)應(yīng)用的友好宿主機(jī)、商用成品軟件平臺和互聯(lián)網(wǎng)技術(shù)的重要部分等各個(gè)領(lǐng)域都大放異彩。UNIX的生命力Unix誕生于1969年,比PC機(jī)、10Unix的生命力和適應(yīng)力令人稱奇。不變的東西有很多:語言、系統(tǒng)調(diào)用、工具用法——它們積年不變,甚至可以用上數(shù)十載。而在其它操作系統(tǒng)中則無法預(yù)判什么東西會持久不變,有時(shí)候甚至整個(gè)操作系統(tǒng)都會被淘汰。Unix的穩(wěn)定和成功在很大程度上歸功于它與生俱來的內(nèi)在優(yōu)勢,歸功于KenThompson,DennisRitchie,BrianKernighan,DougMcIroy,RobPike和其他早期Unix開發(fā)者一開始就作出的設(shè)計(jì)決策。Unix的生命力和適應(yīng)力令人稱奇。11Unix的起源及歷史“第二版效應(yīng)”與“第三版效應(yīng)”。最初的Unix就是一個(gè)第三系統(tǒng)。Unix的祖輩是小而簡單的兼容分時(shí)系統(tǒng)CTSS(CompatibleTime-SharingSystem)Unix的父輩是頗具開拓性的MULTICS項(xiàng)目,(MultiplexedInformationandComputingService,多路信息與計(jì)算服務(wù)),能夠支持大群用戶對大型計(jì)算機(jī)的交互式分時(shí)使用。最終MULTICS因不堪自身重負(fù)而崩潰了。但Unix卻正是從它的廢墟中破殼而出。Unix的起源及歷史“第二版效應(yīng)”與“第三版效應(yīng)”。12創(chuàng)世紀(jì):1969—1971Unix于1969年誕生于貝爾實(shí)驗(yàn)室(BellLabs)的計(jì)算機(jī)科學(xué)家們的頭腦中。當(dāng)貝爾實(shí)驗(yàn)室從Multics研究聯(lián)盟中退出時(shí),KenThompson等人帶著從Multics激發(fā)的靈感留了下來。于是UNICS(UNiplexedInformationandComputingService,單路信息與計(jì)算服務(wù))問世于一臺PDP-7小型機(jī)上。KenThompsonDennisRitchieBrianKernighan創(chuàng)世紀(jì):1969—1971Unix于1969年誕生于貝爾13DigitalEquipmentCorporationPDP-7迷你計(jì)算機(jī)DigitalEquipmentCorporation14UNIX的實(shí)用:1970年,當(dāng)時(shí)貝爾實(shí)驗(yàn)室的專利部門要設(shè)計(jì)開發(fā)一套文書處理系統(tǒng),買了一臺擁有512Kbytes硬盤的PDP-11/20計(jì)算機(jī)。Thompson與Ritchie將UNIX移植到該機(jī)上,并在此系統(tǒng)上開發(fā)了一套文書處理工具(nroff/troff的前身)。正式命名第一版。UNIX的實(shí)用:15最初的Unix用匯編語言寫成,應(yīng)用程序用匯編語言和B語言混和編寫。B語言屬于一種解譯語言,執(zhí)行成效不好,于是Ritchie又將它發(fā)展成可產(chǎn)生機(jī)器碼、允許定義數(shù)據(jù)形態(tài)及結(jié)構(gòu)——C語言。1973年,Thompson和Ritchie成功地用C語言重寫了整個(gè)Unix系統(tǒng)。UNIX于是首度出現(xiàn)正式版本——V5(第五版)。

1974年[Ritchie-Thompson]在《美國計(jì)算機(jī)通信》(CommunicationsoftheACM)上發(fā)表論文第一次公開展示了Unix。出埃及記:1971-1980最初的Unix用匯編語言寫成,應(yīng)用程序用匯編語言和B語言混16C語言的發(fā)展C語言的原型ALGOL60語言。1963年,劍橋大學(xué)將ALGOL60語言發(fā)展成為CPL(CombinedProgrammingLanguage)語言。1967年,劍橋大學(xué)的MatinRichards對CPL語言進(jìn)行簡化,產(chǎn)生BCPL語言。1970年,KenThompson將BCPL進(jìn)行了修改,并為它起了一個(gè)有趣的名字“B語言”。Ritchie向Thompson的B語言中加入數(shù)據(jù)類型和新的句法,產(chǎn)生了一種新語言——C語言。C語言是一門偉大的承前啟后的語言。C語言是借助Unix操作系統(tǒng)的翅膀而起飛的,Unix操作系統(tǒng)也由于C而得已快速移植落地生根,兩者相輔相承,成就了軟件史上最精彩的一幕。C語言的發(fā)展C語言的原型ALGOL60語言。171972年在PDP-11旁的Ken(坐)和Dennis(站)1972年在PDP-11旁的Ken(坐)和Dennis(18根據(jù)1958年為解決反托拉斯案例達(dá)成的和解協(xié)議,AT&T被禁止進(jìn)入計(jì)算機(jī)相關(guān)的商業(yè)領(lǐng)域。所以,Unix不能夠成為一種商品。而且貝爾實(shí)驗(yàn)室必須將非電話業(yè)務(wù)的技術(shù)許可給任何提出要求的人。CACM論文發(fā)表后,全球各個(gè)研究實(shí)驗(yàn)室和大學(xué)都嚷著要親身體驗(yàn)Unix。KenThompson開始默默回應(yīng)那些請求,將磁帶和磁盤一包包地寄送出去。V6。……UCBerkeley也就是依據(jù)這個(gè)版本開始研究并加以發(fā)展,并在1977年發(fā)表1BSD(BerkeleySoftwareDistribution)。根據(jù)1958年為解決反托拉斯案例達(dá)成的和解協(xié)議,AT&T被禁19現(xiàn)代Unix程序員公認(rèn)的第一個(gè)完全意義上的Unix是1978年發(fā)布的V7版本。UNIXTime-SharingSystem,7thEditionUNIXV7包含F(xiàn)ortran77compiler、Shell(BourneShell)、文件處理工具(nroff/troff、roff、MSmocro等)、UNIX-to-UNIX-file-Copy(支持兩臺UNIX機(jī)器間的檔案傳輸)、數(shù)據(jù)處理工具(AWK、SED等)、除錯(cuò)工具(ADB)、程序開發(fā)工具(MAKE)、Lexicalanalyzergenerator(LEX、YACC等)、簡單的繪圖工具、并支持C語言及LINTverifier商業(yè)化的不平坦歷程--UNIX版本的戰(zhàn)爭。現(xiàn)代Unix程序員公認(rèn)的第一個(gè)完全意義上的Unix是1920AT&TV6(1975)V7(1978)SystemIII(1981)SystemV.1(1983)SystemV.4(1989)UNIXWARE(Novell1992)(SCO1995)UNIXWARE7.0(1997)MicroSoftXenix(1980)XenixV(1988)SCOUnix(1989)OpenServer5.0(1995)MINIX(1987)(A.S.Tanenbaum)Linux(LinusTorvalds1991)UCBerkeleyBSD(1978)4.1BSD(1981)TCP/IP4.2BSD(1984)4.3BSD(1987)4.4BSD(1992)V8(1983)V9(1987)V10(1988)Plan9(1990)SUNSUNOS(1984)SUNOS4(1989)SUNOS5Solaris2(1992)Solaris8(1999)DECUltrixOSFOSF/1(1990)DigitalUNIX(DEC1995Compag1998)TRu64UNIX(1999)IBMAIX(1986)HPHP_UX(1986)SGIIRIX(1990)CMUMach1988OpenUNIX8(2001)UNIX族系A(chǔ)T&TV7(1978)SystemIIISystemV21UNIX的流行版本

公司:Unix版本/CPU型號SUN:Solaris/SPARC,IntelHP:HP-UX/PA-RISCIBM:AIX

/PowerPC

SCO:UnixWare7.0,OpenServer/IntelCompaq:Tru64UNIX/AlphaSGI:IRIX

/MIPSGNU:Linux/CISC(Intel,MC68000)RISC(SPARC,Alpha,MIPS)UNIX的流行版本公司:Unix版本/22再來看看幾件有關(guān)的事!再來看看幾件有關(guān)的事!23微軟的興起1981年,微軟同IBM就新型IBMPC達(dá)成了歷史性交易:PC-DOS。比爾·蓋茨從西雅圖計(jì)算機(jī)產(chǎn)品公司(SCP,SeattleComputerProducts)買下了QDOS(QuickandDirtyOperatingSystem,是SCP公司拼湊出來的第一個(gè)廣泛采用的PC操作系統(tǒng)CP/M的翻版)。蓋茨對SCP隱瞞了同IBM的交易,只花了五萬美元。后來,蓋茨又說服了IBM允許微軟將MS-DOS從硬件中剝離出來單獨(dú)出售。接下來的十年中,蓋茨利用這個(gè)非他所寫的程序變成了超級億萬富翁,而比首筆交易更加精明的商業(yè)策略更是讓微軟壟斷了桌面計(jì)算機(jī)市場。作為產(chǎn)品的XENIX被放棄,最終賣給了SCO公司。微軟的興起1981年,微軟同IBM就新型IBMPC24AT&T的拆分1983年,美國司法部對在針對AT&T的第二起反托拉斯訴訟中獲勝,并拆分了貝爾系統(tǒng)。這次判決將AT&T從1958年的禁止將Unix產(chǎn)品化的和解協(xié)議中解脫了出來。AT&T馬上忙不迭地將UnixSystemV商業(yè)化——這一舉措差點(diǎn)扼殺了Unix。當(dāng)時(shí),沒有人意識到,Unix的產(chǎn)業(yè)化會破壞Unix源碼的自由交流,而恰是后者滋養(yǎng)了Unix系統(tǒng)早期的活力。AT&T的拆分1983年,美國司法部對在針對AT&T的25AT&T與BSD的官司BSD不斷增大的影響力終于引起了AT&T的關(guān)注,于是開始了一場曠日持久的版權(quán)官司,一直打到AT&T將自己的Unix系統(tǒng)實(shí)驗(yàn)室賣掉,新接手的Novell采取了一種比較開明的做法,允許伯克利自由發(fā)布自己的BSD,但是前提是必須將來自AT&T的代碼完全刪除,于是誕生了4.4BSDLite版。4.4BSDLite不存在法律問題,成為現(xiàn)代BSD系統(tǒng)的基礎(chǔ)版本。盡管后來,非商業(yè)版的UNIX系統(tǒng)經(jīng)過了很多演變,但其最終都是建立在BSD版本上(Linux除外)。所以從這個(gè)角度上,4.4BSD又是所有自由(Free)版Unix的基礎(chǔ),它們和SYSTEMV及Linux共同構(gòu)成Unix操作系統(tǒng)這片璀璨的星空。AT&T與BSD的官司BSD不斷增大的影響力終于引起了A26UNIX與DARPA握手1980年,國防部高級研究計(jì)劃局(DARPA,DefenseAdvancedResearchProjectsAgency)正在為AI,VLSI及計(jì)算器視覺等研究找尋一個(gè)可共通作業(yè)的計(jì)算機(jī)環(huán)境。硬件方面的首選是DEC的VAX主機(jī),配合的操作系統(tǒng)是VMS。但是需要VMS做調(diào)整,包括實(shí)現(xiàn)全新的TCP/IP協(xié)議棧。因DEC不太樂意改動(dòng)他們的專有操作系統(tǒng),DARPA選擇了伯克利Unix作為平臺——顯然因?yàn)榭梢院翢o阻礙地拿到它的源碼。UNIX與DARPA握手1980年,國防部高級研究計(jì)271983年后,隨著BSD植入了TCP/IP,Unix文化和ARPANET文化開始融合。隨著Unix的成功,TCP/IP逐步成為Unix機(jī)器的標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議。從此,Unix與TCP/IP相伴,占領(lǐng)了網(wǎng)絡(luò)時(shí)代的大舞臺。1983年后,隨著BSD植入了TCP/IP,Unix文28GNU宣言"GNU'sNotUnix!"1983年,MIT的RichardM.Stallman發(fā)表了GNU宣言,1985年發(fā)起了自由軟件基金會(FreeSoftwareFoundation)?!狥reeUNIX。制定出了屬于GNU計(jì)劃的軟件版權(quán)(“copyleft”),與著作版權(quán)(copyright)“對立”。這就是GPL--GeneralPurposeLicense(通用公共授權(quán))。90年代初,GNU計(jì)劃已完成了質(zhì)量與數(shù)量均十分可觀的系統(tǒng)工具,被廣泛使用在當(dāng)時(shí)各種工作站的UNIX系統(tǒng)上。雖然已有如此的成果,但仍稱不上是完整的操作系統(tǒng)。他們?nèi)鄙僖恢儆谧约旱摹昂诵某绦颍╧ernal)"。GNU宣言"GNU'sNotUnix!"1983291985年,CarnegieMellonUniversity以4.3BSD為發(fā)展基礎(chǔ),采用微核心的寫法,成立自己的計(jì)劃,名稱叫“Hurd“。GNUHurd是GNU工程中取代Unix的核心,但目前仍在工作中。在眾多自由軟件寫作者的努力下,一條新的大道其實(shí)已經(jīng)被開拓出來:Linux是一套版權(quán)徹徹底底與

AT&T

無關(guān)的

UNIX-likeOS。Linux里大部分的系統(tǒng)工具,來自于

GNU

計(jì)劃成果及其它的自由軟件寫作計(jì)劃產(chǎn)生的軟件。這套操作系統(tǒng),包含了自由軟件寫作者的共同心血,其實(shí)也就是

RMS

多年來想要達(dá)成的宿愿

--"FreeUNIX"。所以,也有人用

GNU/Linux

來稱呼這個(gè)操作系統(tǒng)。1985年,CarnegieMellonUnivers30UNIX簡史1965-1969Multics(MultipleInformationComputingService)USDOD國防部MIT,AT&TBell,GE1970

UnixV1(PDP-7),AT&TBell,K.Thompson,D.M.Ritchie1970UnixV2(BLanguage),K.Thompson1972

CLanguage,D.M.Ritchie1973

UnixV5(C)1973ACMOS原理會議1974

CACM“TheUnixTimeSharingSystem”1975

UnixV6發(fā)行源代碼1978

UnixV7移植到不同機(jī)器上1980BSD發(fā)行BSD4.0,Microsoft發(fā)行XENIX1981AT&T

SystemIII(USG-UNIXSystemGroup)1983AT&T

SystemV(USG并入U(xiǎn)SL(UNIXSystemLaboratory))1983ACMTuring獎(jiǎng)(D.M.Rithie&K.Thompson)UNIX簡史1965-1969Multics(Mul311984UNIXSystemVRelease2(SVR2)推出。4.2BSD推出1987SVR3推出。4.3BSD推出1988

POSIX.1發(fā)布。OSF和UI成立1989SVR4推出1991

LinusTorvalds推出Linux1992SVR4.2(USL)推出。4.4BSD推出(最后版)

USL并入Novell發(fā)布SVR4.2MP(最后版)和UNIXWARE1995X/Open推出UNIX95UNIXWARE賣給SCO(SantaCruzOperation)1996

OpenGroup成立1998OpenGroup推出UNIX981999Linux2.2內(nèi)核發(fā)布2001Linux2.4內(nèi)核發(fā)布1984UNIXSystemVRelease232UNIX標(biāo)準(zhǔn)由各自獨(dú)立的組織所制定的三個(gè)標(biāo)準(zhǔn):ISOCIEEEPOSIXSingleUNIXSpecificationUNIX標(biāo)準(zhǔn)由各自獨(dú)立的組織所制定的三個(gè)標(biāo)準(zhǔn):33ISOC1989年下半年,C程序設(shè)計(jì)語言的ANSI標(biāo)準(zhǔn)X3.159-1989得到批準(zhǔn)。此標(biāo)準(zhǔn)已被采納為國際標(biāo)準(zhǔn)ISO/IEC9899:1990。此標(biāo)準(zhǔn)不僅定義了C程序設(shè)計(jì)語言的語法和語義,還定義了其標(biāo)準(zhǔn)庫。因?yàn)樗鞋F(xiàn)今的UNIX系統(tǒng)都提供C標(biāo)準(zhǔn)中定義的庫例程,所以該標(biāo)準(zhǔn)庫是很重要的。在1999年,ISOC標(biāo)準(zhǔn)被更新為ISO/IEC9899:1999。新標(biāo)準(zhǔn)顯著改善了對進(jìn)行數(shù)值處理的應(yīng)用程序的支持。ISOC1989年下半年,C程序設(shè)計(jì)語言的ANSI標(biāo)準(zhǔn)X34按標(biāo)準(zhǔn)定義的各個(gè)頭文件(header),可將ISOC庫分成24個(gè)區(qū)。下表列出了C標(biāo)準(zhǔn)定義的各個(gè)頭文件。按標(biāo)準(zhǔn)定義的各個(gè)頭文件(header),可將ISOC庫分成35

IEEEPOSIXPOSIX是一系列由IEEE制定的標(biāo)準(zhǔn),指的是可移植的操作系統(tǒng)接口(PortableOperatingSystemInterface)。它原來指的只是IEEE標(biāo)準(zhǔn)1003.1-1988(操作系統(tǒng)接口),后來則擴(kuò)展成包括很多標(biāo)記為1003的標(biāo)準(zhǔn)及標(biāo)準(zhǔn)草案,包括shell和實(shí)用程序(1003.2)該標(biāo)準(zhǔn)的目的是提高應(yīng)用程序在各種UNIX系統(tǒng)環(huán)境之間的可移植性。它定義了“依從POSIX的”(POSIXcompliant)操作系統(tǒng)必須提供的各種服務(wù)。IEEEPOSIXPOSIX是一系列由IEEE制定的標(biāo)準(zhǔn)36由于1003.1標(biāo)準(zhǔn)定義的是一個(gè)接口(interface)而不是一種實(shí)現(xiàn)(implementation),所以并不區(qū)分系統(tǒng)調(diào)用和庫函數(shù)。經(jīng)過不斷演變,最終的文檔作為IEEEStd.1003.1-1990正式出版,這也就是國際標(biāo)準(zhǔn)ISO/IEC9945-1:1990。通常被稱為POSIX.1。IEEE1003.1工作組繼續(xù)對標(biāo)準(zhǔn)做出修改,最終形成了IEEE標(biāo)準(zhǔn)1003.1-2001。由于1003.1標(biāo)準(zhǔn)定義的是一個(gè)接口(interface)而37IEEE標(biāo)準(zhǔn)1003.1-2001,其中包括了下列幾個(gè)標(biāo)準(zhǔn):.ISO/IEC9945-1(IEEE標(biāo)準(zhǔn)1003.1-1996),它包括.IEEE標(biāo)準(zhǔn)1003.1-1990。.IEEE標(biāo)準(zhǔn)1003.1b-1993(實(shí)時(shí)擴(kuò)展)。.IEEE標(biāo)準(zhǔn)1003.1c-1995(pthreads)。.IEEE標(biāo)準(zhǔn)1003.1i-1995(實(shí)時(shí)技術(shù)勘誤表)。.IEEEP1003.1a標(biāo)準(zhǔn)草案(系統(tǒng)接口修訂版)。.IEEE標(biāo)準(zhǔn)1003.1d-1999(高級實(shí)時(shí)擴(kuò)展)。.IEEE標(biāo)準(zhǔn)1003.1j-2000(更高級的實(shí)時(shí)擴(kuò)展)。.IEEE標(biāo)準(zhǔn)1003.1q-2000(文件跟蹤)。.IEEE標(biāo)準(zhǔn)1003.2d-1994(批處理擴(kuò)展)。.IEEEP1003.2b草案標(biāo)準(zhǔn)(附加的實(shí)用程序)。.IEEE標(biāo)準(zhǔn)1003.1g-2000(協(xié)議無關(guān)接口)的某些部分。.ISO/IEC9945-2(IEEE標(biāo)準(zhǔn)1003.2-1993)。.SingleUNIXSpecification第2版的基本規(guī)范。.開放組技術(shù)標(biāo)準(zhǔn),網(wǎng)絡(luò)服務(wù),5.2發(fā)行版。.ISO/IEC9899:1999,C編程語言。IEEE標(biāo)準(zhǔn)1003.1-2001,其中包括了下列幾個(gè)標(biāo)準(zhǔn)38

SingleUNIXSpecificationSingleUNIXSpecification(單一UNIX規(guī)范)(SUS)由OpenGroup發(fā)布,是POSIX.1標(biāo)準(zhǔn)的一個(gè)超集,定義了一些附加的接口,這些接口擴(kuò)展了基本的POSIX.1規(guī)范所提供的功能。相應(yīng)的系統(tǒng)接口全集被稱為X/Open系統(tǒng)接口(XSI,X/OpenSystemInterface)。XSI還定義了必須實(shí)現(xiàn)POSIX.1的哪些可選部分才能認(rèn)為是遵循XSI(XSIconforming)的。它們包括文件同步、存儲映射文件、存儲保護(hù)及線程接口。只有遵循XSI的實(shí)現(xiàn)才能稱為UNIX系統(tǒng)。2003年ISO將其批準(zhǔn)為國際標(biāo)準(zhǔn)ISO/IEC9945:2003。SingleUNIXSpecificationSing39二、UNIX系統(tǒng)結(jié)構(gòu)簡略結(jié)構(gòu)總體結(jié)構(gòu)UNIX運(yùn)行環(huán)境文件系統(tǒng)結(jié)構(gòu)UNIX核心結(jié)構(gòu)二、UNIX系統(tǒng)結(jié)構(gòu)簡略結(jié)構(gòu)40硬件kernelShell編譯部件實(shí)用程序應(yīng)用程序編譯程序UNIX簡略結(jié)構(gòu)硬件kernelShell編譯部件實(shí)用程序應(yīng)用程序編譯程序U41UNIX層次結(jié)構(gòu)說明:硬件:可以是便攜機(jī)、個(gè)人機(jī)、工作站、小型機(jī)等內(nèi)核:包括中斷、存儲、進(jìn)程、I/O、文件等管理程序Shell:具有多種功能的系統(tǒng)程序?qū)嵱贸绦颍和瓿纱蟛糠諹NIX高級命令的功能UNIX層次結(jié)構(gòu)說明:硬件:可以是便攜機(jī)、個(gè)人機(jī)、工作站、小42系統(tǒng)調(diào)用入口表Shell核心程序GUI實(shí)用程序和應(yīng)用程序中斷向量表設(shè)備開關(guān)表硬件系統(tǒng)調(diào)用接口硬件接口字符界面圖形界面用戶態(tài)核心態(tài)

總體結(jié)構(gòu)系統(tǒng)調(diào)用入口表Shell核心程序GUI實(shí)用程序和應(yīng)用程序中斷43CRTkeybordUNIXSERVERTTYPCPCMPSTNMTTY/PCPCRouterDialserverTermserver遠(yuǎn)程網(wǎng)RouterPSTNPSTNPCPCTTYPC控制臺網(wǎng)卡多端口卡啞終端或PC仿真終端(主機(jī)多用戶)啞終端撥號上網(wǎng)wwwemailftptelnet(偽終端)PC仿真終端…….(網(wǎng)絡(luò)多用戶)PPPPPPTCP/IP

UNIX運(yùn)行環(huán)境LANLAN串口CRTkeybordUNIXTTYPCPCMPSTNMTTY44文件系統(tǒng)結(jié)構(gòu)rootboot啟動(dòng)目錄,存放Bootloader和內(nèi)核

etcbinsbinlibusrvarhomebinsbinliu……wangtmpdevmntproctty1lp0注冊用戶目錄設(shè)備文件root用戶目錄內(nèi)存文件/根目錄被安裝的文件系統(tǒng)系統(tǒng)命令文件臨時(shí)文件變化文件庫文件系統(tǒng)文件文件系統(tǒng)結(jié)構(gòu)rootboot啟動(dòng)目錄,存放Bootloade45一般來說OS的核心有以下幾種:1.單塊核心(MONOLITHICKERNEL)將所有OS功能放入核心.UNIX就是這種結(jié)構(gòu).2.環(huán)狀核心分為核心,任務(wù),用戶幾級,如MINIX.LINUX也有這種特征,比如LINUX增加某些種類的服務(wù)時(shí)不像UNIX,必須重新啟動(dòng).這就是這種結(jié)構(gòu)比UNIX先進(jìn)的地方.3.無內(nèi)核:不區(qū)分核心和用戶程序的分別,這樣省去了狀態(tài)切換的時(shí)間,這種模式適合WEB服務(wù)器.4.微內(nèi)核微內(nèi)核和超微內(nèi)核結(jié)構(gòu)主要用于研究性操作系統(tǒng),還有一些嵌入式系統(tǒng)使用外核。微內(nèi)核將許多OS服務(wù)放入分離的進(jìn)程,如文件系統(tǒng),設(shè)備驅(qū)動(dòng)程序,而進(jìn)程通過消息傳遞調(diào)用OS服務(wù).微內(nèi)核結(jié)構(gòu)必然是多線程的。一般來說OS的核心有以下幾種:1.單塊核心(MONOLITH46用戶級核心級硬件級核心級traptrapI/O進(jìn)程

(單塊結(jié)構(gòu)monolithic)UNIX核心結(jié)構(gòu)系統(tǒng)調(diào)用界面程序庫硬件硬件控制driver字符設(shè)備塊設(shè)備cache文件系統(tǒng)用戶程序IPC調(diào)度存儲管理用戶級核心級硬件級核心級traptrapI/O進(jìn)程(單47用戶級核心級硬件級核心級Linux核心結(jié)構(gòu)用戶程序系統(tǒng)調(diào)用界面VFS內(nèi)存進(jìn)程SOCKETFS1FS2FS3driverTCP/IPDisk

driverFlopy

driverDISKFLOPYEtherCardEthercard

driver用戶級核心級硬件級核心級Linux核心結(jié)構(gòu)用戶程序系統(tǒng)調(diào)用界48習(xí)題什麼是內(nèi)核?什麼是shell?以UNIX環(huán)境為例說明什麼是主機(jī)多用戶環(huán)境和網(wǎng)絡(luò)多用戶環(huán)境?UNIX的文件系統(tǒng)是什麼結(jié)構(gòu)?這有什麼優(yōu)點(diǎn)?UNIX的核心屬于什麼結(jié)構(gòu)?簡述各成分的功能及它們間的關(guān)系。Linux中VFS的作用是什麼?有什麼優(yōu)點(diǎn)?習(xí)題什麼是內(nèi)核?什麼是shell?49三、UNIX特點(diǎn)主要優(yōu)缺點(diǎn)“機(jī)制,而不是策略”UNIX哲學(xué)基礎(chǔ)UNIX哲學(xué)之一言以蔽之三、UNIX特點(diǎn)主要優(yōu)缺點(diǎn)50UNIX優(yōu)點(diǎn)和缺點(diǎn)Unix優(yōu)點(diǎn)設(shè)計(jì)精湛:小核心和大量實(shí)用工具(用管道和shell組合)簡單小巧的文件系統(tǒng)(字節(jié)流文件)系統(tǒng)使用文本數(shù)據(jù)(便于管理)I/O的文件表示便于I/O重定向(設(shè)備獨(dú)立性)可移植性(c語言)

Unix缺點(diǎn)I/O庫復(fù)雜用戶接口不方便(描述過于簡單)積木式工具要求程序員有豐富的想象力和創(chuàng)造力版本太多,可移植性不能完全實(shí)現(xiàn)無序模塊結(jié)構(gòu)內(nèi)核,層次不清晰,顯得復(fù)雜UNIX優(yōu)點(diǎn)和缺點(diǎn)Unix優(yōu)點(diǎn)51機(jī)制,而不是策略最持久的異議恰恰來自Unix哲學(xué)的一個(gè)特性,這一條特性是Xwindow設(shè)計(jì)者首先明確提出的——“機(jī)制,而不是策略”。這種選擇機(jī)制而不是策略的代價(jià)是:當(dāng)用戶“可以”自己設(shè)置策略時(shí),他們其實(shí)是“必須”自己設(shè)置策略。只看眼前,Unix的這種自由放縱主義風(fēng)格會讓它失去很多非技術(shù)型用戶。但從長遠(yuǎn)考慮,最終你會發(fā)覺這個(gè)“錯(cuò)誤”換來至關(guān)重要的優(yōu)勢:策略相對短壽,而機(jī)制才會長存。機(jī)制,而不是策略最持久的異議恰恰來自Unix哲學(xué)的一個(gè)特性52UNIX哲學(xué)基礎(chǔ)

從整體上來說,可以概括為以下17點(diǎn):模塊原則:使用簡潔的接口拼合簡單的部件。BrianKernighan曾經(jīng)說過的:“計(jì)算機(jī)編程的本質(zhì)就是控制復(fù)雜度”。要編制復(fù)雜軟件而又不至于一敗涂地的唯一方法就是降低其整體復(fù)雜度——用清晰的接口把若干簡單的模塊組合成一個(gè)復(fù)雜軟件。UNIX哲學(xué)基礎(chǔ)

從整體上來說,可以概括為以下17點(diǎn):模塊532.清晰原則:清晰勝于機(jī)巧。在寫程序時(shí),要想到你不是寫給執(zhí)行代碼的計(jì)算機(jī)看的,而是給人——將來閱讀維護(hù)源碼的人,包括你自己——看的。這個(gè)建議不僅意味著代碼注釋。良好的Unix實(shí)踐同樣信奉在選擇算法和實(shí)現(xiàn)時(shí)就應(yīng)該考慮到將來的可擴(kuò)展性。3.組合原則:設(shè)計(jì)時(shí)考慮拼接組合。如果程序彼此之間不能有效通信,那么軟件就難免會陷入復(fù)雜度的泥淖。要想讓程序具有組合性,就要使程序彼此獨(dú)立。2.清晰原則:清晰勝于機(jī)巧。544.分離原則:策略同機(jī)制分離,接口同引擎分離。其中一個(gè)方法是將應(yīng)用程序分成可以協(xié)作的前端和后端進(jìn)程,通過套接字上層的專用應(yīng)用協(xié)議進(jìn)行通訊;前端實(shí)現(xiàn)策略,后端實(shí)現(xiàn)機(jī)制。5.簡潔原則:設(shè)計(jì)要簡潔,復(fù)雜度能低則低。一種軟件文化,以簡潔為美。6.吝嗇原則:除非確無它法,不要編寫龐大的程序?!按蟆庇袃芍睾x:體積大,復(fù)雜程度高。4.分離原則:策略同機(jī)制分離,接口同引擎分離。557.透明性原則:設(shè)計(jì)要可見,以便審查和調(diào)試。一個(gè)特別有效的減少調(diào)試工作量的方法就是設(shè)計(jì)時(shí)充分考慮透明性和顯見性。透明性是指你一眼就能夠看出軟件是在做什么以及怎樣做的。顯見性指程序帶有監(jiān)視和顯示內(nèi)部狀態(tài)的功能。8.健壯原則:健壯源于透明與簡潔。讓程序健壯的方法,就是讓程序的內(nèi)部邏輯更易于理解。要做到這一點(diǎn)主要有兩種方法:透明化和簡潔化。9.表示原則:把知識疊入數(shù)據(jù)以求邏輯質(zhì)樸而健壯。在設(shè)計(jì)中,你應(yīng)該主動(dòng)將代碼的復(fù)雜度轉(zhuǎn)移到數(shù)據(jù)之中去。7.透明性原則:設(shè)計(jì)要可見,以便審查和調(diào)試。5610.通俗原則:接口設(shè)計(jì)避免標(biāo)新立異。(也就是眾所周知的“最少驚奇原則”。)最易用的程序就是用戶需要學(xué)習(xí)新東西最少的程序——或者,換句話說,最易用的程序就是最切合用戶已有知識的程序。11.緘默原則:如果一個(gè)程序沒什么好說的,就沉默。12.補(bǔ)救原則:出現(xiàn)異常時(shí),馬上退出并給出足夠錯(cuò)誤信息。軟件在發(fā)生錯(cuò)誤的時(shí)候也應(yīng)該與在正常操作的情況下一樣,有透明的邏輯。10.通俗原則:接口設(shè)計(jì)避免標(biāo)新立異。5713.經(jīng)濟(jì)原則:寧花機(jī)器一分,不花程序員一秒。14.生成原則:避免手工hack,盡量編寫程序去生成程序。由程序生成代碼幾乎(在各個(gè)層次)總是比手寫代碼廉價(jià)并且更值得信賴。15.優(yōu)化原則:雕琢前先要有原型,跑之前先學(xué)會走。在Unix世界里,有一個(gè)非常明確的悠久傳統(tǒng):先制作原型,再精雕細(xì)琢。優(yōu)化之前先確保能用。或者:先能走,再學(xué)跑?!皹O限編程”宗師KentBeck從另一種不同的文化將這一點(diǎn)有效地?cái)U(kuò)展為:先求運(yùn)行,再求正確,最后求快。13.經(jīng)濟(jì)原則:寧花機(jī)器一分,不花程序員一秒。5816.多樣原則:決不相信所謂“不二法門”的斷言。Unix奉行的是廣泛采用多種語言、開放的可擴(kuò)展系統(tǒng)和用戶定制機(jī)制。17.擴(kuò)展原則:設(shè)計(jì)著眼未來,未來總比預(yù)想來得快。設(shè)計(jì)代碼時(shí),要有很好的組織,讓將來的開發(fā)者增加新功能時(shí)無需拆毀或重建整個(gè)架構(gòu)。建議在編寫代碼時(shí)要考慮到將來的需要,使以后增加功能比較容易。程序接合部要靈活,在代碼中加入“如果你需要……”的注釋。16.多樣原則:決不相信所謂“不二法門”的斷言。59如果剛開始接觸Unix,這些原則值得好好體味一番。

同時(shí),談軟件工程的文章常常會推薦大部分的這些原則,因?yàn)檫@是構(gòu)建任何成功的計(jì)算機(jī)應(yīng)用系統(tǒng)的廣泛經(jīng)驗(yàn)。如果剛開始接觸Unix,這些原則值得好好體味一番。

60Unix哲學(xué)之一言以蔽之所有的Unix哲學(xué)濃縮為一條鐵律,那就是編程大師們奉為圭臬的“KISS”原則:Unix哲學(xué)之一言以蔽之所有的Unix哲學(xué)濃縮為一條鐵律61

結(jié)束語謝謝大家聆聽!?。?2

結(jié)束語謝謝大家聆聽?。?!6201第一二次課UNIX系統(tǒng)簡介01第一二次課UNIX系統(tǒng)簡介63課件原作者:劉日升教授楊芙清、仲萃豪、孫玉方、劉日升等是開拓我國UNIX操作系統(tǒng)事業(yè)的先驅(qū)者。孫玉方(中科院軟件所副所長,紅旗LINUX的創(chuàng)始人)。二人第一次在中國介紹UNIX,第一次講授UNIX,剖析UNIX內(nèi)核。是中國接觸UNIX的先輩。劉日升;孫玉方;UNIX操作系統(tǒng)分析報(bào)告[J];計(jì)算機(jī)研究與發(fā)展;1982年09期課件原作者:劉日升教授64最新01第一二次課UNIX系統(tǒng)簡介課件65最新01第一二次課UNIX系統(tǒng)簡介課件66最新01第一二次課UNIX系統(tǒng)簡介課件67最新01第一二次課UNIX系統(tǒng)簡介課件68最新01第一二次課UNIX系統(tǒng)簡介課件69最新01第一二次課UNIX系統(tǒng)簡介課件70一、UNIX歷史

Unix的生命力

Unix起源與歷史Unix當(dāng)前流行版本Unix標(biāo)準(zhǔn)化一、UNIX歷史Unix的生命力71UNIX的生命力Unix誕生于1969年,比PC機(jī)、工作站、微處理器甚至視頻顯示終端都要早,與第一塊半導(dǎo)體存儲器是同一時(shí)代的古物。按照計(jì)算機(jī)工業(yè)的標(biāo)準(zhǔn),那已經(jīng)是好幾個(gè)地質(zhì)紀(jì)年前的事了。世界上第一臺PC機(jī)是由IBM公司在1981年推出。英特爾公司成立于1968年,1971年11月15日:世界上第一塊個(gè)人微型處理器4004誕生。1972年:8008微處理器。1974年:8080微處理器。1978年:8086-8088微處理器Unix比其它任何操作系統(tǒng)都更廣泛地應(yīng)用在各種機(jī)型上。沒有哪一種操作系統(tǒng)能像Unix那樣,能同時(shí)在作為研究工具、定制技術(shù)應(yīng)用的友好宿主機(jī)、商用成品軟件平臺和互聯(lián)網(wǎng)技術(shù)的重要部分等各個(gè)領(lǐng)域都大放異彩。UNIX的生命力Unix誕生于1969年,比PC機(jī)、72Unix的生命力和適應(yīng)力令人稱奇。不變的東西有很多:語言、系統(tǒng)調(diào)用、工具用法——它們積年不變,甚至可以用上數(shù)十載。而在其它操作系統(tǒng)中則無法預(yù)判什么東西會持久不變,有時(shí)候甚至整個(gè)操作系統(tǒng)都會被淘汰。Unix的穩(wěn)定和成功在很大程度上歸功于它與生俱來的內(nèi)在優(yōu)勢,歸功于KenThompson,DennisRitchie,BrianKernighan,DougMcIroy,RobPike和其他早期Unix開發(fā)者一開始就作出的設(shè)計(jì)決策。Unix的生命力和適應(yīng)力令人稱奇。73Unix的起源及歷史“第二版效應(yīng)”與“第三版效應(yīng)”。最初的Unix就是一個(gè)第三系統(tǒng)。Unix的祖輩是小而簡單的兼容分時(shí)系統(tǒng)CTSS(CompatibleTime-SharingSystem)Unix的父輩是頗具開拓性的MULTICS項(xiàng)目,(MultiplexedInformationandComputingService,多路信息與計(jì)算服務(wù)),能夠支持大群用戶對大型計(jì)算機(jī)的交互式分時(shí)使用。最終MULTICS因不堪自身重負(fù)而崩潰了。但Unix卻正是從它的廢墟中破殼而出。Unix的起源及歷史“第二版效應(yīng)”與“第三版效應(yīng)”。74創(chuàng)世紀(jì):1969—1971Unix于1969年誕生于貝爾實(shí)驗(yàn)室(BellLabs)的計(jì)算機(jī)科學(xué)家們的頭腦中。當(dāng)貝爾實(shí)驗(yàn)室從Multics研究聯(lián)盟中退出時(shí),KenThompson等人帶著從Multics激發(fā)的靈感留了下來。于是UNICS(UNiplexedInformationandComputingService,單路信息與計(jì)算服務(wù))問世于一臺PDP-7小型機(jī)上。KenThompsonDennisRitchieBrianKernighan創(chuàng)世紀(jì):1969—1971Unix于1969年誕生于貝爾75DigitalEquipmentCorporationPDP-7迷你計(jì)算機(jī)DigitalEquipmentCorporation76UNIX的實(shí)用:1970年,當(dāng)時(shí)貝爾實(shí)驗(yàn)室的專利部門要設(shè)計(jì)開發(fā)一套文書處理系統(tǒng),買了一臺擁有512Kbytes硬盤的PDP-11/20計(jì)算機(jī)。Thompson與Ritchie將UNIX移植到該機(jī)上,并在此系統(tǒng)上開發(fā)了一套文書處理工具(nroff/troff的前身)。正式命名第一版。UNIX的實(shí)用:77最初的Unix用匯編語言寫成,應(yīng)用程序用匯編語言和B語言混和編寫。B語言屬于一種解譯語言,執(zhí)行成效不好,于是Ritchie又將它發(fā)展成可產(chǎn)生機(jī)器碼、允許定義數(shù)據(jù)形態(tài)及結(jié)構(gòu)——C語言。1973年,Thompson和Ritchie成功地用C語言重寫了整個(gè)Unix系統(tǒng)。UNIX于是首度出現(xiàn)正式版本——V5(第五版)。

1974年[Ritchie-Thompson]在《美國計(jì)算機(jī)通信》(CommunicationsoftheACM)上發(fā)表論文第一次公開展示了Unix。出埃及記:1971-1980最初的Unix用匯編語言寫成,應(yīng)用程序用匯編語言和B語言混78C語言的發(fā)展C語言的原型ALGOL60語言。1963年,劍橋大學(xué)將ALGOL60語言發(fā)展成為CPL(CombinedProgrammingLanguage)語言。1967年,劍橋大學(xué)的MatinRichards對CPL語言進(jìn)行簡化,產(chǎn)生BCPL語言。1970年,KenThompson將BCPL進(jìn)行了修改,并為它起了一個(gè)有趣的名字“B語言”。Ritchie向Thompson的B語言中加入數(shù)據(jù)類型和新的句法,產(chǎn)生了一種新語言——C語言。C語言是一門偉大的承前啟后的語言。C語言是借助Unix操作系統(tǒng)的翅膀而起飛的,Unix操作系統(tǒng)也由于C而得已快速移植落地生根,兩者相輔相承,成就了軟件史上最精彩的一幕。C語言的發(fā)展C語言的原型ALGOL60語言。791972年在PDP-11旁的Ken(坐)和Dennis(站)1972年在PDP-11旁的Ken(坐)和Dennis(80根據(jù)1958年為解決反托拉斯案例達(dá)成的和解協(xié)議,AT&T被禁止進(jìn)入計(jì)算機(jī)相關(guān)的商業(yè)領(lǐng)域。所以,Unix不能夠成為一種商品。而且貝爾實(shí)驗(yàn)室必須將非電話業(yè)務(wù)的技術(shù)許可給任何提出要求的人。CACM論文發(fā)表后,全球各個(gè)研究實(shí)驗(yàn)室和大學(xué)都嚷著要親身體驗(yàn)Unix。KenThompson開始默默回應(yīng)那些請求,將磁帶和磁盤一包包地寄送出去。V6?!璘CBerkeley也就是依據(jù)這個(gè)版本開始研究并加以發(fā)展,并在1977年發(fā)表1BSD(BerkeleySoftwareDistribution)。根據(jù)1958年為解決反托拉斯案例達(dá)成的和解協(xié)議,AT&T被禁81現(xiàn)代Unix程序員公認(rèn)的第一個(gè)完全意義上的Unix是1978年發(fā)布的V7版本。UNIXTime-SharingSystem,7thEditionUNIXV7包含F(xiàn)ortran77compiler、Shell(BourneShell)、文件處理工具(nroff/troff、roff、MSmocro等)、UNIX-to-UNIX-file-Copy(支持兩臺UNIX機(jī)器間的檔案傳輸)、數(shù)據(jù)處理工具(AWK、SED等)、除錯(cuò)工具(ADB)、程序開發(fā)工具(MAKE)、Lexicalanalyzergenerator(LEX、YACC等)、簡單的繪圖工具、并支持C語言及LINTverifier商業(yè)化的不平坦歷程--UNIX版本的戰(zhàn)爭?,F(xiàn)代Unix程序員公認(rèn)的第一個(gè)完全意義上的Unix是1982AT&TV6(1975)V7(1978)SystemIII(1981)SystemV.1(1983)SystemV.4(1989)UNIXWARE(Novell1992)(SCO1995)UNIXWARE7.0(1997)MicroSoftXenix(1980)XenixV(1988)SCOUnix(1989)OpenServer5.0(1995)MINIX(1987)(A.S.Tanenbaum)Linux(LinusTorvalds1991)UCBerkeleyBSD(1978)4.1BSD(1981)TCP/IP4.2BSD(1984)4.3BSD(1987)4.4BSD(1992)V8(1983)V9(1987)V10(1988)Plan9(1990)SUNSUNOS(1984)SUNOS4(1989)SUNOS5Solaris2(1992)Solaris8(1999)DECUltrixOSFOSF/1(1990)DigitalUNIX(DEC1995Compag1998)TRu64UNIX(1999)IBMAIX(1986)HPHP_UX(1986)SGIIRIX(1990)CMUMach1988OpenUNIX8(2001)UNIX族系A(chǔ)T&TV7(1978)SystemIIISystemV83UNIX的流行版本

公司:Unix版本/CPU型號SUN:Solaris/SPARC,IntelHP:HP-UX/PA-RISCIBM:AIX

/PowerPC

SCO:UnixWare7.0,OpenServer/IntelCompaq:Tru64UNIX/AlphaSGI:IRIX

/MIPSGNU:Linux/CISC(Intel,MC68000)RISC(SPARC,Alpha,MIPS)UNIX的流行版本公司:Unix版本/84再來看看幾件有關(guān)的事!再來看看幾件有關(guān)的事!85微軟的興起1981年,微軟同IBM就新型IBMPC達(dá)成了歷史性交易:PC-DOS。比爾·蓋茨從西雅圖計(jì)算機(jī)產(chǎn)品公司(SCP,SeattleComputerProducts)買下了QDOS(QuickandDirtyOperatingSystem,是SCP公司拼湊出來的第一個(gè)廣泛采用的PC操作系統(tǒng)CP/M的翻版)。蓋茨對SCP隱瞞了同IBM的交易,只花了五萬美元。后來,蓋茨又說服了IBM允許微軟將MS-DOS從硬件中剝離出來單獨(dú)出售。接下來的十年中,蓋茨利用這個(gè)非他所寫的程序變成了超級億萬富翁,而比首筆交易更加精明的商業(yè)策略更是讓微軟壟斷了桌面計(jì)算機(jī)市場。作為產(chǎn)品的XENIX被放棄,最終賣給了SCO公司。微軟的興起1981年,微軟同IBM就新型IBMPC86AT&T的拆分1983年,美國司法部對在針對AT&T的第二起反托拉斯訴訟中獲勝,并拆分了貝爾系統(tǒng)。這次判決將AT&T從1958年的禁止將Unix產(chǎn)品化的和解協(xié)議中解脫了出來。AT&T馬上忙不迭地將UnixSystemV商業(yè)化——這一舉措差點(diǎn)扼殺了Unix。當(dāng)時(shí),沒有人意識到,Unix的產(chǎn)業(yè)化會破壞Unix源碼的自由交流,而恰是后者滋養(yǎng)了Unix系統(tǒng)早期的活力。AT&T的拆分1983年,美國司法部對在針對AT&T的87AT&T與BSD的官司BSD不斷增大的影響力終于引起了AT&T的關(guān)注,于是開始了一場曠日持久的版權(quán)官司,一直打到AT&T將自己的Unix系統(tǒng)實(shí)驗(yàn)室賣掉,新接手的Novell采取了一種比較開明的做法,允許伯克利自由發(fā)布自己的BSD,但是前提是必須將來自AT&T的代碼完全刪除,于是誕生了4.4BSDLite版。4.4BSDLite不存在法律問題,成為現(xiàn)代BSD系統(tǒng)的基礎(chǔ)版本。盡管后來,非商業(yè)版的UNIX系統(tǒng)經(jīng)過了很多演變,但其最終都是建立在BSD版本上(Linux除外)。所以從這個(gè)角度上,4.4BSD又是所有自由(Free)版Unix的基礎(chǔ),它們和SYSTEMV及Linux共同構(gòu)成Unix操作系統(tǒng)這片璀璨的星空。AT&T與BSD的官司BSD不斷增大的影響力終于引起了A88UNIX與DARPA握手1980年,國防部高級研究計(jì)劃局(DARPA,DefenseAdvancedResearchProjectsAgency)正在為AI,VLSI及計(jì)算器視覺等研究找尋一個(gè)可共通作業(yè)的計(jì)算機(jī)環(huán)境。硬件方面的首選是DEC的VAX主機(jī),配合的操作系統(tǒng)是VMS。但是需要VMS做調(diào)整,包括實(shí)現(xiàn)全新的TCP/IP協(xié)議棧。因DEC不太樂意改動(dòng)他們的專有操作系統(tǒng),DARPA選擇了伯克利Unix作為平臺——顯然因?yàn)榭梢院翢o阻礙地拿到它的源碼。UNIX與DARPA握手1980年,國防部高級研究計(jì)891983年后,隨著BSD植入了TCP/IP,Unix文化和ARPANET文化開始融合。隨著Unix的成功,TCP/IP逐步成為Unix機(jī)器的標(biāo)準(zhǔn)網(wǎng)絡(luò)協(xié)議。從此,Unix與TCP/IP相伴,占領(lǐng)了網(wǎng)絡(luò)時(shí)代的大舞臺。1983年后,隨著BSD植入了TCP/IP,Unix文90GNU宣言"GNU'sNotUnix!"1983年,MIT的RichardM.Stallman發(fā)表了GNU宣言,1985年發(fā)起了自由軟件基金會(FreeSoftwareFoundation)?!狥reeUNIX。制定出了屬于GNU計(jì)劃的軟件版權(quán)(“copyleft”),與著作版權(quán)(copyright)“對立”。這就是GPL--GeneralPurposeLicense(通用公共授權(quán))。90年代初,GNU計(jì)劃已完成了質(zhì)量與數(shù)量均十分可觀的系統(tǒng)工具,被廣泛使用在當(dāng)時(shí)各種工作站的UNIX系統(tǒng)上。雖然已有如此的成果,但仍稱不上是完整的操作系統(tǒng)。他們?nèi)鄙僖恢儆谧约旱摹昂诵某绦颍╧ernal)"。GNU宣言"GNU'sNotUnix!"1983911985年,CarnegieMellonUniversity以4.3BSD為發(fā)展基礎(chǔ),采用微核心的寫法,成立自己的計(jì)劃,名稱叫“Hurd“。GNUHurd是GNU工程中取代Unix的核心,但目前仍在工作中。在眾多自由軟件寫作者的努力下,一條新的大道其實(shí)已經(jīng)被開拓出來:Linux是一套版權(quán)徹徹底底與

AT&T

無關(guān)的

UNIX-likeOS。Linux里大部分的系統(tǒng)工具,來自于

GNU

計(jì)劃成果及其它的自由軟件寫作計(jì)劃產(chǎn)生的軟件。這套操作系統(tǒng),包含了自由軟件寫作者的共同心血,其實(shí)也就是

RMS

多年來想要達(dá)成的宿愿

--"FreeUNIX"。所以,也有人用

GNU/Linux

來稱呼這個(gè)操作系統(tǒng)。1985年,CarnegieMellonUnivers92UNIX簡史1965-1969Multics(MultipleInformationComputingService)USDOD國防部MIT,AT&TBell,GE1970

UnixV1(PDP-7),AT&TBell,K.Thompson,D.M.Ritchie1970UnixV2(BLanguage),K.Thompson1972

CLanguage,D.M.Ritchie1973

UnixV5(C)1973ACMOS原理會議1974

CACM“TheUnixTimeSharingSystem”1975

UnixV6發(fā)行源代碼1978

UnixV7移植到不同機(jī)器上1980BSD發(fā)行BSD4.0,Microsoft發(fā)行XENIX1981AT&T

SystemIII(USG-UNIXSystemGroup)1983AT&T

SystemV(USG并入U(xiǎn)SL(UNIXSystemLaboratory))1983ACMTuring獎(jiǎng)(D.M.Rithie&K.Thompson)UNIX簡史1965-1969Multics(Mul931984UNIXSystemVRelease2(SVR2)推出。4.2BSD推出1987SVR3推出。4.3BSD推出1988

POSIX.1發(fā)布。OSF和UI成立1989SVR4推出1991

LinusTorvalds推出Linux1992SVR4.2(USL)推出。4.4BSD推出(最后版)

USL并入Novell發(fā)布SVR4.2MP(最后版)和UNIXWARE1995X/Open推出UNIX95UNIXWARE賣給SCO(SantaCruzOperation)1996

OpenGroup成立1998OpenGroup推出UNIX981999Linux2.2內(nèi)核發(fā)布2001Linux2.4內(nèi)核發(fā)布1984UNIXSystemVRelease294UNIX標(biāo)準(zhǔn)由各自獨(dú)立的組織所制定的三個(gè)標(biāo)準(zhǔn):ISOCIEEEPOSIXSingleUNIXSpecificationUNIX標(biāo)準(zhǔn)由各自獨(dú)立的組織所制定的三個(gè)標(biāo)準(zhǔn):95ISOC1989年下半年,C程序設(shè)計(jì)語言的ANSI標(biāo)準(zhǔn)X3.159-1989得到批準(zhǔn)。此標(biāo)準(zhǔn)已被采納為國際標(biāo)準(zhǔn)ISO/IEC9899:1990。此標(biāo)準(zhǔn)不僅定義了C程序設(shè)計(jì)語言的語法和語義,還定義了其標(biāo)準(zhǔn)庫。因?yàn)樗鞋F(xiàn)今的UNIX系統(tǒng)都提供C標(biāo)準(zhǔn)中定義的庫例程,所以該標(biāo)準(zhǔn)庫是很重要的。在1999年,ISOC標(biāo)準(zhǔn)被更新為ISO/IEC9899:1999。新標(biāo)準(zhǔn)顯著改善了對進(jìn)行數(shù)值處理的應(yīng)用程序的支持。ISOC1989年下半年,C程序設(shè)計(jì)語言的ANSI標(biāo)準(zhǔn)X96按標(biāo)準(zhǔn)定義的各個(gè)頭文件(header),可將ISOC庫分成24個(gè)區(qū)。下表列出了C標(biāo)準(zhǔn)定義的各個(gè)頭文件。按標(biāo)準(zhǔn)定義的各個(gè)頭文件(header),可將ISOC庫分成97

IEEEPOSIXPOSIX是一系列由IEEE制定的標(biāo)準(zhǔn),指的是可移植的操作系統(tǒng)接口(PortableOperatingSystemInterface)。它原來指的只是IEEE標(biāo)準(zhǔn)1003.1-1988(操作系統(tǒng)接口),后來則擴(kuò)展成包括很多標(biāo)記為1003的標(biāo)準(zhǔn)及標(biāo)準(zhǔn)草案,包括shell和實(shí)用程序(1003.2)該標(biāo)準(zhǔn)的目的是提高應(yīng)用程序在各種UNIX系統(tǒng)環(huán)境之間的可移植性。它定義了“依從POSIX的”(POSIXcompliant)操作系統(tǒng)必須提供的各種服務(wù)。IEEEPOSIXPOSIX是一系列由IEEE制定的標(biāo)準(zhǔn)98由于1003.1標(biāo)準(zhǔn)定義的是一個(gè)接口(interface)而不是一種實(shí)現(xiàn)(implementation),所以并不區(qū)分系統(tǒng)調(diào)用和庫函數(shù)。經(jīng)過不斷演變,最終的文檔作為IEEEStd.1003.1-1990正式出版,這也就是國際標(biāo)準(zhǔn)ISO/IEC9945-1:1990。通常被稱為POSIX.1。IEEE1003.1工作組繼續(xù)對標(biāo)準(zhǔn)做出修改,最終形成了IEEE標(biāo)準(zhǔn)1003.1-2001。由于1003.1標(biāo)準(zhǔn)定義的是一個(gè)接口(interface)而99IEEE標(biāo)準(zhǔn)1003.1-2001,其中包括了下列幾個(gè)標(biāo)準(zhǔn):.ISO/IEC9945-1(IEEE標(biāo)準(zhǔn)1003.1-1996),它包括.IEEE標(biāo)準(zhǔn)1003.1-1990。.IEEE標(biāo)準(zhǔn)1003.1b-1993(實(shí)時(shí)擴(kuò)展)。.IEEE標(biāo)準(zhǔn)1003.1c-1995(pthreads)。.IEEE標(biāo)準(zhǔn)1003.1i-1995(實(shí)時(shí)技術(shù)勘誤表)。.IEEEP1003.1a標(biāo)準(zhǔn)草案(系統(tǒng)接口修訂版)。.IEEE標(biāo)準(zhǔn)1003.1d-1999(高級實(shí)時(shí)擴(kuò)展)。.IEEE標(biāo)準(zhǔn)1003.1j-2000(更高級的實(shí)時(shí)擴(kuò)展)。.IEEE標(biāo)準(zhǔn)1003.1q-2000(文件跟蹤)。.IEEE標(biāo)準(zhǔn)1003.2d-1994(批處理擴(kuò)展)。.IEEEP1003.2b草案標(biāo)準(zhǔn)(附加的實(shí)用程序)。.IEEE標(biāo)準(zhǔn)1003.1g-2000(協(xié)議無關(guān)接口)的某些部分。.ISO/IEC9945-2(IEEE標(biāo)準(zhǔn)1003.2-1993)。.SingleUNIXSpecification第2版的基本規(guī)范。.開放組技術(shù)標(biāo)準(zhǔn),網(wǎng)絡(luò)服務(wù),5.2發(fā)行版。.ISO/IEC9899:1999,C編程語言。IEEE標(biāo)準(zhǔn)1003.1-2001,其中包括了下列幾個(gè)標(biāo)準(zhǔn)100

SingleUNIXSpecificationSingleUNIXSpecification(單一UNIX規(guī)范)(SUS)由OpenGroup發(fā)布,是POSIX.1標(biāo)準(zhǔn)的一個(gè)超集,定義了一些附加的接口,這些接口擴(kuò)展了基本的POSIX.1規(guī)范所提供的功能。相應(yīng)的系統(tǒng)接口全集被稱為X/Open系統(tǒng)接口(XSI,X/OpenSystemInterface)。XSI還定義了必須實(shí)現(xiàn)POSIX.1的哪些可選部分才能認(rèn)為是遵循XSI(XSIconforming)的。它們包括文件同步、存儲映射文件、存儲保護(hù)及線程接口。只有遵循XSI的實(shí)現(xiàn)才能稱為UNIX系統(tǒng)。2003年ISO將其批準(zhǔn)為國際標(biāo)準(zhǔn)ISO/IEC9945:2003。SingleUNIXSpecificationSing101二、UNIX系統(tǒng)結(jié)構(gòu)簡略結(jié)構(gòu)總體結(jié)構(gòu)UNIX運(yùn)行環(huán)境文件系統(tǒng)結(jié)構(gòu)UNIX核心結(jié)構(gòu)二、UNIX系統(tǒng)結(jié)構(gòu)簡略結(jié)構(gòu)102硬件kernelShell編譯部件實(shí)用程序應(yīng)用程序編譯程序UNIX簡略結(jié)構(gòu)硬件kernelShell編譯部件實(shí)用程序應(yīng)用程序編譯程序U103UNIX層次結(jié)構(gòu)說明:硬件:可以是便攜機(jī)、個(gè)人機(jī)、工作站、小型機(jī)等內(nèi)核:包括中斷、存儲、進(jìn)程、I/O、文件等管理程序Shell:具有多種功能的系統(tǒng)程序?qū)嵱贸绦颍和瓿纱蟛糠諹NIX高級命令的功能UNIX層次結(jié)構(gòu)說明:硬件:可以是便攜機(jī)、個(gè)人機(jī)、工作站、小104系統(tǒng)調(diào)用入口表Shell核心程序GUI實(shí)用程序和應(yīng)用程序中斷向量表設(shè)備開關(guān)表硬件系統(tǒng)調(diào)用接口硬件接口字符界面圖形界面用戶態(tài)核心態(tài)

總體結(jié)構(gòu)系統(tǒng)調(diào)用入口表Shell核心程序GUI實(shí)用程序和應(yīng)用程序中斷105CRTkeybordUNIXSERVERTTYPCPCMPSTNMTTY/PCPCRouterDialserverTermserver遠(yuǎn)程網(wǎng)RouterPSTNPSTNPCPCTTYPC控制臺網(wǎng)卡多端口卡啞終端或PC仿真終端(主機(jī)多用戶)啞終端撥號上網(wǎng)wwwemailftptelnet(偽終端)PC仿真終端…….(網(wǎng)絡(luò)多用戶)PPPPPPTCP/IP

UNIX運(yùn)行環(huán)境LANLAN串口CRTkeybordUNIXTTYPCPCMPSTNMTTY106文件系統(tǒng)結(jié)構(gòu)rootboot啟動(dòng)目錄,存放Bootloader和內(nèi)核

etcbinsbinlibusrvarhomebinsbinliu……wangtmpdevmntproctty1lp0注冊用戶目錄設(shè)備文件root用戶目錄內(nèi)存文件/根目錄被安裝的文件系統(tǒng)系統(tǒng)命令文件臨時(shí)文件變化文件庫文件系統(tǒng)文件文件系統(tǒng)結(jié)構(gòu)rootboot啟動(dòng)目錄,存放Bootloade107一般來說OS的核心有以下幾種:1.單塊核心(MONOLITHICKERNEL)將所有OS功能放入核心.UNIX就是這種結(jié)構(gòu).2.環(huán)狀核心分為核心,任務(wù),用戶幾級,如MINIX.LINUX也有這種特征,比如LINUX增加某些種類的服務(wù)時(shí)不像UNIX,必須重新啟動(dòng).這就是這種結(jié)構(gòu)比UNIX先進(jìn)的地方.3.無內(nèi)核:不區(qū)分核心和用戶程序的分別,這樣省去了狀態(tài)切換的時(shí)間,這種模式適合WEB服務(wù)器.4.微內(nèi)核微內(nèi)核和超微內(nèi)核結(jié)構(gòu)主要用于研究性操作系統(tǒng),還有一些嵌入式系統(tǒng)使用外核。微內(nèi)核將許多OS服務(wù)放入分離的進(jìn)程,如文件系統(tǒng),設(shè)備驅(qū)動(dòng)程序,而進(jìn)程通過消息傳遞調(diào)用OS服務(wù).微內(nèi)核結(jié)構(gòu)必然是多線程的。一般來說OS的核心有以下幾種:1.單塊核心(MONOLITH108用戶級核心級硬件級核心級traptrapI/O進(jìn)程

(單塊結(jié)構(gòu)monolithic)UNIX核心結(jié)構(gòu)系統(tǒng)調(diào)用界面程序庫硬件硬件控制driver字符設(shè)備塊設(shè)備cache文件系統(tǒng)用戶程序IPC調(diào)度存儲管理用戶級核心級硬件級核心級traptr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論