GNU 公告,第 1 卷 第 16 期,1994 年 1 月

目錄


《GNU 公告》是自由軟體基金會的半年刊新聞信,為您帶來關於 GNU 計劃的新聞。

Free Software Foundation, Inc.                Telephone: +1-617-876-3296
675 Massachusetts Avenue                      FAX: +1-617-492-9057
Cambridge, MA   02139-3309                    FAX (in Japan):
USA                                               0031-13-2473 (KDD)
Electronic mail: gnu@prep.ai.mit.edu            0066-3382-0158 (IDC)

GNU 是誰

Michael Bushnell 繼續致力於 Hurd 的開發,同時也維護 tarRoland McGrath 維護 make 和 GNU C 函式庫,協助 Emacs 19 的開發,並且現在也投入 Hurd 的開發。Jan Brittenson 正在開發 Hurd 網路伺服器。

Noah Friedman 是我們的系統歧義消除員、發布協調員,並在他充裕的業餘時間維護一些程式。Carl Hoffman 是我們的募款人和會議籌辦人。

Lisa `Opus' Goldstein 是我們的財務主管。Robert J. Chassell 正在撰寫 Emacs Lisp 程式設計入門,並繼續擔任我們的董事會成員。Larissa CarlsonLisa 的辦公室助理。Charles Hannum 負責排版和許多其他工作。

Jim Blandy 已經離職以追求學術興趣。Melissa WeisshausTom Lord 也已離開 FSF。他們三位仍然兼職擔任志工。

Richard Stallman 繼續擔任志工,執行無數任務,例如 Emacs 維護。志工 Len Tower 仍然是我們的線上 JOAT(萬事通),處理郵件列表和 gnUSENET、資訊請求等。

GNU 公告

撰寫和編輯:Jan Brittenson、Noah S. Friedman 和 Leonard H. Tower Jr.

插圖:Etienne Suvasa 和 Jamal Hannah

日文版:Mieko Hikichi 和 Nobuyuki Hikichi

《GNU 公告》於每年一月和六月底出版。請注意,沒有郵寄名單。要取得副本,請將您的姓名和地址連同您的請求發送到首頁上的地址。隨函附上商業尺寸的回郵信封(0.52 美元)和/或幾美元的捐款將不勝感激,但非必要。如果您來自美國境外,寄送郵寄標籤而不是信封,以及足夠的國際回郵券以郵寄約 100 克的包裹,將不勝感激,但非必要。(包括一些額外的國際回郵券以支付影印成本也將不勝感激。)

版權 (C) 1994 自由軟體基金會有限公司

本頁面依據 創用 CC 姓名標示-禁止改作 3.0 美國授權條款 授權。

自由軟體基金會是什麼?

自由軟體基金會致力於消除人們使用、複製、修改和重新發布電腦程式的權利限制。我們在所有使用電腦的領域推廣自由軟體的開發和使用。具體來說,我們正在組建一個完整、整合的軟體系統,名為「GNU」(「GNU is Not Unix」,發音為「guh-new」),它將向上相容於 Unix。這個系統的大部分組件已經在使用和發布中。

我們名稱中的「自由」指的是自由 (freedom),而不是價格 (price)。您可能需要付費才能取得 GNU 軟體,也可能不需要,但無論如何,一旦您取得它,您就擁有兩個特定的自由:第一,複製程式並將其贈送給您的朋友和同事的自由;第二,透過完全存取原始碼,隨意更改程式的自由。您可以研究原始碼並學習這些程式是如何編寫的。然後,您或許可以移植它、改進它,並與他人分享您的變更。如果您重新發布 GNU 軟體,您可以收取發布費用或免費贈送。

其他組織發布任何碰巧可用的自由軟體。相比之下,自由軟體基金會專注於開發新的自由軟體,致力於開發一個完整到足以消除購買專有系統需求的 GNU 系統。

除了開發 GNU 之外,FSF 還發布 GNU 軟體和手冊以收取發布費用,並接受捐款(在美國可抵稅)以支持 GNU 開發。FSF 的大部分資金來自這項發布服務。

基金會的幹部為:Richard M. Stallman,總裁;Lisa Goldstein,財務主管/秘書。基金會董事會成員為:Richard M. Stallman、Gerald J. Sussman、Harold Abelson、Robert J. Chassell 和 Leonard H. Tower Jr.。

什麼是 Copyleft?

使程式成為自由軟體的最簡單方法是將其置於公有領域,不予版權保護。但這允許專有修改,剝奪其他人使用和重新發布改進的自由;這與增加自由軟體總量的意圖背道而馳。為了防止這種情況,copyleft 以新穎的方式使用版權。通常版權會奪走自由;copyleft 保留它們。它是一種法律工具,要求那些傳遞程式的人必須包含使用、修改和重新發布程式碼的權利;程式碼和權利在法律上變得不可分割。

GNU 計劃使用的 copyleft 是由常規版權聲明和 GNU 通用公共授權條款 (GPL) 的組合構成的。GPL 是一種複製授權條款,基本上說明您擁有上述自由。另一種形式,GNU 寬通用公共授權條款 (LGPL),適用於少數 GNU 函式庫。此授權條款允許在特定條件下將函式庫連結到專有可執行檔中。適當的授權條款包含在所有 GNU 原始碼發行版和許多手冊中。印刷本可應要求提供。

我們強烈建議您 copyleft 您的程式和文件,並且我們已盡可能簡化您的操作。關於如何應用任一授權條款的詳細資訊,請參閱每個授權條款的末尾。

捐款轉化為自由軟體

如果您欣賞 Emacs、GNU CC、Ghostscript 和其他自由軟體,您可能希望幫助我們確保未來有更多自由軟體——請記住,捐款轉化為更多自由軟體!

您對我們的捐款在美國可抵稅。我們很樂意接受所有貨幣,儘管美元是最方便的。

如果您的雇主有慈善捐款的配對捐款計劃,請安排讓您的捐款由您的雇主(或在某些情況下由 Cygnus Support,請參閱「Cygnus 配對捐款!」)配對。如果您不知道,請諮詢您的人事部門。也請嘗試讓 FSF 列入配對捐款計劃的任何組織名單中。

   $500     $250     $100     $50     other $________

   Other currency:________

圈出您要捐款的金額,剪下此表格,並將其與您的捐款一起寄送至

   Free Software Foundation
   675 Massachusetts Avenue
   Cambridge, MA   02139-3309
   USA

您也可以使用 Visa、Mastercard、JCB、Diner's Club 或 Carte Blanche 信用卡支付捐款。也可以將信用卡資訊以電子郵件寄至 gnu@prep.ai.mit.edu 或傳真至 +1-617-492-9057;在日本傳真至:0031-13-2473 (KDD) 或 0066-3382-0158 (IDC)

Card type: __________________  Expiration Date: _____________

Account Number: _____________________________________________

Your Signature: _____________________________________________

Cygnus 配對捐款!

為了鼓勵向自由軟體基金會捐款,Cygnus Support 將繼續向 FSF 捐贈公司資金,以配合其員工以及其客戶及其員工的捐款。

符合資格的人應將支付給自由軟體基金會的捐款寄送至 Cygnus Support,Cygnus Support 將加入其捐款並每季將總額轉交給 FSF。FSF 將向捐款人提供收據,以確認捐款(在美國報稅時可抵稅)。如需更多資訊,請透過 info@cygnus.com 聯絡 Cygnus。

GNU 快訊

LPF 是什麼?

程式設計自由聯盟 (LPF) 旨在保護編寫軟體的自由。這種自由受到「外觀和風格」介面版權訴訟和軟體專利的威脅。LPF 不認可自由軟體或 FSF。

聯盟的成員包括程式設計師、企業家、學生、教授,甚至軟體公司。

摘自聯盟會員申請表

程式設計自由聯盟是一個由教授、學生、商業人士、程式設計師和使用者組成的草根組織,致力於恢復編寫程式的自由。聯盟不反對國會原先意圖的法律制度——個別程式的版權。我們的目標是扭轉法官最近因應特殊利益集團而做出的改變。

聯盟的會員費為程式設計師、經理和專業人士每年 42 美元;學生 10.50 美元;其他人士 21 美元。

若要加入,請寄送支票和以下資訊

聯盟與自由軟體基金會沒有關聯,本身也不是自由軟體組織。FSF 支持 LPF,因為像任何規模小於 IBM 的軟體開發商一樣,它也受到軟體專利的危害。您也處於危險之中!在您或您的雇主被起訴之前,很容易忽略這個問題,但在這之前組織起來更為明智。

如果您尚未下定決心,請寫信給 LPF 以取得更多資訊

League for Programming Freedom
1 Kendall Square - #143
P.O. Box 9171
Cambridge, MA   02139
USA
Phone: +1-617-243-4091
Email: lpf@uunet.uu.net

來自 LPF 的消息

作者:Christian D.. Hofstader,cdh@prep.ai.mit.edu

美國專利商標局 (PTO) 將於 1994 年初就軟體專利議題舉行聽證會。PTO 意識到當前政策存在嚴重問題,並正在尋求關於如何糾正問題的意見。LPF 正試圖邀請一位代表作證,並將呼籲成員和其他關心這些問題的人寫信給 PTO。請聯絡 lpf@uunet.uu.net 以取得詳細資訊。

在過去幾個月中,LPF 一直在撰寫一份非當事人意見陳述(法庭之友),該陳述已在 Lotus v. Borland 訴訟案的上訴中提交給上訴法院。該陳述完全針對 Lotus 對於 123 中巨集語言的版權主張,該主張已獲得下級法院 Keeton 法官的批准。該陳述於 1993 年 12 月 14 日由 20 多位著名的電腦科學家在第一巡迴法院代表提交。

LPF 組織簽署陳述的團體包括 Marvin Minsky、John McCarthy 和 Robert Boyer 等電腦科學領域的主要貢獻者。Borland 副總裁兼總法律顧問 Bob Kohn 表示:「有了這個團體,LPF 應該能夠改變智慧財產權法的進程。從未有如此令人印象深刻的電腦科學家團體聚集在一起。」

LPF 將在此案中提交補充文件。如果您有興趣簽署或認識您認為會想加入名單的人,請將相關資訊轉發給 LPF。

自由軟體支援

自由軟體基金會不提供任何技術支援。儘管我們創建軟體,但我們將提供支援以謀生的工作留給其他人。我們將程式設計師視為提供服務,就像現在的醫生和律師一樣;醫療和法律知識都是可以自由重新發布的實體,從業者對此收取發布和服務費。

我們維護一份提供支援和其他諮詢服務的人員列表,稱為 GNU 服務目錄。它位於 GNU Emacs 發行版中的 `etc/SERVICE' 檔案、GCC 發行版中的 `SERVICE' 檔案以及匿名 FTP 主機 prep.ai.mit.edu 上的 `/pub/gnu/GNUinfo/SERVICE' 中。如果您想要印刷本或希望被列入其中,請聯絡我們。

如果您發現任何 GNU 軟體存在缺陷,我們希望知道。我們有許多用於錯誤報告、公告和問題的網際網路郵件列表。它們也以 gnu.* 新聞群組的形式閘道到 USENET 新聞中。您可以從首頁上的任一地址索取郵件列表的清單。

當我們收到錯誤報告時,我們通常會嘗試修復問題。雖然我們的錯誤修復可能看起來像是個別協助,但事實並非如此。我們的任務非常龐大,我們必須專注於有助於整個社群的事務;我們沒有資源來幫助個人。我們可能會向您發送錯誤修復程式,以幫助我們測試修復程式並確保其品質。如果您的錯誤報告沒有引起我們的解決方案,您仍然可以從閱讀我們錯誤報告郵件列表的其他使用者那裡獲得解決方案。否則,請使用服務目錄。

請不要要求我們協助您安裝軟體或弄清楚如何使用它——但請告訴我們安裝腳本如何無法運作或文件不明確之處。

如果您無法存取網際網路,您可以透過 UUCP 取得郵件和 USENET 新聞。請聯絡當地的 UUCP 站點或商業 UUCP 站點,例如

   UUNET Communications Services
   3110 Fairview Park Drive - Suite 570
   Falls Church, VA   22042
   USA
   Phone: 1-800-4UUNET4 or (703) 204-8000
   Fax: (703) 204-8001
   E-mail: info@uunet.uu.net

商業 UUCP 和網際網路服務提供商的長列表會定期發布到 USENET 的 news.announce.newusers 新聞群組中,標題為「主題:如何成為 USENET 站點」。

在選擇服務提供商時,請詢問您正在考慮的那些提供商在協助自由軟體開發方面做了多少,例如透過向自由軟體開發專案捐款,或自行編寫自由軟體改進以供一般使用。透過部分基於此因素做出決定,您可以幫助鼓勵那些從自由軟體中獲利的人為其成長做出貢獻。

GNU 計劃願望清單

本期希望徵求

朝向新的作業系統設計策略

本文說明了 FSF 為何要開發一個名為 Hurd 的新作業系統,它將成為整個 GNU 系統的基礎。Hurd 建構於 CMU 的 Mach 3.0 核心之上,並使用 Mach 的虛擬記憶體管理和訊息傳遞設施。GNU C 函式庫將提供 Unix 系統呼叫介面,並將呼叫 Hurd 以取得其自身無法提供的必要服務。Hurd 的設計和實作由 Michael Bushnell 領導,並由 Richard Stallman、Roland McGrath、Jan Brittenson 和其他人協助。

第 1 部分 - 更易於使用的作業系統設計方法

作業系統 (OS) 的基本目的是使各種程式能夠有效率且高效率地共用單一電腦。這需要記憶體保護、搶佔式排程分時、協調存取 I/O 周邊設備和其他服務。此外,作業系統可以允許多個使用者共用一台電腦。在這種情況下,效率需要能夠保護使用者免受彼此傷害、使他們能夠在沒有事先安排的情況下共用以及協調對實體設備的存取的服務。

在今天的電腦系統上,程式設計師通常透過一個名為核心的大型程式來實現這些目標。由於所有使用者程式都必須能夠存取此程式,因此它是向系統新增功能的自然位置。由於程序互動的唯一模型是核心提供的特定、個別服務,因此沒有人創建其他位置來新增功能。隨著時間的推移,越來越多的功能被新增到核心中。

傳統系統僅允許使用者在他們既了解核心的大部分內容又在系統中具有特權狀態的情況下,才能向核心新增組件。測試新組件需要比測試其他程式更痛苦的編輯-編譯-偵錯週期。在其他人使用系統時,無法完成此操作。錯誤通常會導致嚴重的系統崩潰,進一步擾亂其他人對系統的使用。整個核心通常是不可分頁的。(有些系統具有可分頁的核心,但決定可以分頁的內容很困難且容易出錯。通常這些機制很複雜,即使在新增簡單的擴充功能時也很難使用。)

由於這些限制,除非絕對必要,否則通常會將本應位於傳統核心牆後的那些功能排除在系統之外。許多好的想法,最好使用開放/讀取/寫入介面來完成,但由於傳統系統的單體性質所固有的問題而無法實作。此外,即使在那些有毅力實作新想法的人中,也只有那些擁有電腦特權的使用者才能做到。軟體版權系統使情況更加糟糕,甚至阻止未經授權的人閱讀核心原始碼。

有些系統試圖解決這些困難。Smalltalk-80 和 Lisp Machine 都代表了一種繞過問題的方法。系統程式碼與使用者程式碼沒有區別;使用者可以存取所有系統,並且可以根據需要進行更改。這兩個系統都圍繞著易於替換和擴充功能的語言而建構,並且取得了一定的成功。但是它們在將使用者和程式彼此隔離方面都相當差,未能實現作業系統設計的主要目標之一。

大多數使用 Mach 3.0 核心的專案都延續了難以改變的作業系統設計傳統。內部結構不同,但使用者和系統之間仍然存在相同的沉重障礙。單伺服器雖然相對容易建構,但繼承了單體核心的所有缺陷。

多伺服器將核心功能劃分為具有明確定義介面的邏輯區塊。如果做得好,則更容易進行更改和新增功能。因此,大多數多伺服器專案都做得更好一些。系統的更多部分是可分頁的。您可以更輕鬆地偵錯系統。您可以測試新的系統組件,而不會干擾其他使用者。但是使用者和系統之間的牆仍然存在;沒有特殊權限,任何使用者都無法跨越它。

相比之下,GNU Hurd 的設計旨在使系統程式碼的範圍盡可能有限。程式僅需與核心的少數基本部分進行通訊;系統的其餘部分可以動態替換。使用者可以使用系統其餘部分的任何部分,並且可以輕鬆地自行新增組件,以供其他使用者利用。使用者無需預先建立互信即可使用彼此的服務,系統也不會因為信任任意使用者的服務而變得脆弱。

這樣是藉由找出那些使用者必須使用的系統組件來完成的,以便彼此溝通。其中一個組件負責識別使用者身分,稱為身份驗證伺服器。為了建立彼此的身分,程式必須與它們信任的身份驗證伺服器進行通訊。另一個組件建立對系統組件的控制權,由超級使用者執行,提供全域的帳務操作,並稱為程序伺服器

並非所有使用者程式都需要與程序伺服器通訊;只有需要其服務的程式才需要。同樣地,身份驗證伺服器僅對於希望向另一個程式傳達其身分的程式是必要的。其餘的服務都不帶有任何特殊狀態;無論是網路實作、檔案系統、程式執行機制(包括 setuid),還是任何其他的服務。

翻譯器機制

Hurd 主要使用 Mach 埠作為使用者和伺服器之間通訊的方法。(Mach 埠是 Mach 任務上的一個通訊點,訊息在此處發送和接收。)每個埠都實作了一組特定的協定,代表可以在埠所代表的底層物件上執行的操作。Hurd 指定的一些協定包括:I/O 協定,用於通用 I/O 操作;檔案協定,用於檔案系統操作;socket 協定,用於網路操作;以及程序協定,用於操作程序等等。

大多數伺服器是通過開啟檔案來存取的。通常,當您開啟一個檔案時,您會建立一個與該檔案關聯的埠,該埠由擁有包含該檔案的目錄的伺服器所擁有。例如,基於磁碟的檔案系統通常會服務大量的埠,每個埠代表一個開啟的檔案或目錄。當一個檔案被開啟時,伺服器會建立一個新的埠,將其與該檔案關聯,並將該埠返回給呼叫程式。

然而,一個檔案可以有一個與之關聯的轉譯器。在這種情況下,伺服器不是返回它自己的埠來引用檔案的內容,而是執行與該檔案關聯的轉譯器程式。這個轉譯器會被給予一個指向檔案實際內容的埠,然後被要求返回一個埠給原始使用者以完成開啟操作。

這種機制用於 mount,方法是讓每個掛載點都關聯一個轉譯器。當程式開啟掛載點時,轉譯器(在這種情況下,是一個理解已掛載檔案系統的磁碟格式的程式)被執行,並向程式返回一個埠。在轉譯器啟動後,除非它終止,否則不需要再次執行;父檔案系統保留一個指向轉譯器的埠,以便在未來的請求中使用。

檔案的所有者可以將轉譯器與之關聯,而無需特殊權限。這意味著任何程式都可以被指定為轉譯器。顯然,如果轉譯器沒有正確地實作檔案協定,系統將無法正常工作。然而,Hurd 的建構方式使得最壞的可能後果是一個可中斷的掛起。

使用轉譯器的一種方法是使用檔案協定來存取階層式結構化資料。例如,ftp 程式的使用者介面的所有複雜性都被移除了。使用者只需要知道特定的目錄代表 FTP,並且可以使用所有標準的檔案操作命令(例如 lscp)來存取遠端系統,而無需學習一套新的命令。同樣地,一個簡單的轉譯器可以簡化 targzip 的複雜性。(這種透明的存取方式會增加一些成本,但會很方便。)

通用服務

有了轉譯器,檔案系統可以作為不類似於檔案的介面的交會點。考慮一個服務,它實作了某個版本的 X 協定,使用 Mach 訊息作為底層傳輸。對於每個 X 顯示器,可以建立一個檔案,並將適當的程式作為其轉譯器。X 客戶端將開啟該檔案。在那時,很少有檔案操作會是有用的(例如,讀取和寫入將是無用的),但新的操作(XCreateWindowXDrawText)可能會變得有意義。在這種情況下,檔案系統協定僅用於操作用於交會點的節點的特性。該節點不需要支援 I/O 操作,但它應該以 message_not_understood 返回碼回覆任何此類訊息。

這種轉譯器技術用於聯絡 Hurd 中大多數不以階層式檔案系統結構化的服務。例如,密碼伺服器,它發放授權標籤以換取密碼,就是以這種方式聯絡的。網路協定伺服器也是以這種方式聯絡的。Roland McGrath 想出了這種轉譯器的用法。

巧妙的檔案系統圖片

在 Hurd 中,轉譯器也可以用於呈現檔案系統另一部分的檔案系統式視圖,並帶有一些語意上的改變。例如,如果有一個檔案系統本身不能被更改,但仍然在其他地方記錄其檔案的更改版本,那將會很好。(這對於原始碼管理可能很有用。)

Hurd 將會有一個轉譯器,它會建立一個目錄,該目錄是其他目錄的概念性聯合,並帶有各種排序的衝突解決規則。這可以用於向使用者呈現一個單一目錄,其中包含他們想要執行的所有程式。在這個主題上還有其他有用的變化。

使用者可以做什麼

沒有轉譯器會因為被連接到檔案系統而獲得額外的權限。轉譯器以被轉譯檔案的所有者的 uid 執行,並且只能由該所有者設定或更改。I/O 和檔案系統協定經過精心設計,允許互不信任的客戶端和伺服器使用它們。實際上,轉譯器只是普通的程式。GNU C 函式庫有各種工具,可以讓編寫常見種類的轉譯器更容易。

有些轉譯器可能需要特殊的權限,例如密碼伺服器或允許 setuid 執行的轉譯器。這些轉譯器可以由任何人執行,但只有當它們被設定在 root 擁有的節點上時,它們才能成功地提供其所有服務。這類似於允許任何使用者呼叫 reboot 系統呼叫,但只有在該使用者是 root 時才執行它。

為何如此不同

這種設計在 Unix 世界中是完全新穎的。到目前為止,作業系統已經將其大部分功能保留在系統程式碼的領域中,從而防止了對其進行修改和擴充,除非在極端需要的情況下。使用者無法在他們的程式中替換系統的某些部分,無論這樣做會讓他們的工作變得多麼容易,而且系統管理員也不願意將從網路上隨機取得的調整安裝到他們的核心中。

在 Hurd 中,使用者幾乎可以更改傳統系統預先為他們決定的所有事情。結合 Mach 核心在任務位址空間和屬性上給予的巨大控制權,Hurd 提供了一個系統,在其中,使用者將首次能夠替換他們不喜歡的系統部分,而不會干擾其他使用者。

到目前為止,大多數基於 Mach 的作業系統主要是在新的環境中實作了一套更廣泛的相同的舊 Unix 語意。相比之下,GNU 正在擴充這些語意,以允許使用者改進、繞過或替換它們。

第 2 部分 - 看看 Hurd 的一些厲害之處

身份驗證伺服器

Hurd 更核心的伺服器之一是身份驗證伺服器。每個指向此伺服器的埠都識別一個使用者,並由該伺服器與一個id 區塊關聯。每個 id 區塊包含使用者和群組 id 的集合。任一集合都可能是空的。此伺服器與上面提到的密碼伺服器不同。

身份驗證伺服器匯出三種服務。首先,它在身份驗證埠上提供簡單的布林運算:給定兩個身份驗證埠,此伺服器將提供第三個埠,代表兩個 uid 和 gid 集合的聯集。其次,此伺服器允許任何 uid 為零的使用者建立任意的身份驗證埠。最後,此伺服器提供 RPC(不同程式之間以及可能不同主機之間的遠端程序呼叫),允許互不信任的客戶端和伺服器建立它們的身分,並互相傳遞初始資訊。這對於檔案系統和 I/O 協定的安全性至關重要。

任何使用者都可以編寫一個實作身份驗證協定的程式;這不會違反系統的安全性。當一個服務需要驗證使用者身分時,它會與其信任的身份驗證伺服器通訊。如果該使用者正在使用不同的身份驗證伺服器,則交易將失敗,並且伺服器可以拒絕進一步通訊。因為實際上,這迫使系統上的所有程式都使用相同的身份驗證伺服器,所以我們設計了它的介面,使其能夠進行任何安全的操作,並且不包含任何無關的操作。(這就是為什麼有一個單獨的密碼伺服器的原因。)

程序伺服器

程序伺服器充當資訊分類儲存庫。此伺服器支援四種主要服務。首先,程序伺服器追蹤 Mach 核心未處理的通用主機層級資訊。例如,主機名稱、主機 ID 和系統版本由程序伺服器維護。其次,此伺服器維護 Posix 的會話和程序群組概念,以協助希望使用 Posix 功能的程式。

第三,程序伺服器維護 Mach 任務和 Hurd 程序之間的一對一映射。每個任務都被分配一個 pid。程序可以向此伺服器註冊一個訊息埠,然後可以將其發放給任何請求它的程式。此伺服器不嘗試保持這些訊息埠的私密性,因此使用者程式應該自己實作它們需要的任何安全性。(GNU C 函式庫為此提供了方便的函式。)程序可以告訴程序伺服器它們目前的 argvenvp 值;然後此伺服器將在請求時提供這些參數和環境向量。這對於編寫類似 ps 的程式很有用,並且也更容易隱藏或更改此資訊。這些功能都不是強制性的。程式可以自由地忽略所有這些,並且永遠不向程序伺服器註冊自己。然而,它們仍然會被分配一個 pid。

最後,程序伺服器實作程序集合,它用於同時收集多個程序訊息埠。此外,還提供了在 pid、程序伺服器埠和 Mach 任務埠之間進行轉換的工具,同時確保所管理埠的安全性。

重要的是要強調,程序伺服器是可選的。由於 Mach 的限制,程式必須以 root 身分執行才能識別系統中的所有任務。但是,在這種情況下,可以共存多個程序伺服器,每個伺服器都有自己的客戶端,提供它們自己的宇宙模型。那些不需要 root 權限即可實作的程序伺服器功能可以作為每個使用者的伺服器來完成。使用者的手沒有被束縛。

透明 FTP

透明 FTP 是一個有趣的想法,它的時機已經到來。流行的 ange-ftp 套件適用於 GNU Emacs,使得對 FTP 檔案的存取對於所有 Emacs 檔案操作功能幾乎是透明的。透明 FTP 做著同樣的事情,但以系統範圍的方式進行。此伺服器尚未編寫;細節仍有待充實,並且無疑會隨著經驗而改變。

在 BSD 核心中,編寫透明 FTP 檔案系統並不比在 Hurd 中更難。但是向 BSD 核心駭客提及這個想法,得到的回答是「這種東西不屬於核心」。在某種意義上,這是正確的。將這些東西放在核心中違反了此類系統的所有分層原則。然而,不幸的副作用是,基於防止使用者更改他們不喜歡的東西的設計方法(being used to prevent system designers from making things better)。(最近的 BSD 核心使得編寫一個提供透明 FTP 的使用者程式成為可能。一個例子是 alex,但它需要以完整的 root 權限執行。)

在 Hurd 中,沒有任何障礙可以阻礙透明 FTP 的實現。將為節點 `/ftp' 提供一個轉譯器。`/ftp' 的內容可能無法直接列出,儘管更深層的子目錄可以。將會有各種可能的格式。例如,要存取 uunet 上的檔案,可以 cd /ftp/ftp.uu.net:anonymous:mib@gnu。或者要存取遠端帳戶上的檔案,可以 cd /ftp/gnu.ai.mit.edu:mib:passwd。此命令的部分內容可以省略,透明 FTP 程式將從使用者的 `.netrc' 檔案中讀取它們。在最後一種情況下,可以只 cd /ftp/gnu.ai.mit.edu;當其餘資料已經在 `.netrc' 中時。

