关于X Project

[转]http://www.wowotech.net/forum/viewtopic.php?id=2

背景

蜗窝在2014年成立之时,就计划在更新博客的同时,和大家一起做一些项目,因此才会有“项目专区”这个分类。遗憾的是,它留空至今。

做项目的原因,是和蜗窝的初衷有关:蜗窝从没有打算做一个单向的分享平台(博客、写书、视频等活动在此列),而是想做一个多向的交流、沟通平台。欲达到此目的,大家一起做一些事情,是一个快捷的方法。

而两年多的时间里,迟迟未做,原因很多,但总结起来,无外乎一个字:懒。不过“懒”病不是绝症,总能治。这不,痛定思痛,准备开始了。

X Project

大家先不用纠结“X Project”这个名字怎么来的(可以先玩一下“猜一猜”游戏,如果后面项目做多了,大家应该能猜到)。简单的说,这个项目就是One Kernel,Everywhere,或者说One Linux on Any Board。也就是说我们希望启动在Linux 4.4.y版本的kernel上面支持大家手中的各种各样的开发板的一个项目。

之所以做这样一个项目,背后的思考如下:

1)目前硬件开源的浪潮风起云涌,很多公司都推出了自己的开发板,方便各种小型公司实现自己的创业梦想。但是,这些板子提供的文档大多是如何使用板子,如何对板子进行二次开发,对于Linux内核的内容着墨非常少。在这样的情况下,对内核以及驱动开发有兴趣的工程师或者学生,在购买开发板之后,简单的玩玩之后便束之高阁,无法真正体会到Linux kernel以及驱动开发的乐趣。

2)目前国内工程师没有形成文档习惯,遇到问题,解决问题,不会全面检视问题背后的源由,知识来的快,去的也快,同样的,问题解决的快,新问题冒出的速度更快,最终累成狗。我们希望通过一个实际的项目来展示优雅的代码、文档以及解决问题的过程。

3)蜗窝是一个深度学习,深度思考Linux技术的网站,博客中发表的文章都是偏理论,不利于初学者理解和学习。因此我们希望通过一个结合硬件实战的实战项目来帮助更多的初阶工程师。理论源于实践,但是要高于实践,因此,在实际的项目中点点滴滴最后会被整理出来,最终会形成有系统的、理论化文档,发表在博客板块,可以指导更多的工程师进行具体的“实践”活动。

因此,我们希望借助“X Project”,唤醒大家手中沉睡的开发板。无论大家手头有什么样子的开发板、旧手机,只要有必要的硬件资料、原理图、知道启动过程控制等,那么只要按照我们的指导写出文档以及代码,通过review之后,即可并入项目的代码库。一方面自己得到实践的乐趣,另外一方面也可以分享自己的成果。

当然,蜗窝会给出示例性的文档和代码,这里我们选择了ARM64的S900处理器和ARM32的RK3128处理器做为范例,我们会提供各种详细的指导性的文档和代码,帮助大家一步一步的完成一个板子的板级支持任务。

目标

我们计划把该项目分为如下几个部分:
1)boot(包括u-boot和kernel boot)
2)linux bsp
3)Debian
4)Android

最终达成如下目标:
1)在4.4.y kernel版本上,尽可能多的支持现有开发板,并提供优秀的代码和文档。
2)整个过程,大家通过学习、讨论、实践等环节,互相提高。
3)代码符合开源社区规范,可以很容易地升级kernel、u-boot等版本。
4)最终将我们的实现代码upstream到u-boot和kernel的mainline上(以每个作者的名义)。

动机和动力

相信大家看到上面的表述之后,肯定会犯嘀咕:工作量太大了吧?做这些事情有什么意思呢?等等。没错,我们也这样想过,这也是我们写这篇文章的原因:需要大家的意见和帮助。在此之前,我先分享一些我的心路历程。

其实在蜗窝成立的前后,我们一直在纠结、迷茫一些事情(“关于蜗窝”中也有流露):我们的技术环境怎么了?我们的技术人,在带给这个社会日新月异的技术变迁的同时,自己想要什么?满足了吗?

答案毫无疑问是消极的,究其原因,我们最终得出的结论是:社会发展的必经阶段。OK,那我们能做什么?既然是必经阶段,总有一天情况会好转,我们就搬个马扎,等着,5年,10年,总够了吧?这就是蜗窝存在的最原始的驱动力。

把话题拉回,和这个项目有什么关系?我们一直坚信,能给我们这些技术人带来满足和快乐的,唯有技术本身。在这日复一日的工作中,我们唯有爱上它,才能得到解脱和升华。怎么爱呢?用心的、完整的做一件事情,理解它,发现它的优雅和美。这就是“X Project”的初衷。

期望大家的参与

任何理想总归要回到现实中,这个项目必须要在大家的参与和帮助下才能进行,大家可以通过如下方式参与:

1)参与讨论,对我们想法,大家是否认同,是否感兴趣,是否有其它不同的想法和意见,等等。
2)参与开发,如果手上有开发板、旧手机(满足一定条件,如有简单的硬件资料、简单的原理图、可以SD启动等,后面再讨论),按照我们的思路,把它们支持起来,我们提供思路和做法。
3)如果有硬件相关的资源,为我们提供赞助。

最后,希望大家注册账号,并发表对项目的看法,提出自己的建议,参与讨论。如果愿意的话,可以附上简单的信息(也可以不写):
名称;年龄;职业;工作年限;是否赞同;是否愿意参与;其它(随便说)。如:

vim;30;嵌入式liux工程师;8;Y;Y。
posted @ 2017-05-14 18:36  jasonactions  阅读(843)  评论(0)    收藏  举报