(01)开发环境准备


近期在看《30天自制操作系统》、《一个64位操作系统的设计与实现》、linux-2.4.36内核源码,于是就想自制一个属于自己的操作系统。
现开设此专栏,目标是从零开始自制一个64位的操作系统。麻雀虽小五脏俱全,所以我的操作系统要有图形界面、有内存管理、进程管理、中断管理、相应外设驱动。

本专栏会持续更新,直至开发出一个完整的64位操作系统。如有兴趣,请订阅收藏。如有疑问,也请评论留言。

本专栏的所有代码位于GitHub: https://github.com/xqd-githup/xqd-os

开发环境

工欲善其事必先利其器,开发的第一步当然是准备开发环境

操作系统

Linux

为方便开发,建议使用Linux桌面系统,原因有两个:

  1. Linux有很多现成的开发工具,安装也方便,尤其是GCC对Linux非常友好。
  2. 开发过程中会有图形界面交互,所以必须使用Linux桌面系统

我这里使用的是xubuntu: https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cdimage/xubuntu/releases/20.04/release/

Windows

如果特别排斥Linux,想使用Windows开发的话,可以直接跳到下面的windows系统的开发环境

开发工具

用于编译代码:

apt-get install gcc make nasm

  • gcc 用于编译C程序
  • make用于批量编译
  • nasm用于编译汇编、反汇编程序

下载sublimetext:https://www.sublimetext.com/download,用于代码编辑,如果vim特别熟练的可以不安装。

硬件模拟

不可能每次开发之后,都部署到专门的硬盘上,然后重启系统观察运行效果。这样既不方便开发,也不方便调试,所以需要一个方便模拟运行的软件。
我这里使用的是bochs,非常小巧(只有7MB),而且方便调试,用于模拟器计算机,相当于vmware、visualbox之类的软件。

apt-get install bochs bochs-x

windows系统的开发环境

  1. 必须是win10
  2. 需要安装Linux子系统,可以参考win10搭建Ubuntu子系统(wls)
  3. 在Windows中安装bochs,下载地址
  4. 将bochs的目录(我的是C:\Program Files\Bochs-2.6.11)加入环境变量

WSL(Windows Subsystem for Linux)是一个很神奇的东西,它几乎具备了原生Linux的所有功能,但是又跟win10共享CPU、内存、硬盘,甚至连环境变量也是共享的,Ubuntu子系统可以直接运行Windows下的exe应用程序。
这里安装Ubuntu子系统的目的只有一个,就是安装GCC,因为我们的汇编、C程序都是需要靠GCC来编译的。本来window下也有一些GCC的编译环境,如mingw、cygwin等,但是里面的gcc都是阉割版,开发普通的Windows应用绰绰有余,但是开发OS就有点力不从心了。
综上,只有gcc需要在Linux子系统安装,其他软件都装在Windows上。

在Linux子系统上执行命令:sudo apt-get install gcc make
在这里插入图片描述
然后执行vi .bashrc,在最后面加入:

alias bochs='/mnt/c/Program\ Files/Bochs-2.6.11/bochs.exe'
alias bximage='/mnt/c/Program\ Files/Bochs-2.6.11/bximage.exe'

解释一下:

  1. windows的C盘对应子系统的/mnt/c
  2. Program Files这个目录中间的空格,需要用反斜杠转义

执行: . .bashrc 让配置生效,这样开发环境就配置好啦。

结束

到此为止,开发一个操作系统所需要的所有工具都已准备完毕,接下来将使用这些工具开发一个helloWord级别的操作系统引导程序,并观察运行效果。

请参考下一节:(02)第一个操作系统引导程序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值