跳到主要內容

Netflix 串流成功的秘訣,Sony PlayStation 與 Nintendo Switch 的幕後推手,你不可以不知道的 FreeBSD

開源人物誌第三期,依舊紀錄 COSCUP 遠征隊前進香港開源年會的故事。本篇特別邀請到 FreeBSD 基金會的董事會成員,也是香港開源年會的 Keynote 講者 Philip Paeps 與在FreeBSD 基金會擔任軟體工程師,也是台灣 BSD 社群代表許立文為我們介紹關於 FreeBSD 的社群文化與生活應用。

“ If you feel hard, that is our fault, and we are happy to fix it.”許立文在採訪的一開始說到。一句無心的話讓 FreeBSD 社群精神躍然紙上,在筆者心中變得鮮活而立體。

FreeBSD is a general purpose, well-documented and Unix-like operating system.

什麼是 FreeBSD?FreeBSD 是一個作業系統,就像 Windows、macOS 一樣,開發者與使用者可以在 FreeBSD 上做任何想做的事情。FreeBSD 是一個基於 BSD(Berkeley System Distribution)原始碼衍生的作業系統,作為自由軟體,其原始碼開放,和其他 BSD 分支相比,主要專注於校能與操作管理性,所以常被用於伺服器(Server)使用。FreeBSD 並且提供完整的開發與使用文件,讓人人都可以使用及參與開發。

FreeBSD 支援豐富的硬體和體系架構,和其他BSD家族的作業系統一樣, 其核心、操作手冊(manual pages)以及所有的用戶層(Userland)應用程式(如 shell 、 cat 和 ps 等命令)都儲存在同一個原始碼庫中。第三方軟體可藉助套件管理程式 "pkg" 安裝,或是由 FreeBSD 著名的 ports 系統自行編譯打包成 pkg 的安裝的格式,如此可以方便地照需求調整設定或是修改源始碼,並且和系統的套件庫整合。FreeBSD 也可以執行其他作業系統的執行檔格式,比如 GNU/Linux 上的一些軟體,

在開發模式上,FreeBSD 和常見的 GNU/Linux 發行版有着顯著的區別,Linux 是獨立開發的核心,而發行版如知名的 Debian、Ubuntu、openSUSE 還有國內的 ezgo 做的是整合 Linux Kernel 及各上下游軟體及工具爲一個完整的作業系統。FreeBSD 則是由所有開發者和共獻者統一維護,所以核心、函式庫、用戶指令以至於文件,較不會有彼此不相容的問題。

We are living in a FreeBSD world

FreeBSD 作為最早的幾個開放原始碼的作業系統之一,除了悠久的歷史與開發使用上的穩定,值得注意的是 BSD License 對商業上使用也較為友善。使 FreeBSD 成為許多公司或是企業產品的首選,即使我們感覺不到,但是 FreeBSD 與我們日常生活息息相關。

例如知名影音串流平台 Netflix,全球超過上億使用者,其內部內容交付網路 “Open Connect”就是使用 FreeBSD 建構的,Netflix 的工程師在今年 FOSDEM 的演講裡面提到:”Why do we use FreeBSD? We came for the license. We stay for the efficiency.”。另一個廣為人知的世界級大廠  Apple 公司,旗下手機 iOS 系統與筆電的 macOS 核心皆有 BSD subsystem 在其中。
其餘如  Sony PlayStation、Nintendo Switch 等世界知名產品,都是基於或是使用了一部份 FreeBSD 源始碼。或是知名訂房比價網站 Trivago、飛機訂票常用系統 XipLink ,到世界知名通訊軟體通訊軟體 WhatsApp 都是用 FreeBSD 做為後端似服器所使用的作業系統。另外專門供應 網路及資訊安全解決方案的網路通訊設備公司 Juniper、甚至曾經獲選為美國最值得上班的公司第一名的美國上市科技公司 NetApp,不少產品都是基於 FreeBSD 建構的。“ You might not use FreeBSD directly , but you are using FreeBSD indirectly everyday.”許立文說。

We do not like surprises.