不需要先執行 cd —— 使用任何檔案命令。要了解 RFC 1097(Telnet 潛意識訊息選項),只需輸入 more /ftp/ftp.uu.net/inet/rfc/rfc1097。如果經常讀取 RFC,則可以使用複製命令複製到本機磁碟。

檔案系統

普通的檔案系統也在實作中。Hurd 的初始版本將包含一個向上相容於 BSD 4.4 Fast File System 的檔案系統。除了普通的語意之外,它還將提供記錄轉譯器的方法、提供 32 位元使用者 ID 和群組 ID,並為每個檔案提供一個新的 ID,稱為檔案的作者,可以由所有者任意設定。此外,由於 Hurd 中的使用者可以有多個 uid(甚至沒有 uid),因此還有另一組權限位元,提供對未知使用者(沒有 uid)的存取控制,這與已知但任意使用者(一些 uid:現有的檔案權限世界類別)不同。

網路檔案系統協定將以 4.4 BSD 作為起點來實作。日誌結構化檔案系統也將使用與 Sprite 中相同的想法來實作,但可能不會使用相同的格式。GNU 網路檔案協定可能會及時設計出來,或者可能會擴充 NFS 以消除其缺陷。還將有各種「小型」檔案系統,例如 MS-DOS 檔案系統,以幫助人們在 GNU 和其他作業系統之間移動檔案。

