BUAA OS实验环境配置指南-2020年版[2020.5.22更新]

本文是一篇关于配置北京航空航天大学(BUAA)操作系统实验环境的详细指南,针对2020年的环境配置问题。作者在尝试VirtualBox、WSL等方案后,最终选择了在Ubuntu 18.04虚拟机上配置环境,包括安装ELDK编译器、gxemul和CLion。文章提供了详细的配置步骤,包括解决64位系统的问题、手动安装gxemul的命令,以及在Windows上的CLion通过SSH连接虚拟机的方法。此外,作者还分享了配置过程中遇到的挑战和解决方案。
摘要由CSDN通过智能技术生成

更新内容

2020.5.22 v1.1

对gxemul编译好之后手动安装的命令进行了修改,且增加了Win上CLion SSH连接虚拟机的教程。

前言

时至2020年,实验指导书上的配环境方法有一部分已经不能使用,网上的资料很多也过时了。笔者踩了无数坑终于把OS环境配置好了,为了避免后人继续踩坑,故将配置经验分享出来。本文主要是面向像笔者一样的Linux新手。
本文也许也会在未来的某一天过时,因此读者阅读时,请注意本文的发布时间。
由于笔者水平有限,文中提到的一些解决方案可能是绕了弯路的,如果读者有更好的方案,欢迎联系笔者。如果文中有错误,也恳请指正。
为了照顾不同读者的阅读需求,笔者将本文中的教程部分与笔者的所思所想、所做所为分开,只想阅读教程的读者仅需阅读第三部分“完整配置教程”即可

为什么要配环境?

笔者写本文时,本学期的OS正处于Lab5的第二周。据说,Lab4是最难的,而Lab5简单很多。为什么最难的部分都熬过来了,却要在这样一个时间相对紧张的时候配环境呢?

实际上,笔者配置环境不是为了Lab5和Lab6,而是为了挑战性任务。笔者本学期的OS工具经历了如下的发展过程。

最开始完全在Jupyter里直接写代码、编译、调试、提交,但是Jupyter有屏幕小、无图形界面、连接不稳定等诸多不便之处,对笔者而言最大的不便是只能用vim,不能用自己用的顺手的IDE(笔者由于自身水平不足,不太会配置vim)。因此,当笔者得知可以将代码从Jupyter中下载到本地编写,再上传到Jupyter中后,笔者果断放弃了在Jupyter中写,从此进入第二阶段——下载到本地用IDE写,完后上传回Jupyter进行调试。

这一阶段对于效率的提升是显著的,到后面几次Lab,常常是反复在几十个文件之间进行切换。即使在Clion中开满了标签页,笔者依然觉得标签页数不够用,如果仍然在Jupyter中写,是什么样的体验可想而知。

但是这一阶段仍然有不足。笔者一直使用win系统,尽管可以用本地强大的IDE写代码,却无法编译和运行,因此调试工作仍然只能在Jupyter中进行,调试阶段在数十个文件之间切换依然不可避免,效率依然有待提高。

挑战性任务更加复杂,需要大量的调试,还需要自己构造测试数据。随着挑战性任务的发布,笔者更加觉得需要配置一个可以编写、编译、调试的闭环环境,实现除了提交以外的环节完全摆脱对Jupyter的依赖,从而将大屏、图形界面、自由分屏等优势运用到每个环节中,提高效率。因此,笔者下定决心配置一套完整的环境。

配置环境过程中的尝试

笔者首先想到的是把学期初助教Ausar分享的已经配置好的环境拿过来用,但是面临的第一个难关就是VirtualBox始终无法打开镜像,一直报错0x80004005。搜索错误代码,按其中的指示进行处理依然无果,考虑到可能是助教给的环境挂载了一些本机没有的镜像导致无法启动,于是暂时搁置。

接下来笔者考虑的是WSL,笔者的想法是:WSL毕竟是微软官方出的,稳定性肯定比VirtualBox有保障。由于笔者的电脑版本为1909,不能安装WSL2,于是就去安装WSL1。

安装好WSL后,笔者一边搜集安装GUI的方案,一边尝试安装ELDK交叉编译器。费了很大一番功夫终于把iso的镜像挂载上之后,输入安装命令,却报了如下的错:

$ sudo ./install  -d /OSLAB/compiler/
[sudo] password for brooks:
./install: 1: ./install: Syntax error: "(" unexpected

这样的错让笔者完全摸不着头脑,查阅资料后,发现可能原因是WSL1没有完整的Linux内核。另外从查阅的资料看来,在WSL上安装图形界面似乎也是件费力不讨好的事情,于是放弃WSL。

回到虚拟机方案,笔者高中时期为了OI曾经用VirtualBox装过Ubuntu,查阅资料后发现可能是这个VirtualBox版本过老,即使更新了也和旧的文件有冲突,因此笔者卸载并重装了最新版。尽管依然报错,但是报错的内容变成了找不到gxemul安装包的镜像,并且把预期的文件地址展示了出来。因此笔者将gxemul安装包放到指定位置后,终于打开了Ubuntu 12.04的镜像。

但是这个镜像没有GUI,笔者查阅资料后使用sudo apt-get ubuntu-desktop(并经过漫长的等待)安装上了GUI,这才终于有一个能看的图形界面。

由于给出的环境中ELDK编译器的安装路径与笔者的代码中使用的编译器路径不同,于是笔者另外安装了一份ELDK编译器到/OSLAB/compiler。此次安装总体上比较顺利。测试了一下make和gxemul,现象均和Jupyter平台上一致。另外还安装了Clion,整个实验环境基本达到了笔者理想的程度。

但是不足的是笔者始终无法在这个环境中开启VirtualBox的无缝模式,而环境自带的分辨率又无法充分使用笔者的屏幕空间。反复尝试安装增强功能,不起效。查阅资料后笔者认为可能是Ubuntu官方的Unity桌面的兼容性存在问题,于是下载了GNOME桌面并删除了Unity桌面。但是重启后依然无法开启无缝模式。于是笔者放弃了开启无缝模式的想法。

悲剧意外的发生了。笔者打开了Clion,试着打开了几份代码,感觉稍稍有点卡,认为可能是给虚拟机设置的配置过低。于是关掉虚拟机,内存从1024MB增加到2048MB,CPU从1核增加到2核,再次启动。

结果悲剧了。环境卡在启动时的命令界面,多次尝试,均无法启动系统。后来即使是把增强了的配置改回去,也依然无法启动,笔者只好放弃Ubuntu12.04。

考虑到前面的尝试已经给在Ubuntu上配置环境积累了一定的经验,于是笔者决定索性安装比较新版本的Ubuntu试试,理论上只要工具链的版本和Jupyter一致,代码的运行结果就是一样的。于是笔者开始安装Ubuntu18.04。

在18.04上,笔者首先安装ELDK编译器,但是无论如何改权限、换安装目录,运行安装命令后都会出错,报错大概内容为sh: /opt/eldk/bin/rpm: not found。查阅资料后发现引起问题的原因是ELDK是32位软件&#x

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值