FreeBSD 作業系統的一大特色是一旦安裝好,使用內建的工具就可以立即參與這個作業系統開發與使用。從 1970 的 BSD 時代開始,40 多年來在世界各地開發者的開源貢獻中,友善的社群氣氛,以及輕鬆的入門門檻,推動著 FreeBSD 社群的不斷進步。「最少驚動原則」(POLA),更是社群能夠維持穩定的發展的一大功臣。許立文說「所有功能都應該要可以直覺地或是照習慣順利運作」,「而一旦成功運作起來,就必須要一直運作下去」Philip 接著強調。

“Simple, clean and well-documented ”是 FreeBSD 對於效能同樣重視的精神,這也是為什麼 FreeBSD 是類 Unix 系統的一個好的入門教材。儘管 FreeBSD 在世界各地的開發者可能較其他作業系統少,但擁有完整的開發文件與內建整合的開發工具,提供給新手和開發者一個友善的社群環境,穩定的系統開發運作流程,為初學者建立較扎實的基礎。FreeBSD 適合推薦給學生或是初學者學習作業系統開發與網路架構的起點,許多校園都選擇使用 FreeBSD 作為作業系統實務與開發的教材。  從最初 BSD 時代就開始參與開發的世界知名開發者 Marshall Kirk McKusick 為首的寫 “The Design and Implementation of the FreeBSD Operating System”是教科書等級的著作,同時他也錄製了接近 100 小時的 FreeBSD 系統內部資料結構演算法及源碼導讀,部份教材已公開到 teachbsd.org 上。今年 McKusick 更慷慨地授權給台灣社群給台灣社群規畫中的讀書會使用,讓所有想要學習的人,有更加便利且組織化的管道進行學習。

除了各式各樣的文件與教程以外,FreeBSD 基金會在加拿大也有與包括名校滑鐵盧大學推動產學合作,提供學生實際投入開放源始碼作業系統的開發還有參與社群的機會。每年的 Google summer code 中都會有 10 人左右的學生參與 FreeBSD 開發,提供給學生參與 FreeBSD 開源貢獻的管道。


We are a close community and we are not only produce, but also maintain it.

在香港開源年會中,Philip 在演講中除了簡短介紹 FreeBSD 的發展歷史、最新版的 FreeBSD 12 的新功能及開發中的 FreeBSD 13 進度,同時也介紹社群文化與運作模式。“ FreeBSD developers write document and software for other people.”接受採訪時,Philip 一席話,再次展現 FreeBSD 的社群文化特色之一,就是社群裡的成員並不會只專注於程式碼本身,開發的人也會參與各式文件的撰寫。整個專案的產品和文化“ much more general” 是與其他作業系統差異最大的地方,也正是 Philip 喜歡 FreeBSD 的主要原因。

儘管是社群穩定開發歷史悠久的 FreeBSD 也會有失誤的時候。許立文和 Philip 向我們分享,過去在開發 FreeBSD 5 時,因為急著想要一次完成太多的事情,造成系統不穩定,與以穩定性著稱的 FreeBSD 4 相比,FreeBSD 5 造成了許多使用者的問題,所幸 FreeBSD 開發者們很快就發現了這個問題並修正了程式錯誤和改善開發流程,在 FreeBSD 6 恢復了原有穩定。這一次的經驗,筆者認為正是奠定 FreeBSD 開發穩定並更加重視 POLA 的原因。


We are willing to learn, and willing to fix any problem you have.

第一次認識 FreeBSD 時,最令筆者驚訝的地方在於正如開頭立文所說的,“If you feel hard, that is our fault, and we are happy to fix it. ” 在 FreeBSD 的世界裡,如果使用者覺得使用上很困難,那並非使用者的問題,而是身為 開發者的我們沒做好,請告訴我你所遇到的困難,讓我們有機會可以修正他,而我們也很樂意去修正他。修正帶來進步,正是這樣不斷的修正,推動 FreeBSD 整個專案向前並適合所有人的使用。