終端機

I/O 伺服器將提供 Posix 的終端語意。GNU C 函式庫具有用於追蹤控制終端的功能,以及用於安排在適當時間發送正確的作業控制訊號的功能,以及用於遵守鍵盤和掛斷訊號的功能。

程式將能夠以各種方式將終端驅動程式插入通訊通道中。像 rlogind 這樣的伺服器將能夠將終端協定插入到它們的網路通訊埠上。虛擬終端將不是必要的,儘管它們將被提供用於向後相容於較舊的程式。GNU 中的任何程式都不會依賴它們。

沒有任何關於終端驅動程式的東西是被強加於使用者的。終端驅動程式允許使用者輕鬆地存取底層通訊通道,根據需要或完全繞過自身,或替換不同的類似終端驅動程式的程式。在後一種情況下,如果替換程式實作了必要的介面,C 函式庫將像使用普通終端驅動程式一樣使用它。

由於這種靈活性,原始終端驅動程式將不會提供複雜的行編輯功能,而是將自身限制在 Posix 和 BSD 中找到的行為。隨著時間的推移,將會有一個基於 readline 的終端驅動程式,它將為那些想要它們的使用者提供複雜的行編輯功能。

終端驅動程式可能不會為 UUCP 或 SLIP 所需的高容量、快速資料傳輸提供良好的支援。這些程式不需要它的任何功能。相反,它們將使用底層的 Mach 裝置埠作為終端,這支援高效地移動大量資料。

