操作系统真象还原_第一章_部署工作环境

第一章 部署工作环境

一、所需编译器

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的汇编器。它支持相当多的目标文件格式,包括LinuxNetBSD/FreeBSDa.out ELFCOFF,微软16位的OBJWin32。它还可以输出纯二进制文件。它的语法设计得相当的简洁易懂,和Intel语法相似但更简单。它支持PentiumP6MMX,3DNow!SSESSE2指令集

二、虚拟机

选择虚拟机的原因

  • 运行方便:与一般的用户进程一样,随时可以启动
  • 保护计算机:很少有程序是可以一下就编译通过的,如本书作者所言:如果系统装在了真机上,每次调试时,无论代码是否崩溃,都要重启计算机的。为了保护我们的爱机,虚拟机必装不可。

安装虚拟机

  • 在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

运行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,依旧报错

    在这里插入图片描述

本章结束,后续问题下一章解决!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值