【MOS开发记-0x00】Memory of snow
回望过去,我已经在应用层进行了太久的开发,忽视了计算机的本质,这样下去我注定只能是一个”API CALLER”。
为了寻求自我的突破,我决定开始编写一个操作系统。
1. 前言
显然,这是一个新的文章系列,其主要目的仍然是分享知识经验以及记录个人的成长。
不过,与以往任何一次都不同的是,如果这个系列能够一直更新,必将成为本博客最重磅的内容。
2. 随意的名字
1 | 果(は)てしなく 雪(ゆき)は降(ふ)り続(つづ)けてた… |
上面这两句歌词源自歌曲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