学生专访|openEuler 郑航:这一刻,兴趣和热爱化作产出具像化了

文摘   2024-09-03 18:13   中国香港  

开源之夏专访 2024#06


开源之夏个人专访与项目经验分享持续开放中,欢迎正在参与和已从开源之夏毕业的学生、导师一同加入专访行动,填写文末专访问卷,与大家分享你的开源经验与收获!
本期开源之夏 2024 专访来自 OpenAtom openEuler(简称"openEuler") 社区的 郑航 同学,在本届活动中承担的项目是来自openEuler社区的基于easybox框架支持rust版本的mount、umount基础命令
项目链接:
https://summer-ospp.ac.cn/org/prodetail/24b970458



# 关于郑航

OSPP:请介绍一下自己
郑航:我叫郑航,大二在读,目前在中科院软件所PLCT实验室实习,从事RISC-V开源活动。我的兴趣方向是操作系统内核方向以及Rust编程,我选择专注于操作系统内核方向是因为我认为它是计算机科学的核心领域之一。通过深入研究操作系统,我能更好地理解计算机的工作原理,以及如何优化系统性能和资源管理,更何况写出一个自己的操作系统是一件多么酷的事。同时,我也对Rust编程语言非常着迷。Rust的安全性、并发性和性能特性让我觉得它在系统级编程中有巨大的潜力,它的包管理器也让我爱不释手。我正在努力学习Rust,并尝试用它来实现一些小型的操作系统项目。除了技术学习,我也积极参与相关的开源项目和技术社区。我相信通过实践和与他人合作,可以更快地提升自己的技能。

OSPP:据了解,目前就读大二的你已经有了颇为丰富的项目经历,也掌握了多种专业技能。可以分享一下你是如何开始并深入开源贡献、掌握编程技能的吗?
郑航:作为一名大二学生,我确实在过去的时间里积累了一些项目经验和技能。我很乐意分享我的学习历程。我开始接触编程是在高中时期,主要是出于对计算机科学的好奇。进入大学后,我更加系统地学习了计算机基础知识,开始疯狂自学。在一次偶然机会接触到了Rust编程语言,就对它爱不释手,我对Rust语言的简洁语法和强大的内存安全特性深深着迷。于是我决定深入学习Rust,并将其应用到我的项目中。在学习Rust的过程中,我发现它非常适合系统级编程,尤其是在操作系统开发方面。这让我产生了一个大胆的想法:用Rust开发一个简单的操作系统内核。虽然这个目标很有挑战性,但我认为这是将我的兴趣和学习结合起来的绝佳机会。为了实现这个目标,我开始系统地学习操作系统原理,深入研究Linux内核的源码,同时不断提高我的Rust编程技能。我加入了几个在线的开源社区,与其他对操作系统和Rust感兴趣的开发者交流,学习他们的经验和见解。在这个过程中,我也遇到了不少困难。比如,理解复杂的内核概念,处理Rust在低级系统编程中的一些限制等。但每解决一个问题,我都感到无比兴奋,这种成就感推动我继续前进。目前,我正在开发一个基于Rust的微型操作系统内核。虽然还很简陋,但已经能够实现基本的进程管理和内存分配。这个项目不仅让我对操作系统的工作原理有了更深入的理解,也极大地提高了我的Rust编程水平。

# 参与开源之夏

OSPP:请介绍一下你在本届开源之夏中承担的项目,分享一下你对该项目的理解和成果预期
郑航:我在本届开源之夏中中选了mount和umount命令重写任务,mount和umount命令在类Linux系统中用于挂载和卸载文件系统,是系统管理中不可或缺的工具。我的目标是使用Rust语言重新实现这两个命令,以提高其安全性、可靠性和性能。

OSPP:目前项目开发进展如何?在开发过程中是否遇到了挑战或者有趣的经历?你是如何应对的?有什么收获么?
郑航:目前,项目的开发进展还算顺利。mount命令已经重写完成,umount命令也在重写中。在开发过程中,我确实遇到了一些挑战,比如mount、umount的系统调用比较复杂,为此我查询了很多资料,最终选择使用nix库进行重写,这样既避免了处理复杂的系统调用,也避免了使用unsafe。对于兼容性问题我也做了很大努力,新实现保持了与原有命令的兼容性,包括参数解析、输出格式等。

OSPP:导师对你的评价颇高,据社区反馈,你项目开发的进程和记录都很规范。请问你为形成这样的开发习惯都做了哪些努力?

