Chapter 20. 對 FreeBSD 貢獻您的一分力

Table of Contents
20.1. 需要什麼
20.2. 如何作出貢獻
20.3. 捐助者專欄
20.4. 過去核心團隊成員
20.5. 過去的開發團隊成員
20.6. 軟體起源貢獻者
20.7. 其他 FreeBSD 貢獻者
20.8. 386BSD 修補程式貢獻者

原文:Jordan K. Hubbard .

想對 FreeBSD 盡己棉薄之力嗎?很好!我們永遠都需要大家的幫助,因為 FreeBSD 是一個依賴大家的貢獻才能在眾多作業系統中生存 下來的作業系統。您的貢獻不僅讓我們心存感謝,更是 FreeBSD 繼續成長茁壯的原 動力。

相較於一般的認知而言,並不是您是高深的程式設計師或是跟 FreeBSD 的核心 小組成員是好朋友,您的貢獻才會被接受。 FreeBSD 整個計畫的發展都歸功於全世 界廣大並不斷增加的貢獻者,他們的年齡跟技術層面都不太一樣;而且,要做的工作 永遠都比能幫忙的人要多。

因為 FreeBSD 發展計畫必須對整個作業系統環境(以及安裝)負責,並不單單針 對系統核心或是一些凌亂的工具程式,所以我們的 TODO 列 表列出了龐大的工作項目,從文件、beta 測試、介紹到高階的核心研發都有。 因 此,不論您的層次為何,相信一定有需要您貢獻之處!。

商業機構,如果有開發 FreeBSD 相關產品,我們也鼓勵您跟我們接觸。您的產 品需要特別的需求才能運作嗎?如果不是太奇怪,您將發現我們會很樂意接受您的需 求。您正在開發加值型軟體嗎?請讓我們知道!因為在某些層面我們或許可以跟您合作 。免費軟體的領域裡充滿了很多存在已久的假設,如軟體如何研發、出售以及在軟 體的生命週期中該如何維護。我們希望您能從另外一個角度來考慮看看。

20.1. 需要什麼

下面的工作清單及子計畫包含了一些在核心小組 TODO 列表中的項目以及過去幾個月來我們所蒐集的使用者需求。這些工作僅可能以需求的 緊急狀況來排列。如果您對其中列出的工作項目有興趣,可以按下已經列出的研發 人(協調人)的名字寫信跟他們聯絡。 如果一項工作沒有指定研發人,那麼您就 是第一個志願者囉?

20.1.1. 高優先權工作列表

下列的工作被認為是緊急的,通常它們表示有些東西根本不能用或是有強烈 的需求:

  1. 三階段啟動問題。 總協調人:FreeBSD technical discussions mailing list

    • 替 WinNT 相容磁碟標號,以便啟動的第三階段磁碟能精確對應 BIOS 硬體結 構。

  2. 檔案系統問題。 總協調人:FreeBSD filesystem project mailing list

    • 清理 nullfs 檔案系統程式碼並為其加上註解。 協調人:Eivind Eklund

    • 修正 union 檔案系統。 協調人:David Greenman

  3. 開發 Int13 vm86 磁碟驅動程式。 協調人:FreeBSD technical discussions mailing list

  4. 新的匯流排架構。 協調人:New Bus Architecture mailing list

    • 將現有的 ISA 驅動程式移植到新的架構。

    • 將所有跟中斷管理有關的程式碼移到適當的匯流排驅動程式中。

    • 將 PCI 子系統移植到新架構。 協調人:Doug Rabson

    • 研發正確處理抽取式裝置的方法,並以此方法為基礎來研發對 PC-Card 及 CardBus 裝置的支援。

    • 永遠解決 probe/attach 優先權問題。

    • 將所有現有的匯流排系統轉移至新架構。

  5. 核心問題。 總協調人:FreeBSD technical discussions mailing list

  6. 增加更多完善的安全機制。 總協調人:FreeBSD security mailing list

    • 建構像是 Tripwire(TM) 的東西並整合至核心中,分遠端跟當地端部分。 為了正確建立此功能,必須討論一些密碼學的議題;詳情請聯絡協調人。 協調人:Eivind Eklund

    • 整個核心使用 suser(),而不跟 0 比較。目前的做 法是一半一半。 協調人:Eivind Eklund

    • 將安全等及劃分為不同的部分以便管理者能直接將可以移除的權限移除。 當然,設定整體安全等級的結果必須跟現在一樣。 協調人:Eivind Eklund

    • 使有可能上傳一些"允許的程式"到 BPF,並禁止接受其它的 程式。 這將使得 BPF 的使用,如 DHCP,不受攻擊者入侵本地端網路。

    • 更新安全性檢查 script。我們應該至少從其他的 BSD 衍生系統抓取所有 的檢查,然後對安全等級較高的系統的相關部分增加相對應的標籤。 協調人:Eivind Eklund

    • 為核心加上授權機制,以達到不同的授權政策。 某些部分可以藉由修改 suser() 完成。 協調人:Eivind Eklund

    • NFS 部分加入程式碼,使得無法 chdir("..") 出 一個 NFS 分割。例如:/usr 是一個 UFS 分割,裡層的 /usr/src 是 NFS 分割。目前可以利用 NFS 在處理 /usr/src 時取得 /usr 的權限。

20.1.2. 中度優先權工作列表

