TOP
|
使用grub加载自己的os及bochs等杂乱笔记(原创) |
[ 录入者:admin | 时间:2007-10-28 15:21:31
| 作者: | 来源:
| 浏览:820次 ] |
第一节:使用minix硬盘映象 bochs主页(http://sourceforge.net/projects/bochs)上有个minix2.0映象, 编译器和源代码映象文件都已经有了,如果要mount到你自己的机器上编辑源程序, 可以使用下面的linux指令,为什么是1024和5669888,分析下硬盘分区表就知道了。 (1024 = 512 * 2; 5669888 = 512 * 11074,11074即2B42) /sbin/losetup /dev/loop6 a.img -o 1024 mount -t minix -o loop /dev/loop6 mnt1 ls mnt1
#path: /usr /sbin/losetup /dev/loop7 a.img -o 5669888 mount -t minix -o loop /dev/loop7 mnt2 ls mnt2
编译minix内核: cd /usr/src/tools下,执行make指令编译内核 cd /usr/src/boot下,执行make指令编译boot monitor
第二节:翻译一篇关于grub加载内核的用法(os开发者会用到这个) 原文:http://sig9.com/bochs-grub 创建软盘: dd if=/dev/zero bs=512 count =2880 of=floppy.img /sbin/losetup /dev/loop7 floppy.img /sbin/mkfs.ext2 /dev/loop7 mount -o loop /dev/loop7 /mnt/ 运行mount指令(不带参数),输出如下: /dev/loop7 on /mnt/flp type ext2 (rw,loop=/dev/loop5) 建立grub文件: mkdir -p /mnt/flp/boot/grub 编译grub-0.97源码包,产生两个文件:stage2/stage2,stage2/stage2 创建grub配置文件:vi /mnt/flp/boot/grub/grub.conf 内容为: default 0 timeout 1
title test os 0.0.1 root (fd0) kernel /boot/testos.bin
umount /mnt/flp卸载设备,在img中安装grub /sbin/grub --device-map=/dev/null grub> device (fd0) /dev/loop7 grub> root (fd0) grub> setup (fd0) grub> quit 这里运行指令:file floppy.img,输出如下: floppy.img: Linux rev 1.0 ext2 filesystem data /sbin/losetup -d /dev/loop7,detach回环设备 再运行指令:file floppy.img,输出如下: floppy.img: floppy.img: x86 boot sector, code offset 0x48 说明软盘已经可以引导了,找个bochs或virtual pc试试?
这个testos.bin究竟是什么咚咚呢? 她就是你作的os内核(elf格式),哈,还没做好吗?找个vmlinuz试试如何, 可以发给你一个简单的kernel给你测试一下(msn:jinglexy at yahoo dot com dot cn)
第三节:bochs调试时使用at&t风格汇编 执行指令(调试状态下),这个我在windows上试过好像不能用(bochs-2.2),linux上可以(bochs-2.2) disassemble switch-mode 或u switch-mode |
|
|
|