ics计算机基础,南大计算机系统基础实验 ics2020,pa0
了解到这个南大的这个实验不错,记录一下自己的进度,也给后来者一些参考。
1.相关资料
PA项目官方地址:https://nju-projectn.github.io/ics-pa-gitbook/ics2010/
tmux使用方法:http://www.ruanyifeng.com/blog/2019/10/tmux.html
vim学习游戏:
http://vim-adventures.com/
Linux教程:
https://nju-projectn.github.io/ics-pa-gitbook/ics2019/linux.html#%E6%8E%A2%E7%B4%A2%E5%91%BD%E4%BB%A4%E8%A1%8C
Linux26个命令:https://linux.cn/article-6160-1.html
man入门教程:https://nju-projectn.github.io/ics-pa-gitbook/ics2019/man.html
GDB入门教程:https://www.cprogramming.com/gdb.html
作为一个对linux几乎没有接触的人来说,这一部分完成需要花费的时间比较多,对于官方给出的手册尽量一步一步完成,不要跳过,不然后面还要掉过头来学。
2.遇到的问题解决办法
(1)环境问题:官方推荐在真机上安装debain,作为一个linux菜鸟,没有勇气尝试,我选择了VMware Workstation和Ubuntu20.04。建议可以选择版本稍微低一些的Ubuntu版本,如Ubuntu18.04。因为20.04这个版本比较大,对性能要求高一些,开始分配了2GB的内存和20GB的虚拟硬盘,有些卡顿。
(2)官方文档在Getting Source Code for PAs这一步中,提到了ubuntu18.04可能会遇到的kvm编译错误并给出了解决方案。
在我的Ubuntu20.04系统中也遇到了这一问题,在尝试了官方给出的解决方法后,问题仍然存在。
错误提示如下:Building x86-nemu-interpreter
Makefile:51: *** invalid DIFF. Supported: qemu kvm nemu. Stop.
根据给出的错误提示信息,查看Makefile文件51的内容发现,发现是因为一个else条件中抛出了一个错误。37 ifeq ($(DIFF),qemu)
38 DIFF_REF_PATH = $(NEMU_HOME)/tools/qemu-diff
39 DIFF_REF_SO = $(DIFF_REF_PATH)/build/$(ISA)-qemu-so
40 CFLAGS += -D__DIFF_REF_QEMU__
41 else ifeq ($(DIFF),kvm)
42 DIFF_REF_PATH = $(NEMU_HOME)/tools/kvm-diff
43 DIFF_REF_SO = $(DIFF_REF_PATH)/build/$(ISA)-kvm-so
44 CFLAGS += -D__DIFF_REF_KVM__
45 else ifeq ($(DIFF),nemu)
46 DIFF_REF_PATH = $(NEMU_HOME)
47 DIFF_REF_SO = $(DIFF_REF_PATH)/build/$(ISA)-nemu-interpreter-so
48 CFLAGS += -D__DIFF_REF_NEMU__
49 MKFLAGS = ISA=$(ISA) SHARE=1 ENGINE=interpreter
50 else
51 $(error invalid DIFF. Supported: qemu kvm nemu)
52 endif
再通过查看之前的代码,发现ifeq($(DIFF),qemu)中的条件总会成立,因此后面的else if和else应该没有必要,所以就简单粗暴,将后面的else if 和else都注释掉。。
修改如下:37 #ifeq ($(DIFF),qemu)
38 DIFF_REF_PATH = $(NEMU_HOME)/tools/qemu-diff
39 DIFF_REF_SO = $(DIFF_REF_PATH)/build/$(ISA)-qemu-so
40 CFLAGS += -D__DIFF_REF_QEMU__
41 #else ifeq ($(DIFF),kvm)
42 #DIFF_REF_PATH = $(NEMU_HOME)/tools/kvm-diff
43 #DIFF_REF_SO = $(DIFF_REF_PATH)/build/$(ISA)-kvm-so
44 #CFLAGS += -D__DIFF_REF_KVM__
45 #else ifeq ($(DIFF),nemu)
46 #DIFF_REF_PATH = $(NEMU_HOME)
47 #DIFF_REF_SO = $(DIFF_REF_PATH)/build/$(ISA)-nemu-interpreter-so
48 #CFLAGS += -D__DIFF_REF_NEMU__
49 #MKFLAGS = ISA=$(ISA) SHARE=1 ENGINE=interpreter
50 #else
51 #$(error invalid DIFF. Supported: qemu kvm nemu)
52 #endif
3.总结
(1)作为Linux菜鸟,这一部分比较费时,但是收获很多,尤其是熟悉了vim的操作之后,vim编辑器之神的称号名不虚传。
(2)STFW,STFM,RTFSC。个人搜索的能力很重要,读源码的能力也很重要。
ics计算机基础,南大计算机系统基础实验 ics2020,pa0相关推荐
- 南大计算机系统基础实验 ics2020,pa0
文章目录 **1.相关资料** **2.遇到的问题解决办法** (1)环境问题: (2)官方文档 **3.总结** 1.相关资料 PA项目官方地址:https://nju-projectn.githu ...
- 计算机AL教程笔记,计算机系统基础学习笔记(2)-数据的位运算操作
C语言的位运算操作包括两类,逻辑运算操作和逻辑移位操作. 逻辑运算操作 C语言提供了四种按位逻辑操作符,分别是按位取反,按位与,按位或,按位异或.在编译时,编译器会根据操作数的宽度分别转换为不同的指令 ...
- 计算机系统基础书籍读后感,计算机系统基础试题.doc
文档介绍: 第一部分计算机系统基础一.选择题[1]计算机最主要的工作特点是 A)高速度B)高精度C)存记忆能力★D)存储程序与自动控制[2]目前微型计算机中采用的逻辑元件是 A)小规模集成电路 B)中 ...
- 计算机系统基础期中考试,计算机系统基础第二次作业.docx
文档介绍: 计算机系统基础第二次作业3.对于以下AT&T格式汇编指令,根据操作数的长度确定对应指令助记符中的长度后缀,并说明每个操作数的寻址方式.(1)mov8(%ebp,%ebx,4),%a ...
- 南京大学计算机课程表,南大课表新鲜出炉,哪个专业课程最多?
原标题:南大课表新鲜出炉,哪个专业课程最多? 考试周就这么残忍的来了 感谢你百忙之中还能抽空看看团子的推送 放心 今天的推送一定不会让你失望 因为你可能会绝望.. 下学期课表来啦 下学期课表来啦 下学 ...
- 华东师大计算机、南大软件、国防科大智能夏令营面经
南京大学软件学院夏令营面经+真题 下面我直接进行正题,想了解我情况的可以去看我上一篇博客. 经历 南大软件学院的总流程是:面试+机试 上机考试时系统只支持编程语言:C++,Java.而且是2选1,用j ...
- Python基础与大数据应用实验——个人所得税计算
一.实验内容 设计个人所得税计算器,要求当劳资人员输入员工姓名和应纳税收入后,能够自动计算出该员工当月应交的个税. 计算公式:应纳个人所得税税额=应纳税所得额*适用税率-速算扣除数 二.实验目的 通过 ...
- Python基础与大数据应用实验——水仙花数
一.实验内容 水仙花数(Narcissistic Number)也被称为超完全数字不变数.自恋数.自幂数.阿姆斯壮数或阿姆斯特朗数.水仙花数是指一个3位数,它的每个位上数字的3次幂之和等于它本身. 二 ...
- 南大计算机系统实验PA0 Compiling and Running NEMU报错解决方法
根据pa0的指引,在pa0下第一次运行make menuconfig时,系统会作出如下回应 /home/lee/Desktop/ysyx-workbench/nemu/scripts/config.m ...
最新文章
- UVA 11478 Halum (差分约束)
- modelling notes and trails
- juniper srx解决内网不能telnet公网IP的方法
- Maven配置、使用
- docker 安装 MySQL 8,并减少内存占用 记录
- 微信小程序 云函数 Date时间不对+8小时 设置北京时间
- Elasticsearch常用搜索和分词器
- 基于python SMTP实现自动发送邮件教程解析
- rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
- [1164]python用numpy计算均值,方差,标准差
- 深度学习自学第四周:近几年的经典神经网络结构
- 为元宇宙提供动力的关键技术驱动力
- horizon流程图_致同Horizon审计方法论.pdf
- hp打印机_smart tank 510 series
- Vivado Turtorial 01 —— 使用vivado中debug功能(类似ISE中ChipScope)
- (others)PPOE的疑惑
- 关于CKCsec安全研究院
- loki使用超详细说明
- 小伙用C++技术实现3D俄罗斯方块游戏,3D元素让人耳目一新
- 火狐FireFox兼容mouseover,mouseout的解决方案