隐藏
首页 关于系统能力 新闻与活动 产学合作 系统能力大赛 课程与资源 巅峰论坛 教学分享与交流
系统能力活动新闻    

无惧挑战:2022全国大学生计算机系统能力大赛操作系统设计赛OS功能挑战赛一等奖赛队获奖感言

浏览:1637 发布日期:2022-10-17

图片

2022全国大学生计算机系统能力大赛操作系统设计赛于2022年8月23日圆满落幕。在今年的大赛中,OS功能挑战赛道有来自23个省/直辖市的76所高校的242支队伍报名参赛。


OS功能挑战赛道的目标是结合产业界的实际问题和学术界新的探索方向进行命题,在在OS相关设计实现上给参赛选手足够的灵活性和开放性,让更多学生有机会参与到OS的学习和探索中。


OS功能挑战赛道的命题采用征集的方式,先由企业、高校、科研院所和专家进行申报,再由大赛技术委员会甄选,并和命题单位反复讨论进行调整、修改,使题目更符合大赛的定位和参赛学生的水平。目前,OS功能挑战赛道赛题库中已有192道赛题,赛题内容涉及OS课程实验、OS相关编程语言、OS调试动态分析工具、CPU+OS的软硬件协同设计、OS容器类工具、OS攻击和可靠性分析攻击、文件系统、内存管理优化、OS静态分析工具、LibOS、TEE OS、嵌入式系统应用等。命题方会选派企业导师指导相关参赛队的开发工作。


与OS内核实现赛道不同的是,OS功能挑战赛道的参赛队员面临的是来自企业的真实问题或者尚在研究中的新的领域问题,在几个月的时间内,有可能无法得到完善的解决方案。但是,这种不确定性并未影响同学们挑战的热情和勇气。同学们在校内导师和企业导师的指导下,无惧挑战,攻坚克难,齐心协力,提出了颇具创新性的解决方案,展现了同学们的创新和创造能力。


下面我们就来看看OS功能挑战赛道一等奖获奖赛队同学们的获奖感言。


01


图片


从选题初定,到初赛入围,再到决赛获奖,我们团队一路走来,攻坚克难,付出了大量的努力,也从中获益颇丰。与功能赛道的项目导师建立联系后,我们从多方面深入探讨了本题的难度与意义所在。确定选题后,我们马不停蹄地推进项目的进度,历经三个月的努力,在初赛前成功将赛题按要求基本完成。


但初赛从来不是我们的终点,秉持精益求精的理念,我们挖掘了赛题的创新点,并在此基础上进行了一系列性能测试。古人云:艰难困苦,玉汝于成。完善项目的过程虽然艰辛,但是每当一个小目标达成时我们都会收获满满的成就感。最终,功夫不负有心人,我们顺利拿到了一等奖,这也是对我们这一段辛勤付出的认可。


项目实战是推动学习的最好方法。我们在完成比赛项目时,不仅深入理解了软件和硬件在操作系统领域的工作原理,掌握了虚拟化技术、硬件规范以及仿真模拟等内容,更为RISC-V生态拓展和国产基础软件开发做出了自己的一份贡献。


最后,我们想感谢我们的指导老师寿黎但教授,赛题指导老师高金皓与万波老师,他们提供了很多建设性的意见,也在我们遇到困难时给予了鼓励与支持。


02


图片


我们很荣幸能够在这次操作系统大赛中获得一等奖,在本次大赛中,我们全队人员都为大赛付出了许多努力,也从中学到了许多知识,得到了锻炼。


万事开头难,在大赛初期,我们发现ebpf相关的教程文档十分碎片化,而且非常不全面,因此花费了大量的时间去学习如何使用ebpf技术进行开发。也正是因为在起步阶段遇到了众多由于参考材料不足而导致的问题,我们在最后的成果中专门整合了教程和源码解析文档,以期能让后来者更好地上手ebpf。同样,可观测性方向我们也进行了不少的探索和迭代,结合现有开源项目的不足,我们创新性地提出了 ebpf as a service 的理念,提供了大量开箱即用的收集指标,也能非常方便地添加新的ebpf 采集器。我们希望在之后把它作为一个真正的开源社区持续运营: github.com/eunomia-bpf。


本次大赛让我们在课堂之外紧跟操作系统领域的技术潮流,也极大地锻炼了我们的开发能力。同时,非常感谢各位老师和评委对于我们项目的悉心指导和赏识!


03


图片


在本次参赛的过程中, 我们基于新的硬件特性进行实验, 由于上海疫情的原因, 我们无法接触到物理硬件, 从而转战模拟器的改造, 一路坎坷。


一方面我们获得了硬件-操作系统-用户程序全流程的调试体验, 另一方面也体现了我们积极面对困难而不是逃避困难的奋斗精神。在qemu的开发过程中, 我们积极和qemu社区以及Intel开发者交流, 从而更好地对我们的模拟器进行修改和开发。通过在 qemu 上实现用户态中断的新特性,我们对英特尔的硬件规范,尤其是中断异常相关的处理逻辑有了更深刻的理解,也加深了自己对 qemu 模拟器的认识。


