linux-0.11完全剖析第二天: bochs+ubuntu 14.04 运行简单的多任务内核
来源:互联网 发布:淘宝总部投诉电话地址 编辑:程序博客网 时间:2024/05/18 00:44
按照Linux完全剖析,这个简单的多任务内核实例代码在http://oldlinux.org/Linux.old/bochs/linux-0.00-050613.zip
解压后可以得到linux-0.00.tar.gz,再次解压这个文件可以得到三个文件,boot.s,head.s, Makefile
为了得到这个内核的Image,执行make
问题1:
在现在的linux系统已经不存在gas和gld,因此需要将gas改为as
gld改为ld
问题2:
以前的对齐方式为.align 2(2表示幂次),但是现在是计算后的结果因此:
.align 2 改为 .align 4 .align 3 改为 .align 8
问题3:
将movl-->mov
问题4:
由于默认的text段的地址为0x08048000,但是我们实际上需要从0开始 因此给 LDFLAGS加上参数 -Ttext=0x00
LDFLAGS =-s -x -M -Ttext=0x00
将以上问题解决后,生成的Image仍然不能通过bochs运行模拟出现象。
原因在于:dd bs=512 if=system of=Image skip=2 seek=1
skip=2, 跳过前面的1024字节的内容,然后让内容接到boot后面
调试了半天,最后通过比较二进制文件得出用as和ld生成的文件需要跳过前面的4096字节
dd bs=512 if=system of=Image skip=8 seek=1
最后终于得到了想要的结果。。。。。。。。。。。。。。
0 0
- linux-0.11完全剖析第二天: bochs+ubuntu 14.04 运行简单的多任务内核
- Ubuntu下使用模拟器Bochs运行《Linux内核完全剖析——基于0.12内核》第3章P31 引导扇区源码boot.s的一系列步骤
- 《Linux内核完全剖析-基于0.12内核》第四章的简单多任务内核Makefile的注释
- ubuntu 8.04 bochs 调试linux 0.11内核
- ubuntu 8.04 bochs 调试linux 0.11内核 .
- 《linux内核完全剖析》笔记04-任务调度
- 《linux内核完全剖析》笔记05-任务退出
- Ubuntu 12.10安装Bochs 2.6, 调试linux-0.11内核
- Ubuntu 12.04安装Bochs 2.6.2, 调试linux 0.11 内核
- Ubuntu 12.04安装带调试功能的Bochs 2.6.2, 调试linux 0.11 内核
- linux下bochs的安装及简单运行
- bochs调试linux 0.11内核
- bochs调试linux 0.11内核
- Ubuntu下使用bochs运行Linux 0.12
- 《Linux内核完全剖析》读书笔记
- 《linux 内核完全剖析》编译linux 0.12 内核 Ubuntu 64bits 环境
- 学习linux 内核完全剖析 相关的基础知识汇总
- 安装bochs及配置linux-0.11的运行环境
- jdk新特性之泛型
- POJ 1258 Agri-Net 最小生成树 Prim 算法
- 《近匠》专访小熊尼奥:从软硬结合到IP合作,AR产品的机遇
- 代码量统计方法
- zoj 3911 Prime Query(线段树)
- linux-0.11完全剖析第二天: bochs+ubuntu 14.04 运行简单的多任务内核
- 时间的实践
- zoj 3908 Number Game(STL)
- Android 颜色透明度计算
- NSFileManager
- robotium学习笔记
- 安卓计算器的编写
- libevent介绍
- ogre3D学习基础3 -- 粒子与表层脚本