FREEBSD認識

FreeBSD

020e66f040ad84d07931aa94.jpg
  FreeBSD是一種UNIX操作系統,是由經過BSD、386BSD和4.4BSD發展而來的Unix的一個重要分支,它支持 x86 兼容(包括 Pentium® 和 Athlon™)、amd64 兼容(包括 Opteron™、Athlon 64 和 EM64T)、 Alpha/AXP、IA-64、PC-98以及 UltraSPARC® 架構的計算機。它運行在Intel x86 family兼容處理器、DEC Alpha、Sun微系統的UltraSPARC、Itanium (IA-64)和AMD64處理器上。針對PowerPC的支持正在開發中。它被普遍認爲是相當可靠和穩定的。蘋果電腦Mac OS X即以 Mach 爲內核, 配合 FreeBSD 的驅動程序和實用工具爲基礎。FreeBSD 源於 BSD ──美國加州大學伯克利分校開發 UNIX® 版本它由來自世界各地的志願者開發和維護.FreeBSD 爲不同架構的計算機系統提供了不同程度的支持.
  許可協議
  FreeBSD在BSD許可協議下發布,允許任何人在保留版權和許可協議信息的前提下隨意使用和發行。BSD許可協議並不限制將FreeBSD的代碼在另一個協議下發行,因此商業公司可以自由地將FreeBSD代碼融入它們的產品之中去。
  發展團隊
  FreeBSD 採用的 Core Team 的方式來發展。Core Team 的成員是決定整個 FreeBSD 計劃的大方向還有對於開發者間的問題有最後的決定權,其他的開發者也可以送出建議或是他們修改過的程式碼,但是 Core Team 保留的最終的決定權,決定要不要將這功能放進FreeBSD。這種方式與Linux很不一樣。
  Contributor
  也可以說是 Submitter,沒有 FreeBSD 的 CVS 的存取權限,但是可以透過其它的方式,像是送出 Problem Reports 或是在 Mailing list 上面參與討論,來對 FreeBSD 做出貢獻。
  Committer
  有對 FreeBSD 的 CVS 存取的權限,可以將他的程式碼或是文件送到版本庫裏面。一個 committer 必須要在過去的 12 個月中有 commit 的動作。而一個活躍的 committer 指在每個月至少都有一次以上的 commit 動作。
  雖然說沒有必要限制一個有 commit 權限的人只能在程式碼樹中可以存取的地方,但是如果一個 committer 要在他/她沒有做出貢獻或是不熟悉的地方,他/她必須要讀那個地方的歷史記錄,還有 MAINTAINER 檔案,確認這個部份的維護者對於更改這邊的程式碼有沒有什麼特殊的要求。
  Core Team
  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正式支援。而其他的平臺都被歸類到第四線平臺。
  對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日發行,這個版本主要針對軟件的更新,並加入lagg(可以對多張網卡操作)的支援,並引入重新改寫的unionfs。
  FreeBSD 7
  FreeBSD 7爲目前第二個-STABLE發展版本,在2007年6月19日進入發行程序,2008年2月27日7.0-RELEASE正式發佈。新增的功能包括了:
  * SCTP(實做完成)
  * 日誌式UFS檔案系統:gjournal(實做完成)
  * 移植昇陽所發展的DTrace(實做完成,但還未交付至CVS)
  * 移植昇陽所發展的ZFS檔案系統(實做完成)
  * 使用GCC4(移植完成,目前爲4.2.1)
  * 對ARM與MIPS平臺的支援
  * 重寫過的USB stack(實做完成,但還未交付至CVS)
  * Scalable concurrent malloc實做(已經可以使用)
  * ULE排程表2.0(SCHED_ULE)(實做完成),並修改加強爲SCHED_SMP(實做完成),在交付至CVS時的正式名稱爲ULE 3.0,這個版本在8核心的機器上以sysbench MySQL測試的結果,速度上比Linux 2.6快大約10%(無論是使用Google的tcmalloc或是glibc+cfs)
  * Linux 2.6模擬層(已經可以使用)
  * Camellia Block Cipher(實做完成)
  命名規則
  * 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影響。
  BSD 家族
  BSD是"Berkeley Software Distribution"的縮寫,意思是“伯克利軟件發行版”。顯然,BSD這個名稱並不是我們現在所理解的操作系統,而且其原意也並非簡單的操作系統,而是一整套軟件發行版的統稱。從軟件發行版到操作系統的演變是有歷史過程的,這一點對FreeBSD很重要。(此源自伯克利加州大學,港譯“加州大學伯克利”)
  * NetBSD一個着重於跨平臺特性的分支計劃
  * OpenBSD由NetBSD分支出的計劃,着重於安全性
  * DragonflyBSD是一個由FreeBSD 4-STABLE分支出來的項目,重點在於輕量級而高效能的線程、多處理支持以及其它用戶工具、第三方軟件管理系統的改進
  * Darwin是蘋果公司的項目、Mac OS X的基礎,很大程度上使用FreeBSD的代碼和工具
  * FreeSBIE項目提供FreeBSD各個發行版本的live CD,類似於基於Linux的Knoppix項目
  * Frenzy是另一個基於FreeBSD的live CD項目,主要針對俄語用戶。啓動中按“e”纔是英文版界面
  * BSDeviant是一個FreeBSD的live CD項目,目的在於產生可以存在一張迷你CD-R上的系統
  * PicoBSD爲了在單張1.44MB磁片執行而設計的FreeBSD精簡版本
  * m0n0wall是一個基於FreeBSD的防火牆項目
  * PC-BSD爲桌面/個人環境設計的BSD分支
  * relaxBSD爲桌面/個人環境設計的BSD分支, 由華人開發, 注重中文環境
  官方網站
  http://www.freebsd.org
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章