linux0.11系列之(一): 实验环境搭建
2016-01-02 12:37
471 查看
就在这里,开始我的第一篇博客吧。
在开始我的linux 0.11操作系统体验之前,所谓工欲善其事,必先利其器。先来讲讲我所搭建的实验环境吧。
在虚拟机下,采用hit-oslab-linux-20110823.tar.gz(我是觉得这个是集成得比较好的实验环境),其中采用bochs模拟器加载Linux 0.11的Image文件。
在 linux-0.11/ 目录下修改、编译之后,会在目录下产生Image文件,这个就是我们做好的linux 0.11镜像文件。
首次编译可能会出现 as86 和 ld86 编译器不支持,去网上自己搜一搜找找然后自己安装吧。(这东西难倒你的话,也不用看后面的内容了)
在oslab目录下执行:
$ ./run
如果出现Bochs的窗口,里面显示linux的引导过程,最后停止在“[/usr/root/]#”,表示运行成功。
$ ./dbg-asm
可以用命令help来查看调试系统用的基本命令。更详细的信息请自行查阅Bochs使用手册。
C语言级调试首先执行如下命令:
$ ./dbg-c
然后再打开一个终端窗口,进入oslab目录后,执行:
$ ./rungdb
新终端窗口中运行的是GDB调试器。关于gdb调试器请查阅GDB使用手册。
以上这两个调试工具是我遇到问题的救命稻草,也是最高效的调试手段。后面会有我在使用中对这两个工具的心得总结,总之,这两个工具互相搭配使用,在bochs下调试linux0.11,就是(唯一的)神器。
$ sudo ./mount-hdc
之后,hdc目录下就是和0.11内核一模一样的文件系统了,可以读写任何文件(可能有些文件要用sudo才能访问)。
注意:在关闭Bochs之前,若需要保存fs所有缓存数据,先在0.11的命令行运行“sync”后,再关闭Bochs。
最后,在这一切的起点前,先祝 happy hacking!
在开始我的linux 0.11操作系统体验之前,所谓工欲善其事,必先利其器。先来讲讲我所搭建的实验环境吧。
工具包:
首先我用的是VMware下 Ubuntu 14.04 的虚拟机。在虚拟机下,采用hit-oslab-linux-20110823.tar.gz(我是觉得这个是集成得比较好的实验环境),其中采用bochs模拟器加载Linux 0.11的Image文件。
在 linux-0.11/ 目录下修改、编译之后,会在目录下产生Image文件,这个就是我们做好的linux 0.11镜像文件。
首次编译可能会出现 as86 和 ld86 编译器不支持,去网上自己搜一搜找找然后自己安装吧。(这东西难倒你的话,也不用看后面的内容了)
在oslab目录下执行:
$ ./run
如果出现Bochs的窗口,里面显示linux的引导过程,最后停止在“[/usr/root/]#”,表示运行成功。
接下来说说调试工具:
内核调试分为两种模式:汇编级调试和C语言级调试。$ ./dbg-asm
可以用命令help来查看调试系统用的基本命令。更详细的信息请自行查阅Bochs使用手册。
C语言级调试首先执行如下命令:
$ ./dbg-c
然后再打开一个终端窗口,进入oslab目录后,执行:
$ ./rungdb
新终端窗口中运行的是GDB调试器。关于gdb调试器请查阅GDB使用手册。
以上这两个调试工具是我遇到问题的救命稻草,也是最高效的调试手段。后面会有我在使用中对这两个工具的心得总结,总之,这两个工具互相搭配使用,在bochs下调试linux0.11,就是(唯一的)神器。
Ubuntu和Linux 0.11之间的文件交换:
在oslab根目录下,hdc-0.11.img就是我们系统启动之后挂载的硬盘镜像了。如何在我们的宿主操作系统和linux0.11进行文件交互,也是全靠这个Image。$ sudo ./mount-hdc
之后,hdc目录下就是和0.11内核一模一样的文件系统了,可以读写任何文件(可能有些文件要用sudo才能访问)。
注意:在关闭Bochs之前,若需要保存fs所有缓存数据,先在0.11的命令行运行“sync”后,再关闭Bochs。
最后,在这一切的起点前,先祝 happy hacking!
相关文章推荐
- Linux socket 初步
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断
- 谁是桌面王者?Win PK Linux三大镇山之宝