FreeBSD
维基百科,自由的百科全书
| FreeBSD | |
| 網站 | FreeBSD官方網站 |
|---|---|
| 開發公司/ 開發者 |
FreeBSD Project |
| 作業系統家族 | BSD |
| 源码模式 | 自由軟體 |
| 最新穩定版本 | 7.2-RELEASE / 2009年5月4日 |
| 最新測試版本 | 8.0-CURRENT / 開發中 |
| 支援平台 | i386, AMD64, SPARC, SPARC64, IA-64, PC98, PowerPC, ARM architecture |
| 内核類別 | 單核心 |
| 授權條款 | BSD許可證 |
| 運作狀態 | 支援中 |
FreeBSD是一种自由類Unix操作系统,是由经过BSD、386BSD和4.4BSD发展而来的 類Unix 的一个重要分支。FreeBSD拥有超过200名活跃开发者和上千名贡献者。
FreeBSD被认为是自由操作系统中的不知名的巨人。它不是Unix,但如Unix一样运行,具有兼容Unix的系统API。作為一個作業系統,FreeBSD 被認為相當穩建可靠。
FreeBSD 是以一個完善的作業系統的定位來做開發。其核心、驅動程式以及所有的使用者層(Userland)應用程式(比方說是Shell)均由同一原始碼版本控制系統保存(目前使用 Subversion並與CVS相容)。相較於另一知名的的作業系統Linux,其核心為一組開發人員設計,而使用者應用程式則交由他人開發(例如 GNU計劃),最後再由其他團體整合並包裝成Linux套件。
FreeBSD 預設是无桌面環境的命令行界面,想要使用桌面環境必須自行安裝,或是使用PC-BSD之類的桌面發行版。
目录 |
[编辑] 许可协议
FreeBSD 在BSD許可證下发布[1],允许任何人在保留版权和许可协议信息的前提下随意使用和发行。BSD许可协议并不限制将 FreeBSD 的源代码在另一个协议下发行,因此任何团体都可以自由地将 FreeBSD 代码融入它们的产品之中去。
[编辑] 發展團隊
FreeBSD发展採用Core Team 的方式。Core Team 的成員決定整個 FreeBSD 計畫的大方向,對於開發者間的問題有最後的決定權,其他的開發者也可以送出建議或是他們修改過的程式碼,但是 Core Team 保留最終的決定權,決定是否將這功能放進FreeBSD。這種方式與Linux发展大相径庭。
[编辑] Contributor [2]
也可以說是 Submitter,无 FreeBSD 的 CVS 的存取權限,但是可以透過其它的方式,例如提交 Problem Reports 或是在 Mailing list 上面參與討論,來對 FreeBSD 做出貢獻。
[编辑] Committer [3]
有對 FreeBSD 的 CVS 存取的權限,可以將他的程式碼或是文件送到版本庫裡面。一個 committer 必須要在過去的 12 個月中有 commit 的動作。而一個活躍的 committer 指在每個月至少都有一次以上的 commit 動作。
雖然說沒有必要限制一個有 commit 權限的人只能在程式碼樹中可以存取的地方,但是如果一個 committer 要在他/她沒有做出貢獻或是不熟悉的地方,他/她必須要讀那個地方的歷史記錄,還有 MAINTAINER 檔案,確認這個部份的維護者對於更改這邊的程式碼有沒有什麼特殊的要求。
[编辑] Core Team [4]
Core Team 成員由 committer 互相推選出來,是整個 FreeBSD 計畫的領導人,他們提升活躍的 contributor 成為 committer,還有可以指派「Hat」(指在計畫中負責一些特定工作或領域的人),也是對於決定整個計畫的大方向的最後仲裁者。在2004年7月1日,core team 有9位成員,而 core team 選舉每兩年舉行一次。
[编辑] 平台
FreeBSD所支援的平台依照支援程度分成四個等級。第一線平台(Tier 1,完整支援平台)目前包括i386、Sparc64、AMD64及PC98。第二線平台(Tier 2,發展平台)包括PowerPC及IA64。對於第一線與第二線平台,FreeBSD會維持維護及穩定性,同時大多數的新功能也都會被要求在這些平台上能夠正常運作。第三線平台(Tier 3,實驗平台)目前只包括了S/390,這個等級的平台不被FreeBSD正式支援。而其他的平台都被歸類到第四線平台。[5]
對ARM和MIPS架構的支援正在開發中。在開發中的7.x版本中,DEC Alpha 的支援已被移除。
[编辑] FreeBSD初期歷史
FreeBSD 的發展始於1993年,取源於386BSD。然而,因為386BSD原始碼的合理性受到質疑以及Novell(當時UNIX的版權擁有者)與柏克萊接連而來的訴訟,FreeBSD在1995年一月發佈的 2.0-RELEASE 中以柏克萊加州大學的 4.4BSD-Lite Release 全面改寫。FreeBSD Handbook 中有更多 FreeBSD 的發展歷史。
FreeBSD 2.0 最值得注意的部份也許是對卡內基美隆大學的 Mach Virtual Memory 系統翻修以及 FreeBSD Ports system 的發明。前者對於高負荷的系統最佳化,後者則是建立了一套簡單且強大的機制維護第三方軟體。有不少大型站台都使用 FreeBSD,像是 cdrom.com(一個巨大的軟體收集站台),Hotmail 以及 Yahoo。
FreeBSD 3.0 則引入了 ELF binary 格式,並開始支援多 CPU 系統(SMP,Symmetric multiprocessing)以及 64 位元 Alpha 平台。3.x 對於系統做了非常多的改革,這些措施在當時並沒有帶來好處,但卻是 4.X 成功的基石。
[编辑] FreeBSD 5
最後一個版本的 FreeBSD 5 是 5.5,是在 2006年五月發行的。
在FreeBSD 4的SMP架構下,在同一時間內只允許一個CPU進入核心(即Giant Lock),FreeBSD 5最大的改變在於改善底層核心Locking機制,審視並改寫核心程式碼,使得不同的CPU可以同時進入系統核心,藉以增加效率。
另外一個重大的改變在於自5.3開始支援m:n執行緒的KSE(Kernel Scheduled Entities),表示m個使用者執行緒共用n個核心執行緒的模式。
這個版本的許多貢獻是由於商業化版本的BSD OS團隊的支援。
[编辑] FreeBSD 6
FreeBSD 6為目前的-STABLE發展版本,FreeBSD 6.3在2008年1月18日發行[6],這個版本主要針對軟體的更新,並加入lagg(可以對多張網卡操作)的支援,並引入重新改寫的unionfs。FreeBSD 6.4在2008年11月28日发行[7]。
[编辑] FreeBSD 7
FreeBSD 7為目前第二個-STABLE發展版本,在2007年6月19日進入發行程序[8],2008年2月27日7.0-RELEASE正式发布。新增的功能包括了:
- SCTP(實做完成)[9]
- 日誌式UFS檔案系統:gjournal(實做完成)[10]
- 移植昇陽所發展的DTrace(實做完成,但還未交付至CVS)
- 移植昇陽所發展的ZFS檔案系統(實做完成)[11]
- 使用GCC4(移植完成,目前為4.2.1)[12]
- 對ARM與MIPS平台的支援
- 重寫過的USB stack(實做完成,但還未交付至CVS)
- Scalable concurrent malloc實做(已經可以使用)[13] [14]
- ULE排程表2.0(SCHED_ULE)(實做完成)[15],並修改加強為SCHED_SMP(實做完成),在交付至CVS時的正式名稱為ULE 3.0[16],這個版本在8核心的機器上以sysbench MySQL測試的結果,速度上比Linux 2.6快大約10%(無論是使用Google的tcmalloc或是glibc+cfs)[17]
- Linux 2.6模擬層(已經可以使用)
- Camellia Block Cipher(實做完成)[18] [19]
- ZFS的运行

