一、Windows下基于Virtualbox进行实验
1. 安装Virtualbox
virtualbox为开源软件,不需要破解。
在win10下,使用高版本的virtualbox 5.0.24,结果在启动虚拟机的时候报错。解决方案是重新下载旧版本的virtualbox4.3.12
2. 建立虚拟机
下载virtualbox虚拟硬盘文件压缩包,解压,得到mooc-os-2015-2.vdi
选择Linux中的Ubuntu(64bit),选择使用已有的虚拟硬盘文件一项,找到mooc-os-2015-2.vdi,其他默认。
注意1:vdi格式适合用于virtualbox,不适用于VMware
注意2:如果不存在64位系统的选项,打开任务管理器查看CPU,是否打开虚拟化,如果没有,进入BIOS打开虚拟化。
注意3:win10怎么打开BIOS?按住shift键选择重新启动,可以避免快速启动,在开机的时候按F2(与计算机型号有关)
3. 启动虚拟机
由于用不到网络功能,所以在设置中关掉网络功能,否则可能还是会报错。
二、基本操作
快捷键:
ALT+TAB:切换进程
ALT+F4:关闭窗口
CTRL + X、C、V、Z、S
shell:
主要是一些Linux C开发操作(打开Teminal)
类似于MATLAB命令窗口,上下方向键可以选择之前的命令。
1. 文件(重要)
cd moocos/ucore_lab #进入相关目录
cd #进入根目录
pwd #查看当前目录
ls #查看当前目录下的文件
备注:关于新建文件夹,移动,删除,复制,重命名等等操作可以在文件夹中进行,使用上述shell命令是为了之后的开发调试
2. 进程(重要)
<进程名> 例如:gedit #打开相关进程,注意这种方式下只有结束进程之后才能继续使用shell命令,所以不推荐
<进程名> & 例如:gedit & #后台打开相关进程
ps #查看所有进程,以及ID号
kill
备注:同样可以直接在桌面打开常用的软件,alt+tab同样可以用于进程之间的切换
3. C开发
以简单的helloworld为例
A、编辑
新建文件夹helloworld(不是必要)、打开文本编辑器(例如gedit)
写下helloworld的源代码,在helloworld文件夹内保存为hello.c(不要忘记后缀.c)
B、打开终端,使用cd进入helloworld文件夹
cd #返回根目录
cd helloworld #进入helloworld文件夹
注意:可以用pwd查看当前目录是否正确,用ls查看是否存在hello.c文件
C 、编译(gcc)
gcc -g -Wall hello.c -o hello
#该命令将文件‘hello.c’中的代码编译为机器码并存储在可执行文件 ‘hello’中。
#机器码的文件名是通过 -o 选项指定的。
#选项 -Wall 开启编译器几乎所有常用的警告──强烈建议始终使用该选项。
#选项 ""-g"" 表示在生成的目标文件中带调试信息,包括产生错误的文件名和行号等非常多有用的信息。
#如果没有输出相关信息,说明编译正确
运行hello可执行文件
./hello #./表示当前目录
D、调试(gdb)
(1)编译通过(注意编译的时候要加 -g),但是执行输出的结果不对,则需要进行调试。
(2)输入命令时,可以不用打全命令,只用打命令的前几个字符,按两遍tab会自动补齐;如果有重复的,那么gdb会把其列出来。
(4)gdb hello #进行调试
(5)help
help
help
(6)断点(重点!)
break #下一条指令设断点
break function / linenum /+ offset / - offset / filename:fuction / filename:linenum
step #单句调试,会进入函数
next #不会进入函数
run #启动执行
continue #继续执行
quit #退出调试
(7)设置观察点
watch <变量> #变量改变就停住
(8)维护停止点(重点)
delete breaknum #删除编号为num的断点
delete #删除所有断点
clear linenum #删除num行的断点
disable、enable(与delete类似,只是没有删除)
(9)显示源代码
list linenun/functionlist、list -