自制操作系统-最简单的系统hello World

按照自制操作系统的步骤,首先需要使用二进制编辑器编辑一个.img文件,编辑完成之后,可以有两种运行方式:

1:可以将该img文件烧进软盘文件中,重新启动计算机

2:使用qume虚拟机运行。

我们采用第二种方式,首先我们需要获取其中的.img文件,在其光盘中的”30天自制操作系统光盘\OS\projects\01_day\helloos0\

helloos.img”中。我们实现的方式是:

1:将其中OS文件夹下的tolset文件夹拷贝到自己希望的一个地方

2:在tolset文件夹下创建helloos0目录

3:将光盘中的位置”30天自制操作系统光盘\OS\projects\01_day\helloos0”中的helloos.img,!cons_9x.bat,!cons_nt.bat拷贝到自 己新建的 helloos0目录下

4:新建run.bat文件,即修改文本文件的run.txt为run.bat,书中要求是这样写的:

但是这样写是有问题的,应该是这样的:

其中另外一个批处理文件install.bat是为了将镜像文件helloos.img写入到软盘中的,这里不再使用了。

但是需要指出一个问题就是,书上要求是这样写的:

应该需要这样写才能运行成功:

5:运行

双击!cons_nt.bat批处理文件,然后在其中输入命令run,就会运行成功,下面是我的运行的结果:

如果你在输入run命令后遇到以下问题:

虽然说可以运行成功,但是他会报一些问题,这些问题出现的原因就是 “../z_tools/qemu/fdimage0.bin”需要写成

“..\z_tools\qemu\fdimage0.bin”这样就可以了。

注:QEMU是一个模拟器,可以模拟PC,有兴趣的可以了解一下。

时间: 2024-10-29 19:08:09

自制操作系统-最简单的系统hello World的相关文章

单字节的FIFO缓存(30天自制操作系统--读书笔记)

