龙蜥开发者说:开源是场马拉松!来自广州大学姚同学的开源成长记 | 第 13 期

news2024/11/27 10:31:52

「龙蜥开发者说」第 13 期来了!开发者与开源社区相辅相成,相互成就,这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的,我们希望在这里让更多人看见技术的力量。本期故事,我们邀请了龙蜥社区开发者姚胤楠来分享「开源是场马拉松!来自广州大学姚同学的开源成长记 」。

欢迎阅读上期故事《一人行快,众人行远!在龙蜥社区的日子,我想说这些》。开发者说系长期活动,对于积极投稿、多次分享的童鞋,我们还有神秘大礼鼓励!诚邀开发者们分享真实体验,以文会友、共同学习、一起进步。

本期故事主角:姚胤楠,大学研二学生,个人研究方向是容器运行时安全,主要涉及到使用 eBPF 等技术对容器运行时安全进行实时监控和追踪取证等方面的研究。

大家好,我是姚胤楠,目前就读于广州大学,是网络空间安全学院的一名研二学生,个人研究方向是容器运行时安全,主要涉及到使用 eBPF 等技术对容器运行时状态进行实时监控和追踪取证等方面的研究。

在学习容器安全过程中,我深入了解了安全容器 Kata Containers 项目并产生了浓厚兴趣。我深信开源领域是值得人们去探索的未来,它并不神秘,但却引人入胜,点燃了我们年轻人投身学习的热情。入门之初,空有热情却没有方向的我就像一个无头苍蝇,一直在寻找入门的机会。直到今年一月,有一位前辈提示我,既然如此热爱开源,那为什么不加入到开源社区里呢?那里有更多的开源人才,能结交志同道合的人,也能学到更多的开源知识。

得到这个提示,我才意识到我差点错过一个绝佳的学习机会!要知道,当前进的过程中遇到阻碍的时候,到专业人士的指点,比自己进行盲目摸索的效率不知要高多少倍。借助当时遇到的项目,我正式加入了 Kata 社区中,开始了我的容器项目研究之旅。

在参与社区的过程中,起初的工作是搭建开发环境,做一些兼容适配和修复 BUG 等简单的工作。但当我逐渐熟悉了开源社区的工作后,也融入了社区氛围的时候,便开始尝试协助导师组织和主持容器相关课题的周会。

参与项目的半年多的时间里,让我从一个学习者成长为了一名开发者,也从当初参与者的身份转变成了如今的组织者。这些角色的转变,不仅仅是身体上加入了开发者社区,也让我的精神得到了满足。在这个过程中,不仅精进了我的计算机技术,而且学到了如何去更好地交流、合作,还结识了各个企业的开源前辈和同样来自高校的朋友。

在这段开源之旅中,我非常荣幸获得了 OpenInfra Days 2022 China 社区新星的称号,这个奖项对我来说是莫大的肯定,鼓励着我走向开源的远方。今后我也会持续关注 Kata 3.0 的建设工作,希望能够更好地为这个项目做出贡献。

在完成了大部分 Kata Containers 项目相关内容后,我发现一直在关注的阿里巴巴编程之夏(ASOC)活动开始了 2022 年度的报名比赛。看到龙蜥社区在此次活动中发布了 8 个开源项目,其中有一个是关于「基于 dragonball-sandbox 开源组件搭建简易虚拟机」的任务,我不假思索地报了名。报名后加入了龙蜥社区,在龙蜥社区项目导师的指导下,顺利地完成此次活动项目,从而有了一个精彩的编程之夏。

我始终认为开源社区是交流的社区,只有交流合作才可以更好地打造一个个顶尖的项目。如果说加入 Kata 社区源于我对开源世界和安全容器的兴趣爱好,那么加入龙蜥社区,选择这个项目则是来自我对开源技术的探索与追求。除此之外,我在龙蜥官网上发现有近 50 个技术 SIG(Special Interest Group) 组,对其中一些 SIG 组也很感兴趣,比如 eBPF 技术探索 SIG,因为它与我在学校的研究方向有很大关系。

我在编程之夏的旅程是由一个一个任务堆起来的,每周的任务从项目的架构设计到 CLI 模块,再到 CPU 虚拟化、内存虚拟化和设备虚拟化,充实而艰难,但完成这些项目后所获得的成就感是巨大的。项目代码的实现,以及如何去总结对自身而言晦涩难懂的知识并输出的过程都是我点滴的积累。经过几个月持续不断的输入、输出,我终于得到了一个结论性的成果——基于 dragonball 组件搭建的简易虚拟机 Miniball