在整个探索用户态中断的过程,我们锻炼了自己动手调研、解决实际问题的能力,从开始毫无计划到逐渐走完qemu模拟器的开发,也让我们获得了宝贵的经验。非常希望我们的工作能让这个课题更进一步,让这个有趣的新特性能在未来展露它的价值, 在未来取得广泛的应用。


最后非常感谢陈渝老师和向勇老师的指导! 感谢校外导师提供的帮助和硬件支持! 感谢贾越凯、贺鲲鹏、尤予阳、张译仁以及其他学长的帮助!

04


图片


我们当初选择这个赛题确实是比较有挑战性的,团队成员都是初次接触操作系统层面的底层开发,项目经历可谓一穷二白;seL4除了官方资料和代码库,参考资料极少,移植相关的资料几乎没有,国内也没有相关项目,找不到对应的技术博客;seL4除了微内核之外,还涉及相当多的软件来构建完整的系统,官方共有55个仓库,项目工程量很大,需要理清多个仓库之间的关系;此外LoongArch作为新的指令集架构,需要时间学习,参考资料也不多。


回顾初赛到决赛的5个月,我们从seL4微内核设计思想开始着手学习,然后从官方网站和文档上手梳理构建seL4项目所关联的代码库,了解项目如何构建和运行;阅读并看懂了seL4在RISC-V上实现的源码;同时学习了其他操作系统例如linux在LoongArch上的移植,以及经典MIT的xv6操作系统,还学会了操作系统开发必须用到一些工具,比如gdb、qemu、binutils等;最后上手seL4源码从cmake、elfloader、kernel到用户程序逐步完成移植。


项目的推进离不开队员之间的支持和鼓励,张福新老师和高燕萍老师的悉心指导,以及实验室同学和师兄的帮助和建议。在比赛过程中,团队每周开两次组会,讨论技术,积累文档,探索方向,队员分工明确,配合默契,可谓精诚合作,金石为开。感谢操作系统大赛,让我们收获颇丰。


05


图片


很荣幸能够在本次操作系统设计赛功能赛道中获得一等奖,在大赛结束之际,回想参赛以来的点点滴滴,我们感概颇多。


最初决定参赛,是偶然在学校的Linux交流群看到老师对操作系统功能赛的宣传。那时我和满洋没有完整学习过操作系统,但凭着对OS的兴趣,我们决定试着参赛。


选定赛题时,经验不足的我们本想选取一个较为简单的题目;但两位指导老师鼓励我们选择更为复杂的题目proj120——智能化的操作系统异常检测,同时李怡凯学长的加入也为我们带来更多信心,我们最终接受了挑战。


初期,我们凭借老师悉心的指导,与华为专家的沟通,努力寻找赛题的切入点,之后便是按部就班地实现。由于项目经验不足,后期时间安排得很紧张,但也跌跌撞撞进入了决赛。决赛阶段,我们实现了老师建议的创新点,并把20多页的文档完善至近80页。为了准备答辩,PPT也在老师的指导下更新了一版又一版。


最终的结果出乎我们的意料,但回顾一路以来付出的心血和老师的耳提面授,却又显得理所应当。在大赛中,我们的专业素养得到了锻炼,文档编写和交流合作的能力也得到了提高。虽然辛苦,但也为今后的专业道路倾注了更深厚的力量。


06


图片


SworkDisk赛队获得本次操作系统设计大赛OS功能挑战赛道的一等奖,我们感到非常荣幸。能够荣获一等奖,首先是因为各位参赛队员的共同协作,在备赛期间全身心地投入到参赛作品的设计和实现中去,对参赛作品精益求精,持续更新代码、文档和演示幻灯片直到比赛的最后一天;其次是指导老师们的辛勤教导,在项目方案设计和实现的各个环节,指导老师们都会给赛队提出宝贵的指导意见,指引着作品设计和实现的正确方向;最后是各位评审老师对我们参赛作品的赞赏和肯定,并且对我们的作品提出了很多可贵的建议。


但同时我们也深知作品还有一些不足之处,我们在承担这份殊荣的同时也感觉到了自己肩上的责任。我们会将作品继续完善下去,不断提升自己的系统设计和实现能力,不断提高自己的专业知识和技术能力,不辜负各位老师对我们的肯定和支持。


全国大学生计算机系统能力大赛操作系统设计赛是面向操作系统领域唯一的学科竞赛,大赛以开源、开放、促进国内操作系统课程的教学和人才培养、提升学生的创新能力为目标。2022年大赛自1月中旬启动以来,得到了各高校同学们的积极响应,内核设计赛道有来自68所高校的110支队伍报名参赛,功能挑战赛道有来自76所高校的242支队伍报名参赛。


本届大赛继续得到众多企业和开源社区的积极响应和大力支持。华为技术有限公司、麒麟软件、统信软件技术有限公司、龙蜥社区、国科环宇、龙芯中科、蚂蚁集团、小米公司、字节跳动、上海鉴释科技发展有限公司、北京翼辉信息技术有限公司、杭州指令集智能科技有限公司、嘉楠科技等公司和开源社区作为大赛赞助商,不仅为大赛提供资金和技术支持,还积极参与大赛的命题、技术辅导工作。CSDN、InfoQ为大赛提供了媒体支持。