从今天起,写一些读书笔记.最近几个月都在看<30天自制操作系统这本书>,书虽说看的是电子书,但可以花钱买的正版书,既然花费了金钱,就总得有些收获. 任何人都不能总是固步自封,想要进步就得学习别人的知识,对于程序员而言,最简单的方法即是学习别人的代码. 今天的标题是“单字节的FIFO缓存”,其实就是做一个FIFO,看名字就知道了.也就4个函数和1个相关结构体,这样的小代码在嵌入式系统中很常用,也会很好用. 1.相关数据结构体 struct FIFO8 { unsigned char *buf;

《30天自制操作系统》笔记(06)——CPU的32位模式

<30天自制操作系统>笔记(06)--CPU的32位模式 进度回顾 上一篇中实现了启用鼠标.键盘的功能.屏幕上会显示出用户按键.点击鼠标的情况.这是通过设置硬件的中断函数实现的,可以说硬件本身的设计就具有事件驱动的性质,所以软件层面上才有基于事件的消息机制. 但上一篇没有说明中断的来龙去脉,本篇就从头到尾描述一下CPU与此相关的设置问题. Segment 32位的CPU使用32条地址线,能区分232=4G个内存地址.每个内存地址都有1Byte的内容. 分段,就是将4GB的内存分成很多块(blo

《30天自制操作系统》读书笔记(3) 引入C语言

这一次的学习相当曲折, 主要是因为粗心, Makefile里面的错误导致了文件生成出现各种奇奇怪怪的问题, 弄得心力交瘁, 因此制作过程还是尽量按着作者的路子来吧. 作者提供的源码的注释在中文系统下是乱码, 而且代码的分隔用了两个Tab, 在这里要处理一下: :%s/;.*//g 删除所有的注释; :%s/\t\t/\t 把两个Tab替换为一个Tab; 要让作者的nas文件和asm文件拥有相同的语法规则, 在_vimrc文件的最后一行添加 au BufNewFile,BufRead *.nas

《30自制操作系统》实现中文显示

<30天自制操作系统>最近一直再看,最近已经看到后面了,看到第28天,里面讲到可以实现对全角字符的支持,而原操作系统代码里面只是支持了日语显示,而中文版的这本书也只是讲了一个思路,具体的实现也是没有的.网上也好像没有人实现过这个吧,我是找不到.(由于书中每一章每一小节都有代码,我看书的时候就懒得去实际写代码,就简单看看.不过这次就可以写一下了,加深对这个系统的了解)反正没事做,就准备实现对这个系统的汉字全角支持. 一.了解HZK编码 在改造之前,我们先了解一下符合GB2312标准的中文点阵字库

【自制操作系统01】硬核讲解计算机的启动过程

目录 一.为什么是 BIOS 主导?    二.内存映射    三.实模式下的内存分布    四.怎么就从 BIOS 里的程序开始执行了    五.BIOS 里到底写了什么程序    六.0x7c00 是啥    七.启动区里的代码写了啥    八.操作系统内核写了啥        软硬件协同发展        历史遗留问题    九.参考资料    十.开源项目和课程规划        项目开源        课程规划 本讲只为讲明白下面一个问题: 我们按下开机键后究竟发生了什么? 好的,这似

【自制操作系统07】深入浅出特权级

一.到目前为止的程序流程图 本讲我们不继续写任何代码,而是专门拿出一讲来说说特权级的事,为后续的工作做一个知识储备.这段内容太难啃了,也可能我恰好对这块不太感冒,反正我是恶心了好久才啃下来. 为了让大家清楚目前的程序进度,画了到目前为止的程序流程图,如下 二.什么时候处理器会进行特权级检查 为什么要进行特权级检查,我就不说太多了,简单理解,操作系统不希望用户进程访问内核数据,所以需要给指令呀还有数据呀都附上一个特权级的属性,让程序受限制. 特权级分为 0 1 2 3 四种,我们常说的 用户态 就

《30天自制操作系统》读书笔记(2)hello, world

让系统跑起来 要写一个操作系统,我们首先要有一个储存系统的介质,原版书似乎是06年出版的,可惜那时候没有电脑,没想到作者用的还是软盘,现在的电脑谁有软驱?不得已我使用一张128M的SD卡来代替,而事实上你用的是U盘还是软盘对我们的操作系统没有影响,缺点是你的U盘刷入系统后容量只能是1440 MB,即当年流行的3.5英寸软盘的大小,当然不用担心,再格式化一次(用DiskGeniu),就可以恢复. 我做事情的话,总是怕自己的努力的结果白费了,害怕辛辛苦苦看完这本书但是发现做出来的东西现在根本没法用,

自制操作系统(十) 图像叠加处理

2016.07.12 参考书籍:<30天自制操作系统>.<自己动手写操作系统> qq:992591601  欢迎交流 图像叠加处理的原理很简单,就是给图像分层,从低下往上面画,便可以实现叠加的效果.例如,屏幕背景+一个窗口+鼠标的情况. 例如下面的情形: 计算机桌面上有三个窗口程序,A.B.C.B位于A之上,C位于B之上.要实现这种效果,只需要,先画A(盖住了桌面一部分).再画B(盖住了A和桌面一部分).再画C(盖住了B和桌面一部分).然后每隔一定时间刷新画面即可. 为此引入一个图

51系列小型操作系统精髓 简单实现3

现在遇到的问题: 1.任务不用预加载,进入一个任务,加载一个任务.没有任务时,定时器怎么处理?当只有一个任务时,怎么处理?多个任务怎么轮转或按优先级切换? 2.关于各任务定时时间,一个一个地减是否麻烦,有没有更好的方法? 3.没有保护寄存,这样切换,是否对?当任务函数有多个层嵌套时,有没有问题? #include "STC12C5A.H" #define TIMER_RELOAD() {TL0=0x00;TH0=0xC4;}//使能T/C 初始10ms #define MAX_TASK