通过虚拟机实现裸机汇编环境
1. 简述
操作系统带来便利的同时也引入了大量限制,在操作系统存在时,我们编写的程序不能直接被硬件加载。我们必须按照操作系统的约定,把程序编译成特定的可执行文件格式(比如Windows
的PE
文件格式,Linux
的ELF
文件格式)。执行程序时,由操作系统读取可执行文件,选择合适的内存空间,并将代码和数据加载到内存中相应位置,这样程序才能被处理器所执行,在程序执行过程中遇到诸如I/O之类的操作,还必须进行系统调用,由操作系统完成这些操作。为了了解底层工作原理,尝试跨过操作系统直接运行程序,控制硬件,使用虚拟机是最方便的选择。
2. Oracle VM VirtualBox
- 首先是下载和安装软件,VirtualBox 免费使用,没什么可说的
- 创建虚拟机
要注意两点,第一个是不要安装任何操作系统(裸机试验环境嘛,肯定是不想要操作系统的)
另一方面是创建虚拟硬盘,为了方便我们选择固定大小的VHD格式的虚拟硬盘,此时虚拟硬盘就是一个结构很简单的二进制文件,前面是数据区,结尾是一个512字节的信息区。
因为只是做简单的汇编实验,硬盘大小有30M左右就足够了