[编辑] 命名规则
- A-CURRENT
- 在 -CURRENT 分支所使用的 CVS Tag 為
.,固定被稱為 A-CURRENT,如目前的 -CURRENT 分支為 7-CURRENT,這個版本只建議開發者使用,通常在郵件論壇上測試過覺得沒有什麼大問題的功能會先被加到這個分支裡。
- A.B-STABLE
- 在 -STABLE 分支裡所使用的 CVS Tag 為
RELENG_A,如目前的 -STABLE 分支為RELENG_6與RELENG_5。許多新的功能在 -CURRENT 分支測試一段期間覺得沒有問題後就會將該項功能逆向移植(MFC,Merge from current)回RELENG_6。
- A.B-BETA、A.B-RC
- 這是當開發團隊認為 -STABLE 分支有足夠的新功能或其他理由認為足以釋出新版的 FreeBSD 時,會先將 -STABLE 分支的名稱改為 -BETA,表示要進入 Release Cycle。
- A.B-RELEASE
- 在 -RELEASE 分支裡所使用的 CVS Tag 為
RELENG_A_B或RELENG_A_B_C,這些 CVS 分支不會有功能的增加,只做安全性的維護。這些分支是在開發團隊認為 -STABLE 內的功能累積到一定程度後,可以整理出來出新的版本。譬如 6.2-RELEASE、5.4-RELEASE。
- A.B.C-BETA、A.B.C-RC、A.B.C-RELEASE
- 當離上次釋出版本的時間太短時,FreeBSD 團隊會考慮只在後面加上一個次要版號。
[编辑] 許可證
FreeBSD包含了GNU通用公共許可證、GNU宽通用公共许可证、ISC、CDDL和Beerware許可證的程式碼,也有使用三條款和四條款的BSD許可證的程式碼。另外有些驅動程式也包涵了 binary blob,像是Atheros公司的硬體抽象層。這使得所有人都可以自由地使用還有再散布FreeBSD。
不過,FreeBSD的核心和新開發的程式碼大多都使用兩條款的BSD許可證釋出,許多使用GPL的程式碼都必須經過Cleanroom Software Engineering,以其他授權方式重寫,這主要是避免整個核心受到GPL影響。
[编辑] 安裝問題
[编辑] 相关书籍
- Absolute BSD, The Ultimate Guide to FreeBSD. Michael Lucas. No Starch Press, July 2002. ISBN 1-886411-74-3.
- BSD Hacks, 100 Industrial-Strength tips for BSD users and administrators. Dru Lavigne. O'Reilly, May 2004. ISBN 0-596-00679-9.
- The Complete FreeBSD, 4th Edition, Documentation from the Source. Greg Lehey. O'Reilly, April 2003 ISBN 0-596-00516-4.
- The Design and Implementation of the FreeBSD Operating System. Marshall Kirk McKusick and George V. Neville-Neil. Pearson Education. ISBN 0-201-70245-2. Expected availability August 2004.
- The FreeBSD Corporate Networkers Guide. Ted Mittelstaedt. Addison-Wesley, December 2000. Paperback, book & CD edition, 401 pages. ISBN 0-201-70481-1.
- Designing BSD Rootkits: A Introduction to Kernel Hacking. Joseph Kong, No Starch Press, US, March 29 2007. Paperback, 144 pages, ISBN 1-59327-142-5.
[编辑] IRC
正體中文:
- Freenode上的#bsdchat
其他 channel 可以參考 FreeBSD官方wiki 的 IrcChannels 頁面。
[编辑] 參考資料
- ^ http://www.freebsd.org/copyright/freebsd-license.html
- ^ http://www.freebsd.org/doc/en/articles/contributors/contrib-additional.html
- ^ http://www.freebsd.org/doc/en/articles/contributors/staff-committers.html
- ^ http://www.freebsd.org/doc/en/articles/contributors/staff-core.html
- ^ http://www.freebsd.org/doc/en_US.ISO8859-1/articles/committers-guide/archs.html
- ^ http://www.freebsd.org/releases/6.3R/announce.html
- ^ http://www.freebsd.org/releases/6.4R/announce.html
- ^ http://lists.freebsd.org/pipermail/cvs-src/2007-June/080102.html
- ^ http://lists.freebsd.org/pipermail/freebsd-current/2006-November/067218.html
- ^ http://lists.freebsd.org/pipermail/freebsd-current/2006-August/064932.html
- ^ http://lists.freebsd.org/pipermail/cvs-src/2007-April/076644.html
- ^ http://lists.freebsd.org/pipermail/cvs-src/2007-May/078451.html
- ^ http://lists.freebsd.org/pipermail/cvs-src/2006-January/058009.html
- ^ http://lists.freebsd.org/pipermail/freebsd-current/2007-March/070303.html
- ^ http://lists.freebsd.org/pipermail/freebsd-current/2007-January/068404.html
- ^ http://lists.freebsd.org/pipermail/cvs-src/2007-July/080748.html
- ^ http://people.freebsd.org/~jeff/sysbench.png
- ^ http://lists.freebsd.org/pipermail/cvs-src/2007-May/078078.html
- ^ http://www.emediawire.com/releases/2007/6/emw531216.htm
- ^ http://www.freebsd.org/releases/
[编辑] 参见
[编辑] 外部链接
- FreeBSD官方站点
- FreeBSD官方維基
- FreeBSD中文网站(簡體)
- FreeBSD中国社区站点
- FreshPorts
- http://www.freebsdsoftware.org/
- ChinaUnix UNIX技术站点
- FreeBSD 使用手册(簡體)
- FreeBSD 使用手冊(正體)
|
|||||