前言
我是来自于海南大学密码科学与技术专业的本科生,对于计算机体系结构方向很感兴趣,但由于学校条件所限,不能满足个人学习需求,所以来参加这个课程
在之前,我一直对一些东西比较好奇
比如
- 盗版激活软件所说的模拟硬件激活
- 计算机取证中,DMA技术如何用来解密BitLocker的,DMA外挂是如何实现的(当然,这个漏洞已经被修复),(我觉得,作为一个本科生,不应该只知道表面,而是更深入的了解,正所谓,知其然,知其所以然)
- 内核的内存管理
- 并发
- 动态链接的一些细节
等问题.
所以, 我报名参加了这次的操作系统训练营.
第一阶段
我C写的比较多,而且习惯确实不太好,所以在这阶段,也是磕磕绊绊,尤其是在所有权机制上,给了我“不灵活”的印象,我觉得也不算坏事吧,通过尽可能多的约束,把不安全的代码存在的范围尽可能缩小,方便发现问题和解决。
此外 rust的cargo非常好用。
还有,教程使用的rustlings有点旧?我用着是有点不太方便的,貌似没法很好的调试,我依赖于rustings run name这种方式来debug,但是每次都要写那么多,显然有点麻烦
我通过把如下内容加入 .bashrc,简化了这个操作
alias check=’rustlings run’
alias hint=’rustlings hint’
这样,就可以通过check name的方式检查题目了
第二阶段
Lab 1
一个简单的多任务系统,我曾经参加过海南大学南海鲨战队的电控培训,看过ucosii的代码,所以这点对我来说还好
Lab 2
这个实验启用了分页机制, 在这次实验之前,看过xv6 内存管理部分的代码,所以还好(这在之前,逆向程序时的内存地址,让我有不少困惑)
Lab 3
进程: 在这地方,我觉得问题不大
Lab 4
文件系统: 这里问题挺多的,做的有点糊涂,不过不管怎么样,能用
Lab 5
多线程: 了解了线程与并发的相关知识,还有银行家算法
总结
通过这门课程我学习到了很多操作系统的基础知识, 这个学期补补计算机组成原理,算法。rust也不熟练,不优雅,还得多练,下个学期二战。
我在此感谢此训练营的组织者和助教们,你们为很多人打开了一个新的天地。