前几天,Hacker News 上有一则帖子登上了 TOP 榜,引起了不少人的关注:我花了 5 年时间编写自己的操作系统。 “5年”、“自己的操作系统”,这两点显然是吸引人们点击查看的主要原因:帖主凭一己之力,用 5 年时间写出来的操作系统会是怎样的? 好奇心被勾起,于是便打开了这位帖主提供的 GitHub 地址(https://github.com/halfer53/winix)。刚看到这个操作系统的简述,许多人就感到意外了:帖主开发的 Winix 系统主要是受到了他在大学时所学习的 Minix1 操作系统的启发——起初 Linus Torvalds 也是在 Minix 操作平台上建立的 Linux。 据了解,这位帖主 @halfer53 是一位来自新西兰的开发者,而他在业余时间开发的 Winix 是用于 Waikato RISC 架构微处理器(WRAMP)的 UNIX 风格操作系统,也是一个兼顾可用性和性能的混合内核。 功能及演示 Winix 虽然仅由 @halfer53 一人开发,但系统功能意外地还挺齐全:
Winix 还支持许多命令(均已提供源码): @halfer53 演示了前两个命令的运行结果: (玩贪吃蛇) (在 bash 中使用管道) 如何运行 关于该系统要如何运行,@halfer53 也给出了具体步骤: 1、下载最新的 Rexsimulator:https://github.com/halfer53/rexsimulator/releases(注意:mono 需要在 Linux 环境下运行) 2、下载最新的 WINIX 二进制文件 winix.srec:https://github.com/halfer53/winix/releases 3、运行 Rexsimulator.exe 4、点击 Quick Load,选择 winix.srec 然后就可以加载 Winix 了: 编译和调试
编译之前,首先要在 Linux / WSL 中通过 sudo apt-get install xutils-dev gcc 命令行进行安装。克隆和编译:git clone https://github.com/halfer53/winix.git cd winix export PATH=`pwd`/tools/bin:$PATH make
调试 Makefile:与 linux kbuild 相似,Winix 支持 verbose 选项,你可以通过将 verbose 设置为 1 来调试 Makefile。 make V=1 调试内核:kprintf() 将是你的朋友;在 bash 中输入 trace 以查找串口 2 中的所有系统调用。以下是 Winix 支持的系统调用: |
|