您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页【自制操作系统】(一)环境搭建

【自制操作系统】(一)环境搭建

来源:二三四教育网

虚拟机

选用bochs是因为其提供了方便的类似gdb的调试功能。

安装

如果是自己编译,记得配置开启调试功能:
./configure --enable-debugger --enable-disasm

MAC OSX可以使用brew 来安装bochs
brew install bochs
默认好像是开启debug功能的,或者可以配置,我有点记不清了,可自行Google

配置

配置的目的是让bochs知道以哪个设备(或虚拟文件)作为启动设备

如果需要的话,还需要对bochs所模拟的CPU和内存等进行配置

制作启动盘(文件)

osdev.org推荐使用cdrom作为启动光盘,但是笔者在实践的时候采用的是创建1.44‘软盘镜像的方式来进行试验,如果创建一个floppy image可参考下述步骤:

  1. 创建软盘镜像
    可使用bximage工具

  2. (视具体情况而定)为镜像创建合适的文件系统

    • 如果自己从无到有实现一个bootloader,完全可以不使用任何文件系统,或者使用任何文件系统
    • 如果使用grub等现有bootloader,则需要考虑的是开发环境所支持的文件系统(主要是方便开发),以及最重要的bootloader所支持的文件系统
  3. 实现bootloader

    参考《bootloader》一文的介绍

编译环境

为什么要使用交叉编译环境?

简而言之,编译的目的是为了生成目标平台的可执行代码。然而我们操作系统自带的编译器一般是生成此平台下的可执行代码,这种代码不一定能在我们虚拟机所模拟的平台上运行,如我的MacBook Pro为例,我的GCC的目标平台为:

Target: x86_64-apple-darwin15.4.0

而我的玩具操作系统需要运行的平台是:

cpu: model=p3_katmai

所以,编译的GCC版本选择为:

--target=i686-elf

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务