准备开发环境

优质
小牛编辑
119浏览
2023-12-01

首先准备一个可用的开发环境。通过使用 VagrantVirtualbox ,你可以在Linux,Windows,Mac编译和测试你编写的操作系统。

安装 Vagrant

Vagrant 是一个免费并开源的软件,其能够创建和配置虚拟的开发环境。 你可以认为它是VirtualBox的封装,可以让VirtualBox用起来更便捷。

Vagrant 将帮助你在当前使用的系统上创建一个干净的虚拟开发环境。下载并安装适合你当前系统的 Vagrant:

Vagrant官网:http://www.vagrantup.com

安装 Virtualbox

Oracle VM VirtualBox 是一款开源虚拟机软件,其可以虚拟基于X86 和 AMD64/Inter64 的电脑:

Vagrant 需要依赖VirtualBox来工作, 从VirtualBox官网下载和安装适合你当前系统的安装包。

VirtualBox官网:https://www.virtualbox.org/wiki/Downloads

启动和尝试开发环境

当 Vagrant 和 Virtualbox 安装成功后,你需要下载适合Vagrant的ubuntu lucid32 镜像:

vagrant box add lucid32 http://files.vagrantup.com/lucid32.box

当镜像准备好后,我们需要定义 Vagrantfile。 这个文件定义了开发环境初始化工作,比如安装需要使用的软件:nasm,make,build-essential,grub,qemu。

启动Box (开发环境):

vagrant up

通过SSH进入开发环境:

vagrant ssh

在Vargrantfile所在的目录放置的文件将自动映射到开发环境(Ubuntu Lucid32)的 /vagrant 目录下:

cd /vagrant

构建和测试我们的操作系统

该文件 Makefile 定义了构建内核,用户libc,和用户态程序的的一些基本规则。

构建:

make all

通过qemu测试我们的操作系统:

make run

qemu的使用请参阅 QEMU Emulator Documentation

你可以通过 Ctrl-a 退出模拟器。

译者注:


下面提供了三种准备开发环境的方法。

自动动手准备操作系统和依赖软件

本文中作者实际是准备了一个在Virtualbox内运行的Ubuntu 10.04.4 LTS操作系统,然后安装了实验所需的软件 sudo apt-get install nasm make build-essential grub qemu zip,所以熟悉Linux的同学完全可以自己准备这套环境。

基于Vagrant使用本地Box

当然掌握Vagrant后,会让你的开发之路变得更为顺畅,鉴于国内网络情况,我们无法很顺畅的使用这些工具,很多在线安装都无法直接进行。

我们在国内网盘上提供了 lucid32 box,用户可以下载后在本地导入:

$ vagrant box add lucid32 ./lucid32.box
==> box: Adding box 'lucid32' (v0) for provider:
    box: Downloading: file://e:/Vagrant/lucid32.box
    box: Progress: 100% (Rate: 1065M/s, Estimated time remaining: --:--:--)
==> box: Successfully added box 'lucid32' (v0) for 'virtualbox'!

$ mkdir devos
$ cd devos

Vagrantfile 拷贝到该目录下

$ vagrant up

$ vagrant ssh

基于Vagrant使用完整版本地Box

我们还准备了一个安装了开发中所需软件的 makeos box,同学可以按上面的方法导入本地的Box使用,可以减少一些初始化工作。

参考: