项目简介
ZJUNIX是基于MIPS架构的精简操作系统内核,运行于自定义的FPGA硬件上,帮助开发者达成“在自己设计的计算机上运行自己的操作系统”的目标。此代码仓库为ZJUNIX的实验代码仓库,主要配合配套书籍开展实验,后续仅修复BUG,不进行功能性更新。
项目的主要特性和功能
- 架构适配:针对MIPS架构优化,支持MIPS指令集。
- 硬件掌控:可在自行设计的FPGA硬件上运行,直接控制和管理硬件资源。
- 内存调配:有内存管理模块,能分配和释放物理内存。
- 文件操作:实现FAT文件系统,支持文件的创建、删除、读写。
- 系统交互:提供系统调用接口,便于用户程序与内核交互。
- 命令执行:具备简单的命令行解释器,可执行用户定义命令。
- 文本处理:提供基本文本编辑功能,可加载、保存和编辑文件。
- 时间获取:实现系统时间管理,能获取和显示系统时间。
安装使用步骤
硬件准备
确保有支持MIPS架构的FPGA硬件。
环境配置
- 下载安装 Mips Toolchain。
- 设置工具链路径:在程序根目录下的 config/tools.conf 中修改 TOOLCHAIN_DIR 为编译器二进制文件所在目录。
- 设置 make 路径:
- 若使用Windows系统,修改 config/tools.conf 中的 MAKE 为 make 可执行文件所在路径。
- 若使用Linux系统,注释该行。
编译内核
在源码根目录下执行make
命令,可编译得到kernel.bin
(操作系统内核文件)。也可使用以下命令:
- make all
/ make objcopy
与直接执行make
效果相同。
- make disassembly
可获得反编译文件kernel.txt
。
- make clean
清理所有中间文件,包括子目录下的。
- make install INSTALL_DIR=path
编译并将kernel.bin
复制到path
目录下,完成系统镜像安装。
烧写FPGA
- 安装Digilent Adept。
- 连接JTAG线到SWORD板,上电并启动。
- 在Adept中点击Initialize Chain。
- 在主区域点击Browse选择
.bit
,点击Program烧写。
启动操作系统
- 取一张大于2GB的SD卡(推荐8GB),格式化分区为FAT32,簇大小4096 KB(若内存卡太大无法指定,可格式化为多个分区,将第一个分区设为此簇大小)。
- 将
kernel.bin
放在SD卡根目录下(如有多个分区,放在第一个分区根目录)。 - 将SD卡插入SWORD板,使用板卡右下方的RESET按钮重启系统,载入内核(如不成功可多次重启)。
注意事项
- 源码各目录下的Makefile请勿删除。
- 若工具路径含空格,config/tools.conf中对应路径需加双引号。
kernel.bin
文件名和路径不可修改,bootloader默认从第一个分区根目录寻找该文件载入。- 若Adept出现Programming Failed提示,检查板卡是否开启。
- 重写Makefile时,确保arch/start.o是中间文件列表的第一项。
License
本项目遵循BSD3协议,允许在遵循协议的前提下自由使用、修改和分发代码。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】