跳到主要內容

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

留言

這個網誌中的熱門文章

COC 通報處理說明公告 - 20240811 通報事件

各位好, COSCUP COC 服務小組於 2024 年 8 月 11 日接獲一件通報,內容涉及在會期干擾議程進行;並於會後持續發送私訊予會中結識的講者;同時,該行為人亦被紀錄於活動當日干擾志工執行勤務。 有關此事件的處理過程,詳如下述: COC 服務小組接到通報後,於 8 月 15 日正式成立專案小組進行討論與檢視相關資料。經查,通報內容與 COC 條款「持續干擾議程或活動的正常進行,無視工作人員或與會者的制止」相符。同一行為人於大會期間,另有兩位會眾通報類似事件,COC 服務小組皆已明確指正其行為並重申 COC 規範和界線。綜合此次會後通報,行為人經提醒仍多次抵觸 COC 條例。 有鑒於上述行徑已明確影響 COSCUP 其他會眾之權益,COC 服務小組將依照 COSCUP COC 之辦法記錄事件處理過程及結果、行為人資料等,於籌備團隊組長群資料夾建立文件,以俾後續籌備團隊審慎思量該名行為人未來的參與形式與程度。 在此,感謝會眾願意信任 COC 和 COSCUP 團隊並且將其所遇到的事件於會後彙整提供予我們。另本次通報中,通報人所提及之部分事項,因非屬 COSCUP 大會參與期間和相關行為,已建議通報人另行循其他正規途徑處理。在此聲明, COSCUP 的 COC 落實並非要拒任何人於門外,而是希冀透過針對行為本身的評估,為無論志工、社群協調人、講者、廠商與所有會眾營造舒適與安全的交流環境。 我們在乎所有人於 COSCUP 大會的各種參與體驗與感受,如果您在大會和籌組期間有相關困擾,籌備團隊志工將會竭力協助釐清,希望一同打造友善的 COSCUP 與會環境。 COSCUP 2024 COC 服務小組

【攤位大地遊戲(開源巔峰挑戰賽)】Booth Reward Activity! 2024

/English Below/ 來啊,造訪攤位掃 QRCode,集點數換 2024 年限定贈品啊! 一年只有這一檔,錯過要再等一年! 在找工作嗎?想認識不同的社群嗎?想獲得 COSCUP 2024 專屬的限量贈品嗎? 利用空餘時間去各個攤位聊聊天、看一看,就可以參與大地遊戲拿獎品喲! 大地遊戲怎麼玩:​​ (歡迎順路參與 參與者大調查),填寫表單取得 OPass 票券,並下載與登入 OPass App: 取得 OPass 票券 。 前往 TR 309、312、409-1、515、516 逛各攤位。 在攤位前打開 OPass 的「我的票卷」,秀出 Opass QRcode 讓攤位人員掃描取得點數。 到 TR309 的「大會攤位」兌換贈品,數量有限! 造訪每個攤位掃描後,可獲得 5 點,今年有 28 攤 完成一日志工任務後,可獲得 50 點,至多可解 4 次 擔任講者,可享福利 400 點(請以收到的登入連結進入,每名講者限領取乙次) 今年的紀念品除了可以現金購買,也可以用點數兌換呦! ≡≡≡≡ 集點方法 ≡≡≡≡ 上方每ㄧ個方框,都是ㄧ個攤位或者ㄧ個小任務,每當你造訪完成任務後,即可打開「我的票券」中顯示你的 QRcode 給關主獲取點數,您可以在上方看到您的戰果點數。當您心滿意足準備離開大惠會場前,記得到下述地方將您的點數兌換成滿滿的回憶! ≡≡≡ 點數兌換處 ≡≡≡ 【TR309 外:大會攤位】 1 點即是 1 元,您可以在大會攤位上購置各種精美紀念品,包含滑鼠墊、鍵帽、透卡與紀念 T 恤!。 ≡≡≡ 點數兌換規則 ≡≡≡ 您可以於【紀念品攤位】旁的點數兌換區把點數兌換

利用 Jitsi 建立個人化的視訊會議平台

  近期因為疫情的關係,越來越多企業開始實施分流或在家工作,視訊會議的需求也日益增加。 在商用解決方案選擇上,有不少企業會選擇知名品牌的產品,例如  Cisco Webex 、 Google Meet 、 Microsoft Teams 、 Zoom  都是很不錯的方案。 KKBOX 集團在去年便試行及做好充分 work from home 的準備,今年五月也因應疫情升溫,全員 work from home 至今兩個月有餘。 當然,取之 Open Source,也要對社群有些貢獻。在這一屆 COSCUP,我們要來介紹 Open Source 圈中也很知名,效果也很不錯的一套視訊會議平台: Jitsi 。 除了基本的視訊會議功能外,在最後我們也會示範如何透過 Jitsi 畫面輸出到 YouTube/Twitch 或其他支援 RTMP 的平台進行直播。 由於篇幅有限,且 Jitsi 可以調整的細節非常多。今天我們純粹很快速的示範,如何簡單的建置出一個 Jitsi 環境,並提供單場會議內容錄影或直播。 Jitsi 的文件可以在 這裡 找到。 今天透過 AWS Lightsail 的 $10/month instance(1 core CPU + 2GB RAM + 60GB SSD),作業系統則是 Ubuntu 20.04 來示範。當然,使用其他 VPS 亦可,大同小異,這邊直接跳過 VPS 相關的建置過程。 *firewall 相關資料參考 這裡 及 這裡 。 針對系統做必要的更新 基本的 apt repository 更新: $ sudo apt update 因為後面要示範的會議錄影及直播需要使用 ALSA loopback device,如果是 EC2 or Lightsail 則需要額外安裝 generic kernel( 註 ): $ sudo apt install linux-image-generic linux-headers-generic linux-image-extra- virtual 接著做系統套件們的更新: $ sudo apt dist-upgrade $ sudo apt autoremove 如果是 AWS EC2 or Lightsail 則需要另外再將預設的 AWS optimized kernel 移除( 註 ): $ su