在 windows 中写操作系统,需要一系列的辅助工具。在此,要感谢川谷秀实!所有工具,都在 z_tools 文件夹中。有了大师的帮助,不妨也来尝试在 windows 中写一把 OS。

源代码及工具可到 x01.Lab.Download 中下载。进入 src 文件夹,只有两个文件,一个是 run.bat, 一个是 boot.s。boot.s  都是大同小异的,skip!run.bat 内容如下:

..\z_tools\nask boot.s boot.bin boot.txt

..\z_tools\edimg imgin:..\z_tools\fdimg0at.tek wbinimg src:boot.bin len:512 from:0 to:0 imgout:os.img

copy os.img ..\z_tools\qemu\os.img

..\z_tools\make -C ..\z_tools\qemu

值得一提的是,boot.txt 应该看看,它把机器码与汇编一一对应。edimg 是制作映像文件的关键,这也是川谷的作品。双击 run.bat 即可显示如下画面:

  

OK!看来,在 windows 中写操作系统,也是一件简单的事了。

注:源代码为 x01.wos.1.zip,原来的已删除。运行方法为进入 src 文件夹,双击 cmd.bat,输入make 回车即可。效果图如下:

  

看上去,已经有点操作系统的模样。但这个纸娃娃系统,更像是讲图像处理的,关于操作系统,讲的并不多。比较而言,Orange'S 更明白些。

x01.os.12: 在 windows 中写 OS的更多相关文章

  1. OGG for DB2 z/OS 12.2版本发布

    2016-04-15 Oracle发布了GoldenGate for DB2 z/OS  12.2.0.1.2.可以从OTN或eDelivery下载,该版本是ogg for DB2 z/OS的第一个1 ...

  2. python中os模块在windows下的使用

    今天学习了一下Python的os模块,主要是针对文件夹和文件路径的一系列操作. 与Python内置函数相比这里这里的函数功能更多样化,功能也更强大.但是学习过程中我发现很多函数都是只适用于unix系统 ...

  3. Qt在windows与Mac OS中获取执行程序版本号

    1 windows中获取执行文件exe的版本号   QString GetFileVertion(QString aFullName) { QString vRetVersion; string vF ...

  4. 操作系统Unix、Windows、Mac OS、Linux的故事

    电脑,计算机已经成为我们生活中必不可少的一部分.无论是大型的超级计算机,还是手机般小巧的终端设备,都跑着一个操作系统.正是这些操作系统,让那些硬件和芯片得意组合起来,让那些软件得以运行,让我们的世界在 ...

  5. 【Unity游戏开发】Lua中的os.date和os.time函数

    一.简介 最近马三在工作中经常使用到了lua 中的 os.date( ) 和 os.time( )函数,不过使用的时候都是不得其解,一般都是看项目里面怎么用,然后我就模仿写一下.今天正好稍微有点空闲时 ...

  6. Unix、Windows、Mac OS、Linux系统故事

    我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户.在服务器领域,恐怕Linux是无人不知无人不晓.他们都是操作系统,也在自己的领域里独领风骚.这都还 ...

  7. python中的os模块

    os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小…… 另 ...

  8. python 中的os模块

    python os模块   Python os 模块提供了一个统一的操作系统接口函数 一.对于系统的操作 1.os.name 当前使用平台 其中 ‘nt’ 是 windows,’posix’ 是lin ...

  9. [转]操作系统Unix、Windows、Mac OS、Linux的故事

    [写得很江湖气,可惜找不到原作者了] 文章转自:http://blog.csdn.net/wenmingchan/article/details/49925379 http://www.jb51.ne ...

随机推荐

  1. Javascript——闭包、作用域链

    1.闭包:是指有权访问另一个函数作用域中的变量的函数.创建闭包的常见方式:在一个函数内部创建另一个函数. function f(name){ return function(object){ var ...

  2. Python WMI获取Windows系统信息 监控系统

    #!/usr/bin/env python # -*- coding: utf-8 -*- #http://www.cnblogs.com/liu-ke/ import wmi import os i ...

  3. jQuery+turn.js翻书、文档和杂志3种特效演示

    很好用的一款插件jQuery+turn.js翻书.文档和杂志3种特效演示 在线预览 下载地址 实例代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...

  4. bootstrap字体图标在谷歌显示正常,在火狐显示异常的问题

    bootstrap字体图标的使用 现在有很多的网站支持字体图标,我所知道的有bootstrap,fontawesome,iconmoon,等等,可能还有其他我并不知道 bootstrap只要你的文件夹 ...

  5. 15款帮助你实现响应式导航的 jQuery 插件

    对于我们大多数人来说,建立一个负责任的布局中最困难的方面是规划和导航的实现.由于没有真正经得起考验的通用解决方案,您可以使用的菜单设计风格将取决于正在建设的网站类型. 无论你正在建设什么类型的网站,在 ...

  6. visual studio 查找/替换对话框

    工具--选项--环境--查找和替换 如下设置: 则会在查找.替换到最后时会弹出提示,比如“查找到达了搜索的起点”,如下图: 原文:http://keleyi.com/a/bjac/27iswh0p.h ...

  7. php代码美化/格式化 还原 -问题

    使用某个PHP代码格式化的工具.源代码: if ($this->_standardize_newlines == TRUE) { if (strpos($str, "\r") ...

  8. 精通 CSS 选择器(二)

    补充了一些之前遗漏掉的选择器以及一些在 Selectors Level 4 中新定义的选择器. 属性选择器不区分大小写 [attribute="value" i],在 Select ...

  9. ae_将面积小于1500的Feature同附近Feature进行合并

    private void 合并1500图斑ToolStripMenuItem_Click(object sender, EventArgs e) { /* *将图层中面积小于1500的图斑与之相同BS ...

  10. Python开发GIS的应用组件包

    Library name Description Reason to install   NumPy This adds support for large multidimensional arra ...