歡迎光臨
每天分享高質量文章

Linux 如何成為我的工作 | Linux 中國

IBM 工程師 Phil Estes 分享了他的 Linux 愛好如何使他成為了一位開源領袖、貢獻者和維護者。
— Phil Estes


致謝
編譯自 | https://opensource.com/article/18/2/my-open-source-story-phil-estes 
 作者 | Phil Estes
 譯者 | ranchong ? ? 共計翻譯:2 篇 貢獻時間:6 天

IBM 工程師 Phil Estes 分享了他的 Linux 愛好如何使他成為了一位開源領袖、貢獻者和維護者。

從很早很早以前起,我就一直使用開源軟體。那個時候,沒有所謂的社交媒體。沒有火狐,沒有谷歌瀏覽器(甚至連谷歌也沒有),沒有亞馬遜,甚至幾乎沒有網際網路。事實上,那個時候最熱門的是最新的 Linux 2.0 核心。當時的技術挑戰是什麼?嗯,是 Linux 發行版本中舊的 a.out[1] 格式被 ELF 格式[2]代替,導致升級一些 Linux[3] 的安裝可能有些棘手。

我如何將我自己對這個初出茅廬的年輕作業系統的興趣轉變為開源事業是一個有趣的故事。

Linux 為樂趣為生,而非利益

1994 年我大學畢業時,計算機實驗室是 UNIX 系統的小型網路;如果你幸運的話,它們會連線到這個叫做網際網路的新東西上。我知道這難以置信!(那時,)“Web”(就是所知道的那個)大多是手寫的 HTML,cgi-bin 目錄是啟用動態 Web 互動的一個新平臺。我們許多人對這些新技術感到興奮,我們還自學了 shell 指令碼、Perl[4]、HTML,以及所有我們在父母的 Windows 3.1 PC 上從沒有見過的簡短的 UNIX 命令。

畢業後,我加入 IBM,工作在一個不能訪問 UNIX 系統的 PC 作業系統上,不久,我的大學切斷了我通往工程實驗室的遠端通道。我該如何繼續透過 Pine[5] 使用 vi 和 ls 讀我的電子郵件的呢?我一直聽說開源 Linux,但我還沒有時間去研究它。

1996 年,我在德克薩斯大學奧斯丁分校開始讀碩士學位。我知道這將涉及程式設計和寫論文,不知道還有什麼,但我不想使用專有的編輯器,編譯器或者文書處理器。我想要的是我的 UNIX 體驗!

所以我拿了一個舊電腦,找到了一個 Linux 發行版本 Slackware 3.0,在我的 IBM 辦公室下載了一張又一張的軟盤。可以說我在第一次安裝 Linux 後就沒有回過頭了。在最初的那些日子裡,我學習了很多關於 Makefile 和 make 系統、構建軟體、補丁還有原始碼控制的知識。雖然我開始使用 Linux 只是為了興趣和個人知識,但它最終改變了我的職業生涯。

雖然我是一個愉快的 Linux 使用者,但我認為開源開發仍然是其他人的工作;我覺得線上郵件串列都是神秘的 UNIX[6] 極客的。我很感激像 Linux HOWTO 這樣的專案,它們在我嘗試新增軟體包、升級 Linux 版本,或者安裝新硬體和新 PC 的裝置驅動程式撞得鼻青臉腫時幫助了我。但是要處理原始碼併進行修改或提交到上游……那是別人的事,不是我。

Linux 如何成為我的工作

1999 年,我終於有理由把我對 Linux 的個人興趣與我在 IBM 的日常工作結合起來了。我接了一個研究專案,將 IBM 的 Java 虛擬機器(JVM)移植到 Linux 上。為了確保我們在法律上是安全的,IBM 購買了一個塑封的盒裝的 Red Hat Linux 6.1 副本來完成這項工作。在 IBM 東京研究實驗室工作時,為了編寫我們的 JVM 即時編譯器(JIT),參考了 AIX JVM 原始碼和 Windows 及 OS/2 的 JVM 原始碼,我們在幾周內就有了一個可以工作在 Linux 上的 JVM,擊敗了 SUN 公司官方宣告花了幾個月才把 Java 移植到 Linux。既然我在 Linux 平臺上做得了開發,我就更喜歡它了。

