30天自制操作系统 - 从零开始构建OSASK
《30天自制操作系统》是一个循序渐进的学习项目,通过30天的实践,引导开发者从零开始构建一个名为OSASK的完整操作系统。本项目提供了详细的中文源码和教程,让学习者能够深入理解操作系统的底层原理和实现机制。
项目概述
本项目由川合秀实(H. Kawai)原创,采用"川合堂许可协议",这是一个非常宽松的开源协议,允许自由使用、修改、复制甚至用于商业目的,同时作者对软件的bug以及因此造成的损失不负任何责任。
项目结构
项目按照30天的学习进度组织,每个目录代表一天的学习内容:
核心开发目录
- 01_day - 07_day:第一周,从计算机结构到汇编程序入门,逐步进入32位模式并导入C语言
- 08_day - 14_day:第二周,学习鼠标控制、内存管理、叠加处理等核心功能
- 15_day - 21_day:第三周,实现多任务、命令行窗口和应用程序开发
- 22_day - 28_day:第四周,图形处理、窗口操作和文件系统完善
- 29_day - 30_day:附加内容,包括压缩功能和高级应用程序
工具和资源
- tolset/:包含开发工具和运行环境
- z_tools:核心开发工具集
- z_new_o:目标文件目录
- z_osabin:操作系统二进制文件
核心文件说明
启动文件
- ipl10.nas:初始程序加载器(IPL),负责从磁盘加载操作系统
- asmhead.nas:汇编头部文件,初始化CPU和内存
- naskfunc.nas:NASM汇编函数库
核心C语言文件
- bootpack.c:主引导程序,操作系统核心逻辑
- graphic.c:图形显示处理
- fifo.c:先进先出队列实现
- sheet.c:图层管理
- mtask.c:多任务调度
- console.c:控制台实现
- window.c:窗口管理
配置文件
- Makefile:项目构建配置文件,支持
make run和make run_full等命令
学习路线
第一阶段:基础准备(第1-7天)
从最基础的汇编语言开始,编写能够通电即运行的程序,实现磁盘读取功能,逐步过渡到C语言开发。
第二阶段:核心功能(第8-21天)
掌握C语言语法后,开始实现操作系统的核心功能,包括内存管理、多任务处理、窗口系统等。
第三阶段:完善扩展(第22-30天)
为操作系统添加图形界面、文件操作、应用程序支持等高级功能。
运行方法
- 在
tolset目录中新建run文件夹 - 将对应日期的代码拷贝到
run文件夹中 - 根据系统版本运行相应的批处理文件:
!cons_9x.bat:适用于Windows 9x系统!cons_nt.bat:适用于Windows NT系统
或者使用更简单的方法:将tolset/z_tools目录复制到项目根目录下,然后使用make run命令运行。
项目特色
- 循序渐进:从简单的汇编程序到复杂的操作系统功能
- 实践导向:每个步骤都有完整的代码实现
- 中文支持:源码和文档都进行了中文翻译
- 开源免费:采用宽松的开源协议,可以自由使用和修改
开发环境
项目主要使用以下工具:
- NASM汇编器
- GCC编译器
- Make构建工具
- QEMU虚拟机(用于测试运行)
学习成果
完成整个项目后,你将:
- 深入理解计算机体系结构
- 掌握操作系统核心原理
- 具备从零开始构建操作系统的能力
- 熟悉汇编语言和C语言的混合编程
通过这个30天的学习旅程,你不仅能够获得操作系统开发的实践经验,还能建立起对整个计算机系统的深刻理解。这是一个极具挑战性但也非常有成就感的学习项目。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




