PA ics2018 pa0

NJU-ProjectN ics-pa2017

PA0 世界诞生的前夜: 开发环境配置

Installing Docker VM ware/Virtual Box

讲义上使用的是docker,但我建议使用虚拟机,vm ware/virtual box皆可,个人认为比docker方便的多,docker需要win10专业版,如果你是家庭版,请选虚拟机或升级系统,无论用哪个都不会影响后续实验的进行的,自行选择,我这里使用的是VM ware,下载自己去百度

下载VM ware后,下载linux os镜像,讲义选择的是Debian 9,ubantu也是可以的,不会影响,但请选择32位的版本,因为PA模拟的是IA-32的cpu架构,在安装的过程中,将各种配置选大一些,因为随着实验的推进,添加的功能越来越多,如果你设置的配置太低,会很卡,并且最后运行仙剑的时候会非常卡。

Building Docker image

安装好VM ware后,创建一个新的虚拟机,选择稍后安装操作系统,这样快一点
PA ics2018 pa0_第1张图片

系统选linux debian 8x
PA ics2018 pa0_第2张图片

配置的时候尽量选好一点,上一张图作为参考
PA ics2018 pa0_第3张图片

这样一个虚拟机创建好了,但还没有操作系统,在设置中将CD设置为本机中下载的Debian镜像
PA ics2018 pa0_第4张图片

点击开启虚拟机,出现如下界面,点击图形化安装
PA ics2018 pa0_第5张图片

在选择语言的时候,英语中文都是没有影响的(建议英文,中文可能会出现一些编码问题,导致乱码),但在选择地区的时候,务必选择中国,因为国内访问不了外网,之后的很多必要软件包的下载只能从国内镜像拉取,Debian有提供选择,我选的是163的,其他的没试过不知道可不可以,当然,你会科学上网就请随意。
PA ics2018 pa0_第6张图片

之后会有设置账户密码,自己随意设置,记住就行。安装成功后的界面
PA ics2018 pa0_第7张图片

First Exploration with GNU/Linux

SSH configuration

ssh用于远程登录,先下载putty,我们先安装其他工具,稍后再来连接。

First exploration
思考题:Why Windows is quite “fat”
因为windows的系统主要是图形界面很多,所需空间大,而linux采用命令行界面,没有这么多图形界面,故所需空间小。
Installing Tools
Checking network state

先ping baidu 看是否联网, 没有再检查是否联网,虚拟机请选择NET连接

Updating APT package information

输入[su],意思是开启超级用户模式[super user],输入之前设置的密码,进入root账户,更新APT包[apt-get updaete],因为我们用的是虚拟机,如果你按讲义所说用[sudo],因为我们并没有配置,所以会出现找不到命令的情况。
PA ics2018 pa0_第8张图片

Installing tools for PAs

将每个命令敲一遍,把所有工具装好,之后都会用到

Configuring vim

安装vim后,不要急着往后推进,请务必花半个小时以上,学习如何使用vim,这很重要,不会用vim后面寸步难行。

推荐按照vimtutor的教程走一遍,基本操作都可以了解,而且没有那么枯燥

直接输入[vimtutor]
PA ics2018 pa0_第9张图片

Enabling syntax highlight

按讲义将vimrc复制到主目录下,用vim打开.vimrc,将“syntax on(双引号)去掉,退出再进入,可以发现语法高亮已经开启

开启前
PA ics2018 pa0_第10张图片

开启后
PA ics2018 pa0_第11张图片

Enabling more vim features

按照讲义开启相应功能,在这里有几个建议开启,写在.vimrc最后即可:

set number  " 显示行号
set cursorline " 突出显示当前行
set tabstop=4 " 设定 tab 长度为 4
set hlsearch " 搜索时高亮显示被找到的文本
set matchtime=2 " 短暂跳转到匹配括号的时间

More Exploration

Learning to use basic tools

1)写一个 “hello world”程序,编译运行

2)用Makefile去编译“hello world”程序

请翻到讲义182页,有详细的讲解,自行操作。

Installing tmux

tmux是分屏软件,可以在一个终端上开启多个窗口,很实用,在之后的推进中,需要同时开启很多窗口,可以实用tmux或多开putty解决。

Transferring Files Between host and container

这里接着前面ssh那里继续,打开putty,可以看到连接界面
PA ics2018 pa0_第12张图片

