披荆斩棘:2022全国大学生计算机系统能力大赛操作系统设计赛OS内核设计赛一等奖赛队获奖感言
2022全国大学生计算机系统能力大赛操作系统设计赛于2022年8月23日圆满落幕。在今年的大赛中,OS内核实现赛道有来自23个省/直辖市的68所高校的110支队伍报名参赛。
设立OS内核实现赛道的初衷是鼓励国内不同层次的高校学生参加,帮助同学们了解和掌握OS Kernel的设计与实现。同时,普及开源理念,鼓励合作型竞争,使参赛队在比赛过程中能够学习其他队的先进经验,在合作中竞争,在竞争中学习、提升。
在技术方面,OS内核实现赛道要求参赛队综合运用知识,构思并实现一个综合性的操作系统,进入决赛的赛队还需要针对新的需求改进所提交的操作系统。为此,各参赛队要充分了解所使用的编程语言和目标硬件平台,使自己设计的操作系统能够尽可能发挥目标硬件平台的能力,以支持评测用例并提高应用的运行效率。
在历时4个多月的比赛过程中,44支参赛从初赛中脱颖而出,参加决赛阶段的比拼。在决赛阶段,有31支参赛队完成线上比赛和答辩,最终评选出30支决赛获奖赛队。
密集的赛程、繁多的知识、激烈的竞争,这样的比赛经历对同学们的知识、能力、耐心与毅力都是极大的考验,相信每一位披荆斩棘顺利完赛的同学都会有很多感触。今天,我们邀请了OS内核设计赛一等奖获奖赛队分享他们的获奖感言,一起感受他们的坚持与梦想。
01 获奖感言 能够获得系统能力大赛OS内核实现赛道一等奖,我们团队感到十分开心。这个奖项既是大赛组委会对于我们项目的认可,也是对我们所付出辛勤汗水的一份肯定与鼓励。在这里要感谢我们的两位指导老师、所有帮助过我们的同学们,以及我们每一位队员。 通过参加这次大赛,我们对于系统领域有了更深刻的认识。在历时七个月的开发过程中,我们学习到了如何解决一个个挑战和问题、基于当前最前沿的设计提出我们的方案,并真正实践在我们的内核当中,这对于我们未来在系统领域继续深造积累了宝贵的财富。在比赛过程中,我们也学会了如何进行团队协作,合力解决困难,这一点也是非常珍贵的。 在国产操作系统日益发展的今天,OS内核实现赛可以有效地促进这一领域的发展。感谢组委会,我们也会继续在系统领域为中国贡献自己的力量!
02 获奖感言 这次我们开发的Maturin历时5个月,从基本的FU740多核启动、进程支持、内存管理到后来的动态库、信号、epoll乃至基本的网络支持,我们最终不仅完成了大赛要求的测例,还运行了gcc和redis两个实际应用。我们知道,操作系统的开发不应该是少数几个人的合作,而应该要能应对大规模的共同开发。为此,我们在开发过程中详细地记录文档,保持代码和文档合一,上线网页;同时,严格保持调用规范和无warning约定,让我们的内核不只适用于本次比赛,还能成为后续其他项目和同学们学习的起点。 我们最初没有预期能做到支持gcc这样的编译器,但实际实现的时候发现其实没有那么难,只是之前没有足够清晰的文档或教程告诉我们应该怎么去做。最后评奖时,我发现内核一等奖队伍的内核几乎都支持了编译器。我认为这是比赛最大的意义:很多OS教程只是对应学校的课程,但对于一个操作系统应该怎么支持一些更高级的特性,没有更深入的描述。而这次的操作系统比赛给了我们一个方向,让大家去趟过这片沼泽,用脚把路走出来。正是有了这次大赛提供的推动力,我们和许许多多的同学才能勇于跨出这一步,去实现自己的操作系统内核。 最后非常感谢陈渝、向勇老师的指导和张译仁、陈乐、萧洛源、杨德睿等同学的帮助和支持,没有他们的帮助也就不会有我们现在完成的Maturin项目。
03 获奖感言 非常荣幸能够获得大赛一等奖,这次比赛中我们一路披荆斩棘,通过了全部的功能测试,并在决赛第二阶段全程保持性能分第一。 我们充满梦想,FTL意为Faster Than Light,它蕴含了操作系统对性能的渴望。为了实现这一目标,我们用了与众不同的开发方式:我们从零开始,先编写文档,从起步就进行大量优化。我们乐观地认为只要应用了一切可能的优化,FTLOS就能达到极致的、后无来者的性能。从结果来看,此方案大体成功,我们全程性能分第一,但因为调研不足的原因,文件系统的错误设计影响了重构,FTLOS无法在全部的测试点上获得第一,也让我们没有太多时间去移植真实应用程序。 这是我们第一次参加系统能力大赛,它让我们接触到了大量无法从课本上学到的知识,使我们了解了现代操作系统的运行方式,对操作系统有了更深层次的理解,还显著提升了工程实践能力。感谢全部队员、伙伴队伍的努力,感谢夏文、仇洁婷老师的倾力帮助,也感谢所有在比赛中实时开源代码、展示文档的参赛队伍。愿比赛在未来更加完善,越来越好。
04 获奖感言 OopS是一个用Rust编写的RISC-V64多核操作系统,项目总历时约7个月。我们团队从今年的寒假期间就开始学习rust及操作系统相关知识,为该比赛做准备。 在开发前,我们考虑到从0开始设计一个内核会带来大量的bug和时间开销,所以我们决定参考rCore-Tutorial快速开发出一个基本的内核。之后,我们比较顺利地通过了初赛的测试,这给了我们信心,于是我们对原本的基础架构做了大量修改。通过不断地踩坑和重构,并结合其他内核的设计和我们的思考,最终打造出了现在的OopS内核。 通过这次比赛,加深了我们对操作系统的理解,提升了我们的工程能力。此外,本次比赛让我们更加理解了开源的精神,我们的心态也从相互竞争转变为了相互学习。我们发现,与第一届参赛作品相比,本届参赛作品在功能和性能方面都有了不小的提升。这要感谢组委会和主办方为选手提供了一个平台,让我们有机会吸取往届参赛作品的经验,踩在巨人的肩膀上并更进一步。以后的参赛作品无疑也会比我们这届的作品要更加优秀。 在这里,还要感谢同校的参赛队伍和指导老师的帮助和指导,特别是第一届参赛选手黎庚祉学长给我们传授了大量的经验和灵感。
05 获奖感言 回顾这次大赛的参赛历程,我们最大的感受就是大赛涉及的知识面非常广。Fat32、线程、动态链接,这些知识点我们耳熟能详,但是亲手去实现这些功能对我们来说却有不小的挑战。我们基本上是一边查找资料了解技术细节,一边编程实现调试代码,在这个过程中我们深刻体会到了OS作为基础软件的复杂。 在这次比赛中,最令人激动的时刻是我们能够支持vi和tcc的那一刻:我们的OS并不完善,甚至简陋,但是它已经能够支持一些比较复杂的用户程序,我们之前长时间的努力最终得到了回报。当然,我们也有一些小遗憾:因为双平台的硬件不同,在k210板上我们需要做一些时间换空间的优化,而在unmatched板上我们需要做一些空间换时间的优化,所以为了打两个榜我们可能需要花上两倍的工作量,最后榜上的成绩也不尽如人意,这里也不得不佩服其他参赛队伍的技术水平。 虽然我们团队每个人的性格和思考方式都有所差别,但是在比赛中我们能够相互合作,相互支持。尽管我们与其他队伍之间存在竞争,但是开源让我们共同学习、共同进步、相互启发,我想这就是大赛带给我们最宝贵的东西。
06 获奖感言 本次比赛我们是从年初开始准备的,由于我们学校之前没有参赛队,因此对于我们队伍而言,既没有本校学长的参赛经验,又缺乏足够的支持,我们一路上基本是摸黑前行。从学习xv6的代码到一步步自己上手实现,从模拟器运行到下板子实测,中间踩过无数大大小小的坑,好在有上届参赛者的开源作品,我们才能够比较顺利地了解到比赛的全貌。 通过这次比赛,我们以亲身实践的方式,将操作系统的概念、原理落实于实际的工程项目,大大加深了我们对操作系统的理解和认知,原来模糊的概念也得到了清楚的解惑;在一些模块的优化过程中,通过反复权衡利弊,做出决策,才渐渐理解了原理课上所讲的技术方案的优劣之分。当克服了一个又一个技术难点,解决了一个又一个玄学bug,一步步见证我们自己的操作系统内核的诞生时,不禁感慨动容。 最后,我要感谢一路上竞争又合作的对手,他们促使我不断学习与进步。特别感谢我的队友和指导老师们,参赛之途是孤独的、无助的,幸亏有他们,我们才得以坚持前行,竭尽全力。今天取得如此丰硕的成果全然离不开他们的鼓励与支持。
关 于 大 赛