网上科普有关“如何从零开始自制操作系统”话题很是火热,小编也是针对如何从零开始自制操作系统寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
步骤一:编写汇编程序(linux版)
在linux下,我使用as86和ld86这2个程序来产生代码。(我这里以linux的Ubuntu发行版为例)。
as86对于我们这个任务来说足够简单,因此也比较适合我们。
另外一个原因恐怕是在1990年的时候,linux系统的创始者,被奉为神明的linus大牛就是使用as86来编写linux的启动代码的。
无论如何,在PC机上凡是类UNIX的系统都有这套汇编器,而且一般是在bin86软件包内。
在Ubuntu下要安装bin86软件包,只需要在终端中输入命令 sudo apt-get install bin86 即可。
下面是我们的代码:
1 entry start
2 start:
3 mov ax,#0xb800
4 mov ds,ax
5 mov byte[0],#0x41
6 mov byte[1],#0x1f
7 hlt
8
上面这段就是我们需要的as86汇编代码。在linux下将它保存为boot.s文件。
entry start 这一句正如字面意思所言,我们的程序就从start这里开始。
代码的意义等我们讲完windows版本的汇编代码再在步骤二解释,我们先在linux终端中输入命令把代码汇编成机器指令:
as86 -o boot.o boot.s
ld86 -o boot boot.o
这样我们就在linux中得到了我们接下来要写入U盘的文件boot,
而且我们希望PC从U盘启动的时候就运行我们的boot小程序(而不是试图在U盘上启动别的什么操作系统)。
步骤一:编写汇编程序(windows版)
在windows中我没找到可以用的bin86软件包,我下载了一个cygwin版本的,不过它的ld86总是报错。
而我平时一直喜欢用MinGW做C\C++的编译器,索性我们就使用这个windows版的gcc中自带的汇编程序gas。
在linux中当然也可以使用gas,不过这反而增加了点麻烦
关于“如何从零开始自制操作系统”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[雪曼]投稿,不代表空气号立场,如若转载,请注明出处:https://haokongqi.org.cn/cshi/202504-1282.html
评论列表(4条)
我是空气号的签约作者“雪曼”!
希望本篇文章《如何从零开始自制操作系统》能对你有所帮助!
本站[空气号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育
本文概览:网上科普有关“如何从零开始自制操作系统”话题很是火热,小编也是针对如何从零开始自制操作系统寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您...