博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

os fans

MSN & Mail:jinglexy at yahoo dot com dot cn
操作系统开发博客圈:http://blog.chinaunix.net/group/group_507.html
qq group(os fans): 3*2*2*6*2*9*2
  jinglexy.cublog.cn

关于作者
马甲:天衣有缝
职业:linux driver
位置:徐家汇上海交大
|| << >> ||
我的分类


使用grub加载自己的os及bochs等杂乱笔记(原创)

第一节:使用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

发表于: 2007-03-14,修改于: 2008-05-25 13:11,已浏览586次,有评论1条 推荐 投诉


网友评论
网友: figofuture 时间:2007-11-23 10:32:28 IP地址:58.246.86.★
收藏!

 发表评论