0%

操作系统课设总结

前两天,经历了大概两个星期的操作系统原理课设终于结束了,爆炸肯定是有点爆炸的,这两天回过神来总结总结。

还是比较满意的。这次选择了 GeekOS 的任务,总体来说完成了,虽然借鉴了不少网上的内容,但至少在前几个project还是在认真的学习的羞愧。下面还是做些有的没的的总结。

使用WSL的惨痛

这是十分惨痛的回忆,我因为不想装虚拟机选择了WSL来进行开发,但是在使用的时候出现了很多很多问题,我甚至在前两天一直致力于在WSL中使用Bochs,我到现在还是不知道这个愚蠢的想法是怎么产生的:WSL作为Windows的子系统,他的意义就是在命令行进行操作而不是图形界面,需要在图形界面进行的操作应该尽量放在Windows中——你在Windows中跑Linux编译出来的文件是完全可以的,而这也是被微软所鼓励的。

第二个谈谈文件位置。在WSL中,Windows系统的硬盘是被挂载在mnt目录下的,这代表着你可以在Linux中很轻易的访问到他,于是我就忽略掉了这个操作,直接在Linux中尝试编译Windows目录下的文件,但是屡屡报错,一直是

recipe for target 'diskc.img' failed

前一行报错为
stat: Value too large for defined data type

这个东西我花了大量时间来解决,因为我并没有关注它提示我的状态:太大了。我一直执着于去找为什么diskc.img的生成会失败,但这个并不是那么容易解决,当然因为你方向错了。我四处询问,问同学问老师,同学说不会,老师在大群中说:有的问题我也没有解决办法。网上查不到答案,提问也没人理,折腾了我整整三天。

在第三天的中午,我突然开始关注那些说“文件过大超过2GB”的解答,看到他们说添加一个#define _FILE_OFFSET_BITS 64,就可以解决。我并不知道要在哪份文件之中添加,于是尝试直接把他添加到GCC的编译参数中,然后就成功了。

我非常高兴且迷惑:为什么会大于2GB???

最后才知道,这是因为文件处于Windows下的原因。我将文件复制到Linux的目录下,不加参数一次编译成功。这给了我很大的警示:在以后的学习过程中要注意环境的问题,不能想当然,忽略到那些好像理所当然的东西

课设时间规划

现在回头看看,我的时间安排还是有很多问题的,在前两个任务耽误了大量时间,没做好安排导致后面进度极其紧张,时间什么的都不太够用,草草收尾,以后还是要注意时间的问题,尽量不要出现这种头重脚轻的情况。

最后

不管怎么样课设结束了。这门课还是学了不少东西的但也不多。感觉这里还是挺重要的,需要花时间看些东西,目前掌握的肯定是远远不够的。最近在熊姐姐的建议下开始看6.824,确实感觉很痛苦,希望可以坚持下去

最后的最后

终于凉快下来了最近天天天天大太阳简直要杀人

-------------本文结束感谢您的阅读-------------