[学习笔记]在windows下编译内核[大杂烩]
来源:互联网 发布:成本核算软件 编辑:程序博客网 时间:2024/05/01 23:06
最近在做系统引导和实模式-保护模式切换.模仿早期linux的方法,把32位二进制镜像加载到物理地址0x00000000处,覆盖实模式下用的IVT.
通常,像这种工作,需要一个虚拟机,比如Virtual PC或者Bochs来调试.
而编译呢,GCC,也是个好东东.~ 在windows下,可以使用MinGW GCC或者是cygwin.
笔者使用的是MinGW-GCC
由于之前真的没有使用过GCC的那些东东,除了写过一次HelloWorld..(汗..),用的是标准C,也没用到内嵌汇编,
所以比较难办,没有太多的时间和心情去熟悉AT&T的语法.
不知道为什么,MinGW-GCC生成的目标代码里,总是会生成__main,和__alloca这两个外部符号,虽然可以在汇编里写两个空函数让他链接,但是感觉很不爽...而且,如果使用GCC编译C文件的话,万一C里面需要内嵌汇编的话,还是很不爽...
也没有用过NASM,所以...只能用MASM来汇编了.
平时最熟悉的就是MASM和VC,还有Borland C++和TASM了.所以决定使用这些个东东来编译.再加上功能强大的链接工具LD,和MAKE,以及OBJCOPY等等,凑成了一锅大杂烩...
在经过了一天的试验之后,终于成功..工具如下:
16位C编译-链接器:Borland C
16位汇编器:TASM
32位C编译器:VC8的CL.EXE ( VS2005的编译器)
32位汇编:MASM8 (VS2005的汇编工具)
32链接工具:GCC-LD
其他工具:OBJCOPY (BinUtils) ,MAKE
EXE2BIN(system32下)
(16位工具主要用于生成分区引导程序和在DOS下写引导的工具,以及一个LOADER文件)
最后终于成功的切换至保护模式,进入C的main函数.
这里只是做简单的实模式保护模式切换实验,而如果真的用这些工具来编译自己写的内核的话,相信也是可行的......
- [学习笔记]在windows下编译内核[大杂烩]
- 如何在Windows下编译Linux内核
- [笔记] 如何在Windows下编译 cdrtools
- Windows内核学习笔记
- java学习笔记(大杂烩)
- linux内核编译学习笔记
- Linux内核学习 编译Linux内核笔记
- Linux内核学习 编译Linux内核笔记
- Windows内核编程学习笔记
- Windows下从源码编译Nginx(学习笔记)
- Java虚拟机学习笔记(1)Windows下编译OpenJDK8
- 深度学习架构MatConvNet在Windows下的安装编译
- windows下编译linux0.11内核
- windows下编译pg内核注意
- 在Windows下编译JOGL
- 在Windows下编译MySQLdb
- 在windows下编译pidgin
- 在windows下编译scribus
- C语言缺陷与陷阱(笔记)
- 精通EJB3.0中文下载
- 对iPhone界面的模仿,不知其用户体验的感觉如何。
- 终于开博客了,希望从事j2ee的朋友们以后多交流,共同成长学习!
- InterceptString()为什么不能区分中文与英文数字?
- [学习笔记]在windows下编译内核[大杂烩]
- 随笔
- 两款专业的远程桌面连接管理工具:RoyalTS 和 visionapp Remote Desktop (vRD)
- 特效:在主页中制作移动文字的几种技巧
- 我的诺基亚 E61 上面的 Lotus Sametime 聊天客户端界面
- 自己编写ping
- 介绍一款免费的词典与文本翻译软件-灵格斯 lingoes
- 不知道这为什么跟数据结构有关系
- 2-Hivemind基础