您的位置:  首页 > 技术杂谈 > 正文

暑期2021优秀学生专访:不停学习的OS喜爱者——张永豪

2022-01-11 15:00 https://my.oschina.net/u/5283003/blog/5395609 康康OSC 次阅读 条评论

开源软件供应链点亮计划-暑期 2021已经收官,在为期三个月的开源实践中,我们不仅收获了529个结项项目,还收获了各位参与项目的宝藏同学们。为了进一步巩固这些新生的开源力量,组委会特邀请指导委员会老师从4个方向评选出了具有代表性的20位优秀学生。

本次采访,我们邀请突出贡献奖获奖者张永豪,分享自己的开源故事和活动感悟。

优秀学迷你简历

姓名:张永豪

性别:男

年龄:20

学校:广州松田职业学院

兴趣爱好:听音乐,了解/思考一些自己喜欢的技术

最喜欢的开源软件:Ubuntu、vs code

 

--自我介绍--

1、请简单介绍一下自己

大家好,我叫张永豪,是来自广东广州的一名在读大学生,目前在读大三。

 

2、最初是在哪里了解开源的,有参与过其他开源项目吗?

自己上网了解,以及一些公众号推送的信息了解到。目前是一次参加开源项目。

 

3、目前你有哪些熟悉的计算机编程语言?它们在你心里有排名或者偏好吗?请简单描述一下你对它们的看法

我第一个偏好是C语言,主要原因是这是我第一个接触到的编程语言,而且现在写操作系统内核时要用到它,万物不离C:)。

第二就是X86汇编语言,该语言是在《x86汇编语言 从实模式到保护模式》学得的,是让我初识计算机底层,对操作系统启蒙的一本书。所以我主观认为,学习计算机底层,汇编语言是不可或缺的。

 

--关于暑期2021--

4、请简单介绍一下暑期2021中你的开源项目

我这次在参加的开源项目是给操作系统Bookos的内核xbook2写一个虚拟内存管理-内存交换模块。内存交换简单点来说就是当物理内存被占用到一定的程度时,为了避免出现接下来的用户程序在获取一定量的内存时,因内存不够导致无法获取满足需求的内存空间,从而导致无法正常地运行的情况,需要定期地又或是紧急地,把一段时间未被CPU访问的在内存当中的数据写入到指定的硬盘交换空间当中,回收那些内存给其它目前正需要,或未来需要内存的用户程序。

 

5、暑期2021中,你的开源项目有3个人申请,你是怎么拿到这个项目的?可以分享一下挑选项目和通过申请的经验吗?

在申请该开源项目之前,我就已经通过《深入理解Linux虚拟内存管理》学习了Linux 2.4的虚拟内存管理,也对它颇有兴趣,对某些部分也有较深入地了解。然后我的项目导师李石亮导师邀请我去参加Bookos社区的开源项目。而且在该社区的众多项目中,我感觉“Bookos 内存管理页面交换模块”比较适合我,所以我就把自己计划如何实现该模块的全部想法写到《项目申请书》内。也可能是我写的比较全面吧,所以就选上我了🤣。

 

6、在项目进行中遇到的印象最深刻的困难是什么?如何解决的?有什么收获吗?

记得在7月末,西安邮电大学教授陈莉君老师组织了一场分享OS知识的网上小型会议。当时我的项目在思路上遇到了困难,就在那次的会议中向陈莉君老师分享了我对内存交换的思路以及想法,想看能不能有新的突破。然后在陈老师的建议指导下,我渐渐地有一些新的思路和想法,这帮助了我继续推进项目,感谢陈莉君老师:)。

在本次项目的末期,在调试BUG时体会到,我需要对内核xbook2有更多的了解,除了要了解每一个功能内调用到与内存管理子系统相关的接口函数,还要了解该功能的作用是什么,更要细致地了解内存管理和这些功能的关系。因为之前我没有利用好自己的时间去更细致地了解内核xbook2,也没仔细地考虑到我的功能该如何更好地融入到内核当中,导致在调试BUG时耗费了较多时间,模块与内核整体的优化也没有好好的实现。这让我收获了一些感悟:实现一个新功能前需要细致地了解可能会涉及到的新功能的模块,尽量先从简实现调试,再一步步到繁。

 

7、之前对Bookos社区有了解吗?在项目中你对Bookos社区的认识有什么变化吗?

我上一年在学习操作系统内核的时候就知道Bookos社区了,也了解了社区内的核心人物——胡自成导师。我佩服他凭一己之力写出了这个操作系统,且完整度竟然如此之高!而且在我写这次的开源项目时,我每一次遇到有关Bookos的问题时,胡导师都会及时地、耐心地回答我。所以在这次的开源项目中我深刻地感受到了,Bookos社区的导师以及成员是很友好地对待每一个热爱技术的人。感谢胡自成导师:)。

 

--关于开源和学习--

8、你之前做过的项目和这次的项目都是和操作系统有关的,你是怎么确定走操作系统这个方向的呢?

我是在2020年3月份接触到操作系统,当时李石亮导师推荐给了我一本名为《x86汇编语言 从实模式到保护模式》的书,让我学习计算机底层的相关知识。我用了2个月的时间看完,并对操作系统产生了更多的兴趣。通过这本书的学习,我知道了X86架构CPU的“发家史”,跟着书本的步骤,使用X86汇编语言编写了一个能让CPU、内存和外部硬件“动起来”的小型OS内核。之后又用半年时间看了《操作系统真象还原》,实现了和Linux 0.11类似的操作系统内核,再到现在已完成的开源项目。总的来说,选择操作系统更多的是因为喜欢吧。而且我这次的成功也是因为李导师一直耐心地带领着我,他一直致力于培养操作系统新人,所以希望可以多向李导师学习,提高自己的能力,有幸能成为李导师期待的操作系统新人:)。

 

9、操作系统领域是否是你计划深耕的技术领域?对于操作系统未来打算进行哪些深入地学习?

操作系统领域是我目前以及以后准备深耕的技术领域,而且我更偏向于学习操作系统的虚拟内存管理。以后的目标是根据书本和源码的原理,把Linux 2.4/2.6的虚拟内存管理,按照自己的想法,从简到繁地,一步步地移植到自己的操作系统内。

 

10、对你来说,学校学习的知识能支持你完成这些项目吗?除了在校学习,你还通过什么方式充电?

因为在校专业的不同,所以在学校所学到的知识并不能让我完成项目。我大多数是依靠自学还有导师们的帮助来完成项目的。

 

在这里再次感谢陈莉君老师、李石亮导师和胡自成导师。Thank you with all my heart :)

展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接