(图 / MiniBall 的架构:展示了 CPU 虚拟化、内存虚拟化、设备虚拟化、加载内核的各个模块及所依赖的 crates)

在搭建 MiniBall 的过程中,我遇到过很多的困难。首先就是对于 Rust 语言的实践。在参与龙蜥社区 Dragonball 项目之前,我对 Rust 语言的基础还只停留在命令行工具,而 Rust 本身又是一个学习曲线较为陡峭的语言。

知识在于积累!在阅读 rust-vmm 和 Dragonball 项目源码的过程中,如果有钻研不透的问题我都会随时请教龙蜥社区导师,就这样在项目开发期间我一直保持不懂就问的态度外加练习,终于感觉入门了 Rust 语言。在这个项目中,我也是第一次接触虚拟化,在完成 MiniBall 之前,开发虚拟机对我而言是从未设想的任务。

项目任务的困难是我接受的巨大挑战,我不得不承认,若是自己从零学起,要完成任务恐怕遥遥无期。但在阿里巴巴编程之夏这里得到了龙蜥社区前辈们的引导后,我用了更为顺畅的学习曲线去掌握这些知识。比如在实现 CPU 虚拟化部分的时候,不仅仅要实现代码内容,还需要结合原理输出一份文档,这个过程对于初学者的我是相当困难的。

输出文档就意味着需要理解了 CPU 虚拟化的原理并尽可能用自己的表述进行产出。在这个过程中,我的指导老师吴老师给我了极大的鼓励,他让我勇敢迈出了第一步——先写出大概的框架,再通过回顾和交流不断补充内容、完善细节,直到现在这一份文档变得完整且详细。

当一份文档完成,之后其他的开发过程和文档输出就相对明朗且顺畅。

我提交的每个 PR 和 issue、写出的每一篇文档,都是我一步一个脚印迈向远方的基石,是我颗粒般的知识在聚沙成塔。所以当项目任务结束,我抬起头看到目的地就在眼前的时候,心里由衷地感谢为此奋斗过的每个日夜。

当我回头看这段时间用过的技术、写下的每一行代码,才意识到我不知不觉间已经建立起了初步的知识框架,但是我很清楚的知道那都不是一蹴而就的,是我这段时间努力的每个瞬间汇聚在一起的结果。

(图/MiniBall 项目完成过程中共提交合并了 13 个 PRs,涵盖 CPU 虚拟化、内存虚拟化、设备虚拟化、架构文档和使用指南等多项内容)

这只是我在龙蜥社区参与的一个项目,我却可以把它作为一个开始。今后我很期待能够成为一个可以做出贡献的开发者,就像我希望在社区中不仅仅参与项目代码维护和功能支持方面的任务,可以尝试更深地去参与社区项目技术路线的讨论,将自己的想法与社区成员探讨和碰撞。

(图/MiniBall 的项目代码展示)

我也关注到龙蜥社区目前正在开展「人人都可以参与开源」活动(活动地址见文末)。我个人觉得这是个非常好的活动,因为开源对于在校学生而言是一个很好的成长机会,学生们通过这个活动也能够接触到业界前沿的技术。但是学生往往会因为开源项目涉及到的技术较难而犹豫是否要参与到社区中,所以这个活动非常友好地给技术还不那么成熟的学生群体或其他想参与开源的初学者、爱好者提供了机会。不过,我看到目前公开的任务还较少,参与活动的 SIG 还较少,希望未来有更多的项目、SIG 涉及更广的任务能够开放给对开源感兴趣的开发者。

 

也许有不少同学也像我一样对开源社区和虚拟化感兴趣,但是苦于没有引路人,只能埋头自学,在看到社区技术比较难的时候就容易放弃,请不要惧怕,积极勇敢地参与到一个社区吧,这会是其中成长最快的道路之一。

社区中有前辈能够指导正确的路线,让学习的过程少走弯路。而那些对开源尚且还不了解、还在开源大门外徘徊的同学,也不要犹豫,走进来也许就能学习到前沿的技术,认识有趣的人,开启一段新的故事。开源更像是一场马拉松,坚持是最重要的,尽自己所能,在自己的兴趣驱动下去积极的贡献社区,希望未来我们都能共同建设一个更加精彩的开源世界!

相关链接地址可移步龙蜥公众号(OpenAnolis龙蜥)2022年11月24日相同推送查看。