執行程式

execve 呼叫的實作分散在三個程式中。函式庫整理參數和環境向量。然後,它向保存要執行檔案的檔案伺服器發送訊息。檔案伺服器檢查執行權限,並在 exec 呼叫中進行它想要的任何更改。例如,如果檔案被標記為 setuid,並且檔案伺服器有能力,它將更改新映像的使用者識別。檔案伺服器還決定是否有權存取舊任務的程式應繼續有權存取新任務。如果檔案伺服器正在擴充權限,或執行不可讀的映像,那麼 exec 需要在新的 Mach 任務中進行,以維護安全性。

在決定與新映像關聯的策略後,檔案系統呼叫 exec 伺服器以載入任務。此伺服器使用 BFD(二進制檔案描述符)函式庫載入映像。BFD 支援大量的物件檔案格式;幾乎任何支援的格式都將是可執行的。此伺服器還處理以 #! 開頭的腳本,通過指示的程式執行它們。

標準的 exec 伺服器也會查看新映像的環境;如果它包含一個變數 EXECSERVERS,那麼它會使用那裡指定的程式作為 exec 伺服器,而不是系統預設的伺服器。(當然,對於檔案伺服器已要求保持安全的 exec 來說,這是不會發生的。)

新的映像在 GNU C 函式庫中開始執行,GNU C 函式庫向 exec 伺服器發送訊息以取得參數、環境、umask、目前目錄等。這些額外狀態都不是檔案或 exec 伺服器特有的;如果程式願意,它們可以使用與函式庫不同的方式使用它。

新程序

fork 呼叫幾乎完全在 GNU C 函式庫中實作。新的任務是由 Mach 核心呼叫建立的。C 函式庫安排使其映像被正確繼承。新的任務已向程序伺服器註冊(儘管這不是強制性的)。C 函式庫提供了在 fork 時呼叫的函式向量:一個向量在 fork 之前呼叫,一個向量在父程序中在 fork 之後呼叫,以及一個向量在子程序中在 fork 之後呼叫。(這些功能不應該用於替換正常的 fork 呼叫序列;它旨在用於需要在 fork 發生之前關閉埠或清理的函式庫。)C 函式庫將實作由 Posix.4a 草案指定的兩個 fork 呼叫(處理即時擴充的執行緒擴充的提案標準)。

沒有什麼強迫使用者以這種方式建立新任務。如果一個程式想要使用幾乎正常的 fork,但帶有一些特殊的特性,那麼它可以這樣做。C 函式庫將提供掛鉤,或者甚至可以完全替換該函式。在傳統的 Unix 系統中,這一切都是不可能的。

非同步訊息

如上所述,程序伺服器為每個向其註冊的任務維護一個「訊息埠」。這些埠是公開的,用於向任務發送非同步訊息。例如,訊號被發送到訊息埠。訊號訊息還提供一個埠,以表明發送者應該被信任可以發送訊號。GNU C 函式庫在一個表格中列出了各種埠,每個埠都識別一組可以由任何擁有該埠的人發送的訊號。例如,如果使用者擁有任務的核心埠,則允許發送任何訊號。如果使用者擁有一個特殊的「終端 ID」埠,則允許發送鍵盤和掛斷訊號。使用者可以將任意的新條目新增到 C 函式庫的訊號權限表格中。

