1 项目描述该项目致力于快速构建一个 Linux 0.11 实验环境,可配合《Linux内核完全注释》 一书使用。 - 使用文档:README.md
- 代码仓库:https://github.com/tinyclub/linux-0.11-lab.git
- 基本特性:
- 包含所有可用的映像文件: ramfs/floppy/hard disk image。
- 轻松支持 qemu 和 bochs,可通过配置 tools/vm.cfg 切换。
- 可以生成任何函数的调用关系,方便代码分析:
make cg f=func d=file|dir - 支持 Ubuntu 和 Mac OS X,在 VirtualBox 的支持下也可以在 Windows 上工作。
- 测试过的编译器: Ubuntu: gcc-4.8, Mac OS X:i386-elf-gcc 4.7.2
- 在解压之前整个大小只有 30M
2 相关文章3 五分钟教程3.1 准备以 Ubuntu 和 Qemu 为例, 对于 Mac OS X 和 Bochs 的用法,请参考 README.md. apt-get install vim cscope exuberant-ctags gcc gdb binutils qemu
3.2 下载git clone https://github.com/tinyclub/linux-0.11-lab.git
3.3 编译make
3.4 从硬盘启动make start-hd
3.5 调试打开一个终端并启动进入调试模式: make debug-hd
打开另外一个终端启动 gdb 开始调试: gdb images/kernel.sym (gdb) target remote :1234 (gdb) b main (gdb) c
3.6 获得帮助make help > Usage: make --generate a kernel floppy Image with a fs on hda1 make start -- boot the kernel in qemu make start-fd -- boot the kernel with fs in floppy make start-hd -- boot the kernel with fs in hard disk make debug -- debug the kernel in qemu & gdb at port 1234 make debug-fd -- debug the kernel with fs in floppy make debug-hd -- debug the kernel with fs in hard disk make disk -- generate a kernel Image & copy it to floppy make cscope -- genereate the cscope index databases make tags -- generate the tag file make cg -- generate callgraph of the system architecture make clean -- clean the object files make distclean -- only keep the source code files
3.7 生成 main 函数调用关系make cg ls calltree/linux-0.11.jpg
See: 3.8 演示
|