更多龙蜥开发者的故事,可阅读往期开发者说:

【1】一人行快,众人行远!在龙蜥社区的日子,我想说这些 | 第 12 期

【2】海纳百川,有容乃大,我在龙蜥社区的升级之旅  | 第 11 期

【3】我眼里的龙蜥社区:一个包容的大家庭  | 第 10 期

【4】社区首个支持 LoongArch架构的操作系统构建之路  | 第 9 期

【5】首次触电,原来你是这样的龙蜥社区?| 第 8 期

【6】不忘初心,方得始终 | 第 7 期

【7】我的操作系统之路,坚持从实践中来,到实践中去 | 第6期

【8】从零开始的创造,是动力也是挑战 | 第5期

【9】学无止境的 Linux ,以及我的第一个定制版本发布之路 | 第4期

【10】聊一聊我技术生涯的“三次迭代” | 第 3 期

【11】从入坑到入门 | 第 2 期

【12】做开源,兴趣是最好的源动力 | 第1期

「龙蜥开发者说」投稿可参看:「龙蜥开发者说」征稿啦!

欢迎大家来稿分享您在龙蜥社区中的点滴~


 

—— 完 ——

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/42262.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

远程兴起,前端音视频通话?学

前言 看到前两篇文章都非常受欢迎,加起来有一千多赞了👍🏻 ,非常的开心!🤖继续加油!冲! 我们在前两篇文章中大概讲解了 音视频媒体流的获取,处理,以及在上一…

(免费分享)基于jsp的CRM客户管理-带论文

一、课题来源: 自有商业活动,客户关系就一直是商业活动中的一个核心问题,同时也成了商务活动成功的审核标准。在全球经济一体化为时代背景的时代,企业面临着为公司带来更多的客户、为管理者提供准确的信息和便捷的操作查询手段 、…

新旧iphone短信转移,苹果旧手机短信导入新手机

短信携带重要信息内容,新旧iphone短信转移?您可能知道,iOS设备上不支持导出iPhone简讯,更不用说打印iPhone上的短信了。幸运的是,有一些可行的方法可以将iPhone短信导入到另一个iPhone,继续阅读以获得更多帮…

软件协会第01次活动第05次任务布置:爱心代码+演奏歌曲+typora使用pandoc导出+github注册登录+函数练习+写csdn文章

了解更多关注软协官网:https://www.csuftsap.cn/ 来自软件协会编辑,注册会员即可获取全部开源.md资源,请勿转载,归软件协会所有。 文章目录:star: 软件协会第01次活动第05次任务布置1.程序员的浪漫-爱心代码(升级版&a…

css3手册

文章目录布局弹性盒生成弹性容器和弹性项目更改方向主轴排列侧轴排列弹性项目伸缩主轴换行网格生成网格布局定义行和列改变排列方向单元格之间的间隙单元格内部的对齐网格项目定位视觉阴影盒子阴影文字阴影圆角背景渐变变形translate 平移scale 缩放rotate 旋转改变变形原点多种…

spring MVC源码探索之AbstractHandlerMethodMapping