當程序的程序群組更改時,程序伺服器將向其發送一條訊息,指示新的程序群組。在這種情況下,程序伺服器通過提供任務的核心埠來證明其權威。

C 函式庫也有訊息可以新增和刪除程序目前使用的 uid。如果新的 uid 被發送到程式,函式庫會將它們新增到其目前的集合中,然後與它知道的所有 I/O 伺服器交換訊息,向它們證明其新的授權。同樣地,訊息可以刪除 uid。在後一種情況下,呼叫者必須提供程序的任務埠。(你不能通過給予程序額外的權限來傷害它,但你可以通過剝奪權限來傷害它。)Hurd 將提供使用者程式來向程序發送這些訊息。例如,su 命令將能夠使您目前登入會話中的所有程式獲得新的 uid,而不是產生子 shell。

C 函式庫將允許程式新增它們希望識別的非同步訊息,以及阻止識別標準集合。

使其看起來像 Unix

C 函式庫將實作來自 BSD 和 Posix 的所有呼叫,以及它們的一些顯而易見的擴充。這使得使用者能夠替換他們不喜歡的呼叫或完全繞過它們,而在 Unix 中,呼叫必須「按原樣」使用,而沒有其他可能的替代方案。

在某些環境中,也將支援二進制相容性。這是通過建構一個特殊版本的函式庫來完成的,然後將其載入到程序的位址空間中的某個位置。(例如,在 VAX 上,它會被塞在堆疊上方。)Mach 的一個功能,稱為系統呼叫重定向,然後被用於捕獲 Unix 系統呼叫,並將它們轉換為跳轉到此特殊版本函式庫的跳轉。(在幾乎所有機器上,這種重定向的成本都非常小;這是 Mach 中的一個高度最佳化路徑。在 386 上,它大約是二十幾個指令。這比簡單的程序呼叫稍差一點。)

Unix 的許多功能,例如訊號遮罩和向量,都完全由函式庫處理。這使得這些功能的成本比在 Unix 中顯著降低。現在廣泛使用 sigblock 來保護關鍵區段是合理的,而不是尋找一些其他成本較低的方法。

網路協定

Hurd 將有一個函式庫,它將使將 4.4 BSD 協定堆疊移植到 Hurd 變得非常容易。這將使 BSD 支援的所有協定能夠幾乎免費地運作。目前,這包括 CCITT 協定、TCP/IP 協定、Xerox NS 協定和 ISO 協定。

為了獲得最佳效能,需要做一些工作來利用 Hurd 功能,這些功能提供非常高速的 I/O。對於大多數協定,這將需要一些思考,但不會花費太多時間。Hurd 將盡可能高效地執行 TCP/IP 協定。

作為 Hurd 設計靈活性的有趣範例,請考慮 IP trailers 的情況,它在 BSD 中被廣泛使用以提高效能。雖然 Hurd 願意發送和接收 trailers,但這樣做的好處相對較小,因為沒有要求複製資料,並且避免複製頁面對齊的資料是無關緊要的。

第二屆年度日本 GNU 研討會

Wingnut 和 FSF 於 1993 年 12 月 1 日和 2 日在東京贊助了第二屆 GNU 技術研討會。Richard Stallman 在會上談到了 GNU 專案和 FSF。然後 Jim Blandy 談到了 GNU Emacs 19。最後,東田宜夫談到了 Demacs(參見「微電腦的自由軟體」)。Bob Myers 和 David Littleboy 將英文講座翻譯成日文。Software Research Associates, Inc. (SRA)、SRA/Wingnut 專案及其員工為這次研討會和整個日本之行提供了無數的幫助。約有 70 人參加了研討會,幾家日本出版物採訪了 Richard Stallman。FSF 還首映了新版的原始碼 CD-ROM。

研討會也在 12 月 6 日在仙台舉行,Richard Stallman 在會上發表演講;12 月 7 日在會津大學舉行,Richard Stallman 和 Jim Blandy 在會上發表演講;以及 12 月 13 日在大阪舉行,Richard Stallman 和東田宜夫在會上發表演講。我們感謝所有幫助這些研討會成為現實的人員和組織,包括組織者、主辦者和口譯員。

日本 Unix 協會給了 FSF 在橫濱 Unix Fair '93 的攤位。我們感謝所有幫助 FSF 營運這個攤位的志工和組織。

我們在研討會和貿易展覽會上的成功超出了我們的預期。我們收到了來自個人支持者和使用者群體的許多非主動捐款,並感謝許多熱情的志工幫助了我們。未來,我們希望在日本和其他地方的更多 Unix 活動中露面。如果您想主辦研討會,或需要會議演講者,請聯絡封面上的任一地址。

GNU 和其他在日本的自由軟體

Mieko (h-mieko@sra.co.jp) 和 Nobuyuki Hikichi (hikichi@sra.co.jp) 繼續在日本為 GNU 專案擔任志工。他們將本 Bulletin 的每一期翻譯成日文並廣泛發行,以及他們翻譯的 GNU 通用公共許可證第 2 版。GPL 的此翻譯已獲得 FSF 的授權,並且可以通過匿名 FTP 從 srawgw.sra.co.jp 的 `/pub/gnu/local-fix/GPL2-j' 取得。他們正在進行 GNU 函式庫通用公共許可證的正式翻譯。此外,他們還徵求捐款並提供 GNU 軟體諮詢。

日文版本的 Epoch (nepoch) 和 MULE 在日本可用且廣泛使用。MULE(GNU Emacs 的多語言增強)可以一次處理多個字元集。最終,其功能將合併到 FSF 版本的 Emacs 中。FSF 不發行 nepoch,但 MULE 可用(參見「原始碼 CD-ROM」)。您也可以從 sh.wide.ad.jp 的 `/JAPAN/mule' 或 etlport.etl.go.jp 的 `/pub/mule' 通過 FTP 取得它。

Village Center, Inc. 印製了 GNU Emacs Lisp 參考手冊 的日文翻譯,並將 Texinfo 原始碼上傳到各種佈告欄。他們還出版了一本版權自由的書,Nobuyuki 和 Mieko 的 Think GNU。這似乎是日本第一本非 FSF 版權自由的出版物。部分利潤捐贈給 FSF。他們的地址是

   Village Center, Inc.
   2-2-12, Fujimi-Cho, Choufu city
   Tokyo 182,  Japan

Addison Wesley Publishers Japan 已經印製了 GNU Make 手冊GAWK 手冊 的日文翻譯。他們的地址是

   Addison Wesley Publishers Japan
   Nichibou Bldg. 2F
   1-2-2 Sarugaku-cho, Chiyoda-ku
   Tokyo 101, Japan

ICOT(下一代電腦技術研究所)正在將其研究工作產生的第五代軟體作為自由軟體發行。這包括超過 70MB 的符號處理、知識表示、問題解決和推理以及自然語言處理程式。如需更多資訊,請聯絡 irpr@icot.or.jp

日本的許多群體現在發行 GNU 軟體。它們包括 JUG,一個 PC 使用者群體;ASCII,一個期刊和書籍出版商;Fujitsu FM Towns 使用者群體;以及 SRA 的 GNU 支援特殊群體,稱為 Wingnut,他們也購買了日本的第一個豪華套裝。(從那時起,在日本已經有幾次匿名購買豪華套裝。)匿名 UUCP 也可用;如需更多資訊,請聯絡 toku@dit.co.jp

從日本直接向 FSF 下訂單也很容易,這有助於我們資助新的程式碼。我們有一份日文寫成的 FSF 訂購單,請向 japan-fsf-orders@prep.ai.mit.edu 索取訂購單副本。在日本也有兩個免付費傳真號碼(參見封面)。我們鼓勵您購買磁帶:每 150 份磁帶訂單允許 FSF 聘請一位程式設計師一年來編寫更多自由軟體。

自由提供的文本

可自由再發行的資訊不僅僅是軟體。以下是一些提供各種書籍、歷史文獻等的群體。

GNU 計劃狀態報告

GNU 文件

GNU 致力於提供高品質、易於使用的線上和印刷文件。GNU 手冊旨在解釋底層概念、描述如何使用每個程式的所有功能,並提供命令使用的範例。GNU 手冊以 Texinfo 來源檔案的形式發布,這些檔案既產生排版硬拷貝,也透過選單驅動的 Info 系統產生線上超文字式顯示。這些手冊(其來源與我們的軟體一起提供)也有硬拷貝版本;請參閱「自由軟體基金會訂購單」。

幾本 GNU 手冊以軟封面書籍的形式裝訂,並帶有平攤裝訂。這讓您可以打開它們,使它們平放在桌子上而不會在裝訂處產生摺痕。每本書都有一個內布書脊和一個外紙板封面,不會像普通的平裝本那樣破損或產生摺痕。其他 GNU 手冊也採用其他技術裝訂,因此打開時也能平放。有關每本手冊的列表,請參閱「自由軟體基金會訂購單」。

