跳到主要內容

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 2019 CfP is now open, submit your proposal before May 6th, 2019.

We are looking for talks in several open-source related areas, please submit your proposal before May 6th, 2019. After the review process from the coordinators, we will publish the full programme in early June.一如往常,在今年的 COSCUP 我們徵求各式各樣不同的 Open Source 相關稿件。請於 5 月 6 日前投稿,或可參考本頁下方各議程軌資訊。Submit your proposalImportant DatesSubmission deadline: May 6th, 2019 (截稿時間)Full programme published: Early June (預定公佈時間)COSCUP 2019: Aug 17-18 (with welcome party at 16th night), at National Taiwan University of Science and TechnologyPartner conferences / 合作研討會特別軌We are gladly welcome HKOSCon (Hong Kong Open Source Conference,) COSCon (China Open Source Conf,) and OSPN OSC (オープンソースカンファレンス) join us with a special track. Please check their CfP form for more information about the track.今年 COSCUP 與 OpenSource HK 的「HKOSCon」、開源社的「COSCon」及 OSPN 的「OSC」合作推出特別軌,以期邀請各地的開源愛好者前來與大家一會。其各自的徵稿資訊,請參考下方連結。opensource.hk "HKOSCon" Special Track開源社 "COSCon" Special TrackOSPN "オープンソースカンファレンス" Spe…

2016 Unconference 議程公告!

嗨、各位親朋好友們
今年的 Unconference 名單出爐啦! 由於每一個 Talk 都相當精彩,因此我們想了辦法讓所有投稿的人都有舞台可以分享。 Unconference 演講場地為中研院活動中心的平面會議室。 對於其中的講題有興趣的朋友們請不要錯過囉 :-D
8/21 Unconference 活動中心的平面會議室時間 講題 講者 10:45
|
11:05 用開放原始碼技術翻轉傳統產業IT架構 Derek Hsu11:10
|
11:30 會自動飛行的"神奇寶貝"and飛行技巧 gavin 11:45
|
12:05 ProbeDroid: Crafting Your Own Dynamic Instrument Tool on Android for App Behavior Exploration | 沈宗賢 (AndyShen)12:10
|
12:30 蒙地卡羅模擬與志願運算 趙元13:30
|
13:50 Runtime PM for CPU idling in Linux kernelfreedom Koan-Sin Tan 13:55
|
14:15 Fuzzing and Mozilla GARY KWONG gkw14:30
|
14:50 無良房東一度電收你 5.5 元,你難道不生氣嗎?——從自幹智慧電表講起 Felix and Timo14:55
|
15:15 COSCUP + AppDevKit Jeff Lin C 備註:議程時間可能會調動。

COSCUP 2019 開源貢獻者保留票申請 / Open Source Contributors (OSC) Tickets Application

開源貢獻者資格 由 2018/5/12 到現在,實際針對開源專案提供開發、推廣、或其他有助專案進展之貢獻者,提出貢獻相關證明即可報名。
開源專案意指專案成果以 FSFOSI 認同之公眾授權條款釋出者 所提出之貢獻,必須可以經由公開途徑查證(例如提供 GitHub、Google Code、SourceForge 等公開專案平台上的討論紀錄、網址、commit log、信件文本、公開釋出之演講投影片紀錄等。) 海外參與者 你身在海外,雖想回台參與 COSCUP,但並非貢獻者又害怕搶不到票嗎?COSCUP 歡迎所有的海外人士前來參加!只要你居住在海外、承諾與會,並願意於 SNS 或個人 blog 公佈自己即將與會之訊息,即使非貢獻者或講者,也將優先獲得我們的 VIP 邀請。請在報名表上註明您的出發地,我們將再與您聯絡。

海外參與者請於第四個 Section 告訴我們您從哪裡來,並勾選相關選項。
Key dates5/12 報名截止。5/13 ~ 5/18 審查期間。5/19 第一次審查完畢,開始補件。5/26 前補件完成。6/2 公告開源貢獻者正式名單,通過的開源貢獻者可以在 KKTIX 上報名。 申請表單 申請方法與詳細資訊:https://goo.gl/forms/x7rmsEPsooBSK46T2

Who can apply for OSC tickets? Your participation in an open source project since 2018/5/12 makes you eligible for applying for a Registration Code. The open source project and your participation must meet the following conditions:
The project source code must be released with a license approved by Free Software Foundation or Open Source InitiativeThe project must be hosted on a public repository such as GitHub, Google Code, Sour…