想了很久,最近想给大家写点有意思的,但又难度不大的东西。找出来很久以前写的操作系统的代码,这边整理一下,给大家讲讲制作操作系统。
在动手写操作系统之前,我们需要介绍几款工具。
QEMU简单来说就是计算机模拟器,可以模拟运行操作系统,即我们制作操作系统的运行环境。当然操作系统真机也是可以运行的,但为了方便这里我们使用模拟器,然后用虚拟机配合使用。
VMWare这款软件就不用太多介绍了,大家比较熟悉,操作系统的虚拟机。
NASMNASM全称The Netwide Assembler,是一款基于80×86和x86-64平台的汇编语言编译程序,其设计初衷是为了实现编译器程序跨平台和模块化的特性。
上面那段话是百度百科给的解释,简单来说就是汇编语言编译器,注意操作系统的运行是和CPU相关的。现如今CPU的架构主要有x86和ARM,不过ARM是手机移动端的CPU,和我们电脑的操作系统无关,两大CPU厂家Intel和AMD都是采用x86和x86-64,前者是32位,后者是64位。x86-64有时也叫amd64,是AMD先提出的兼容x86的架构,后面也被Intel采用。这里我们不过多讲解CPU架构的历史,有兴趣朋友可以留言讨论或者查找资料研究。我们只要知道,市面上能买到的,大家普遍用的,都是x86和x64架构的CPU,因此使用NASM汇编软件编译出来的代码,都能运行。
GCC这是C语言的编译器,操作系统不可能全部用汇编写的,后期的高级代码需要使用到C语言,目标是使用NASM和GCC把汇编和C编译成object文件,然后使用链接ld把他们链接成bin的二进制文件。
这里需要用到的工具暂时就想到这些,后期有用到其他的再相应补充。讲了这么多,还看不到成品,相信大家可能失去了耐性。这里直接上代码,打开操作系统的大门,看一看这神奇的计算机世界。
简单的几句汇编代码,让操作系统为我们展示了HelloWorld,当我看到这句话时真的是激动不已。后面,讲给大家详细介绍一下操作系统的运行原理,和制作过程。