本文记录了我的一些最近的情况
最近的一些情况-2
说来惭愧,上次更新最近的情况已经是三四个月前的事了。转眼这个学期就过去了,到了暑假。又恰逢新的时期的开始,所以想写一篇文章记录一下最近的情况。
1. 过去一段时间的事情
上次写最近的的情况大概是在3月份的时候,那个时候想的新的学期要坚持写博客。可惜,上个学期的课业实在是太多了,因为转专业要补修课程、辅修专业考试,零零散散加起来一个学期竟然要修40多个学分。再加上去年十二月份因为疫情导致去年秋季学期的期末考试没有考,延到了春季学期。最后竟然一个学期16个周,要考13场考试,基本上要一周一考。再加上课题组还有例行的组会,一个学期都在疲于复习、考试、赶ddl。所以最后可惜,没有完成新学期坚持写作的初心。
上个学期主要就是忙于复习、考试和ddl。学习了不少有意思的课。我觉得震撼我、启发我的课是孟德宇老师讲的机器学习课程,真的是为我打开了机器学习新的大门,带领我从达特茅斯一路走到今天。此外还有苏远岐老师讲的计算机视觉课程,虽然很难,但是让我对传统的CV有了深入的理解,未来可以继续深入下去。非常荣幸的是,之前的积累让我成功进入了孟老师的课题组。深感荣幸的同时看到课题组里的硕博师兄师姐,深感自己的不足,真是人外有人、天外有天。未来还需继续努力。
幸运的是上个学期申请UW-Madison的秋季交流成功通过了。下个学期,也就是2022的秋季学期可以去UW-Madison交流一个学期。虽然准备去交流一个学期,但是课题组这里的工作还是要继续,毕竟正是我喜欢、热爱的工作,所以只按照最低要求学了12个学分。按照已经选课的课表,下个学期还是比较闲的,并且特地把周内组会的时间空下来了,这样就可以远程参加组会了。
并且由于课比较少的原因,下课学期就有了大把的时间来写博客,所以希望下个学期一定要实现坚持写作的初心。坚持每两天读一篇文章,坚持写代码的初心。
最后,在临近学期结束的时候,在复现点云的RandLA-Net的时候,因为网络中有一个操作需要对百万个点的电云进行网格降采样。虽然我自己用Python写出来了,但是发现处理一个点云就需要半小时,更不用说像KITTI这样的数据集有上千个点云。而我看了原作者(顺带一提,原作是胡博士,是我非常敬仰的博士,在我心中种下科研的种子)仓库的代码,发现原作者用的C++写的电云降采样,处理一个点云只需要不到一秒。这时候我才突然醒悟自己一直以来都是依赖于Python,不管什么场景下的什么需求都用Python来解决。可其实在一些高性能场景下,还是需要C++这类更快的语言的。更何况我作为计算机系的学生,C++是我的根本。
因此,在上个学习即将结束的时候,下定决心要好好学习一下C++,于是过了一遍C++ Primer Plus
,把书里的代码全部敲了一遍,代码放在GitHub上了。
2. 未来的一些规划
关于未来的一些规划,首先就是课题组这里的事情要处理好。其次,点云的C++的经历让我真实的体验到,作为计算机系的学生,计算机的基础真的很重要,所以接下来的一段时间,我们准备开始写一个自己的操作系统内核出来。
目标操作内核要求不需要很高,只需要运行在32位保护模式下,在字符模式下进行显示,不设计图形学的相关内容,具备操作系统最基本的几个功能:内存管理(段/页式内存管理、虚拟内存)、进程管理(进程创建、进程间通信、CPU调度、同步与互斥实现、锁检测预防和解除)、文件系统(FAT、EXT和NTFS)。目标很大,我忍一下,哈哈。目前的进度已经写完了BootLoader,正在用用汇编为C语言运行准备环境,然后就可以顺理成章的用C来开发内核,进入到内核初始化阶段。
与此配套的,在开发操作系统内核的时候,会写开发日记发到网站上来,在内核开发已经接近后期或者基本没有大的问题之后,我想我也会写一个系列的文章来教如何写一个操作系统。开发的操作系统的名字已经想好了,就称为JackOS吧,那么专栏的名字就对应为JackOS开发日记和JackOS开发教程吧。目前图标已经做好了,如下图,后面将会用在这一系列专栏上。
值得一提的是,背景的代码就是大名鼎鼎的Linux 0.12版本的init.c
,即内核初始化的代码。感谢赵炯老师,没有他的书,恐怕我真的没法完成这个雄心壮志。
此外,之前说的发一些文章的阅读笔记,这个当然会发,并且是接下来的重点内容。毕竟这是我的老本行。
还有就是关于语言熟练度的问题,因为我对C和C++并不像Python这样熟练,所以未来准备每天写一道LeetCode的题来熟练语法。
最后是关于本来上个学期应该写的一些课程的笔记,因为有一些课程,例如操作系统、汇编和CV,我觉得是真心有用。真的想把笔记写成博客发出来,奈何时间真的不够,只能期待于未来有了足够的时间再去补上。
接下来的日子继续努力,希望能够有好的未来。
Jack Wang于2022年7月19日23:05,西安交通大学。