【MOS开发记-0x00】Memory of snow

【MOS开发记-0x00】Memory of snow

回望过去,我已经在应用层进行了太久的开发,忽视了计算机的本质,这样下去我注定只能是一个”API CALLER”。
为了寻求自我的突破,我决定开始编写一个操作系统。

1. 前言

显然,这是一个新的文章系列,其主要目的仍然是分享知识经验以及记录个人的成长。
不过,与以往任何一次都不同的是,如果这个系列能够一直更新,必将成为本博客最重磅的内容。

2. 随意的名字

1
2
3
4
果(は)てしなく 雪(ゆき)は降(ふ)り続(つづ)けてた…
(无尽的白雪 依然不停飞舞降落…)
あの日(ひ)から 閉(と)じ込(こ)めてた想(おも)いを…
(从那天开始 就已封闭心中的思念…)

上面这两句歌词源自歌曲Memory of Snow-fripSide,笔者非常喜欢,再加上那么一点阴差阳错的任性,其便成为了这个新操作系统的名字。

巧合的是,其缩写MOS既可以解释为Memory Of Snow,也可以解释为Memory of snow Operating System

顺带一提,我的上一个大型程序设计作品秋之盒的名字灵感也是来源与fripSide乐队的歌曲:Late in Autumn

3. 着手准备

3.1. 当前阶段前置知识总结

笔者怀着求知欲在网上搜寻了操作系统的相关前置知识介绍,确定了在目前开发阶段中应掌握的技术:

知识点 进度
GNU Compiler Chain 掌握基本使用
汇编语言 一知半解
x86架构 一知半解
c语言 完全掌握

可以看出我目前的知识水平结构在开发操作系统上是完全不够格的,为此,我开始大量寻找资料进行恶补。

3.2. 资料介绍

这里放出一些目前为止我正在参考的资料介绍。

资料 备注
《x86汇编:从实模式到保护模式》 这本书相较于网上零碎的资料来说,非常系统而完整
《操作系统:真象还原》 这本书籍相对来说内容更加详实,我打算将其用作后期开发的重要参考资料
【哔哩哔哩】汇编语言从0开始 虽然计划中MOS的开发主要使用NASM,但鉴于我当前灾难级别的汇编开发能力,这门课程非常适合笔者。
【哔哩哔哩】编写操作系统之路 这是笔者新发现的课程,暂时还未详细查看,随不知其质量如何,但添加个数钱总不会损耗什么。
【哔哩哔哩】从零开始编写操作系统 这位仁兄的视频质量不错,我在这里学会了一些皮毛,可惜早已断更。
【知乎】从零开始自制操作系统 目前主要参考的网络资料
【知乎】计算机自制操作系统 常作为补充进行查阅

3.3. 开发环境

笔者不想再在实体机上安装任何Linux发行版,一番折腾后配置了一套略显奇葩的开发环境。

名称 用途
Windows 10 2004 实体机的操作系统
WSL 想要通过命令行实现自动化,又不想在实体机安装Linux该怎么办呢?当然是选择Windows Subsystem for Linux啦!笔者选择了Ubuntu 20.04 LTS
gcc 7.5.0 【安装在WSL】 经典的编译工具链,用于编译
nasm 2.13.02 【安装在WSL】 用于编译nasm源文件
GNU Make 4.1 【安装在WSL】 经典的C/C++编译辅助工具
git 2.17.1 【安装在WSL】
qemu 4.2.0 快捷高效的虚拟机软件,是MOS的重要开发工具
VS Code 万能的代码编辑器。

3.4. 关于开源

3.4.1. 开源协议

笔者曾想选择GPL V3.0等强力的开源协议,后来突然想起曾在新闻中见到的国产许可证:木兰宽松许可证,在进行多方面的考虑后,决定采用其作为MOS主要的开源协议。

3.4.2. 开源仓库

由于目前的学习阶段并不能编写出一个真正具有参考性的操作系统,因此源代码暂时不会被公开。

3.5. 当前进度

  • 在mbr中输出Hello World
  • 通过linux命令行创建虚拟磁盘
  • 通过make将各步骤串联

3.6. 下阶段目标

  • 在汇编中读取磁盘
  • 从汇编转移到C

本文质量不佳,有任何意见与建议请在评论区中提出,笔者会尽力提升自己的水平写出更好的文章。

【MOS开发记-0x00】Memory of snow

https://zsh2401.top/post/mos-00/

作者

zsh2401

发布于

2020-06-08

更新于

2021-07-25

许可协议

评论