打开虚拟机终端查看网络连接设置,在root下输入[ifconfig],可以看到ip地址

如果出现找不到该命令提示,就要先安装net-tools,输入[apt-get install net-tools],请在root账户下安装,以后都是。
PA ics2018 pa0_第13张图片

将你自己的ip地址输入putty中,端口默认22,登录。
PA ics2018 pa0_第14张图片

点击open后要你输入账户和密码,注意,密码输入是看不到的,你只管输入就行了,账户是你设置的账户名,如果你实在不记得,看终端命令行的前缀,@符号之前的就是你的账户名
PA ics2018 pa0_第15张图片

以后,你都可以通过putty来远程登录虚拟机,无需在虚拟机内操作,后面有需要用的,而且putty比在虚拟机内操作方便许多,如果你用docker,不用putty是不行的。

这里有一个必答题,学会用pscp在虚拟机与本机之间传输文件

在你安装putty的目录里,有一个pscp的程序,在这里新建一个空文档。
PA ics2018 pa0_第16张图片

打开powershell,可以搜索找到
PA ics2018 pa0_第17张图片

打开后,将目录切换到pscp所在的目录下,按照讲义的格式将文档传入虚拟机
PA ics2018 pa0_第18张图片

可以在虚拟机内看到传入的文件

随便在test内写一些东西,再将文件传回主机
PA ics2018 pa0_第19张图片

PA ics2018 pa0_第20张图片

打开文件检查一下,成功。
PA ics2018 pa0_第21张图片

Acquiring Source Code for PAs

请在普通账户下进行后续操作,在root下直接输入[exit]即可。

其他的按讲义进行。

git config --global user.name "161220000-Zhang San" 
git config --global user.email "[email protected]" 
git config --global core.editor vim 
git config --global color.ui true

以上的命令是配置git所用,请填写自己的学号,姓名,邮箱,否则影响后续的git的使用。

进入ics2017后,按讲义输入

git branch -m master
bash init.sh

此时可以看到ics2017文件夹下的文件如下,如果少了文件,请删除重新拉取。
PA ics2018 pa0_第22张图片

之后就不要随便乱改系统配置了,也不要移动文件夹,可能会影响后面的实验

git branch是创建一个分支,git是一个用于版本管理的软件,在实验中,你可能会遇到一些问题,需要回退到之前的代码状态,git可以帮助你管理,详细使用方法请见讲义177页

Git usage

注意,这里要你修改学号,是要在创建pa0分支后,修改文件nemu/Makefile.git,请看清楚!

输入[vim nemu/Makefile.git],修改学号
PA ics2018 pa0_第23张图片

后面的按讲义来进行就可以了。

Compiling and Running NEMU

进入NEMU目录,输入[make],可以看到编译信息。
PA ics2018 pa0_第24张图片

make就是编译命令,如果你没有修改但是还是想重新编译,输入[make clean]后再输入[make]

而[make run]命令是编译并运行,但是因为nemu程序此时本身就有问题,这就是pa1的任务,会报错退出,这是正常的。

Development Tracing

git log是在后期推进证明你的进度的东西,也是在后期帮助你管理版本的东西,必须要学会使用。

命令[git log]是查看提交的log,其中会有自动提交的,也会有你手动提交的,每一次[make],就会提交一个[>compile]的log,[make run]会自动提交[>run]的log,随着进行,你可能会有一大片的compile和run,你自己也会分不清哪个是哪个阶段,所以在实验过程中,记得要手动提交,以指示进度和版本。

Local Commit

这里说的就是手动提交
PA ics2018 pa0_第25张图片

可以在第一行写上一些指示阶段的提示
PA ics2018 pa0_第26张图片

输入[git log]可以看到我们的提交
PA ics2018 pa0_第27张图片

end

到这里pa0就结束了,其实配置部分不难,但是我那时做了很久,现在想来真的是很蠢,配置一个环境都要搞这么久,反反复复卸载重装,重点是要认真看讲义,讲义pa0故意用英文写,很多人不认真看,讲义上明明白白写着都看不到,就有很多问题,在做pa之前我完全没有接触过linux,连虚拟机是什么都不知道,开始总是困难的,但是当你迈出了这第一步,后面就会慢慢熟练的,难就难在这痛苦的第一步。不懂就去问,有问题就去查,不熟悉就去了解去练习,总会有办法解决的。

你可能感兴趣的:(PA)