查看原文
其他

这个用 C 语言实现的开源“操作系统”,在 GitHub 火了!

CPP开发者 2021-07-20

The following article is from 开源前哨 Author 小秋

【导语】:最近有一个非常特别的开源操作系统,连续两天登顶 GitHub 日榜。

为什么说它非常特别?因为它是一个只能用来玩俄罗斯方块的 OS 

项目地址是:

https://github.com/jdah/tetris-os

简介

Tetris-OS,从名字上就能看出来,这是一个可以用来玩俄罗斯方块的操作系统,而且只能用来玩俄罗斯方块,其他事都干不了。它的开发者 jdah 是一名俄罗斯方块的狂热者,很早就有了想拥有一个只运行俄罗斯方块操作系统的想法。

Tetris-OS 不管理文件、控制进程之间的通信或处理登录。实际上,这是一个在引导加载程序中运行的俄罗斯方块的版本,在你的计算机上运行任何磁盘(或者是 ISO 文件)中的一个小空间。其实 20 世纪 80 年代和 90 年代的许多游戏磁盘都包含自己的“操作系统”。


Tetris-OS暂不支持Windows系统,它具有以下特点:

  • 只能用来玩俄罗斯方块
  • 只支持 32 位系统
  • 完全自定义的引导程序
  • Soundblaster 16 的驱动
  • 可以定制背景音乐播放器
  • 完全硬编码的俄罗斯方块主题
  • 具有自定义 8 位 RGB 调色板,320x200 像素的双缓冲 60 FPS 图形

这个视频记录了 Tetris-OS 的开发过程:

构建运行

  • MacOS环境下,构建运行的命令如下:
$ make iso
$ qemu-system-i386 -drive format=raw,file=boot.iso -d cpu_reset -monitor stdio -device sb16 -audiodev coreaudio,id=coreaudio,out.frequency=48000,out.channels=2,out.format=s32
  • 类Unix系统中,构建运行的命令如下:
$ make iso
$ qemu-system-i386 -drive format=raw,file=boot.iso -d cpu_reset -monitor stdio -device sb16 -audiodev pulseaudio,id=pulseaudio,out.frequency=48000,out.channels=2,out.format=s32

如果你也和作者一样喜欢玩俄罗斯方块,那就来看看这个项目吧。


- EOF -

推荐阅读  点击标题可跳转

1、为何某些公司不允许使用 C++ STL?

2、一文详解 C++ 日志框架

3、C语言指针:从底层原理到花式技巧,用图文和代码帮你讲解透彻


关注『CPP开发者』

看精选C++技术文章 . 加C++开发者专属圈子

点赞和在看就是最大的支持❤️

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存