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

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

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

前言

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

随意的名字

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

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

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

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

着手准备

当前阶段前置知识总结

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

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

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

资料介绍

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

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

开发环境

笔者不想再在实体机上安装任何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万能的代码编辑器。

关于开源

开源协议

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

开源仓库

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

当前进度

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

下阶段目标

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

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

评论