“We are very helpful.”Philip 笑著說。FreeBSD 作為一個開放原始碼系統,”To be friendly”一直是 FreeBSD 社群的宗旨之一。在推薦新的開發者的時候,可以和所有人愉快有效率的工作是必要條件。這個專案擁有 40 年以上的發展歷史,使 FreeBSD 累積了完整的開發文件與工具,更重要的是有許多豐富經驗的開發者,讓所有新開發者接觸學習時,都能獲得友善且專業的支援幫助。

而作為工程師,甚至更廣泛的說,作為一個 FreeBSD 開源貢獻者,其目標與努方向之一就是「解決我們不知道的問題」。不論你是誰,不論什麼原因開始接觸與使用 FreeBSD,不論你遭遇到什麼瓶頸,只要你願意嘗試,我們都很樂意幫助你,樂於一同學習,一同解決問題。“ This is our culture.”Philip 說。

Do not be afraid to start it.

採訪期間許立文與 Philip 對 FreeBSD 的喜愛溢于言表,言談中強烈的默契,除了彼此熟悉以外,感受到更多的是體現 FreeBSD 社群中鮮明的文化理念,以及對社群精神的認同。他們的熱忱與友善,傳達到筆者的身上。過去筆者對 FreeBSD 處於害怕不願意嘗試,在閒談中煙消彌散,產生使用 FreeBSD 的念頭 ,在內心慢慢變得強烈,甚至可以說是躍躍欲試。

FreeBSD 的開發者致力於打造社群美好氣氛,友善的社群,完整的教材,穩定的開發歷史,可以說是一個完美的學習起點,筆者認為也許這就是 FreeBSD 社群其中幾個面貌。雖然做為長期的開源貢獻者與開發者,不見得能了解初學者初次接觸時所面臨的問題或是盲點,但只要使用者願意開口,FreeBSD 社群的人總是很樂於傾聽,就如同一開始立文所說“ If you feel hard, that is our fault, and we are happy to fix it.”讓筆者相信,不論使用者是誰、背景是什麼,都不需要害怕接觸與使用 FreeBSD,只要伸出手,FreeBSD 社群的人們就會牽著你向前走。這就是 FreeBSD 的文化。因為 FreeBSD 是一個樂於伸出援手與“ fix any issue you encounter”的地方

若想參與 FreeBSD 社群,可以從加入台灣 FreeBSD 社群開始!


關於 Philip Paeps
因為開發 amiga machine 開始接觸 FreeBSD,最初的動機只是想要使用網路,沒想到就一晃眼就數十年過去了!


關於許立文
從高中社團擔任網管開始使用 FreeBSD,也接觸到開放源始碼文化,到今年剛好 20 年,想不到從課餘業餘的興趣,最後變成了正職。


關於 FreeBSD 臺灣社群
FreeBSD 有超過一百個郵件論壇、數十個網頁版論壇,有超過 94 個愛用者組織分佈於全世界  42 個國家。FreeBSD 台灣社群為台灣的開發者與使用者組成,活躍於台灣開源活動中,致力找尋志同道合的朋友一起參與使用及開發。想更進一步認識 FreeBSD 嗎?歡迎前往 https://bsdtw.org

留言

這個網誌中的熱門文章

COSCUP 2020 CfP is now open, submit your proposal before May 11th, 2020.

We are looking for talks in several open-source related areas, please submit your proposal before May 11th, 2020. After the review process from the coordinators, we will publish the full programme in early June.一如往常,在今年的 COSCUP 我們徵求各式各樣不同的 Open Source 相關稿件。請於 5 月 11 日前投稿,或可參考本頁下方各議程軌資訊。Submit your proposalImportant DatesSubmission deadline: May 11th, 2020 (截稿時間)Full programme published: Early June (預定公佈時間)COSCUP 2020: Aug 1-2 (with welcome party at July 31st night), at National Taiwan University of Science and TechnologyTracksQMK Keyboarder / 鍵人谷Open Source ChatbotLet's Read the Source Code / 帶您讀源碼MySQL Open Space / 開放 MySQL 開放空間Cloud Native HubBSDArch Linux & ArchersEnter the FLOSS World / 開源新手村Open Source AI: Human-like & Trustworthy AI / AI 開源:更有智慧與可信賴的 AIEffective GoJulia LanguageMyDataCOSCUP StartupsCOSCUP EnterprisesOpen Source DesignOpen Source EducationPostgreSQLRubyEverything in RustBlockchain and Distributed LedgerOpenStreetMap x WikidataEmbedded Linux / 嵌入式 Linu…

