第一章 部署工作环境
一、所需编译器
GCC
GNU编译器套装(GNU Compiler Collection,GCC),是一套由GNU开发的编程语言编译器。它是一套以GPL及LGPL许可证所发行的自由软体,也是GNU计划的关键部分,亦是自由的类Unix及苹果电脑Mac OS X操作系统的标准编译器。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的标准。
GCC是由理查德·马修·斯托曼在1985年开始的。他首先扩展一个旧有的编译器,使它能编译C,这个编译器一开始是以Pastel 语言所写的。Pastel是一个不可移植的Pascal语言特殊版,这个编译器也只能编译Pastel 语言。为了让自由软件有一个编译器,后来此编译器由斯托曼和Len Tower在1987年以C语言重写并成为GNU专案的编译器。GCC的建立者由自由软件基金会直接管理。
GCC原名为GNU C语言编译器(GNU C Compiler),因为它原本只能处理C语言。GCC很快扩展,以2011年10月26日释出的4.6.2版为准,可处理的编程语言有:1.Ada(GNAT) 2.C(GCC) 3.C++(G++) 4.Fortran(Fortran 77: G77, Fortran 90: GFORTRAN) 5.Java(编译器:GCJ;解释器:GIJ) 6.Objective-C(GOBJC) 7.Objective-C++ 8.Go
- Linux 系统自带GCC,如果发行版没有,可自行下载
NASM
- 旧的编译器:MASM、TASM
- 新的 NASM 的优势:免费+语法简洁舒适+支持Linux平台
- NASM 是一个为可移植性与模块化而设计的一个80x86的汇编器。它支持相当多的目标文件格式,包括
Linux
和NetBSD/FreeBSD
,a.out
,ELF
,COFF
,微软16位的OBJ
和Win32
。它还可以输出纯二进制文件。它的语法设计得相当的简洁易懂,和Intel语法相似但更简单。它支持Pentium
,P6
,MMX
,3DNow!
,SSE
和SSE2
指令集
二、虚拟机
选择虚拟机的原因
- 运行方便:与一般的用户进程一样,随时可以启动
- 保护计算机:很少有程序是可以一下就编译通过的,如本书作者所言:如果系统装在了真机上,每次调试时,无论代码是否崩溃,都要重启计算机的。为了保护我们的爱机,虚拟机必装不可。
安装虚拟机
-
在Linux虚拟机中再安装一个 bochs(Vmware+Ubuntu22.04.2+bochs)
-
bochs安装
-
官方网站:https://sourceforge.net/projects/bochs/files/bochs/2.6.9/
-
安装包拖入Ubuntu (提前安装vmtools)
-
解压放在目录home/OS/bochs 里(由于本人安装的是2.6.2,所以下面的2.6.9全被改成了2.6.2)
tar -zxvf bochs-2.6.2.tar.gz cd bochs-2.6.2/
-
安装依赖
sudo apt-get install build-essential sudo apt-get install xorg-dev sudo apt-get install bison sudo apt-get install g++
-
执行./configure 配置文件
./configure \ --prefix=/home/book/bochsken \ --enable-debugger \ --enable-disasm \ --enable-iodebug \ --enable-x86-debugger \ --with-x \ --with-x1
-
执行 make
make
-
执行 make install
make install
-
-
配置bochs
文件名字
bochsrc.disk
megs : 32 #注意路径 必须是你安装的路径 别弄错了 romimage: file=/home/YOUR_PATH/share/bochs/BIOS-bochs-latest vgaromimage: file=/home/YOUR_PATH/share/bochs/VGABIOS-lgpl-latest boot: disk log: bochs.out mouse:enabled=0 keyboard:keymap=/home/YOUR_PATH/share/bochs/keymaps/x11-pc-us.map
保存文件!!!
-
运行bochs
-
遇到下面界面,直接回车
-
键入 bochsrc.disk
-
界面出现[6],直接回车,再界面输入c,出现panic
-
创建硬盘
-
配置文件bochsrc.disk
megs : 32 #注意路径 必须是你安装的路径 别弄错了 romimage: file=/home/YOUR_PATH/share/bochs/BIOS-bochs-latest vgaromimage: file=/home/YOUR_PATH/share/bochs/VGABIOS-lgpl-latest boot: disk log: bochs.out mouse:enabled=0 keyboard:keymap=/home/YOUR_PATH/share/bochs/keymaps/x11-pc-us.map #硬盘设置 ata0:enabled=1,ioaddr1=0x1f0,ioaddr2=0x3f0,irq=14 ata0-master: type=disk, path="hd60M.img", mode=flat,cylinders=121,heads=16,spt=63
-
运行bochs,出现【2】后,直接在后面输入6,运行Begin simulation,依旧报错
本章结束,后续问题下一章解决!!