Distribution-Choice

不同的 BSD 有什麼共同點?

  • August 17, 2021

…它們之間有什麼區別?我提出這樣的問題是為了表明我對意見的激烈爭吵不感興趣,而是對不同風格的 BSD Unix 之間的客觀比較感興趣。理想情況下,我可以從所有有經驗的使用者那裡獲得回饋。

背景

我最近發現 Unix 不僅僅是 Linux。我在工作中使用 Solaris,它讓我大開眼界。現在我對新的 unice 很感興趣,我想嘗試一個新的 unice,我自然對 BSD 很好奇。

問題

我不是在詢問要安裝什麼 BSD 的建議或意見。我想知道它們之間的差異(和共同點),這樣我就可以做出自己的決定。問題是很難在它們之間進行適當的比較。

如果你幸運的話,你會得到一些像這樣草率的定義:

FreeBSD = Popular all-rounder.
NetBSD = Portable (runs on a lot of platforms, including a toaster)
OpenBSD = Security above anything else.

(這可能是真的,但它並不是真的有用。我確信 FreeBSD 也是可移植且安全的……)

如果你不走運,你會陷入不可避免的 Unix 傳說中,這些傳說是關於項目拆分、分叉、基於知識/道德基礎的品牌重塑、Theo de Raadt 如何成為極端主義者以及 MacOS X 和 FreeBSD 如何在 20 多年前擁有共同祖先。

令人著迷,但不是真正的資訊,是嗎?

BSD

我感興趣的 BSD 是:

  • 自由BSD
  • OpenBSD
  • NetBSD

並且可以選擇

  • 蜻蜓
  • 達爾文

我的問題

為了更好地理解差異,這裡列出了關於不同分佈的一些相關問題(我們可以使用這個術語嗎?)。如果您在某種形式的表格數據下提出您的答案,那麼您就是我的英雄!

  • 他們使用相同的核心嗎?
  • 他們使用相同的使用者空間工具嗎?(有什麼區別,如果有的話?)
  • 他們是否使用相同的包/原始碼管理系統?
  • 他們使用相同的預設外殼嗎?
  • 二進製文件可以在它們之間移植嗎?
  • 它們之間是否可移植資源?
  • 他們使用不同的目錄樹嗎?
  • 他們各自的社區有多大?它們是同一個數量級嗎?
  • 目前的發展有多少是共同的?
  • 它們之間的主要不兼容是什麼?

我不知道這些問題有多容易回答,以及這個問題與 StackExchange 格式的相關性如何。我只是從來沒有遇到過一個簡單的文件,它以清晰的方式列出了 BSD 之間的差異,這對於經驗豐富的使用者來說非常有用,可以輕鬆查看和做出選擇。

我認為我不會為您和所有人提供完美的答案,但是,每天使用 BSD 系統進行工作,我相信我可以為您提供有關 BSD 世界的有用見解。我從來沒有使用過 NetBSD,我不會多談。

他們使用相同的核心嗎?

不,儘管由於歷史分叉而存在相似之處。每個項目都是單獨發展的。

他們使用相同的使用者空間工具嗎?(有什麼區別,如果有的話?)

他們都遵循 POSIX。您可以期望一組工具在 *BSD 之間具有相同的功能。在 BSD 中的程序/網路管理工具中也經常看到一些明顯的差異。

他們是否使用相同的包/原始碼管理系統?

它們提供了一個打包系統,每個作業系統都不同。

他們使用相同的預設外殼嗎?

不,例如 FreeBSD 使用 csh,OpenBSD 使用 ksh。

二進製文件可以在它們之間移植嗎?

不:

(XXXX@freebsd-6 101)file `which ls`
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 5.5, dynamically linked (uses shared libs), stripped

它們並不真正支持穩定和快速的二進制仿真。不要依賴它。

它們之間是否可移植資源?

有些是的,只要您不使用核心程式碼或 libc 程式碼(與作業系統緊密相關)即可。

他們使用不同的目錄樹嗎?

不,它們與這裡的 Linux 非常相似。然而 FreeBSD 提倡使用 /usr/local/etc 作為第三方軟體的配置文件。OpenBSD 將所有內容放在 /etc… 他們將所有第三方放在 /usr/local 中,而 Linux 發行版將按照他們認為合適的方式進行。一般來說,您可以說*BSD 對此非常保守,事物屬於它們所屬的地方,這不是可以彌補的。

他們各自的社區有多大?它們是同一個數量級嗎?

FreeBSD 是最大和最活躍的,您可以通過許多不同的論壇、郵件列表、IRC 頻道等來訪問它… OpenBSD 有一個很好的社區,但主要通過 IRC 和郵件列表可見。

實際上,如果您認為您需要一個好的社區,那麼 FreeBSD 就是您的最佳選擇。NetBSD 和 OpenBSD 社區以開發為中心,談論新的改進等。他們不太喜歡做基本的使用者支持或廣告。他們希望每個人都是高級 unix 使用者,並且能夠在提出任何問題之前閱讀文件。

目前的發展有多少是共同的?

由於真正的免費許可證程式碼可以在項目之間流動,OpenBSD 經常在 NetBSD 之後修補他們的程式碼(因為它們的來源有很多共同點),FreeBSD 採用並集成了 OpenBSD 的數據包過濾器等。對於驅動程序和其他人來說顯然更難核心的東西。

它們之間的主要不兼容是什麼?

它們在二進制形式上不兼容,但它們在語法和程式碼上大多兼容。您可以依靠它來實現程式碼的可移植性。它將在所有類型的 BSD 上輕鬆建構或/和執行,除非您過於接近核心(ifconfig,pfctl …)。

以下是您可以享受從 BSD 世界中學習的樂趣:

嘗試用openbsd盒子替換您的家用路由器,玩pf和網路。你會看到製作你想要的東西是多麼容易。它乾淨、可靠且安全。使用 FreeBSD 作為桌面,它們支持很多 GPU,您可以在一定程度上使用 flash,與 Linux 二進製文件有一定的兼容性。您可以安全地建構您的自定義核心(實際上這是推薦的)。總體來說是一次很好的學習體驗。在非常舊的硬體甚至烤麵包機上嘗試 NetBSD 。

雖然他們不同,但他們每個人都試圖成為一個好的作業系統,它會匹配使用者而不是情況。作為一種學習體驗,請全部嘗試(網路/開放/免費),但稍後您可能會發現自己在大多數情況下只使用 1 個(因為您對特定係統的了解更多或更適合社區)。

其他 BSD 是混合版本或只是稍作修改的版本,我發現最好靠近軟體開發的源頭(在 OpenBSD 上使用數據包過濾器,在 FreeBSD 上配置自己的桌面,…)。

作為個人筆記,我很高興看到像你這樣的愛好者,我希望你能在 BSD 世界中找到很多好東西。BSD 不是討厭 windows 或其他作業系統,而是喜歡 Unix。

引用自:https://unix.stackexchange.com/questions/30741