AbstractHandlerMethodMapping 是什么 官方解释是这样的。 /*** Abstract base class for {link HandlerMapping} implementations that define* a mapping between a request and a {link HandlerMethod}.** <p>For each registered handler method, a unique mapping…

Java项目:ssm毕业论文管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 毕业设计管理系统 1、本系统使用SSM框架 2、有管理员、教师、学生三种角色&#xff0c;管理员使用admin/admin登录&#xff0c;教师使用t_01/6666登录&a…

JavaWeb简单实例——DBUtils

简单介绍&#xff1a; DBUtils是一个用来简化我们JDBC的编码工作量的一个工具。它可以在不影响数据库访问性能的情况下简化我们的代码编辑量。DBUtils的作用主要是&#xff1a;写数据&#xff0c;读数据&#xff0c;优化性能。 常用的类和对应的API&#xff1a; QureyRunner…

Spring Framework 6正式发布,携JDK 17Jakarta EE开启新篇章

本文已被https://yourbatman.cn收录&#xff1b;女娲Knife-Initializr工程可公开访问啦&#xff1b;程序员专用网盘https://wangpan.yourbatman.cn&#xff1b;技术专栏源代码大本营&#xff1a;https://github.com/yourbatman/tech-column-learning&#xff1b;公号后台回复“…

1.什么是闭包

什么是闭包 1. 概念 闭包&#xff08;closure&#xff09;指有权访问另一个函数作用域中变量的函数。—《JavaScript高级程设计》 简单理解就是一个函数。 2. 如何产生闭包&#xff1f; 当一个嵌套的内部函数引用了嵌套的外部函数的变量&#xff08;函数&#xff09;时&…

CANoe-vTESTstudio之Test Diagram编辑器(元素介绍)

Test Diagram编辑器里的工具箱,有多个图形符号,它们是组成测试图表的图形元素,具有不同的作用。图形元素能够高效并快速地创建测试图表,然后生成测试用例 1. 基本测试设计元素 基本元素用来创建图形设计 1.1 Setup Setup元素的测试代码能够执行一次,在检查测试用例之前…

特别有用!Jmeter命令行执行时设置并发数和循环次数的方法

Jmeter命令行方式运行概述 之前写过一篇文章介绍如何在centos上部署jmeter来执行性能测试&#xff0c;链接如下&#xff1a; https://blog.csdn.net/liwenxiang629/article/details/124140833 因为大多数linux服务器都是没有GUI界面的&#xff0c;这就需要我们通过命令行的方…

MobPush Android For Unity

集成准备 注册账号 使用MobSDK之前&#xff0c;需要先在MobTech官网注册开发者账号&#xff0c;并获取MobTech提供的AppKey和AppSecret&#xff0c;详情可以点击查看注册流程 下载.unitypackage包 打开 Github 下载 MobPush-For-Unity 项目&#xff0c;下载完成后直接双击或…

【图神经网络论文整理】(十)—— How Powerful are Graph Neural Networks?:GIN

作者信息&#xff1a;Keyulu Xu, Weihua Hu, Jure Leskovec, Stefanie Jegelka论文来源&#xff1a;Computer Vision and Pattern Recognition论文地址&#xff1a;https://arxiv.org/abs/1810.00826 本文介绍的论文是《How Powerful are Graph Neural Networks?》。 作者提…

MySQL表的增删查改(嘎嘎详细~

hello呀&#xff01;各位&#xff0c;这里是Sunlightʊə。 目前大三&#xff0c;主要在学习Java语言。可以一起交流呀&#xff01; 相关文章&#xff1a; MySQL数据库的基础操作&#xff08;简单、基础版 专栏&#xff1a; Java数据结构 Java基础语法 MySQL基础 目录 新增&am…

流式 Isotype control 流式细胞仪control组

流式细胞术是非常让人着迷的实验。在众多医学研究手段里,如果说弱水三千只取一瓢的话,那我会首选流式细胞术。从我个人感受来讲,流式细胞术高速客观,具有统计学意义,能够处理复杂样本并同时获取多种参数,最最关键的是它性能可靠,可重复性非常好。 虽然也存在一些局限,…

3款超实用的电脑软件,免费又良心,内存满了也绝不卸载

超强的3款电脑软件&#xff0c;每款都是百里挑一的精品。 1、视频画质增强器 这是国人开发的图片视频增强工具&#xff0c;完全免费无任何弹屏广告&#xff0c;它能将画质很差的图片&#xff0c;一键转化为高清大图&#xff0c;同时还能无损放大图片&#xff0c;图片输出格式支…

第150篇 笔记-元宇宙(Metaverse)

定义&#xff1a;元宇宙是一个整体虚拟世界的概念&#xff0c;它与现实世界并行存在&#xff0c;提供主权数字所有权、独特的在线身份、互联环境和沉浸式体验。 随着最近区块链生态系统中NFT的爆炸&#xff0c;以及Facebook的头部转向“Meta”&#xff0c;元宇宙已进入主流公众…

代码源每日一题div1 枚举倍数 平方计数

平方计数 - 题目 - Daimayuan Online Judge 题意&#xff1a; 思路&#xff1a; 首先注意到暴力枚举一定超时&#xff0c;因此我们考虑只枚举一个指针&#xff0c;然后推一推式子降低另一个指针的复杂度 对于完全平方数这个条件&#xff0c;我们无法直接转换 即对于每一个a[…

1.3 测控电路的信号类型、测控电路的类型与组成、测控电路的发展趋势

笔者电子信息专业硕士毕业&#xff0c;获得过多次电子设计大赛、大学生智能车、数学建模国奖&#xff0c;现就职于南京某半导体芯片公司&#xff0c;从事硬件研发&#xff0c;电路设计研究。对于学电子的小伙伴&#xff0c;深知入门的不易&#xff0c;特开次博客交流分享经验&a…