linux 的内核代码如果不边调试边阅读,那看起来是一件很困难的事情。
user mode linux 最大的好处就是可以直接源代码调试。虽然其代码和真是运行在PC上的还是有一定的区别,但用来学习linux,已经足够了。这里主要说明如何在 UBUNTU8.04上让user mode linux 跑起来。
1. 首先,安装uml_utilities,这个直接在ubuntu的包管理工具里安装就可以了
2. 制作跟文件系统
首先 dd if=/dev/zero of=rootfs seek=100 count=1 bs=1M
创建好后
然后将rootfs格式化成EXT3
用debootstrap 把镜象制作成UBUNTU8.04的rootfs
3. 编译 linux的内核,在ubuntu8.04上编译的是2.6.24内核。因为ubuntu8.04的内核也是这个
解压后首先:
make mrproper ARCH=um
make menuconfig ARCH=um
配置好后:
make linux ARCH=um
make modules ARCH=um
mount rootfs /mnt -o loop
make modules_install INSTALL_MOD_PATH=/mnt ARCH=um
4. 用mknode 在镜像中创建名字为UBDA的块设备
5. umount rootfs
6. 进入编译好的内核文件,现在可以用:
./linux ubda=rootfs mem=128M 启动了
7. 至于调试,可以直接用 gdb ./linux ubda=rootfs mem=128M进行