眨眼间就在软件所搞了4个月不到点的科研实习, 今天汇报完最后一个项目, 彻底run了, 浅浅记录一些心得体会..
实习本身任务不算重, 线上实习, 无严格的考勤, 每周3-4天, 期间总共做了三个研究项目:
-
Kernel Mode Linux:
-
Sched_ext 拓展调度技术
-
编译期间内核优化技术
真要说起来, 三个项目可能写了有几千行LaTeX代码, 而编程语言则是一行没写(sh和python脚本语言可能倒是写了点!)..
从3月份开始做KML技术, 实际第一次用QEMU跑内核并读一些跨模块(系统调用, 内存管理, 进程, ELF文件执行等等)的代码, 不过是云里雾里罢了.. 期间还夹杂着师兄漏洞检测的python代码编写, 是段苦日子(x
第一次汇报KML技术的时候偷偷跑到别的地方做PowerPoint.. 因为ppt模板有软件所的Logo, 不太想在实验室上演ntr..(..?)
KML大概做了1个月, 这轮汇报结束后师兄的代码也差不多了, KML项目汇报也结束了, 接受scx新技术调研; 在scx时期花了大时间(可能靠近2个礼拜, 不过不是从早到晚的全力配置)折腾 Neovim插件管理与配置, 并中途加入组会跟着做横向, 接手了大便主题.. 每周都要痛苦地去糊这坨东西.. 另一方面也精通了一些实习摸鱼术, 虽然每天痛苦的不行一度于不想学计算机了但还是凑活着活下来了..
scx技术调研的时间其实也比较久, 由于kml调研的时间可能就1个月左右(实际出勤15天左右), 因而scx时间充裕放开后感觉还是蛮意外的, 大概可能做了一个多月, 这段时间对于scx相关的东西也看了很多… 其相比于KML的话代码结构很清晰, 涉及的文件也很少(不像KML真的是到处拉屎), 不过其技术涉及的内容其实包括的是eBPF, 内核调度系统这块, 我不能说是稍微了解吧只能说是一窍不通, 特别是与BPF融合后很多结构真的只能连蒙带猜地不加证明地去使用.. 而且BPF的引入使得内核的编译也出现了大问题, 涉及了clang的静态链接以及使用buildroot对initramfs的重新生成.. 环境的配置都费了好大的力气..
最终输出的调研报告凝聚了所有的心血, 将之前看过的所有东西汇聚成了真正意义上的一坨, 除了上帝可能没人知道里面是什么东西.. 做ppt的时候一直在思考工作的意义, 讲解源码确实是最无意义的, 讲的人可能辞不达意, 听的人也绝逼无法在几个小时内听懂我调研了一个多月的内容..
由于这一坨东西包含了巨大量的代码讲解, 因而讲的时候其实是鸦雀无声.. 不过这个问题在kml中其实就遇到了, 当时还在想大家要是提问怎么办因为我实在搞不懂一点kml的清晰细节.. 总的感觉就有点像专家讲座以及被强迫拉去听的学生的感觉. 不过真正的道心破碎还是发生了scx技术汇报上.. 无论是在做ppt的过程还是在时长两天的汇报过程中, 都感觉到无止尽的痛苦与折磨..
另一个问题是, 由于做这些东西实际上都是我一个人在调研, 因而我胡说八道也不会有人纠正我, 我只能黑暗中摸索前进, 加上调研的项目又是较新/冷门的内核技术, 讨论的人更是寥寥, 这就导致最后输出的东西质量可以说完全就是三无产品..
由于这样两个问题, 加上当时还在投着华子和阿里, 因而当时铁了心之后一定要run了.. 再做下去我可能就要疯了:D
最后一个项目调研内核优化选项.. 除了市面上可查到的熟知的O2O3, LTO, PGO还有什么.. 这个问题非常的难弄, 和对面老师(其实是博士)交流的时候说到可以去找找涉及这部分的内核选项, 说着便发来一个16k行的完整配置列表.. 我指出大海捞针不好找, 被回答到如果找到了什么不为人知的对内核有巨大性能提升的选项那么可能就可以支撑一篇paper云云,,, 总之当时交流后一个想法就是.. 对面可能大概不太懂内核啊…
凑活着去找了, 但截止到今天run的时候我认为还是没有任何的希望可言的.. 实验也很不好做(修改内核选项+编译+benchmark, 麻烦的一笔), 项目前进的方向也很迷惑, 和我对接的学姐之前是西电的, 但愿人没事能平安度过这一坨..
三个项目大概就是这些, 总的来说是能学到一些, 但可能不多(x)
最开始认为对方老师有点pua, 时间点发生在项目2-3之间. 当时由于受不了一点scx, 因而和对面交流说可能希望一些更加实际写代码的工程性的, 多人合作的项目; 对面说下个月会给安排华为等实际经验的员工带着做, 不过第三个项目还是孤胆英雄优化选项调研.. 彼时还极力吹捧夸耀了一阵并说认为我有做这方面的潜力并要将我作为长期实习生培养云云.. 当时并不以为然, 可能只是惯用的cpu手段罢了; 不过前阵子在将要离职的时候对方老师先是挽留, 后来是邀请后续工作考虑所内(提出有编制+户口), 最后实在不行又邀请到之后回家后也可以去南京的他们的研究所这样.. 总的来说感觉对方老师人还是蛮好的, 也不搞虚头八脑的东西, 待人其实蛮真诚的, 对待实习生也不push… 最感动的一集是前几天统计最后一个月实习出勤天数的时候, 我只有十几天(小几), 对方帮我记到20天作为后续继续对接一些学姐那边的酬劳, 对我来说其实几乎是工作翻倍了, 而不要付出特别多的辛劳, 因为只是帮忙对接一些实验的各种环境本身并不劳累.. 泪目了
最后的一点感悟是.. 搞内核救不了中国人(x) 对我来说其实搞不了一点, 之前在面鸿蒙OS的时候就有感觉, 当时和主管聊过, 他们那边虽然是OS开发岗, 但是其实不做内核开发, 而更像是做OS上的高层应用.. 想想也是,, 一般的互联网厂搞内核很少, 搞的那一小撮人也不会要我这种大便.. 另一个就是工作与兴趣如果不分开可能会很痛苦,,, 已经在重新仔细考虑之后求职的路线规划了(搞私募量化3k/天实习好nm爽啊..), 甚至是要不读个OS的博士(不过哪怕读可能也是硕士毕业再说, 直博太危险了); 不过还是不太希望接触AI系列的东西, 不算喜欢, 而且也搞不过科班的(x
正好最近这段时间手头又有新的事情在忙, 7月底大概才能结束, 不过到时候要回家休息个暑假, 之后开学了可能没多久就要开题了, 因而最近可能也没有整段的时间再去一段实习了(狗华为泡我多久池子了nmd), 考虑忙里偷闲写一个Rust+OS的Lab, 顺便开一开Rust Codeforecs的坑, 动动脑子, 稍微学习一些新技术. Over