學習如何向Linux核心貢獻程式碼,接受Eudyptula挑戰
如果你想為Linux核心貢獻程式碼、但不確定從哪裡開始,Eudyptula挑戰會是檢驗你程式設計技能和學習如何參與核心社群的一種偉大的方法。
該挑戰大約一個月前出現線上上http://eudyptula-challenge.org/,由一個匿名駭客(或駭客們)創辦,以Little Penguin(小企鵝)命名,為了讓更多開發者參與到Linux核心。它是模仿Matasano Crypto Challenge建立的——集中48小時的練習,培訓參與者密碼系統如何建立以及如何被攻擊。而Eudyptula挑戰不是一個教程,小企鵝說,但是透過完成該挑戰你就可以較好地瞭解整個核心貢獻過程的運轉情況。
挑戰參與者透過給Little傳送電子郵件來報名,他會給參與者傳送一系列由Linux核心開發者派發的程式設計任務。參與者一次收到一個任務,且必須在小企鵝傳送下一個任務之前完成。該挑戰沒有獲勝者,不過那些成功完成挑戰的、所有20個任務的參與者就會成為Linux核心貢獻者。
我們最近透過與小企鵝的郵件溝通對該挑戰有了更多的瞭解。你能夠在http://eudyptula-challenge.org/給小企鵝傳送一封(非HTML)郵件來報名。
Eudyptula挑戰是什麼?
Eudyptula挑戰是面向Linux核心的一系列的程式設計練習。這些練習從一個非常簡單的“Hello World”核心模組開始,逐步增加複雜程度。
你為什麼發明了這個挑戰?
有一次喝了一整夜的酒,冒出了一個想法。如果Linux核心要生存的話,它需要新的程式設計師來修復一整夜的豪飲後、所新增加的所有bug。
什麼時候開始,持續多長時間?
你可以在任何時候開始。只需根據網站上關於如何加入的操作說明,你的任務就會傳送過來。目前有20個不同的任務要完成。如果你全部完成了,一組新的任務眼下正為了滿足已經完成挑戰的人,他們要求的也越多。
每一步都是透過電子郵件嗎?沒有一個可用的web表單?
是的,核心開發都是透過電子郵件運作的,因此安裝一個郵件客戶端來正確地傳送Linux核心補丁是所有核心開發者需要學習的技能。還有,提交補丁、程式碼以及透過電子郵件對review做出響應的來來回回的過程,就真真切切地發生在所有核心開發者身上。這個挑戰儘可能接近地複製Linux核心開發體驗。
誰應當參加挑戰?
對與Linux核心相關的、一組不同任務的程式設計感興趣的每一個人。
在我參與之前我需要掌握什麼?
為了參與,你需要對C有深入的瞭解。這個挑戰不是一個教程,沒有如何完成任務的提示,也沒有去哪裡找到更多資訊的指南,它需要你自己的大量投入。
如果我完全是Linux核心開發新手,該挑戰將教會我如何貢獻嗎?
是的,大量任務是關於獲取 應用到Linux核心樹本身的 補丁。挑戰結束後,你將具備如何向核心貢獻程式碼的技能和理解。
有獲勝者嗎?我如何才能完成?
沒有“獲勝者”,因為沒有定時突然出現的一堆任務。很多人已經完成了當前的任務組,新人正在每天報名參加。
據說Linux基金會可能為每一個完成挑戰的人準備了一個“獎品”。只有你不得不完成挑戰才能自己發現獎品是什麼。
完成該挑戰 意味著 我有資格成為一名核心維護人員嗎?
你將有資格指出你喜愛的維護人員引起的、與核心開發相關的任何問題。那通常比作為一名核心子系統維護人員要有趣得多。
這會讓我的簡歷更有競爭力嗎?它有助於找工作?
它不會傷害你的簡歷,但是我懷疑有人知道這是什麼。為了找工作,外面有很多Linux核心開發者的工作,如果你完成了所有這些任務,沒有理由你不能輕鬆找到一個全職工作。
為什麼你認為已經看到了該挑戰的強烈反響?我們聽說你已經有2,000個參與者了。
這個挑戰產生了大量反響,遠遠超出了我的想象。目前有超過2,400個人在參與挑戰,每天還有更多的報名。
很多時候,人們只是在涉及核心程式設計時,他們不知道想做什麼。這種型別的任務強迫他們在核心原始碼樹裡的大量不同地方探索。沒有一個特定的任務,大多數人不會去研究核心的這些區域是如何執行的。
我還聽說一個大學程式設計小組組織了一個駭客節日,他們的會員在週末要接受挑戰,這是怎麼回事?
該挑戰仍然以個體為基礎,因此大學小組忙著他們自己的任務。他們有一個10人小組,在同樣的地點工作。沒有開發者能夠在一個週末完成所有的任務,但是看起來他們在試圖這樣做時度過了一段快樂時光。
原文地址:http://www.linux.com/news/featured-blogs/200-libby-clark/770112-learn-how-to-contribute-to-the-linux-kernel-take-the-eudyptula-challenge
注1:http://zh.wikipedia.org/wiki/小藍企鵝
相關文章
- 向 Node.js 核心貢獻程式碼的六個步驟Node.js
- NSA 向 Coreboot 專案貢獻程式碼boot
- 如何給 swoft 貢獻程式碼
- 如何為PHP貢獻程式碼PHP
- 如何為 PHP 貢獻程式碼PHP
- 龍芯愛好者向Linux 3.4核心貢獻程式碼並參加開源軟體大賽Linux
- 如何給 GNU 專案貢獻程式碼
- 如何向 Mozilla 開源社群做貢獻
- 3、18 貢獻法學習
- 如何向開源軟體貢獻自己的力量
- 手把手教你如何向 Linux 核心提交程式碼Linux
- 甲骨文貢獻Linux程式程式碼 擴大Novell硬體支援Linux
- 一年內每天向開源貢獻程式碼所發生的事情
- 第一次向開源專案貢獻程式碼的歷程
- 今晚戰碼先鋒潤和賽道第2期直播丨如何參與OpenHarmony程式碼貢獻
- Laravel核心程式碼學習--HTTP核心LaravelHTTP
- 過去十年間的Linux核心的貢獻對比Linux
- 如何向開源專案做貢獻(以 incubator-dubbo 為例)BAT
- 成為七牛雲 Contributor -如何貢獻 logkit 程式碼
- 使用GitHub接受前端元件開發挑戰Github前端元件
- Laravel核心程式碼學習 — 路由Laravel路由
- Laravel核心程式碼學習 -- 路由Laravel路由
- 終於等到你!阿里正式向 Apache Flink 貢獻 Blink 原始碼阿里Apache原始碼
- 聊聊原始碼貢獻這件大事原始碼
- 向微軟官方貢獻 @types 包後引發的思考微軟
- 蘋果的貢獻蘋果
- 如何給開源專案做貢獻
- 如何為開源軟體做出貢獻
- 淺談團隊貢獻分如何分配
- 學習原始碼的第八個月,我成了Spring的開源貢獻者原始碼Spring
- Laravel核心程式碼學習 -- Database QueryBuilderLaravelDatabaseUI
- 微軟是第 17 位 Linux 貢獻者微軟Linux
- 如何向 Linux 核心提交驅動Linux
- AI專家Marcus質疑深度學習:面臨十大挑戰(含參考文獻)AI深度學習
- 如何幫助OpenStack開發者成為貢獻者
- CNCF:中國已成為全球第二大開源貢獻國 CNCF專案的程式碼貢獻接近100萬
- Laravel核心程式碼學習 — 觀察者模式Laravel模式
- Laravel核心程式碼學習 — 事件系統Laravel事件