每本手冊名稱後列出的手冊版本號和程式版本號是本公告發布時的最新版本。

Emacs 手冊》(第 9 版,適用於 19 版)描述了使用 GNU Emacs 進行編輯。它還解釋了進階功能,例如大綱模式和正規表示式搜尋、如何使用特殊模式以 C++ 和 TeX 等語言進行程式設計、如何使用 tags 工具程式、如何編譯和更正程式碼,以及如何製作自己的按鍵綁定和其他基本自訂。

GNU Emacs Lisp 參考手冊》(第 2.1 版,適用於 19 版)深入涵蓋了這種程式語言,包括資料型別、控制結構、函式、巨集、語法表、搜尋和比對、模式、視窗、按鍵對應、標記、位元組編譯和作業系統介面。

Texinfo 手冊》(第 2.19 版,適用於 3 版)解釋了用於產生線上 Info 文件和排版硬拷貝的標記語言。它告訴您如何製作表格、列表、章節、節點、索引、交叉參考、如何在 GNU Emacs 中使用 Texinfo 模式以及如何捕捉錯誤。

GAWK 手冊》(第 0.16 版,適用於 2.16 版)說明了如何使用 GNU 版本的 awk。它是為從未用過 awk 的人編寫的,並描述了這種強大的字串和記錄操作語言的所有功能。

Make 手冊》(第 0.43 版,適用於 3.68 版)描述了 GNU make,這是一個用於重建其他程式部分的程式。該手冊說明了如何編寫 makefile,它指定了如何編譯程式以及其檔案如何相互依賴。其中包括針對新手使用者的入門章節和關於自動產生依賴關係的章節。

使用 GDB 進行除錯》(第 4.09 版,適用於 4.9 版)說明了如何使用 GNU 除錯器、在除錯器控制下運行程式、檢查和更改資料、修改程式內的控制流程以及透過 GNU Emacs 使用 GDB。

Bison 手冊》(1993 年 12 月版,適用於 1.23 版)教您如何為 Bison 程式編寫上下文無關文法,該程式將文法轉換為 C 語言編碼的剖析器。您不需要事先具備剖析器產生器的知識。

Flex 手冊》(第 1.03 版,適用於 2.3.7 版)說明了如何為 flex 程式編寫詞法掃描器定義,以建立一個 C++ 或 C 語言編碼的掃描器,該掃描器將識別所描述的模式。您不需要事先具備掃描器產生器的知識。

使用和移植 GNU CC》(1993 年 6 月版,適用於 2.4 版)解釋了如何運行、安裝和移植 GNU C 編譯器。

Termcap 手冊》(第 2 版,適用於 1.2 版),通常被描述為「是您想了解的關於 termcap 的兩倍」,詳細介紹了 termcap 資料庫的格式、終端機功能的定義以及查詢終端機描述的過程。本手冊主要針對程式設計人員。

Emacs Calc 手冊》(第 2.02 版,適用於 2.02 版)包括 Calc 的教學和參考手冊。它描述了如何進行普通算術、如何將 Calc 用於代數、微積分和其他形式的數學,以及如何擴充 Calc。

C 函式庫參考手冊》(93 年 6 月版,適用於 1.07 版)描述了 GNU C 函式庫的大多數功能,包括 Unix 所稱的「函式庫函式」和「系統呼叫」。在手冊變得更穩定之前,我們正在進行有限的影印運行。它是新的,需要更正和改進。請將它們發送至 bug-glibc-manual@prep.ai.mit.edu

現在可用的 GNU 軟體

我們提供

我們還提供 Unix 軟體原始碼發行磁帶,格式為 tar,媒體如下

用於 Unix 系統的捲軸和各種卡匣磁帶的內容是相同的(RS/6000 Emacs 磁帶除外,它也有 Emacs 的可執行檔);只有媒體不同(請參閱「自由軟體基金會訂購單」)。手冊的原始碼以 Texinfo 格式包含在內。我們歡迎所有發送到適當電子郵件列表的錯誤報告(請參閱「自由軟體支援」)。

磁帶上的一些檔案可能使用 gzip 壓縮以使其適合。有關解壓縮它們的說明,請參閱每個磁帶開頭的頂層 `README' 檔案。uncompressunpack 不起作用

描述每個媒體內容的文章中,程式名稱後列出的版本號是本公告發布時的最新版本。當您訂購發行磁帶或磁片時,某些程式可能會更新,因此版本號會更高。

交叉參考的鍵

BinCD
二進位檔 CD-ROM
DemcsD
Demacs 磁片
DjgppD
Djgpp 磁片
EmcsT
Emacs 磁帶
LangT
語言磁帶
SchmT
Scheme 磁帶
SrcCD
原始碼 CD-ROM
UtilD
選定的工具程式磁片
UtilT
工具程式磁帶
VMSCompT
VMS 編譯器磁帶
VMSEmcsT
VMS Emacs 磁帶
WdwsD
Windows 磁片
X11OptT
X11 選項磁帶
X11ReqT
X11 必要磁帶

目前可用的 GNU 軟體(有關新功能和即將推出的程式,請參閱「Project GNU 狀態報告」)

OCEAN 整合電路設計系統

荷蘭台夫特理工大學開發了 OCEAN,這是一個全面的晶片設計套件。它包括一整套強大的工具,用於合成和驗證半客製化海閘和閘陣列晶片。OCEAN 涵蓋設計軌跡的後端——從電路級別到佈局和工作晶片。

OCEAN 提供用於佈局、佈線、模擬和提取的互動式工具,可以自動或手動引導。它以自由軟體形式提供,包含完整原始碼,並且已知可在 X Window System 下的 Linux、HP 和 Sun 工作站上執行。為了匯入和匯出資料,它了解 EDIF、BLIF、SLS、GDSII、CIF、SPICE 和 LDM。

您可以透過匿名 FTP 從 donau.et.tudelft.nl 取得 OCEAN。如需更多資訊,請透過網際網路聯絡 patrick@donau.et.tudelft.nl

Emacs 磁帶的內容

此磁帶包含 Common Lisp 實作、GNU Emacs、與 GNU Emacs 搭配使用的各種擴充功能,以及一些其他重要的公用程式。

語言磁帶的內容

此磁帶包含程式設計工具:編譯器、直譯器和相關程式(剖析器、轉換程式、偵錯器等)。

工具程式磁帶的內容

此磁帶主要包含其他 GNU 磁帶上未提供的小型公用程式和雜項應用程式。

Scheme 磁帶的內容

Scheme 是一種簡化的、詞法作用域的 Lisp 方言。它是在 MIT 和其他大學設計的,旨在教導學生程式設計的藝術,並研究新的平行程式設計結構和編譯技術。

此磁帶包含 MIT Scheme 7.1,它符合「演算法語言 Scheme 修訂^4 報告」(MIT AI Lab Memo 848b),其中包含 TeX 原始碼。它部分以 C 撰寫,但目前很難引導。可用於引導 Scheme 的二進位檔案適用於以下系統

如果您的系統未在此清單中,並且您不喜歡引導挑戰,請參閱「GNU Software Available Now」中的「JACAL」條目。

X11 磁帶的內容

兩個 X11 磁帶包含 MIT X Window System 的第 11 版,第 5 版。第一個 FSF 磁帶包含所有核心軟體、文件和一些貢獻的用戶端。我們稱此為「必要」X 磁帶,因為它是執行 X 或在 X 下執行 GNU Emacs 所必需的。第二個「可選」FSF 磁帶包含貢獻的函式庫和其他工具組、Andrew User Interface System、遊戲和其他程式。

X11 Required 磁帶還包含迄今發行的所有修復程式和修補程式。我們會隨著新修復程式和修補程式的發行而更新此磁帶。

Berkeley Networking 2 磁帶

Berkeley "Net2" 發行版本包含第二個 4.3 BSD 發行版本,並且比 4.3 BSD-Tahoe 和 4.3 BSD-Reno 更新。它包括大多數 BSD 軟體系統,但除了一些公用程式、核心的某些部分和一些您的 C 函式庫可能提供的函式庫常式外(我們在其他磁帶上提供了許多遺失程式的替代品)。此發行版本還包含第三方軟體,包括 Kerberos 和一些 GNU 軟體。

VMS Emacs 和 VMS 編譯器磁帶

我們提供兩個 VMS 磁帶。一個僅包含 GNU Emacs 編輯器(不包括上述 Emacs 磁帶上的任何其他軟體)。另一個包含 GNU C 編譯器、Bison(用於編譯 GCC)、GAS(用於組譯 GCC 的輸出)以及一些函式庫和包含檔案(不包括上述 Languages 磁帶上的任何其他軟體)。我們不知道 VMS 的 GDB 埠。兩個 VMS 磁帶都具有您可以從中引導的可執行檔,因為 DEC VMS C 編譯器無法編譯 GCC。請不要要求我們投入精力於 VMS 支援,因為它對 GNU 專案而言是周邊的。

百畝諮詢公司擴張

Hundred Acre Consulting 繼續提供支援和開發服務,其專長是 GNU C 和 C++ 編譯器。它繼續執行將其利潤的一部分捐贈給 FSF 的政策。他們的地址是

   Hundred Acre Consulting
   5301 Longley Lane, Suite D-144
   Reno, NV   89511
   USA
   Phone: (702) 829-9700 or +1-800-245-2885
   Fax: (702) 829-9926
   E-mail: info@pooh.com

原始碼 CD-ROM

自由軟體基金會已製作其第三張原始碼 CD-ROM。它包含以下內容

此 CD-ROM 也包含版本 19 的《GNU Emacs Lisp 參考手冊》2.02 版的 Texinfo 原始碼,以及俄亥俄州立大學 Emacs Lisp 檔案庫的快照。(您可以透過 UUCP(請洽詢 staff@cis.ohio-state.edu 以取得指示)或匿名 FTP 從 archive.cis.ohio-state.edu 的 `/pub/gnu/emacs/elisp-archive' 取得此檔案庫中的程式庫。)

