PA0 REPORT
来源:互联网 发布:家具三维设计软件 编辑:程序博客网 时间:2024/05/16 16:18
南京航空航天大学 计算机科学与技术系学院 计算机组成原理 课程实验
1 PA0 - 世界诞生的前夜:开发环境配置
1.1 Installing a GNU/Linux VM
Installing VirtualBox
1)下载、安装VirtualBox(https://www.virtualbox.org/wiki/Downloads):选择VirtualBox 5.0.6 for Windows hosts x86/amd64
Installing a GNU/Linux VM
1)下载Debian(https://www.debian.org/releases/stable/debian-installer/):选择netinst CD image -> i386
Creating a VM
1)启动VirtualBox
2)新建
3)名称(我自定义为HWAK)、类型(Linux)、版本(Debian(32 bit))-> 下一步
4)内存大小默认1024MB,下一步
5)现在创建虚拟硬盘,创建
6)VDI(Virtual Box)磁盘镜像,下一步
7)储存在物理硬盘上,动态分配空间,下一步
8)我将虚拟机放在D盘的Virtual Box文件夹中,虚拟硬盘大小默认8GB,创建
Loading Debian installation image(全部操作在断网状态下进行)
1)启动虚拟机,定位到debian-8.2.0-i386-netinst.iso ->启动
Graphical install
2)Select a language(English)->Chinese
3)Select a location -> China
4)Select the keyboard layout -> American English
5)Configure the network :等待
Hostname->保留默认设置
Domain name->保留默认设置
6)Set up users and passwords :
Root password
Full name for the new user->(此处我设置成eagle)
Username for your account->(我也设置为eagle因为在完成PA0之前没有看教学视频,名称会在之后改为自己的拼音yingyizhou)
Choose a password for the new user:
7)Configure the clock,等待
8)Partition disks :
Partitioning method:选择Guided->use entire disk
Select disk to partition->create
Partition scheme->All files in one partition
Overview->Finish partitioning and write changes to disk->continue
Write the changes to disk->Yes
9)Install the base system:等待
10)Configure the package manager:
Debian archive mirror country->不需要所以->Go back
Continue without a network mirror?->Yes
11)Select and install software:等待
Configuring popularity-contest: 保留默认设置
Software selection:select Standard system utilities
12)Install the GRUB boot loader on a hard disk
Install the GRUB boot loader to the master boot record?->Yes
Device for boot loader installation->/dev/sda
13)Finish the installation->continue
14)系统重启
1.2 First Exploration with GNU/Linux
Debian Login:
1)登录虚拟机,发现系统又重新进入Debian Install界面,于是又重新安装了一次,之后再去删除镜像文件。但是发现没有镜像文件之后虽然再次进入系统不会进入Install界面,但是1.3Installing More Tools的几项步骤就无法进行。于是我又把镜像文件恢复,在进行完成1.3实验相关步骤之后再将文件删除。
2)第二个神奇的错误是:
选择No,然后将相应的文件删除,再次启动Virtual Box管理器时就不会跳出这个窗口了。
Question:
1)Where is GUI?
Debian是没有用户界面GUI的,这使我很不习惯。但这并不是初次接触,大一的时候在计算机基础实验课上,老师有讲授有关虚拟机Ubuntu的一些相关操作。但是相比于Ubuntu,Debian更加专业化。的确,Ubuntu的界面与Windows看齐,非常易于使用,但相对于Debian来说可能不太稳定。作为小白我也不太知道根本的区别,各自的优缺点在哪。
Why use a command line instead of Windows?
首先去除了用户界面就简洁化了许多。用过阅读理解到,我认为就是命令步骤的简化方便化以及功能的强大化。Linux让我的通过命令控制窗口,一切的背后本质都是代码,我觉得这是更加深层的越过界面本质的东西吧,的确我们并不需要通过界面去编辑一张风景照,这不是我们的工作。
2)Why Windows is quite "fat"?
安装一个Windows操作系统通常需要更多的磁盘空间以及内存。而且有图形界面,许多软件还会有内存驻留。
Why Debian so slim?
Debian 内存驻留程序比windows少,同时Linux对于硬件要求比较低,可以安装随便。Linux对于系统内存控制比较好,磁盘要求要低,而对于服务器要求要高,而且可以动态分配空间。
3)Why executing the "poweroff" command requires superuser privilege?
强行关闭可能会导致虚拟机出现各种问题,保险起见还是用poweroff命令正常关闭比较好,比较保险。
1.3 Installing More Tools
Installing tools from the Debian image:
1)就是之前将镜像文件先恢复,然后在VM界面上方菜单->设备->分配光驱->选择虚拟盘->在文件目录下找到debian-8.2.0-i386-netinst.iso 单击。
2)在VM界面输入命令:apt-cdrom add
3)当看到Please insert a Disc in the drive and enter时按回车键,等待...
Sudo:
1)apt-get install sudo
2)addgroup eagle sudo
3)exit
4)sudo poweroff检验成功
Questions:
1)由于没有删除镜像文件,在关闭虚拟机再次开启的时候系统又进入了Install界面,于是一切有重新开始...
Vim:
1)su进入root界面
2)apt-get install vim
Ssh:
1)su输入密码进入root界面
2)apt-get install openssh-server,等待
成功截图:
Installing tools from the network mirrors:
1)设备->分配光驱->移除虚拟盘
2)删除镜像文件
Checking network state:
1)ping www.baidu.com -c 4
Learning vim:
1)Vimtutor:
2)vim test 创建文件test,按i并可以进行编辑,Esc然后:加wq!回车保存退出等等。
Some games operated with vim
一些游戏截图:
The power of vim:
1)按顺序按下:i1<ESC>q1yyp<C-a>q98@1
创建文件截图:
2)按顺序按下:<C-v>24l4jd$p以及<C-v>24l99jd$p
操作解释:
<C-v>进入拷贝可视模式
24l是选择从第一个字母开始的24个字母,根据需要在选择之后还可以通过上下左右方
向键或者ijkl键来调整。4j就是光标继续向下选择4行。
d是删除的意思
d$是删除当前字符之后的所有字符
P是在当前光标后粘贴
修改文件截图:
修改前:
修改后:
Adding APT sources:
1)sudo vim /etc/apt/sources.list
2)修改文件保存
3)Sudo apt-get update
但是出现如下错误:
于是我把ftp行注释掉就正常了,应该是网络的原因:
Installing tools for PAs:
1)apt-get install build-essential # build-essential packages, include binary utilities,gcc, make,and so on
2)apt-get install gcc-doc # GCC document
3)apt-get install gdb # GNU debugger
4)apt-get install git # reversion control system
5)apt-get install time # we use the GNU time program instead of the build-in one in bash
1.4 More Exploration
Configure vim:
1)sudo vim /etc/vim/vimrc
2)输入个性化设置代码并保存
Write a "Hello World" program under GNU/Linux:
1)vim hello.c
2)输入C语言程序代码并保存退出
3)Gcc hello.c -o hello并回车
4)输入./hello运行:
(注这事之后的截图,用户名已经是yingyizhou了)
5)编写c++程序:.c改为.cpp,gcc改为g++
Learn to use GDB
GDB是一个由GNU开源组织发布的、UNIX/Linux操作系统下的、基于命令行的、功能强大的程序调试工具,下面是网页上找到的一些简单教程:
命令
解释
示例
file <文件名>
加载被调试的可执行程序文件。
因为一般都在被调试程序所在目录下执行GDB,因而文本名不需要带路径。
(gdb) file gdb-sample
r
Run的简写,运行被调试的程序。
如果此前没有下过断点,则执行完整个程序;如果有断点,则程序暂停在第一个可用断点处。
(gdb) r
c
Continue的简写,继续执行被调试程序,直至下一个断点或程序结束。
(gdb) c
b <行号>
b <函数名称>
b *<函数名称>
b *<代码地址>
d [编号]
b: Breakpoint的简写,设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。
其中在函数名称前面加“*”符号表示将断点设置在“由编译器生成的prolog代码处”。如果不了解汇编,可以不予理会此用法。
d: Delete breakpoint的简写,删除指定编号的某个断点,或删除所有断点。断点编号从1开始递增。
(gdb) b 8
(gdb) b main
(gdb) b *main
(gdb) b *0x804835c
(gdb) d
s, n
s: 执行一行源程序代码,如果此行代码中有函数调用,则进入该函数;
n: 执行一行源程序代码,此行代码中的函数调用也一并执行。
s 相当于其它调试器中的“Step Into (单步跟踪进入)”;
n 相当于其它调试器中的“Step Over (单步跟踪)”。
这两个命令必须在有源代码调试信息的情况下才可以使用(GCC编译时使用“-g”参数)。
(gdb) s
(gdb) n
si, ni
si命令类似于s命令,ni命令类似于n命令。所不同的是,这两个命令(si/ni)所针对的是汇编指令,而s/n针对的是源代码。
(gdb) si
(gdb) ni
p <变量名称>
Print的简写,显示指定变量(临时变量或全局变量)的值。
(gdb) p i
(gdb) p nGlobalVar
display ...
undisplay <编号>
display,设置程序中断后欲显示的数据及其格式。
例如,如果希望每次程序中断后可以看到即将被执行的下一条汇编指令,可以使用命令
“display /i $pc”
其中 $pc 代表当前汇编指令,/i表示以十六进行显示。当需要关心汇编代码时,此命令相当有用。
undispaly,取消先前的display设置,编号从1开始递增。
(gdb) display /i $pc
(gdb) undisplay 1
i
Info的简写,用于显示各类信息,详情请查阅“help i”。
(gdb) i r
q
Quit的简写,退出GDB调试环境。
(gdb) q
help [命令名称]
GDB帮助命令,提供对GDB名种命令的解释说明。
如果指定了“命令名称”参数,则显示该命令的详细说明;如果没有指定参数,则分类显示所有GDB命令,供用户进一步浏览和查询。
(gdb) help display
RTFM:嗯...要学会自己查阅学习手册,锻炼自己的学习能力...
1.5 Logging in via SSH
Creating a Host-only Network:
1)关闭VM
2)找到菜单下的设置标志,单击打开设置界面
3)选择左边菜单中的网络
4)选择网卡2
连接方式:仅主机(Host-Only)网络
界面名称:VirtualBox Host-Only Ethernet Adapter
5)OK
6)在Virtual Box管理器界面找到菜单->管理->全局设定
7)选择->网络->仅主机(Host-Only)网络
8)在窗口右端有一个编辑仅主机(Host-Only)网络的标志,单击
9)主机虚拟网络界面设置:
IPv4 地址:192.168.56.1
IPv4 网络掩码:255.255.255.0
10)DHCP服务器:
服务器地址:192.168.56.100
服务器网络掩码:255.255.255.0
最小地址:192.168.56.101
最大地址:192.168.56.245
11)OK
12)打开虚拟机,运行:sudo ifconfig eth1但是出现错误信息
13)sudo vim /etc/network/interfaces
在文件末尾输入:
auto eth1
iface eth1 inet dhcp
14)sudo /etc/init.d/networking restart
Sudo ifconfig eth1:
Host Configuration:
1)sudo vim /etc/ssh/sshd_config
确保Port 22.ListenAdress 0.0.0.0以及Protocol 2之前的#去掉,修改并保存。
2)查看虚拟机中的IP:
sudo ifconfig
3)在win7 cmd中查看本地连接ipv4地址:
4)然后互相通过ping指令看看是否能够连通:
For GNU/Linux and MAC users->For Windows users:
1)下载putty.exe
2)登录
Installing tmux:
1)sudo apt-get install tmux
2)Cd~
3)Vim .tmux.conf并加上教程中的代码
4)运行结果如下:
<C+b>”水平分割一个窗口
<C+b>%竖直分割一个窗口
<C+b>+方向键切换窗口等等
Tings behind scrolling:
Question:
why the original terminal can not be scrolled?
1)我认为命令是无止尽的,不像网页等有尽头可以通过滚动条来实现。可以通过上下方向键来访问曾经输入了什么命令。不然的话容易出错吧。而且Linux了来就是键盘控制为主,可以通过一些快捷键以及与方向键的配合实现滚动。
How doestmux make the terminals scrollable? And last, do you know how to implement a scroll bar?
1)滚屏要进入copy-mode,即前缀+[,然后就可以用上下键来滚动屏幕,配置了vi快捷键模式,就可以像操作vi一样来滚动屏幕,非常的方便。退出直接按‘q’键即可。(目前没有实现)
2)目前是快捷键Shift+PgUp和Shift+PgDn实现上下的滚屏
1.6 Transferring Files Between host and VM
Host Configuration->For Windows users:
1)下载psftp.exe
2)打开并输入:open 192.168.56.101
Have a try:
1)New a text file with casual contents in the host and transfer the text file to the VM:
在自定的路径下创建一个txt文档:自定义为名为psftp.txt的文档,然后输入:
put + 相应路径及文件
2)Modify the content of the text file in the VM:
先ls -a查看所有文件然后
Vim psftp.txt 编辑文件保存并退出:
3)Transfer the modified file back to the host.
Get + 相应文件在虚拟机中的目录
4)文件传输成功:
1.7 Acquiring Source Code for PAs
Getting Source Code
1)cd~
2)git clone https://github.com/NUAA-ICS/ICS
Compiling and Running NEMU
1)sudo apt-get install libreadline-dev
2)输入相应的命令:
git config --global user.name "141220000-Zhang San" # your student ID and name
git config --global user.email "zhangsan@nuaa.edu.cn" # your email
git config --global core.editor vim # your favorite editor
git config --global color.ui true
Development Tracing
1)git init
2)查看git入门教程:
3)Git add hello.c
4)git log
5)Git status
6)Git commit
修改用户名:
由于之前做PA0的时候没有下载视频观看,导致之后不得不修改用户名。步骤如下:
1)首先登陆VM
2)su 并输入相应的根密码进入根界面
3)vim /etc/sudoers.tmp
将语句root ALL=(ALL:ALL) ALL下的用户名改为yingyizhou:
yingyizhou ALL=(ALL:ALL) ALL
保存退出
4)重新用新的用户名登录即可:
- PA0 REPORT
- report
- Report
- report
- Report
- report
- Report ><
- Report
- Report
- stm32 EXTI问题 是否同时选择PA0与PB0?
- STM32 PA0 PAB0 PC0 共用一个中断线的问题
- first report
- STATSPACK report
- Weekly Report
- Fast Report
- BrowserCam Report
- crystal report
- Crystal Report
- 移动端弹出穿透问题(弹出层弹出后body还能滑动)
- mac电脑双开微信的方法
- flask 源码阅读
- JS正则表达式大全
- 部分sublime快捷键
- PA0 REPORT
- AbstractQueuedSynchronizer的实现分析
- CCF软件能力认证上机考试指导书
- 线程安全与可重入函数
- Android常用颜色值
- 计算机网络常见问题描述
- Remove Duplicates from Sorted Array
- html+(DIV+CSS)+javascript视频笔记(全)
- 题目1131:合唱队形