小企鹅的挑战
小企鹅的挑战来源于eudyptula-challenge,由一系列的Linux内核编程练习组成,从最简单的“hello world”模块开始,一步一步去完成复杂的patch,并且被linux内核树接受。
完成小企鹅的挑战,你会对linux内核有更深入的理解,并且这是成为一个合格的Linux内核贡献者的最佳途径。
欢迎来到小企鹅的挑战
这个挑战由一系列从简单开始的Linux内核编程练习组成,如果一切顺利,挑战到最后,你将有机会被选拔成为某个子系统的maintainer。 好吧,或许不是maintainer,但是你有能力指出一些喜爱的maintainer造成的一些错误,实际上,这比掌管它们要好玩得多。
所有的这些任务都将通过email完成,而且会要求你去撰写,修改和提交不同类型Linux内核补丁和代码。
首先,得介绍一些规则。
你会被分配一个“独一无二”的id,当你提交你的结果时,必须包含这个id,因为我(笨笨的脚本)需要一些方式来判断你的身份。 所以,从现在起,你发给我的每一个邮件他的主题行都需要包含你的id,类似这样:
[xxxxxxxxxxxx] Task 02 results
是的,你没猜错,xxxxxxxxxxxx正是你的独特id。请不要忘记它。 我能理解这个主题行,尽管可能有些困难,但是我们真的不想让我的主人参与识别主题行这个过程,这只会让事情变慢。
一定要使用当前的email地址,那个你注册的,来自其他email地址都会默认被无视。 如果未来你需要修改你的email地址,只需要发邮件告诉我你当前的id号,你原始的email地址和你新的email地址,之后就修改成功了。
当你提交一个任务,你将会收到一个自动回复邮件告诉你你在队列的哪个位置。 如果你没收到这个自动回复, 那就意味着我没收到你的结果, 一定是出了什么问题,你需要重新发送。
第二点,不要使用HTML格式,和base64-mime的附件。不过你已经走到这一步,很棒,这意味着你已经成功发送了一个non-html格式的邮件。 但是对于所有的任务,你不能发送base64-mime的附件,我不想处理它们。 一个“正常”text格式的附件就好。 如果你对这规则有疑问,请好好阅读你的邮件客户端文档,看看如何做这些。
第三点,不要使用Gmail或Microsoft Exchange做这些任务。是的,用这些可以完成,但是非常困难,你真的必须知道你正在做什么。 一旦你收到“我不明白这个回复,请重新尝试”这类信息,你可能想要换一个不同的email客户端或服务器重新尝试,并且要告知我你更改了你的邮件地址。 啊,现在你知道为什么你使用ID而不是email地址了吧,因为这样不容易上当受骗。
第四点,这个挑战意味着可以在一段时间内完成。不用冲刺,莫着急,我不走,你也是。 所以,坐好,慢慢来,享受这个过程。生活就是关于旅途的,而不是重点,这一点对于每个人都一样。
对于你提交作业的回复有时会花费一些日子,或者几周,或这几分钟,取决于这个系统的负载。 现在这有成千上万的人参与这个挑战,这个脚本很容易积压。如果你感觉你错过了一封email,可以问一问我,我会调查一下是什么原因的。有时新任务的邮件会推迟,但是也不过是1小时之类的。如果你在一天内都没收到新任务的邮件并且你目前的任务已经被标记完成,请发邮件告知我一下,一定是哪里出了问题。
第五点,正如挑战首页里说的,请自己完成你自己的工作。之前,有一部分的参与者曾发送一些在github或其他开放代码网站上的结果。这会时不时造成他们的解决方案被其他人作为答案抄袭。 我确定你不想有其他人抄袭你努力的工作。做这些挑战并不意味着你不能做调查或从kernel源码中寻找相关的代码和文档。你可以这么做。 当你作了抄袭代码或脚本,请一定要适当标注你从哪里copy过来的,否则我只是认为你想尽快通过这项任务,这可不是一个好事情。
如果你被发现你公开了你的代码,或很明显地在公共网站寻求帮助,或复制代码却没有合适的标注,或以某种方式尝试欺骗伪造挑战结果,你将直接被从这项挑战中移除。 简而言之,做你自己的工作,保持做你自己。
最后,如果你有关于一个任务的任何问题,或者需要一些帮助,请随意提问。我会告诉我的主人正在发生的事情,他们几天内会回来处理并给你答案。
期望一个从第一个任务开始能一直跟随的email。 任务的回复可能会花费一些日子,取决于系统负载或出现令人讨厌的bug。记住第四点,那是你需要一直记住的事情。
正如大企鹅所说,“玩的开心!”。