郑航同学在开源之夏的项目参与积极,非常有技术热情,研究内核相关模块代码,目前基本完成了对mount命令的重写任务。对于碰到的问题也能查阅资料或者和导师交流反馈来解决,非常棒👍🏻

郑航:我很高兴能得到导师的认可,这对我来说是很大的鼓励。关于我的开发习惯和努力,我可以分享一下我的经验:任务分解与计划——我习惯将大项目分解成小的、可管理的任务。在开始mount命令重写时,我首先列出了所有需要实现的功能点,然后按照优先级和依赖关系排序。这帮助我更好地把握整个项目的进度。我给自己安排了固定的时间来学习新知识,探索相关技术。这帮助我在遇到问题时能更快找到解决方案。我每周都会花时间反思自己的工作方式,找出可以改进的地方。这种持续改进的态度帮助我不断提高效率。

OSPP:在开源社区的体验如何?你对开源的理解是什么?
郑航:开源社区给了我一个与全球开发者协作的平台。我从其他贡献者那里学到了很多编程技巧和最佳实践。知道自己的代码会被公开审查,这促使我更加注重代码质量和可读性。参与开源项目让我接触到了很多先进的技术和工具,大大拓展了我的技术视野。在社区中,我学会了如何清晰地表达技术问题,如何有效地进行技术讨论。
我对开源的理解:开源是一种知识共享的方式,它促进了技术的快速发展和创新。开源展示了一种新型的协作模式,来自不同背景的人可以为共同的目标而努力。对于学生和新手开发者来说,开源社区是一个绝佳的学习平台。

# 个人成长和寄语

OSPP:你感兴趣并擅长的是操作系统、内核开发,对RISC-V也有深入研究,可以分享一下为什么会对这些技术领域感兴趣吗?以及未来的规划?
郑航:我对这些领域的兴趣源于对计算机底层工作原理的好奇。操作系统是连接硬件和应用软件的桥梁,了解它的工作原理让我感觉能够掌控整个计算机系统。内核开发则是深入操作系统核心的绝佳方式。RISC-V吸引我是因为它是一个开放的指令集架构,为创新提供了广阔的空间。我认为RISC-V代表了未来计算机架构的一个重要方向,尤其在物联网和嵌入式系统领域有巨大潜力。未来,我计划继续深入学习操作系统理论,参与更多开源操作系统项目的开发。我也希望能够结合RISC-V架构,探索新型操作系统的设计和实现。长远来看,我希望能够在操作系统优化或新型系统架构设计方面做出自己的贡献。


OSPP:你所在的高校目前是否有开设开源相关课程?你身边同学参与开源的情况是否有了解?如果让你来鼓励高校学生参与开源,你会从哪些方面进行?


郑航:我所在的学校目前并没有开设开源相关课程。身边的同学参与开源较少,但是已经有部分同学在我的鼓励下开始从事开源活动。如果让我来鼓励高校学生参与开源,我会举办开源工作坊,邀请有经验的开源贡献者来分享经验,帮助学生了解开源的价值和参与方式。建立开源社团,为对开源感兴趣的学生提供一个交流和学习的平台。

OSPP:为想要参与开源之夏的同学们分享一些建议和鼓励吧!

郑航:

  • 提前准备:关注你感兴趣的开源项目,了解项目的目标、贡献指南和社区文化。

  • 从小处着手:不要害怕从修复小bug或改进文档开始,这些都是有价值的贡献。

  • 主动沟通:加入项目的邮件列表或聊天频道,与社区成员交流,提出问题和想法。

  • 保持耐心:开源贡献是一个学习的过程,可能会遇到挫折,但坚持下去,你会有很大收获。

  • 展示热情:展示你对项目的兴趣和学习能力,这比一开始就有丰富的技术经验更重要。

  • 时间管理:开源之夏期间要兼顾项目开发和学习,做好时间规划很重要。

  • 勇于尝试:即使觉得自己能力不足,也要大胆申请,过程本身就是很好的学习机会。

  • 持续学习:技术领域发展迅速,保持学习的习惯,不断提升自己的技能。


请相信,每个人都是从新手开始的。开源社区普遍很友好,欢迎新的贡献者。只要你有热情,愿意学习,就一定能在开源世界中找到自己的位置。


祝所有想要参与的同学都能在开源之夏中有精彩的体验!



END

专栏编辑:HungryFish

校对:校大山、郑航

制图:GoodWhite

专栏投稿请联系开源小助手:kaiyuanzhixia ,或填写下方专访信息收集问卷。

OpenAtom openEuler
openEuler是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目。 openEuler 面向数字基础设施的操作系统。
 最新文章