以下列出的工作必須完成,但是不是很急迫:

  1. 支援以 KLD 為基礎的驅動程式支援及管理設定。

    • 寫一個設定管理員 (在啟動的第三階段?),以便在能正常偵測到您的硬 體,並且只載入您的硬體所需要的 KLD。

  2. PCMCIA/PCCARD。 協調人:Michael Smith 及 Warner Losh

    • 說明文件!

    • 可穩定操作的 pcic 驅動程式 (需要測試)。

    • sio.c 的辨識及處理 (大部分已完成)。

    • ed.c 的辨識及處理 (大部分已完成)。

    • ep.c 的辨識及處裡 (大部分已完成)。

    • 使用者模式的辨識及處理 (僅部份完成)。

  3. 進階電源管理。 協調人:Michael Smith 及 Poul-Henning Kamp

    • APM 子驅動程式 (大部分已完成)。

    • IDE/ATA 磁碟子驅動程式 (部分完成)。

    • syscons/pcvt 子驅動程式。

    • 跟 PCMCIA/PCCARD 驅動程式整合 (停滯/重新開始)。

20.1.3. 低優先權工作列表

下列的工作是額外的或屬於隨興的,短期內不確定有人會接:

前幾個項目來自 Terry Lambert

  1. NetWare 伺服器 (保護模式下 ODI 驅動程式) 啟動器及子服務,以便能使用 隨網路卡所附的 ODI 卡驅動程式。

  2. 增加 Linux 系統也可使用的「系統升級」選項,而非僅 FreeBSD 可用。

  3. Symmetric Multiprocessing with kernel preemption (requires kernel preemption).

  4. 大家所關心,對於手提電腦的支援。這應該是藉由改變 PCMCIA 橋接規則以及 對電源管理事件的處理來達成。 但是這其中還有一些問題,像是偵測是內建還是 外接的顯示裝置及選擇適當的解析度、當系統在暫停的時候不會拖慢磁碟速度、讓 一些有暫停功能的裝置消失而不影響正常的開機啟動 (跟 PCMCIA 相同的問題)。

20.1.4. 小型工作列表

大部分上面所列出的工作都需要多點花時間來處理或是需要對 FreeBSD 核心 有進一步深入的知識(或者兩者都要兼備)。但是,仍然有些工作適合在"週末" 或是給沒有程式設計經驗的人做。

  1. 如果您正在使用 FreeBSD-current 而且電腦有連上網路,那麼,有一台機器 current.FreeBSD.org 每天都會建置出一個新的釋 出版本;您可以偶爾從這台機器安裝最新的版本,然後回報是否在這過程中有發生 任何問題。

  2. 訂閱 freebsd-bugs 郵件清單。 您可能對某些問題可以做有建設性的建議,或 是有些修補程式可以請您幫忙測試。 甚至,您可以自己嘗試去修復這些問題。

  3. 定期閱讀 FAQ 及 Handbook。 如果您發現有任何資訊解釋的很差、過時或是根 本就是錯的,請讓我們知道。 最好是送給我們一份修正好的資料 (SGML 並不難 學,但是我們也不反對您用純文字格式)。

  4. 幫忙將 FreeBSD 文件翻譯成您當地的語言 (如果目前沒有的話);請寄信給 FreeBSD documentation project mailing list 看看是不是有人正在做同樣的事。 注意,您並不需要翻譯每份 FreeBSD 文件;事實上,有關安裝過程的文件才是最需要翻譯的。

  5. 偶爾或常常訂閱 freebsd-questions 郵件清單及 the comp.unix.bsd.freebsd.misc newsgroup。您可藉此分享您 的經驗以及幫助需多人解決他們的問題;有時候,您還可能因此而學到一些新的東 西呢!這些討論區也是一些工作上靈感或想法的來源。

  6. 如果您知道任何 bug 的修正,並且可以應用在 -current 版本,但是在一段時 間內 (通常是幾個星期) 還沒有整合進 -stable 版,請寄信給相關的執行者,有禮 貌地提醒他。

  7. 移動大家提供的軟體到 src/contrib

  8. 確定在 src/contrib 中的程式碼是最新的。

  9. 尋找有沒有公元 2000 年的 bug (及任何您可以找到的修正!)。

  10. 建置 source tree (或其中的一部分) 且能提供額外的警告訊息以及清理過時 的警告訊息。

  11. 修正 ports 中還在使用廢棄不用的功能的警告訊息,例如使用 gets() 或是引入 malloc.h。

  12. 如果您對任何一個 ports 有所貢獻,請去函給原作者並提供您所修正的程式 ( 這對您以及他們發行下一個版本會有很大的幫助)。

  13. 建議未來要做的工作!

20.1.5. 參閱 PR 資料庫

FreeBSD PR 列表 列出了所有 FreeBSD 使用者目前問題的回報以及可能的改進。瀏覽一 下這些問題,看看您對它們是不是有興趣。 有些可能只是很簡單的問題,您只要仔 細看一下並確認 PR 資料庫中所列出的修正方式可行就可以了。 當然,有些問題也 可能很複雜。

您可以由還沒有任何人接手的問題開始著手;如果這個問題已經分配給別人 了,但是您覺得自己可以處理,那麼您可以寫信給他們並詢問您是否可以接手處理; 他們可能已經有一些修正程式可供測試;或著,您也可以跟他們討論對此問題未來有 什麼樣的構想。