到 2000 年,IBM 使用 Linux 的頻率迅速增加。由於 Dan Frye[7] 的遠見和堅持,IBM 在 Linux 上下了“一億美元的賭註[8]”,在 1999 年建立了 Linux 技術中心(LTC)。在 LTC 裡面有核心開發者、開源貢獻者、IBM 硬體裝置的驅動程式編寫者,以及各種各樣的針對 Linux 的開源工作。比起留在與 LTC 聯絡不大的部門,我更想要成為這個令人興奮的 IBM 新天地的一份子。

從 2003 年到 2013 年我深度參與了 IBM 的 Linux 戰略和 Linux 發行版(在 IBM 內部)的使用,最終組成了一個團隊成為大約 60 個產品的資訊交換所,Linux 的使用涉及了 IBM 每個部門。我參與了收購,期望每個裝置、管理系統和虛擬機器或者基於物理裝置的中介軟體都能執行 Linux。我開始熟悉 Linux 發行版的構建,包括打包、選擇上游來源、開發發行版維護的補丁集、做定製,並透過我們的發行版合作伙伴提供支援。

由於我們的下游供應商,我很少提交補丁到上游,但我透過配合 Ulrich Drepper[9] (將一個小補丁提交到 glibc)和改變時區資料庫[10]的工作貢獻了自己的力量(Arthur David Olson 在 NIH 的 FTP 站點維護它的時候接受了這個改變)。但我仍然沒有把開源專案的正式貢獻者的工作來當做我的工作的一部分。是該改變這種情況的時候了。

在 2013 年末,我加入了 IBM 在開源社群的雲組織,並正在尋找一個上游社群參與進來。我會在 Cloud Foundry 工作,還是會加入 IBM 為 OpenStack 貢獻的大組中呢?都不是,因為在 2014 年 Docker 席捲了全球,IBM 要我們幾個參與到這個熱門的新技術。我在接下來的幾個月裡,經歷了許多的第一次:使用 GitHub,比起只是 git clone 學習了關於 Git 的更多知識[11],做過 Pull Request 的審查,用 Go 語言寫程式碼,等等。在接下來的一年中,我在 Docker 引擎專案上成為一個維護者,為 Dockr 創造下一版的映象規範(支援多個架構),併在一個關於容器技術的會議上出席和講話。

如今的我

一晃幾年過去,我已經成為了包括 CNCF 的 containerd[12] 專案在內的開源專案的維護者。我還建立了專案(如 manifest-tool[13] 和 bucketbench[14])。我也透過 OCI 參與了開源治理,我現在是技術監督委員會的成員;而在Moby 專案,我是技術指導委員會的成員。我樂於在世界各地的會議、沙龍、IBM 內部發表關於開源的演講。

開源現在是我在 IBM 職業生涯的一部分。我與工程師、開發人員和行業領袖的聯絡可能比我在 IBM 內認識的人的聯絡還要多。雖然開源與專有開發團隊和供應商合作伙伴有許多相同的挑戰,但據我的經驗,開源與全球各地的人們的關係和聯絡遠遠超過困難。隨著不同的意見、觀點和經驗的不斷最佳化,可以對軟體和涉及的在其中的人產生一種不斷學習和改進的文化。

這個旅程 —— 從我第一次使用 Linux 到今天成為一個領袖、貢獻者,和現在雲原生開源世界的維護者 —— 我獲得了極大的收穫。我期待著與全球各地的人們長久的進行開源協作和互動。


via: https://opensource.com/article/18/2/my-open-source-story-phil-estes

作者:Phil Estes[16] 譯者:ranchong 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

贊(0)

分享創造快樂