添加的内容 删除的内容
(我来啦, replaced: 員 → 员 (9), 內 → 内 (6), 壯 → 壮, 連結 → 链接 (3), 參考文獻 → 参考文献, 參與 → 参与, 國 → 国 (6), 開 → 开 (30), 學 → 学 (7), 參 → 参 (2), 會 → 会 (15), 長 → 长 (4), 與 → 与 (17), 間 → 间 (13), 處 → 处 (3), 務 → 务 (2), 團 → 团 (2), 師 → 师 (2), 隊 → 队, 導 → 导 (5), 漢 → 汉, 語 → 语 (9), 上將 → 上将, 麥 → 麦, 溝通 → 沟通, 權 → 权 (5), 勞 → 劳, 無 → 无 (7), 構 → 构 (12), 興 → 兴 (2), 關 → 关 (2), 歐 → 欧, 將 → 将 (4), 領 → 领 (2), 舊 → 旧 (2), 協 → 协 (17), 應 → 应 (20), 魯 → 鲁, 見 → 见 (3), 來 → 来 (40), 專 → 专 (5), 義 → 义 (2), 對 → 对 (15), 動 → 动 (8), 爾 → 尔 (16), 發 → 发 (22…) |
小 (机器人:清理不当的来源、移除无用的模板参数;整理源码) |
||
(未显示3个用户的4个中间版本) | |||
第3行: | 第3行: | ||
}} |
}} |
||
{{Infobox OS |
{{Infobox OS |
||
| name = |
| name = 貝爾實驗室九號計畫 |
||
| logo = Glenda bunny mascot of plan 9 from bell black.jpg |
| logo = Glenda bunny mascot of plan 9 from bell black.jpg |
||
| logo size = 120px |
| logo size = 120px |
||
| logo caption = 格伦达,九 |
| logo caption = 格伦达,九號計畫的吉祥物,由{{le|Renée French}}繪製<ref>{{cite web|url = https://9p.io/plan9/glenda.html|title = Glenda, the Plan 9 Bunny |access-date = 2008-12-02|last = Lucent Technologies||year = 2006}}</ref> |
||
| screenshot = Plan 9 from Bell Labs (Installation).png |
| screenshot = Plan 9 from Bell Labs (Installation).png |
||
| caption = 安裝九 |
| caption = 安裝九號計畫 |
||
| developer = [[ |
| developer = [[貝爾實驗室]] |
||
| source_model = [[自由及 |
| source_model = [[自由及開源軟體]] |
||
| kernel_type = [[混合式核心|混合式]] |
| kernel_type = [[混合式核心|混合式]] |
||
| supported_platforms = [[x86]]、[[MIPS架 |
| supported_platforms = [[x86]]、[[MIPS架構|MIPS]]、[[DEC Alpha]]、[[SPARC]]、[[PowerPC]]、[[ARM架構|ARM]] |
||
| ui = [[rio ( |
| ui = [[rio (視窗介面)|rio]] / [[rc]] |
||
| family = [[ |
| family = [[類Unix系統]] |
||
| released = 1992年( |
| released = 1992年(僅供學院)<br />1995年(一般大眾) |
||
| latest_release_version = 第四版 |
| latest_release_version = 第四版 |
||
| latest_release_date = 每日提供快照 |
| latest_release_date = 每日提供快照 |
||
第21行: | 第21行: | ||
| latest_test_date = |
| latest_test_date = |
||
| marketing_target = |
| marketing_target = |
||
| programmed_in = 衍生自[[ |
| programmed_in = 衍生自[[國際標準化組織|ISO]]/[[美國國家標準協會|ANSI]] [[C語言|C]] |
||
| prog_language = |
| prog_language = |
||
| language = |
| language = |
||
第27行: | 第27行: | ||
| package_manager = |
| package_manager = |
||
| working_state = 支援中 |
| working_state = 支援中 |
||
| license = [[朗 |
| license = [[朗訊公共許可證]] |
||
| website = [https://bell-labs.com/plan9 Plan 9 from Bell Labs] |
| website = [https://bell-labs.com/plan9 Plan 9 from Bell Labs] |
||
}} |
}} |
||
''' |
'''貝爾實驗室九號計畫'''({{lang-en|Plan 9 from Bell Labs}},常简称为'''Plan 9''')是一个[[分布式操作系统]],由[[贝尔实验室]]的计算科学研究中心在1980年代中期至2002年开发,以作为[[UNIX]]的后继者。它现在仍然被操作系统的研究者和爱好者开发使用。<ref name="9front-announcement">{{cite web |url=http://www.osnews.com/story/24957/Plan_9_Forked_Continues_as_9front |title=Plan 9 Forked, Continues as 9front |first=James |last=Robertson |work=[[OSNews]] |date=2011-07-16 |accessdate=2011-12-31 }}</ref><ref name="9atom-home">{{cite web |url=http://www.quanstro.net/plan9/9atom/index.html |title=9atom |accessdate=2011-11-11 }}</ref> |
||
Plan 9的特色功能有:将所有本地和远程资源以文件形式组织的[[9P]]协议,[[union mounts]],改进的[[procfs|进程文件系统]]以及原生的[[Unicode]]支持。在Plan 9中,所有的系统接口(如网络和用户界面接口),都是作为文件系统的一部分呈现,而不像其他操作系统上一样拥有自己独立的接口。 |
Plan 9的特色功能有:将所有本地和远程资源以文件形式组织的[[9P]]协议,[[union mounts]],改进的[[procfs|进程文件系统]]以及原生的[[Unicode]]支持。在Plan 9中,所有的系统接口(如网络和用户界面接口),都是作为文件系统的一部分呈现,而不像其他操作系统上一样拥有自己独立的接口。 |
||
Plan 9得名于[[艾德·伍德]]1959年拍摄的[[B级片|B级]][[科幻电影]][[外太空九号计划]] |
Plan 9得名于[[艾德·伍德]]1959年拍摄的[[B级片|B级]][[科幻电影]][[外太空九号计划]] |
||
<ref name="taoup">{{cite book |last=Raymond |first=Eric S. | |
<ref name="taoup">{{cite book |last=Raymond |first=Eric S. ||title=[[Unix編程藝術]] |chapter=Plan 9: The Way the Future Was ||publisher=[[Addison-Wesley]] |isbn=0-13-142901-9 |date=2003-09-17 |accessdate=2007-05-07 }}</ref>,而它的标志格伦达来自同一导演拍摄的另一部电影[[忽男忽女]]。 |
||
== |
== 歷史 == |
||
{| class="wikitable" border="1" |
{| class="wikitable" border="1" |
||
|- |
|- |
||
第50行: | 第50行: | ||
| 1995 |
| 1995 |
||
| Plan 9第二版 |
| Plan 9第二版 |
||
| 贝尔实验室发布,允许非商业使用<ref name="firstpublic">{{cite web|url=http://9fans.net/archive/1995/07/16|title=Announcement of the first release to general public| |
| 贝尔实验室发布,允许非商业使用<ref name="firstpublic">{{cite web|url=http://9fans.net/archive/1995/07/16|title=Announcement of the first release to general public||||access-date=2013-03-07}}</ref> |
||
|- |
|- |
||
| 2000 |
| 2000 |
||
第60行: | 第60行: | ||
| 朗讯科技在自由软件许可下发布 |
| 朗讯科技在自由软件许可下发布 |
||
|} |
|} |
||
九 |
九號計畫在貝爾實驗室中取代UNIX成為組織中主要的研究开发平台。與原先的UNIX模型相較,其發展出來的數種改變改善了系統的使用及程式开发,尤其是在分散式[[多使用者]]環境中。起先在1980年中期,九號計畫只是貝爾實驗室的內部計劃。到了1992年,貝爾實驗室提供第一個公開版本提供給學院使用。在1995年,[[商業軟體|商業化]]的第二版釋出提供一般大眾使用。1990年代後期,[[朗訊科技]]繼承了貝爾實驗室後,對商業化九號計畫失去了興趣。到了2000年釋出了非商業化的第三版,採用[[開放原始碼]]授權。而2002年的第四版更採用[[自由軟體]]授權。 |
||
一 |
一個包括現任和前任[[貝爾實驗室]]成員與[[麻省理工學院]]成員參與的使用者與开发人員社群,仍每天以[[.img|光碟影像檔]]的形式持續提供每日更新釋出的檔案。貝爾實驗室也仍舊承續九號計畫的开发<ref name="Availability">{{cite web | year=2006 | url=http://cm.bell-labs.com/plan9/ | title=貝爾實驗室九號計畫 | publisher=朗訊科技 | accessdate=April 27, 2006 }}</ref>。开发中的原始碼檔案可以透過[[9P]]及[[HTTP]]協定加以存取並用於既有安裝檔案的更新<ref name="Staying up to date">{{cite web |
||
|year = 2006 |
|year = 2006 |
||
|url = http://cm.bell-labs.com/wiki/plan9/Staying_up_to_date/index.html |
|url = http://cm.bell-labs.com/wiki/plan9/Staying_up_to_date/index.html |
||
|title = Staying up to date |
|title = Staying up to date |
||
|publisher = 九 |
|publisher = 九號計畫社群 |
||
|accessdate = April 27, 2006 |
|accessdate = April 27, 2006 |
||
⚫ | |||
|deadurl = yes |
|||
|archiveurl = https://web.archive.org/web/20060417080000/http://cm.bell-labs.com/wiki/plan9/Staying_up_to_date/index.html |
|||
|archivedate = 2006-04-17 |
|||
⚫ | |||
== 概 |
== 概觀 == |
||
貝爾實驗室九號計畫主要是由[[貝爾實驗室]]計算科學研究中心(Computing Sciences Research Center)的成員所开发,該團體也曾开发[[UNIX]]及[[C語言]]<ref name="Creators">{{cite web | year=1995 | url=http://www.lucent.com/press/0795/950718.bla.html | title=From the inventors of UNIX system comes Plan 9 from Bell Labs | publisher=Lucent Technologies | accessdate=April 2, 2006 }}</ref>。九號計畫團隊原先由[[羅勃·派克]]、[[肯·汤普逊]]、[[Dave Presotto]]及[[Phil Winterbottom]]所帶領,及計算科學研究中心主管[[丹尼斯·里奇]]所支持。在多年的开发過程中,有許多开发人員對這項專案做出了不小的貢獻,如[[布萊恩·柯林漢]]、[[Tom Duff]]、[[道格拉斯·麥克羅伊]]、[[比雅尼·史特勞斯特魯普]]、[[Bruce Ellis]]、[[Steve Simon]]等人<ref name="开发人員">{{cite web | last=McIlroy | first=Doug | year=1995 | url=http://cm.bell-labs.com/sys/man/preface.html | title=第二版序言(1995) | publisher=朗訊科技 | accessdate=April 2, 2006 }}</ref>。 |
|||
九 |
九號計畫是針對現代分散式環境而從開始就設計成一種網路作業系統並加以开发。不同於UNIX是在設計後才增加圖形化使用者介面的功能,九號計劃打一開始就內建了。雖然仍未成為大受歡迎的UNIX衍生系統,但仍有持續成長的开发者社群。 |
||
九 |
九號計畫具備了分散式架構,它可以被安裝並使用於單一自含系統上,也有能力把作業系統的功能套件散佈於分散的硬體平台上。在標準的九號計畫安裝系統中,使用者會以一個輕量化的終端機執行Rio [[GUI|圖形化使用者介面]]透過網路連接到CPU伺服器來處理計算密集型(computation-intensive)的程序,並藉由額外的檔案伺服器及歸檔儲存系統提供長期的資料儲存。現有的桌上型電腦亦可以在內部使用多個虛擬機器重現此種架構。 |
||
== |
== 設計概念 == |
||
九 |
九號計畫的設計者對與[[微核心]]類似的目標感興趣,但是以不同的架構與設計細節來達成這些目標。九號計畫的設計目標如下: |
||
* ''以 |
* ''以檔案系統為基礎的裝置'':把所有的[[資源 (計算機科學)|資源]]都列在[[階層式]][[檔案系統]]中,以節點(Node)表示。 |
||
* ''命名空 |
* ''命名空間'':從應用程式的觀點來看,網路是種單一且清楚的[[命名空間]],能展現階層式檔案系統,也能代表近端或遠端實體分離的資源。每個程序的命名空間皆能獨立建置,使用者也能同時使用採用各式命名空間的應用程式。 |
||
* '' |
* ''標準通訊協定'':採用名為[[9P]]的標準協定,用來存取近端或遠端的所有資源。 |
||
=== 一 |
=== 一體化的輸入/輸出模型 === |
||
在UNIX之前,多 |
在UNIX之前,多數的作業系統都各自有不同的機制來存取不同類型的裝置。舉例來說,存取[[磁碟]]的[[API]]與自序列埠傳送或接收的API、又或是操作[[印表機]]所使用的API,彼此之間都有所不同。 |
||
UNIX藉由透 |
UNIX藉由透過磁碟索引節點(disk inodes)執行所有[[I/O|輸入/輸出]]操作來嘗試移除這些差異。每個裝置都被要求必須要支援帶有意義的''讀取''和''寫入''操作用以作為控制的手段。這也允許使用者無須了解底層的實作細節,便能利用如[[Cp (Unix)|cp]]及[[Dd (Unix)|dd]]等指令從任一裝置送出資料給其他的裝置。然而在此同時,許多關鍵的概念(如控制行程的狀態)並沒有一致地對應到檔案系統上。如同[[柏克萊接口]]與[[X11|X Window系統]]等的新功能被开发出來以後,以檔案系統之外的方式實作。新的硬體功能(如在軟體中使光碟機退片的功能)也建議採用特定硬體(hardware-specific)控制的機制,如使用[[ioctl]]系統呼叫等。 |
||
九 |
九號計畫不採用這些不同的實作,而且回歸到以檔案系統為中心(file system-centric)的系統觀點。無論是網路或者使用者介面、甚至是視窗本身,所有可用資源對於每個九號計畫的程式來說,都是階層式檔案系統的一部份,而非特定的介面<ref name="Availability"/>。 |
||
==== |
==== 檔案系統、檔案與名稱 ==== |
||
九 |
九號計畫擴充系統到超越檔案的概念,來到了「名稱」的層次。無論是電腦的[[電腦檔案|檔案]]、[[顯示器]]、[[使用者]]或[[電子計算機|電腦]]本身,都是一個獨一無二的路徑名稱。這些都是透過既有的UNIX標準來處理,並擴充至所有的物件皆可以用一致的方式來命名及定址。這跟[[全球資訊網]]所使用的[[URI]]的概念很相似。在UNIX中,像[[印表機]]這樣的裝置會透過軟體轉換的方式在<code>/dev</code>以名稱代表,但這種定址方式只對實體連接到硬體上的裝置有效,並不能套用到網路裝置上。在九號計畫系統中,所有的印表機都會以檔案的方式呈現,而且可以透過網路被任何工作站存取。 |
||
九 |
九號計畫的另一個創新點則是使用者可以對相同的「真實世界」物件各自分別取不同的名稱。每個使用者都可以藉由在他們的命名空間中收集各式各樣不同的物件來創造屬於他們自己的個人化環境。UNIX也有類似的觀念,使用者可以複製其他使用者來獲取權限。但是九號計畫則把這種作法擴充到所有的物件,使用者可以輕易地产生自身的「複製品」,加以修改,就算移除這些複製品也不會影響他們創造過的資源。 |
||
=== 合 |
=== 合併目錄 === |
||
UNIX允 |
UNIX允許從不同的資源透過「連結」或檔案系統「掛載」的觀念來建立檔案系統。這些功能會屏蔽掉原先的目錄,如果有人在名為「net」的目錄下掛載了新的檔案系統,會導致無法存取先前可以在「net」目錄下存取的內容,除非取消掛載的操作。 |
||
九 |
九號計畫則採用''[[合併目錄]]''的想法,從不同媒體或網路資源合併的目錄會以透明(transparently)的方式繫結。舉例來說,可以把別台電腦的<code>/bin</code>(應用程式)目錄跟本機端繫結,接下來這個目錄就會同時有本地端以及遠端的應用程式在裡面,使用者可以無障礙的存取近端或是遠端的程式。使用相同系統的情況下,九號計畫所控制的外部裝置與資源可以繫結到<code>/dev</code>目錄下,這可以讓裝置不需要任何額外的程式,就可以透過網路進行分享。 |
||
現今有許多[[Linux發行版]]的[[Live CD]],一定程度上的以[[合併掛載]]的方式實做了這個功能。 |
|||
=== /proc === |
=== /proc === |
||
列出所有 |
列出所有執行中'''行程'''的<code>/proc</code>目錄,描繪出這些功能是如何在共同運作時能夠帶來更好的整體結果。九號計畫特別的"檔案系統"也為[[Linux]]及其他之後的作業系統所採用。不同於其他核心資源的是,行程以<code>/proc</code>目錄下的命名物件(內含資訊與控制檔案的子目錄)的形式表現,並給予使用者一組動態的輸入/輸出通道來對行程傳送指令及讀取資料。使用者無須使用受限的系統呼叫來與編譯過的程式核心互動,相反的,它可以使用如<code>[[ls]]</code>以及<code>[[Cat (Unix)|cat]]</code>等指令來搜尋、查詢、以及操作行程。 |
||
使用者也可以 |
使用者也可以從其他的機器上將<code>/proc</code>目錄(以及任何其他特定的檔案系統)掛載到自己的命名空間中,就如同這些程序是在本機端一般地與它們互動。結果就是利用個別的機器架構出一套分散式運算環境,這些機器可能是使用者桌上的終端機、儲存長期資料的檔案伺服器、提供較快CPU及運算能力、使用者稽核、[[閘道器]]等服務之其他伺服器,全部都採用為大多數電腦使用者所熟悉的既有的階層式目錄/命名系統。使用者可以藉由終端機來收集[[檔案伺服器]]、伺服器上所運行的應用程式、網路上的印表機等設備,繫結進自己的命名空間進而"建構"出一套系統。 |
||
=== /net === |
=== /net === |
||
九 |
九號計畫並沒有使用任何系統呼叫來處理眾多的通訊協定或裝置驅動程式的介面。舉例來說,<code>/net</code>目錄下包含了所有[[TCP/IP]]的[[API]],並可藉由使用[[腳本語言]]或[[Unix shell|命令列介面]]的工具來撰寫可以控制檔案對連線進行寫入或讀取的程式。底下的子目錄如<code>/net/tcp</code>和<code>/net/udp</code>等目錄用來對應各種協定的介面。使用者可以藉由掛載一台具有公開(public)IP位址的外部機器的<code>/net</code>目錄,來讓使用9P網路協定的內部網路私有(private)IP位址,能透過該外部機器進行連線的方式,進而達到實做[[網路地址轉換|NAT]]的效果。又或者使用者可以藉由掛載遠端閘道器的<code>/net</code>目錄,在公開網路上使用加密(secured)的9P協定達成實做[[VPN]]的效果。 |
||
以下是在<code>/net</code>目 |
以下是在<code>/net</code>目錄中採用合併(或稱堆疊(stack))目錄的例子:就像[[OOP|物件導向程式語言]]的繼承觀念一樣,你可以把一個(可能是遠端的)<code>/special</code>目錄繫結到其他的本地端特定目錄下,增加一些控制檔案以及是需要隱藏其他的檔案。這個合併目錄線再就像是原先目錄的子物件一般,原先的功能可以僅更動一部份就好。對照到<code>/net</code>檔案系統的情況,使用者可以藉由更動或隱藏底下的<code>/net/udp</code>子目錄,增加本地端過濾程序來達成控制或擴充[[用户数据报协议|UDP]]介面的功能,而不會更動到原本正在運行的(可能是遠端機器上的)<code>/net/tcp</code>子目錄的資料。命名空間是針對每個行程來設定的,如果使用者更動對<code>/net</code>合併目錄來一個不受信任的應用程式設定限制,就可以限制該程式存取網路的能力。 |
||
這讓程式設計師很容易就可以在採用檔案系統的標準命名格式、存取控制、安全機制的情況下,從不同的系統上使用不同的語言合併「物件」或檔案系統,大大增加了使用上的透明度。 |
|||
這也跟[[BSD]]的<code>mount_portal</code>[https://web.archive.org/web/20101126152557/http://www.openbsd.org/cgi-bin/man.cgi?query=mount_portal&sektion=8] 的指令所提供的功能類似,只是掛載的目錄不是<code>/net</code>而是<code>/p</code>,提供的網路協定也只有<code>/tcp</code>而已。 |
|||
=== |
=== 網路與分散式運算 === |
||
九 |
九號計畫雖然是基於UNIX,但是設計上則是想達成運算系統核心功能間彼此溝通的觀念。所有系統資源都被當成檔案般地命名及存取,並提供可根據在特定機器上各個程式設定的多種分散式系統視圖(view)。這種讓伺服器以類似傳統檔案的方式,把任何資訊都呈現給使用者及應用程式的實作方式,增進了應用程式設計上的一般化與模組化的能力。 |
||
九 |
九號計畫支援[[網路通透性]]的關鍵在於採用一種新的底層網路協定[[9P]]。9P協定實作了連結到命名網路物件並以類檔案(file-like)系統呈現的方式。藉由快速的[[位元導向]](而非[[區塊導向]]),[[分散式檔案系統]]可以把任何物件視覺化的呈現,而非透過遠端機器上的一個[[NFS]]伺服器再加以呈現。這個協定可以用來跟行程、程式、資料、以及包含使用者介面及網路以及彼此之間進行通訊。在第四版中,這個協定作了一些修改並且更名為9P2000。 |
||
=== Unicode === |
=== Unicode === |
||
九 |
九號計畫的系統採用[[Unicode]]作為編碼機制。九號計畫中運用由[[肯·湯普遜|Ken Thompson]]提出重大修改的[[UTF-8]]作為整個系統中的原生編碼,並在1992年將整個系統提供作一般使用<ref name="UTF8">{{cite web | last=Pike | first=Rob | year=2003 | url=http://www.cl.cam.ac.uk/~mgk25/ucs/utf-8-history.txt | title=UTF-8歷史 | accessdate=April 27, 2006 }}</ref>。不過九號計畫僅支援Unicode中[[基本多文种平面]]中有定義的部份。 |
||
== |
== 實作 == |
||
[[File:Rio in Plan 9 install.png| |
[[File:Rio in Plan 9 install.png|thumb|用rio進行安裝的GUI畫面]] |
||
除了[[x86]]架 |
除了[[x86]]架構下有可安裝的實行環境之外、九號計畫也移植到[[MIPS架構|MIPS]]、[[DEC Alpha]]、[[SPARC]]、[[PowerPC]]、[[ARM架構|ARM]]及其他硬體平台上。系統以衍生自[[國際標準化組織|ISO]]/[[美國國家標準協會|ANSI]] [[C語言|C]]的語言所編寫。部分應用程式原先以[[Alef語言|Alef]]撰寫,但目前皆以C語言改寫。九號計畫支援以[[POSIX]]應用程式透過[[ANSI/POSIX環境|APE]]來模擬[[柏克萊接口介面]]。近來有一套新的應用程式''linuxemu''被开发用來執行[[Linux]]的程式,目前仍有許多要改進的地方。 |
||
九 |
九號計畫也被用在具代表性的超級電腦上,像是IBM BG/L Supercomputer<ref name="BGPlan9">{{Cite web |url=http://go.cs.bell-labs.com/fastos/doc/lanl.bglport.pdf |title=九號計畫BG展示 |access-date=2010-04-03 }}</ref>以及[[藍色基因|Blue Gene]]。 |
||
== 影 |
== 影響 == |
||
UNIX其中一 |
UNIX其中一個中心概念是所有系統介面皆可以一組檔案的形式呈現,而九號計畫成功地把這個概念以現代分散式系統實作出來。九號計畫的一些功能,像是Unicode中的UTF-8編碼,也被其他作業系統所實作。一些類UNIX作業系統,例如Linux,也實作[[9P]]、九號計畫的檔案系統,以及部份實作的類rfork指令的系統呼叫。除此之外,在[[Plan 9 from User Space]]中許多九號計畫所採用的應用程式及工具,例如rc shell,也被移植到UNIX以及LINUX系統上,而且還有一定程度的人氣。Glendix這個專案則嘗試以GNU/Linux作業系統取代九號計畫,或者是說,以Linux核心來取代九號計畫的核心。 |
||
然而,九 |
然而,九號計畫並未能像UNIX一樣熱門,變成主要只是一種研究用的工具。九號計畫被評為"作用看來不過是能在作業系統研究領域產生有趣論文的裝置"<ref name="ESRPlan9" />。[[Eric S. Raymond]]在他的著作''[[The Art of Unix Programming]]''中則推測九號計畫缺乏被接受度。<blockquote>"九號計畫會失敗單純只是因為它的改進程度沒大能取代Unix。與九號計畫相較,雖然UNIX看來破破爛爛又有明顯缺失,但是它還是能好好的把工作完成,這就足以保住它的地位了。這件事情給那些有雄心壯志的系統架構的一堂課是:比更佳解決方案相比之下來的最危險的敵人是那些能把事情已經做的夠好的程式。"<ref name="ESRPlan9">{{cite web | last=Raymond | first=Eric S. | | url=http://www.faqs.org/docs/artu/plan9.html | title=Plan 9: The Way the Future Was | accessdate=March 28, 2006 }}</ref></blockquote> |
||
對於九號計畫的評論像是在[[Unix哲學|作業系統設計]]中把九號計畫列為[[糟糕的更好]]的典範,其他常見的評論則有九號計畫作業系統中缺乏「優雅」(polish)及开发環境<ref>{{cite web | url=http://www.osnews.com/comment.php?news_id=2760&limit=no#71883 | title=Dennis Ritchie的訪談中第25條回應 | accessdate=2006-09-09 }}</ref>、九號計畫中達到商業化程度的軟體支援量不足<ref>{{cite web | url=http://www.osnews.com/comment.php?news_id=2760&limit=no#71847 | title=Dennis Ritchie的訪談中第23條回應 | accessdate=2006-09-10 }}</ref>。 |
|||
九 |
九號計畫的支持者和开发人員聲稱阻礙其發展的問題已被解決,原先作為分散式系統、开发環境、研究平台的目標也都已經達成,而且也慢慢地開始有人採用。可透過[[Inferno]]的托管能力將九號計畫的技術帶給其他系統,形成異構網格運算中的一部份<ref name="9grid">{{cite web | year=2006 | url=http://cm.bell-labs.com/wiki/plan9/9grid/ | title=9grid (九號計畫wiki) | work=九號計畫wiki | accessdate=March 28, 2006 }}</ref><ref name="VitaNuova">{{cite web | year=2004 | url=http://www.vitanuova.com/solutions/grid/news/evotecoai.pdf | title="Press Release: Vita Nuova Supplies Inferno Grid to Evotec OAI | format=PDF | publisher=Vita Nuova Holdings Limted | accessdate=March 28, 2006 }}</ref><ref name="Rutgers">{{cite web | year=2004 | url=http://www.vitanuova.com/solutions/grid/news/rutgers.pdf | title="Press Release: Rutgers University Libraries Install Inferno Data Grid" | format=PDF | publisher=Vita Nuova Holdings Limited | accessdate=March 28, 2006 }}</ref><ref name="YorkBio">{{cite web | year=2004 | url=http://www.vitanuova.com/solutions/grid/news/Yorkbiology.pdf | title="Press Release: The University of York Department of Biology install Vita Nuova's Inferno Data Grid" | format=PDF | publisher=Vita Nuova Holdings Limited | accessdate=March 28, 2006 }}</ref>。 |
||
== 授 |
== 授權 == |
||
[https://9p.io/plan9/download.html 完整的原始碼] 可以免 |
[https://9p.io/plan9/download.html 完整的原始碼] 可以免費的在[[朗訊公共許可證]]1.02版的授權之下取得,而且被[[開放原始碼促進會]]認為是[[開放原始碼]]軟體及[[自由軟體基金會]]認為是[[自由軟體]]。它雖然有通過[[Debian自由軟體指導方針]],不過不相容於[[GNU通用公共許可證]]。 |
||
2021年3月23日之后,所有版本以[[MIT License]]授权。<ref>{{cite web |title=Plan 9 from Bell Labs |url=https://9p.io/plan9/about.html |access-date=2021-03-25 |
2021年3月23日之后,所有版本以[[MIT License]]授权。<ref>{{cite web |title=Plan 9 from Bell Labs |url=https://9p.io/plan9/about.html |access-date=2021-03-25 }}</ref> |
||
== |
== 參照 == |
||
=== 九 |
=== 九號計畫標準程式庫 === |
||
{{further|九 |
{{further|九號計畫應用程式列表}} |
||
* [[rc shell|rc]] - 九 |
* [[rc shell|rc]] - 九號計畫所採用的shell |
||
* {{tsl|en|Sam_(text_editor)|Sam (文本编辑器)}} - 文字 |
* {{tsl|en|Sam_(text_editor)|Sam (文本编辑器)}} - 文字編輯器 |
||
* [[acme]] - 提供給程式 |
* [[acme]] - 提供給程式設計師用的使用者介面 |
||
* [[plumber]] - [[行程 |
* [[plumber]] - [[行程間通訊]] |
||
* [[mk (軟件)|mk]] - 建立 |
* [[mk (軟件)|mk]] - 建立軟體用的工具,跟UNIX的make程式類似 |
||
* [[acid (軟件)|acid]] - |
* [[acid (軟件)|acid]] - 偵錯器 |
||
* [[rio window manager|rio]] - 新的九 |
* [[rio window manager|rio]] - 新的九號計畫視窗系統 |
||
* [[8½ (作 |
* [[8½ (作業系統)|8½]] - 舊的九號計畫視窗系統 |
||
* [[Fossil ( |
* [[Fossil (檔案系統)|Fossil]]及[[Venti]] - 新的歸檔系統及長期資料儲存 |
||
=== |
=== 實作介面 === |
||
* [[9P]](或[[Styx (系 |
* [[9P]](或[[Styx (系統協定)|Styx]]) - 檔案系統的協定 |
||
* [[rendezvous]] - 基 |
* [[rendezvous]] - 基礎的同步機制 |
||
* [[Brazil (作 |
* [[Brazil (作業系統)|Brazil]] - 變成九號計畫第四版的專案 |
||
=== 影 |
=== 影響 === |
||
* [[Plan 9 from User Space]] - |
* [[Plan 9 from User Space]] - 將九號計畫函式庫及應用程式移植到類UNIX作業系統 |
||
* [[Inferno]] - 跟 |
* [[Inferno]] - 跟隨九號計畫腳步的分散式作業系統 |
||
* [http://lsub.org/ls/planb.html B |
* [http://lsub.org/ls/planb.html B計畫] - 基於九號計畫的實驗作業系統 |
||
* [http://lsub.org/ls/octopus.html Octopus] |
* [http://lsub.org/ls/octopus.html Octopus] - B計畫的新成果 |
||
* [[9wm]] - |
* [[9wm]] - 複製九號計畫介面的[[X視窗管理員]] |
||
* [[wmii]] - |
* [[wmii]] - 採用類似[[9P]]協定介面的檔案系統的X視窗管理員 |
||
* [http://www.glendix.org/ Glendix] |
* [http://www.glendix.org/ Glendix] - 將[[Plan 9 from User Space]]的工具移植到Linux |
||
== |
== 參見 == |
||
* [[Haiku]] – 开源桌面操作系统 |
* [[Haiku]] – 开源桌面操作系统 |
||
* [[FreeRTOS]] – [[微内核]],[[实时操作系统]](RTOS) |
* [[FreeRTOS]] – [[微内核]],[[实时操作系统]](RTOS) |
||
第184行: | 第181行: | ||
* [[MINIX 3]] – [[类Unix]]微内核操作系统 |
* [[MINIX 3]] – [[类Unix]]微内核操作系统 |
||
== |
== 參考文獻 == |
||
{{reflist}} |
{{reflist}} |
||
== 外部連結 == |
|||
== |
=== 貝爾實驗室 === |
||
* [http://plan9.bell-labs.com/plan9/ 九號計畫的網站] |
|||
=== 贝尔实验室 === |
|||
* [ |
* [https://9p.io/plan9/ 九號計畫的鏡像網站] |
||
* [ |
* [http://plan9.bell-labs.com/plan9/about.html 概觀] |
||
* [http://plan9.bell-labs.com/ |
* [http://plan9.bell-labs.com/sys/doc/ 第四版的文件] |
||
* [http:// |
* [http://doc.cat-v.org/plan_9/ 其他文件資料] |
||
* [http://doc.cat-v.org/plan_9/ |
* [http://doc.cat-v.org/plan_9/2nd_edition/README 第二版的讀我文件] by [[Brian W. Kernighan]] |
||
* [http://plan9.bell-labs.com/sources/plan9/sys/src/ 可供瀏覽的完整原始碼] |
|||
* [http://doc.cat-v.org/plan_9/2nd_edition/README 第二版的读我文件] by [[Brian W. Kernighan]] |
|||
* [http://plan9.bell-labs.com/ |
* [http://plan9.bell-labs.com/wiki/plan9/plan_9_wiki 九號計畫的Wiki] - powered by [[wikifs]] |
||
* [http://plan9.bell-labs.com/wiki/plan9/ |
* [http://plan9.bell-labs.com/wiki/plan9/documentation/index.html 文件索引] |
||
* [http://plan9.bell-labs.com/ |
* [http://plan9.bell-labs.com/sys/man/ 使用者手冊] |
||
* [http://plan9.bell-labs.com/ |
* [http://plan9.bell-labs.com/plan9/download.html 下載頁面] |
||
* [http://plan9.bell-labs.com/plan9/ |
* [http://plan9.bell-labs.com/wiki/plan9/installation_instructions/ 安裝注意事項] |
||
* [http://plan9.bell-labs.com/wiki/plan9/ |
* [http://plan9.bell-labs.com/wiki/plan9/FAQ 常見問答] |
||
* [http:// |
* [http://gsoc.cat-v.org GSoC的九號計畫專案] |
||
⚫ | |||
* [http://gsoc.cat-v.org GSoC的九号计划专案] |
|||
⚫ | |||
=== 文件 === |
=== 文件 === |
||
* [[自由及 |
* [[自由及開源軟體开发者歐洲會議|FOSDEM 2006]]的[http://cm.bell-labs.com/sources/contrib/uriel/slides/fosdem06/slides.pdf 投影片]及 [http://ftp.belnet.be/mirror/FOSDEM/2006/FOSDEM2006-plan9.avi 影片檔] |
||
* [ |
* [http://www.cs.unm.edu/~fastos/05meeting/PLAN9NOTDEADYET.pdf Plan 9 is not dead] at [http://www.cs.unm.edu/~fastos/ FAST-OS 2005] |
||
=== 其他原生及 |
=== 其他原生及虛擬機器 === |
||
==== 原生 ==== |
==== 原生 ==== |
||
* [ |
* [http://www.vitanuova.com/plan9/index.html 九號計畫][[Vita Nuova Holdings]]的盒裝版 |
||
==== |
==== 虛擬 ==== |
||
* [http://www.oszoo.org/wiki/index.php/Category:Plan9_images 九 |
* [http://www.oszoo.org/wiki/index.php/Category:Plan9_images 九號計畫][[Qemu]]映像檔 |
||
* [http://www.planb-security.net.nyud.net:8080/plan9 九 |
* [http://www.planb-security.net.nyud.net:8080/plan9 九號計畫]{{dead link|date=十月 2017 |bot=InternetArchiveBot }}[[VMware]] VMPlayer虛擬機器 |
||
* [http://swtch.com/9vx/ 九 |
* [http://swtch.com/9vx/ 九號計畫] [[Vx32]]擴充環境的二進位映像檔 |
||
=== 其他 |
=== 其他資源 === |
||
* [http://mail.9fans.net/listinfo/9fans 9fans] ,<code>http://9fans.net</code> |
* [http://mail.9fans.net/listinfo/9fans 9fans] ,<code>http://9fans.net</code>網站上的九號計畫[[郵件列表]] |
||
* [http://ninetimes.cat-v.org Ninetimes] ,九 |
* [http://ninetimes.cat-v.org Ninetimes] ,九號計畫、Inferno、Unix,以及貝爾實驗室作業系統的新聞頁面 |
||
* [irc://irc.freenode.net/plan9 #plan9],[[freenode]]架 |
* [irc://irc.freenode.net/plan9 #plan9],[[freenode]]架設的九號計畫[[IRC]]頻道 |
||
* [http://dx.doi.org/10.1108/07378830310509772 Reinventing UNIX: An introduction to the Plan 9 operating system], by Hancock, B., Giarlo, M.J., & Triggs, J. A., published in ''Library Hi Tech'', 21(4), 471-476. |
* [http://dx.doi.org/10.1108/07378830310509772 Reinventing UNIX: An introduction to the Plan 9 operating system], by Hancock, B., Giarlo, M.J., & Triggs, J. A., published in ''Library Hi Tech'', 21(4), 471-476. |
||
* [ |
* [http://plan9.escet.urjc.es/who/nemo/9.intro.pdf Introduction to OS abstractions using Plan 9 from Bell Labs], by Francisco J Ballesteros |
||
* ''Das Netzbetriebssystem Plan 9.'', 1999, ISBN 3-446-18881-9 by Hans-Peter Bischof, Gunter Imeyer, Bernhard Wellhöfer (born as Kühl), Axel-Tobias Schreiner.此 |
* ''Das Netzbetriebssystem Plan 9.'', 1999, ISBN 3-446-18881-9 by Hans-Peter Bischof, Gunter Imeyer, Bernhard Wellhöfer (born as Kühl), Axel-Tobias Schreiner.此書已絕版,但可透過[[隨選列印]]的服務供應商取得,如[[Lulu.com]]。 |
||
{{unix-like}} |
{{unix-like}} |
||
{{肯·汤普逊navbox}} |
{{肯·汤普逊navbox}} |
||
[[Category: |
[[Category:貝爾實驗室九號計畫| ]] |
||
[[Category:分布式操作系统]] |
[[Category:分布式操作系统]] |
||
[[Category:嵌入式作 |
[[Category:嵌入式作業系統]] |
||
[[Category:计算平台]] |
[[Category:计算平台]] |
||
[[Category: |
[[Category:軟體專案]] |
||
[[Category:ARM操作系统]] |
[[Category:ARM操作系统]] |