当前位置: 首页 > 科技观察

我是如何成为第一个OpenHarmony疯狂提交者的?

时间:2023-03-17 16:38:17 科技观察

更多信息请访问:Harmonyos技术社区https://harmonyos.51cto.com与华为官方共同建立已经成为众多科技公司和个人开发者的利器之一,同时逐渐渗透到各个领域领域,也为技术创新提供了重要渠道。如今,开源已成潮流,开源文化大行其道,开源项目层出不穷……6月1日,OpenAtom开源基金会正式发布OpenHarmony2.0Canary,受到众多开发者的关注。OpenHarmony是自主研发的不兼容Android的下一代开源操作系统。迄今为止,该项目有超过240名贡献者。在众多代码贡献者中,一位名叫“老凯”的开发者备受关注。他是第一个晋升为OpenHarmony开源项目Committer的野外开发者。以下来自老凯。让我们一步步探究他是如何成为一名OpenHarmony开发者的。我参与了OpenHarmony社区的开发。我不是IT圈内人,也没有什么技术成果。我获得了著名的鸿蒙开源社区的荣誉——OpenHarmony的第一个野生committer,这意味着我在某些项目中拥有审查和批准他人的权利。提交代码!你可能会想,你一定做出了多么伟大的贡献……做了什么,提交并采用了几十个补丁和几千行代码;不过仔细一看,你会发现很普通,不过也罢了……是的,我也是这么想的,可是,为什么会得到这个荣誉呢?我以为这是一种鼓励,但更重要的是,这叫社区和开源——小白也可以通过这个价值来实现他的人生!为什么要参加有意义的活动?能够在家人朋友面前,在自己老了的时候,跟孩子吹牛,是件很幸福的事。这是人性。就在几年前,我离开了原来的单位,又面临着如何选择的问题。当时美国佬开始疯狂打压我们,国家深刻反思“缺芯缺魂”。自然而然地,我瞄准了这个方向。既然你有空闲时间和一点钱,何不选择一些你喜欢和有意义的事情去做。于是我又重新捡起了废弃已久的技术“特长”,高高兴兴地回到码农行列,再做点有意义的事!折腾了几个国内操作系统相关的社区,总的感觉是“Light”,新人不知如何入门,参与起来难度更大。可能有个人因素,但总体来说感觉当时国内的开源社区就是这么普遍,好像这两年“开源”、“贡献”、“社区”的氛围开始加深了。后来,当我去了一个国外的社区转学,我把它当成了一次学习经历。我在Debian社区真的收获了很多新的认识。2019年trump给我介绍了一个机会:来鸿蒙。我看了鸿蒙出道的全过程演讲,想象中的愿景,描绘的蓝图,非常吸引我。我清楚地记得,当我听到鸿蒙必须开源时,我鼓掌。一个面向未来的操作系统就足够有意义了,一个可以与个人结合的机会。利益太难得了。所以,我最终摇摆不定,不再浪费时间,仅此而已。做了点东西,2020年9月真正开源,今年挺考验的。为了不浪费时间,也为了更有针对性的参与,跑到了seL4社区,因为听说是微内核,而且在国际上也很有名。说来也有意思,这么有20年以上发展历史的著名项目,找Bug还是很容易的!为此,我还结识了项目组的新朋友。终于等到鸿蒙开源了。说实话,我第一次看到代码的时候还是很失望的,因为我对嵌入式一窍不通,这和我想象中的通用操作系统不一样。犹豫了20多天。我必须一口一口地吃食物,一件一件地做事。我是在第十一天之后才开始投入其中的。01阅读源码开源的一大好处就是道理在表面,想懂的人都能看懂,掌握了就有话语权!我的兴趣是kernel,所以转liteos用了三个月左右-a的大部分代码都看过了,期间也提了很多意见,很多没看懂和疑惑的地方都提出来了记录。这些记录逐渐成为真正贡献的依据。02提交issue和pr我参与其他社区的各种项目时,听到别人最多的回复就是“goodcatch”和“goodeye”。说来也好笑,我很会挑剔别人!不管它有多出名,甚至标准规范都没有关系:-)有些人不把这种错字问题当回事,我对此持积极看法:如果你不这样做,你就看不到这些问题'不要当真;读别人的成果如果你学习了别人的成果,你发现的问题不谈,不关注,不足以表达你对作者辛勤劳动的尊重和一些回报。所以我的原则是,只要程序有错误,就会有误会,无论大小,都是bug。当然,提的时候要慎重,因为毕竟是在针对精英boss。为此,在这个过程中还有一个收获:确凿的证据和信息的获取。当我参加OpenHarmony大概一个月的时候,第一个PR就被采纳了,这对我来说是一个很大的鼓励。03误区以前没接触过嵌入式QEMU,对硬件和驱动也不懂。QEMU的有限经验只是触及表面,从未考虑过与之相关的开发。今年年初,欧洲的一个孵化组贡献了device_qemu的初始代码(注:我所知道的qemu项目仅限于liteos-a内核部分),可以调出一个最小化的内核态命令行。这个初始版本帮助我验证了我想问的问题,我感谢他们并一路问了一个问题。正是这个问题让我“深陷泥潭”,成为了现在QEMU项目的主要开发者之一。我问的问题是是否可以实现用户态,他们的回答很委婉:暂时还没有投入的时间。众所周知,纯内核态的模拟能起到的作用非常有限。继续等着别人现成的?有点不尽如人意。有时间,于是抱着试一试的想法,问还缺什么,有没有样品。现在想想,我还真不敢问。最后的信息是三个字——CFI。鸭子上架的想法大家都听说过,我当时就是这种状态。第一周,我就像一只无头苍蝇,找规范,找代码,翻书,认识各种缩写,猜测,尝试……第二周奇迹发生了,写了一堆东西我不知道他们得到了什么回应!之后就有点谱了,用QEMU源码纠错和内核接口。大概一个月左右,在项目组和社区的鼓励和帮助下,经过rawcharacter、blockdevices、jffs2格式等多个版本,终于成型,顺便也开启了用户模式.就这样一不小心OpenHarmony里面就有几百行我的!04做事需要时间,投入了大量的时间和精力。OpenHarmony是一个庞大的项目,仓库众多,关系复杂,代码量巨大。想参与其中,自然要花费更多的时间和精力。我的情况有点特殊。我将此视为全职工作或职业。此外,技术积累和更新不够。.好在自己对此有兴趣,也有空闲时间安排,所以不觉得累。反而能收获快乐和友情,也有一定的成就感。几点感受01开源需要社区推广。我在这里想说的是提拔而不是领导。社区不是一盘散沙,需要强有力的领导,繁荣需要广泛的社区推动。一方面是人手的问题,另一方面是普惠的问题。就我参与的QEMU项目来说,一个明显的问题就是官方有心却没有精力。从OpenHarmony的代码迭代速度和版本路线图可以看出,项目组非常忙碌。我看到他们半夜提交代码的次数太多了,我都不好意思去打扰他们。这么庞大的系统,区区百余人,显然要处理的事情太多了。而我参与QEMU的初衷正是因为我想自己用。俗话说,众人拾柴火焰高,OpenHarmony搭建了一个大平台,各位大神可以各显神通,各取所需。事物发展的初级阶段,是酝酿新的独角兽和大神的好机会。我愿意相信,共同的理想和认知能够汇聚强大的力量,推动社区健康快速发展。02参与社区的最佳实践是让大家以不同的目的、不同的关注点、不同的兴趣参与进来,但目标是一致的,Openharmony将随之蓬勃发展。然后在参与的路上,我觉得学习、研究、做都是有效的方式。学是理解和掌握主要思想和方法,研究是准确而有意义地发挥聪明才智,做是有逻辑地贡献和获得回报。例如,从一个稍微简单的问题开始,我什至设想从邮件列表开始处理稍微大一点的问题。有时候看到社区爱好者想努力却做不到或者不知道怎么做,感觉自己对开源和社区的理解还是有点保守,或者有顾虑.实践告诉我,如果我们继续做而不是说说而已,不仅我们的个人想法会实现,而且社区也会欣赏我们的努力。当然,参与过程中需要准确了解社区准则和贡献流程。03良好的社区文化需要大家的共同努力。不得不承认,往往与利益不直接挂钩的社区开源文化,正在成为经济发展的重要推动力。社区文化的蓬勃发展在一定程度上体现了先进性。感觉这两年国内的开源社区好像火了一把。如何参与社区,如何组织社区,如何建设社区,都还在摸索中。从我这几年转过的国内外社区的情况来看,我觉得还是有很大的文化差异。并不是说谁好谁不好,而是我们对社区角色的普遍认知还有些模糊。我也在IRC交流平台上加了很多频道,感觉一个明显的特点:有热心的人,我可以和大牛聊天,很少有无用的曲调。这样的氛围很容易进入、讨论和投稿。所以,包括我自己在内的每一位参与者,确实需要更加注重开源和社区意识,多一些工匠精神,多一些志愿者形象,多一些公众角色。04客观看待问题,阻碍鸿蒙有远大理想,却仓促诞生。匆忙必有不完美,不完美必有充足的机会。鸿蒙表示,从诞生到现在已经有五六年了,但对于一个面向未来的操作系统来说,这个时间太短了,目标和条件可能会发生变化和调整。期望看到一切都完美是不现实的,反倒是心情不好。反过来看这个问题,如果一切都很完美,我怎么能成为committer。参与OpenHarmony这么久,发现华为的精英们还是挺谦虚的,这让我这个没有技术背景的小白很是佩服。那么当我们遇到挫折和障碍时,我们可以通过issues、pr等方式,提出我们认为更适合讨论交流的解决方案。泛泛而谈可能无济于事。device_qemu项目已经启动半年了,进展还很初步。中上层组件集成难度大;OpenHarmony的一些应用框架和紧耦合也是有争议的。。。我理解这些都是开发中的问题,应该用开发的眼光来看待,社区很多人都在为此出谋划策和实践。3月11日,OpenHarmony发生了一个里程碑事件——流程开源,Harmony的团队和开发开始实时呈现给公众。从此,我们就有了与之共克时艰的可能。最后,HarmonyOS的“首发”任重而道远。心中有光,就不怕险阻,不怕路漫漫其修远兮!更多信息请访问:https://harmonyos,与华为共同建立的鸿蒙技术社区。51cto.com