COSCUP 2020 Call for Participation -- now open! 議程軌與攤位即日起開放申請

Photo by Jaime Lopes on UnsplashLadies and gentlemen, time to apply for a COSCUP 2020 community track/booth! 快速跳到中文版TracksCommunity Tracks are assigned to self-organizing groups to work, share, and discuss issues around an open-source-related topic. The application should be submitted before March 30th.You can decide the content and format in your Track.You can decide the duration of each section and the whole schedule in your Track.Key datesMarch 30th: Deadline for Track applicationsApril 10th: Track coordinators provide information of Call for ProposalApril 13 April 20th: Call for Proposal starts (Update: We've postponed the CfP start date to April 20th.)May 11th: Deadline for Call for ProposalLate-May: Track coordinators provide the complete scheduleEarly June: Full schedule published on COSCUP.org (TBC)August 1-2 at Taipei: COSCUP 2020Application rulesScheduleWe do not plan for rooms to be empty during the event. By applying for a Track you are making a commitment to fill th…

來去上海、來去東京!COSCon 與 OSC Tokyo「COSCUP 特別軌」徵稿開始!

嗨,各位關心開源、熱愛分享的夥伴大家今天過得好嗎?今年六月的時候,我們出訪香港開源年會,廣受好評,接下來將帶大家前往上海舉辦的中國開源年會(COSCon)及東京的 OSC 2019 Tokyo/Fall 啦! 給忙碌的你: 往上海的傳送門往東京的傳送門 COSCon COSCon 由開源社為了推廣開放源碼而舉辦,相信大家在今年 COSCUP 有看到許多開源社夥伴的活躍表現,十一月就換我們過去作客啦!我們將在 COSCon 有半天的議程軌作為「COSCUP 特別軌」,重要的資訊如下: 徵稿期間:即日起~9/30 止徵稿對象:能夠以大會接受之語言(漢語、英語)演講、願意配合 COSCUP / COScon 對此專案相關宣傳及訪問者徵稿內容:各式 Open Source 軟體(以 FSF / OSI Licenses 釋出)相關議題皆可投稿結果公佈:暫定 10 月中旬 於 COSCon 網站及 COSCUP Blog 公布COSCon 大會期間: 11/02 ~ 11/03 於 上海普陀區 華東師範大學(中北校區) OSC Tokyo OSC Tokyo 是什麼?就也當成是日本版的 COSCUP 吧 XD (怎麼想來想去形容詞都是這句…) OSC 的主辦單位 OSPN 每年在日本各地辦近 20 場集結開源人的聚會,而我們將直接前往規模較大、一年還辦兩次的東京場交流!一整軌的「COSCUP 特別軌」將讓讓大家見識一下台灣開源人的厲害,重要的資訊如下: 徵稿期間:即日起~9/30 止徵稿對象:能夠以大會接受之語言(日語、英語)演講、願意配合 COSCUP / OSC Tokyo 對此專案相關宣傳及訪問者徵稿內容:各式 Open Source 軟體(以 FSF / OSI Licenses 釋出)相關議題皆可投稿結果公佈:暫定 10 月中旬 於 OSC Tokyo 網站及 COSCUP Blog 公布OSC Tokyo 大會期間: 11/23 ~ 11/24 於 日本東京日野市 明星大學 可能已經有人心中堆滿疑問:看起來很有趣但要怎麼參加?去國外參加 Conf 好像很貴… 別擔心,COSCUP 籌備特別軌自然是有照顧到這些問題。如同六月的香港出征,我們有完整的補助計劃,相關辦法都列在下面的文件了,心動不如馬上行動,十一月讓我們前進上海與東京吧! 上海 徵稿表單旅費補助辦法東京