MIT Scheme、VMS 和 Net2 磁帶的內容未包含在內

此 CD-ROM 採用 ISO 9660 格式,並且可以在大多數作業系統上掛載為唯讀檔案系統。如果您的驅動程式支援,您可以掛載具有 "Rock Ridge" 擴充功能的 CD-ROM,這樣它看起來就會像一個普通的 Unix 檔案系統,而不是充滿截斷或其他損壞名稱的、符合原始 ISO 9660 規範的檔案系統。

您可以在不需將原始碼複製出 CD 的情況下,建置此軟體的大部分內容。僅需要足夠的磁碟空間來存放目標檔案和中繼建置目標。除了 MS-DOS 的 MIT Scheme 二進位檔和 Windows 可執行檔 Ghostview 之外,此 CD 上沒有預先編譯的程式。您將需要一個 C 編譯器(需要其他直譯器或編譯器的程式通常會提供用於引導程式的 C 原始碼)。

如果最終是由企業付款,則 CD 的價格為 400 美元。如果您是以個人身分自掏腰包付款,則價格為 100 美元。

編譯器工具二進位檔 CD-ROM

我們現在提供一種 CD-ROM,其中包含適用於某些缺少編譯器的系統的 GNU 編譯器工具的可執行檔。這將使這些系統的使用者能夠編譯 GNU 和其他自由軟體,而無需購買專有編譯器。

此 CD-ROM 採用 ISO 9660 格式,並且可以在大多數作業系統上掛載為唯讀檔案系統。如果您的驅動程式支援,您可以掛載具有 "Rock Ridge" 擴充功能的 CD-ROM,這樣它看起來就會像一個普通的 Unix 檔案系統,而不是充滿截斷或其他損壞名稱的、符合原始 ISO 9660 規範的檔案系統。

我們希望在每次更新此 CD-ROM 時包含更多系統。如果您可以協助為新系統(特別是對於不附帶 C 編譯器的系統)建置二進位檔,或有系統建議,請透過封面上的任一地址與我們聯絡。

這些程式:

適用於這些平台

磁帶 & CD-ROM 訂閱服務

如果您無法連線網路,我們的訂閱服務可讓您隨時掌握最新的 FSF 開發進度。只需相當於三卷磁帶或 CD-ROM 的一次性費用,我們將郵寄給您四個新版本的您選擇的磁帶或原始碼 CD-ROM。磁帶每季寄送,原始碼 CD-ROM 則在發行時寄送。(原始碼 CD-ROM 目前每年發行兩次,但我們未來可能會更頻繁地發行。)

我們會定期向您發送新版本的 Emacs、Languages、Utilities 或 MIT X Window System Required 磁帶或原始碼 CD-ROM。BSD Net-2、MIT Scheme 和 MIT X Window System Optional 磁帶的變更頻率不足以保證每季更新。編譯器工具二進位檔 CD-ROM 是全新的,我們尚不清楚是否會提供訂閱服務。

由於 Emacs 19 現在已在 Emacs 磁帶和原始碼 CD-ROM 上,因此訂閱其中任何一個都將是掌握 Emacs 19 更新的便捷方式,因為它會經歷 beta 測試階段。

訂閱也是掌握 MIT X Window System 定期錯誤修復的簡單方法。我們會更新 X11 Required 磁帶,因為 X Window System 的修復和修補程式會在全年發布。每個新版本的原始碼 CD-ROM 也都有 X Window System 的更新原始碼。請參閱「自由軟體基金會訂購單」上的「磁帶訂閱」和「CD-ROM 訂閱」章節。

如何取得 GNU 軟體

自由軟體基金會的所有軟體和出版物均經許可發行,可以複製和重新散布。取得 GNU 軟體最簡單的方法是從其他擁有它的人那裡複製。您可以透過訂購磁片、磁帶或 CD-ROM 直接從 FSF 取得 GNU 軟體。此類訂單為 FSF 工作人員提供了大部分資金,因此如果可以,請訂購以支持我們的工作。請參閱「自由軟體基金會訂購單」。

也有第三方團體發行我們的軟體;他們不與我們合作,但可以以其他形式提供我們的軟體。為了您的方便,其中一些列在「微電腦自由軟體」中。請注意,自由軟體基金會與他們沒有任何關聯,並且不對其版本的即時性或回應的迅速性負責。

如果您決定與這些經銷商之一進行交易,請詢問他們在協助自由軟體開發方面做了多少工作,例如透過向自由軟體開發專案捐款或自行編寫供一般使用的自由軟體。透過部分基於此因素做出您的決定,您可以幫助鼓勵那些從自由軟體中獲利的人為其成長做出貢獻。

如果您可以連線網際網路,但無法存取以下主機之一,您可以透過匿名 FTP 從 GNU 的發行主機 prep.ai.mit.edu(IP 位址為 18.71.0.38)取得軟體。如需更多資訊,請取得檔案 `/pub/gnu/GETTING.GNU.SOFTWARE'。prep 是一個非常繁忙的主機,並且在任何給定時間僅允許有限數量的 FTP 登入。請使用以下其他 TCP/IP 網際網路站點之一,這些站點也透過匿名 FTP 提供 GNU 軟體(程式:ftp,使用者:anonymous,密碼:您的電子郵件地址,模式:binary)。

JANET 的使用者可以在 `/gnu' 下查看 src.doc.ic.ac.uk

您可以透過 UUCP 取得一些 GNU 程式。俄亥俄州立大學定期將其 UUCP 指示發布到 USENET 上的新聞群組 comp.sources.d。這些人將透過電子郵件向您發送 UUCP 指示

hao!scicom!qetzal!upba!ugn!nepa!denny, uunet!hutch!barber,
src@contrib.de (Europe), james@bigtex.cactus.org, acornrc!bob,
toku@dit.co.jp (Japan), staff@cis.ohio-state.edu

對於沒有網際網路存取的使用者,請參閱「自由軟體支援」章節,以取得有關透過 UUCP 取得電子郵件和檔案傳輸的資訊。

豪華發行版

自由軟體基金會一直被要求建立一個套件,提供我們所有軟體的可執行檔。通常我們只提供原始碼。除了提供包含原始碼的二進位檔外,豪華發行版還包括我們所有印刷手冊和參考卡的副本。

FSF 豪華發行版包含數百種不同程式的二進位檔和原始碼,包括 GNU Emacs、GNU C 編譯器、GNU 除錯器、完整的 MIT X Window System 和所有 GNU 公用程式。

您可以選擇以下機器和作業系統之一:HP 9000 series 300、700 或 800 (4.3 BSD 或 HP-UX);RS/6000 (AIX);SONY News 68k (4.3 BSD 或 NewsOS 4);Sun-3、Sun-4 或 SPARC (SunOS 4 或 Solaris)。如果您的機器或系統未列出,或者特定程式尚未移植到該機器,請致電以下電話號碼聯絡 FSF 辦公室,或發送電子郵件至 gnu@prep.ai.mit.edu

