开发环境与基本操作

一、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 <ID>  #关闭某个ID号下得进程,注意不是直接输入进程名

备注:同样可以直接在桌面打开常用的软件,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 <command> #该命令的相关信息

help <class> #这一类命令的相关信息  例如help breakpoints

(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/function

list、list -

(10)查看运行时的数据(重点)
print
display

(11)cgdb
cgdb hello #调试hello

增加代码窗口、语法加亮、断点可视化。



三、课程基本操作
由于课程中写好了Makefile文件,故编译调试可以直接用make进行(不需要掌握makefile怎么写,当然能掌握更好)
make  #编译
make qemu  #在qemu硬件模拟器下执行
make debug  #调试(cgdb)
make grade  #上传与评分
故重点掌握如何高效调试程序!其他可以用make解决。

四、git
用于版本控制
add、commit、diff
了解即可。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值