《linux 内核全然剖析》编译linux 0.12 内核 Ubuntu 64bits 环境
我×。。
。
最终好了,大概3 4个小时吧。。。各种毛刺问题。终究还是闯过来了。。
。。
ubuntu2@ubuntu:~/Downloads/linux-0.00-050613/linux-0.00$ make
ld -s -x -M head.o -o system > System.map
dd bs=32 if=boot of=Image skip=1
16+0 records in
16+0 records out
512 bytes (512 B) copied, 0.000605945 s, 845 kB/s
dd bs=512 if=system of=Image skip=2 seek=1
14+1 records in
14+1 records out
7632 bytes (7.6 kB) copied, 0.000221138 s, 34.5 MB/s
sync
去这里下载 linux -0.00-041217.zip或者050613的zip都行
http://oldlinux.org/Linux.old/bochs/
不算最痛苦的。遇到非常多问题。还好有前人帮忙,希望我的blog也能帮到别人。
编译过程中遇到的非常多问题。以下的up都有遇到,并给出的具体解答。。。。好人啊。。
。致敬
http://chfj007.blog.163.com/blog/static/173145044201132523034138/
head.s:148: Error: invalid instruction suffix for `pop' head.s:149: Error: operand type mismatch
会出现上面这样的非常多suffix前缀不对的指令错误提示。解决这个问题的办法非常easy。也就是32位汇编在64位的机子上跑要解决的问题
在相相应的汇编代码的开头加个
.code32
OK
相同。会遇到
head.s:105: Warning: using `%ebx' instead of `%bx' due to `l' suffix
这个把对应的bx寄存器改成ebx就OK
head.s:248: Error: `%al' not allowed with `movl'
head.s:257: Error: `%al' not allowed with `movl'
这个把movl改成movb。这里应该是一个错误。而不是一个平台差异照成的
由于我认为al是8bit的movl是16bit的。即使在32位平台上也是不正确的
Over。 还是非常舒坦的。。。平安无事的编译成功了
时间就这样慢慢的流淌,当我们还是流动的长河,当我们变成静静的湖泊
最新文章
- SharpMap简析
- TeamViewer 12.0.71503 Patch By.Sound
- SQL Server 2016 CTP2.2 安装手记
- serialize存入数组
- js 基础(一)
- 分布式架构 Hadoop 2.7.X 安装和配置
- 进入做Mvc项目的时候 返现某个文件夹下面css js png等静态文件都访问不了
- I.MX6 console 跳过 login
- UVa 10635 (LIS+二分) Prince and Princess
- 编写优质嵌入式C程序
- JS中的逻辑哲学
- idea导入web项目的部署
- backtrack种子
- 【SqlServer系列】表连接
- [Egret]长按图片分享、分享图片、本地存储
- Windows 部署 Redis 群集(转)
- node.js进阶话题
- EVE-NG简单入门介绍
- win7文件搜索技巧
- struts2框架之OGNL(参考第三天学习笔记)
热门文章
- LSTM 时间序列数据的异常检测
- js运算符单竖杠“|”与“||”的用法和作用介绍
- [转]60fps on the mobile web
- zookeeper启动闪退
- [转载][来自csdn]RTS和CTS是什么意思?
- jumpserver 新建用户收不到邮件
- P4287 [SHOI2011]双倍回文(回文树)
- usb芯片调试经验
- Thumb指令集与ARM指令集的差别
- Windows cannot find ";. Make sure you typed the name correctly, and then try again