我們以 Unix tar 格式在以下媒體之一上提供軟體:1600 或 6250 bpi、1/2 英吋、捲軸式磁帶;Sun DC300XLP 1/4 英吋卡匣、QIC-24;HP 16 軌 DC600HC 1/4 英吋卡匣;IBM RS/6000 1/4 英吋卡匣、QIC-150;Exabyte 8mm 卡匣;DAT 4mm 卡匣。如果您的電腦無法讀取其中任何一種,請致電我們。

包含的手冊包括 Bison、Calc、Gawk、GNU C 編譯器、GNU C 程式庫、GNU 除錯器、Flex、GNU Emacs Lisp 參考手冊、Make、Texinfo 和 Termcap 手冊各一本;GNU Emacs 手冊六本;以及 GNU Emacs、Calc、GNU 除錯器、Bison 和 Flex 的參考卡包各一份。

此外,每個豪華發行版都包含 CD-ROM(ISO 9660 格式,帶有 Rock Ridge 擴充功能),其中包含我們軟體的原始碼和適用於某些系統的編譯器工具二進位檔。

豪華發行版的價格為 5000 美元。它適用於想要取得為他們編譯的所有內容,或想要進行大力幫助 FSF 的購買的人。若要訂購,請填寫「自由軟體基金會訂購單」中的「豪華發行版」部分,並將其寄送至

   Free Software Foundation, Inc.
   675 Massachusetts Avenue
   Cambridge, MA   02139-3309
   USA
   Electronic mail: gnu@prep.ai.mit.edu
   Phone: +1-617-876-3296
   FAX: +1-617-492-9057
   FAX (in Japan):
     0031-13-2473 (KDD)
     0066-3382-0158 (IDC)

MS-DOS 發行版

FSF 在 3.5 英吋 1.44MB 磁片上發行一些移植到 MS-DOS 的 GNU 軟體。這些磁片同時包含原始碼和可執行檔。

Demacs 磁片的內容

Demacs 是 GNU Emacs 18.55 的 MS-DOS 版本,其中包含來自 Emacs 18.57 的一些變更。實際上包含兩個版本:一個處理 8 位元字元集;另一個基於早期版本的 MULE,處理包含漢字在內的 16 位元字元集。我們在五張磁片上發行它們。

Demacs 在執行 MS-DOS 的 Intel 80386 和 80486 架構的機器上執行。它與 XMS 記憶體管理器和 VCPI 相容,但尚不與 Microsoft Windows 延伸模式或其他 DPMI 管理器相容。

DJGPP 磁片的內容

我們在 22 張磁片上發行 DJGPP。DJGPP 至少需要 5MB 的硬碟空間才能安裝,以及 512K 的 RAM 才能使用。有關 DJGPP 的更多資訊,請參閱「現有 GNU 軟體」。

精選工具程式磁片的內容

GNUish MS-DOS 專案發布移植到 PC 相容機的 GNU 軟體。一般而言,此軟體將在 8086 和 80286 架構的機器上執行;不需要 80386。其中一些公用程式必然缺少某些功能。包含:cpiodiff、一些檔案公用程式、findflexgdbmgrepindentlessm4make、MAWK、MicroEmacs、ptx、RCS、sedsharsort 和 Texinfo。

Windows 磁片的內容

我們正在單張磁片上發行移植到 Microsoft Windows 的 GNU Chess 和 gnuplot 版本。

微電腦自由軟體

我們不提供微電腦上 GNU 軟體的支援,因為它與 GNU 專案無關。但是,我們正在磁帶、CD-ROM 和磁片上發行一些此類程式。我們也願意發布有關支援和維護它們的團體的資訊。如果您知道任何此類努力,請將詳細資訊(包括郵寄地址、檔案庫站點和郵寄清單)發送到封面上的任一地址。

有關 FSF 提供的微電腦軟體的更多資訊,請參閱「MS-DOS 發行版」和兩篇 CD-ROM 文章。請不要向我們詢問任何其他軟體。FSF 維護任何其他軟體,並且沒有其他資訊。

FSF T 恤

我們仍然有自由軟體基金會 T 恤可供購買,由劍橋藝術家 Jamal Hannah 設計。T 恤正面印有 GNU 在工作站上駭入的圖像,上方文字為 "GNU's Not Unix",下方文字為 "Free Software Foundation"。它們有兩種顏色可供選擇,Natural 和 Black。Natural 是一種米白色、未漂白、未染色、環境友善的棉質,印有黑色墨水,非常適合紮染或直接展示。黑色印有白色墨水,非常適合深夜駭客。所有襯衫均為厚實的 100% 棉質,尺寸有 M、L、XL 和 XXL。

T 恤正面印有 GNU 在工作站上駭入的圖像,上方文字為 "GNU's Not Unix",下方文字為 "Free Software Foundation"。我們剛剛在 T 恤背面新增了 GNU 通用公共授權的副本,背面以前是空白的。

使用「自由軟體基金會訂購單」訂購您的襯衫,並考慮購買一件作為送給您最喜歡的駭客的禮物!

為某事而努力,因為它是好的,而不僅僅是因為它有成功的機會。

                        -Vaclav Havel

感謝 GNU 使用者

感謝以上在「非正式 GCC 聯盟」、「GNUs 快訊」、「GNU 專案狀態報告」、「日本第二屆年度 GNU 研討會」、「日本的 GNU 和其他自由軟體」和「現有 GNU 軟體」中提及的所有人。

感謝 MIT人工智慧實驗室電腦科學實驗室Athena 專案 的寶貴協助。

感謝購買我們豪華發行版的眾多公司和組織。

為了感謝他們在日本的協助,感謝:Hikichi NobuyukiHikichi MiekoHanda Ken'ichiBob MyersDavid LittleboyIda Masayuki 教授Japan Unix SocietySenri International Information InstituteTohoku 產業活化中心會津大學Nihon Sun User Group。感謝 Addison Wesley Publishers JapanA.I. SoftVillage Center, Inc.ASCII Corporation 和日本的許多其他公司,感謝他們持續的捐款和支持。

感謝 Sun Users GroupPCIUSENIX Association,感謝他們在會議上捐贈展位。感謝所有在這些和其他會議上協助 GNU 專案的志工。感謝 Wired Magazine多倫多大學書店Barry Meikle,感謝他們在各自的出版物中捐贈廣告版面。

再次感謝 開放軟體基金會 的持續支持;並感謝 Cygnus Support 以多種方式協助 GNU 專案。感謝 Warren A. Hunt, Jr.Computational Logic, Inc. 的捐贈和支持。感謝 奧爾堡大學 捐贈了一位兼職程式設計師。感謝 Jamie Zawinski 實作了 Emacs 19 中一些與 X 相關的功能。

感謝所有借出或捐贈機器的人,包括一位匿名捐贈者捐贈了 4mm DAT 卡匣磁碟機、IBM Corp. 捐贈了 Exabyte 磁帶機和 RS/6000;Cygnus Support 捐贈了一台 Sun SPARCstation;Hewlett-Packard 捐贈了兩台 80486、六台 68030 和四台 Spectrum 電腦;Thinking Machines Corp. 的 Brewster Kahle 捐贈了一台 Sun-4/110;CMU 的 Mach 專案 捐贈了一台 Sun-3/60;Intel Corp. 捐贈了他們的 386 機器;NeXT 捐贈了他們的工作站;MIT 媒體實驗室 捐贈了一台 Hewlett-Packard 68020;東京的 SONY Corp.Software Research Associates, Inc. 都捐贈了三台 SONY News 工作站;MIT 電腦科學實驗室 捐贈了 DEC MicroVAX;開放軟體基金會 捐贈了兩台 Compaq 386;Delta Microsystems 捐贈了一台 Exabyte 磁帶機;一位匿名捐贈者捐贈了 5 台 IBM RT/PC;Liant Software Corp. 捐贈了五台 VT100;Jerry Peek 捐贈了一台 386 機器;NCD Corporation 捐贈了一台 X 終端機;以及 Interleaf, Inc.Veronika CaslavskyPaul EnglishCindy WoolworthLisa Bergen 借出了一台掃描器。

感謝所有貢獻移植版和擴充功能的人,以及所有提交其他原始碼、文件和良好的錯誤報告的人。

感謝所有捐款並提供其他形式幫助的人。

也感謝所有透過訂購手冊、發行磁帶、磁片和 CD-ROM 來支持我們的人。

創建此公告是我們感謝所有對我們正在做的事情表示興趣的人的方式。

                                                -------
Free Software Foundation, Inc                  |       |
Electronic Mail: gnu@prep.ai.mit.edu           | stamp |
675 Massachusetts Avenue                       |       |
Cambridge, MA  02139-3309                      | here  |
USA                                            |       |
                                                -------