在庄哥的帮助下,我又白嫖了阿里云高校学生计划半年的 ECS

真香

先前闲置了小半年,偶尔挂上我的聊天机器人,属实暴殄天物。这学期开设计算机操作系统这门课,我还是听不进看不进,又不想和往常一样考前突击两天混个及格,只能去 B 站大学找资源。最终选了一门哈工大计算机的排面,硬着头皮也得把它看完。

无意中发现实验楼有这门课的配套实验。实验楼是个好地方,收藏夹里还躺着它上面的几门实践课程吃灰。

Vim 基础入门

Git 与 GitHub 入门实践

C++ 实现 STL 标准库和算法

实验楼给用户免费提供了一个 Linux 虚拟机可以直接在上面做实验,缺陷是关机丢失数据。

会员仅需 399 元/年:虚拟机联网 + 保存环境 + SSH 直连

最近开了力扣会员不舍得再破费,所以打算在阿里云 ECS 上配置一个可以达到相同效果的环境。


宝塔面板

宝塔面板 yyds!这里我就不多介绍了,它大概就是一个提供各种常用管理功能的 Web 面板,可以一键部署网站、FTP 以及通过 phpMyAdmin 管理数据库,免去配置 NginxSSL 证书等烦恼。

根据宝塔官方安装教程Ubuntu 可以通过执行

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

安装,两分钟就完事了。

宝塔设置

之后取消入口限制、修改面板用户名和密码,再到阿里云服务器安全组里放行 tcp 8888 端口就可以在外网通过 ip:8888 访问宝塔面板了。

宝塔面板主页

不要着急,先到宝塔面板安全——防火墙下放行端口 21 (FTP)、22 (SSH)、3389 (RDP)、7980、7981、7982,阿里云服务器安全组亦如此。


Xrdp

由于没玩过 docker 只好装个 GUI 桌面来运行 oslab

Xrdp 是一个开源工具,允许用户通过 Windows RDP 访问 Linux 远程桌面。

我配置这玩意花了一上午时间前后失败了 4 次,最后在 Ubuntu 16.04 下通过以下步骤才成功。

参考自 superzhaoyang博客

apt-get update
apt-get install xrdp
apt-get install vnc4server
apt-get install xubuntu-desktop
echo "xfce4-session" >~/.xsession
service xrdp restart

给 superzhaoyang 献上 cxk_praise.jpg

xfce 桌面

不得不说巨硬的全平台 RDP 客户端确实不错。不清楚到底是网络还是性能还是 xfce 的锅,远程连接画面卡成 PPT,甚至不如同配置 Windows Server 2012 远程连接流畅。


Clash

身为计算机科班学生,无论在什么环境下都得会科学上网。

最近集资开了 Nexitally,虽然很贵但确实很爽,2000Mbps 能跑满速!机场推荐

其实这一类 VPN 客户端有很多譬如 ShadowsocksV2Ray,我用 Clash 的原因主要是 GayHub 上有它多平台的客户端(iOS 除外,Surge 太贵,一般用 Quantumult)。

这里有一篇 Clash for Linux 配置指南。照着它配置完成后还不能科学上网,因为在 Clash 管理页面Set as system proxy 选项被禁用了。

Clash 管理页面

但其实此时已经能通过 7890、7891 代理端口通信,只需要为当前进程配置代理。

譬如 Firefox

Firefox 设置代理

可以上谷歌了

至于 Terminal,可以在 ~/.bashrc 中补充

alias proxy='export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890'
alias unproxy='unset all_proxy'

此后通过 proxy 启动代理,unproxy 关闭代理。妈妈再也不用担心我 clone 不动 git 仓库了!


Vim

Vim 是一款著名的功能强大、高度可定制的文本编辑器,一般 Linux 都预装了它。

配置流程过于繁琐,跟着知乎大佬一通瞎操作下来啥也没弄好。

最后上 GayHub 找了一份傻瓜式配置,安装完就舒服了。

进一步配置之后甚至可以 debugiPad 写代码指日可待!

Termius 连接阿里云

显然 Vim 不是一两天就能熟练的,先把实验楼的课程丢收藏夹再说。


Sublime Text SFTP

有了它我们就可以在本地远程编辑、同步服务器上的文件。

我一直习惯用 Sublime Text,于是安装了它的一个插件 SFTP

https://www.jianshu.com/p/0d36cbdecea8

如果你更喜欢 VS Code,也可以选择它上面的 SFTP 插件远程连接。


hit-oslab

经过上面的操作已经利完器,得干正事了。

这个项目是哈工大为操作系统课程开发的一套集成环境,包含实验所需的所有软件。

GayHub 找到它的项目仓库,发现年久失修而且归档了。好在有位大佬迁移了实验楼虚拟机里的 hit-oslab,只要再安装一些必要的相关工具后就可在本地构建出一个相同的实验环境。

git clone 下来之后照着 readme 做就完事了。

其实还是有点问题的。我和庄哥(分别是阿里云和腾讯云的 Ubuntu 16.04)都遇到了相同的麻烦,在执行 run 的时候报错:

dirname: missing operand
Try 'dirname --help' for more information.
umount hdc first
umount: /hdc: mountpoint not found

查看 run 脚本发现其中第一条语句

export OSLAB_PATH=$(dirname `which $0`)

把当前目录路径设为环境变量以便之后 gdb 等利用。

显然环境变量设置没有生效。CSDN 上说得用 source 命令执行。没用。试了老半天最后发现递归修改目录权限为 777

sudo chmod -R 777 ./

再来执行 run 就成功了。

右边那个窗口是 x86 模拟器 Bochs,里面运行的就是古老的 Linux 0.11 了。由于它过于古老而不能直接在“现代”计算机上运行,因此需要借助这种模拟器。(回想起小时候在 GBA 模拟器上玩超级玛丽和坦克大战)

往后就是实验的内容了。怪我以前硬件和汇编没学好,现在学起来真吃力 ==

每次实验之前需要把 oslab 恢复成原始状态。除了 git 操作还可以用原始的笨方法,为此我写了一个脚本偷懒:

rm -rf /root/oslab/*
cp -r /root/Downloads/hit-oslab-master/oslab/* /root/oslab/
chmod -R 777 /root/oslab/
最后修改:2020 年 10 月 20 日 12 : 45 AM
如果觉得我的文章对你有用,请随意赞赏~