8000 GitHub - SirJackie/DuinoOS: 一个运行在Arduino上的操作系统,写这个系统是为了好玩,旨在压榨Arduino的每一滴性能!
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

一个运行在Arduino上的操作系统,写这个系统是为了好玩,旨在压榨Arduino的每一滴性能!

Notifications You must be signed in to change notification settings

SirJackie/DuinoOS

Repository files navigation

DuinoOS 对喽操作系统

一个运行在Arduino上的操作系统,写这个系统是为了好玩,旨在压榨Arduino的每一滴性能!

系统随缘更新,可能一天好几次更新,也可能好几个月一次更新,主要看心情😃

Arduino可以作为很便宜的计算机来使用(国产兼容版¥10左右,非常便宜),如果能在上面 看小说、打游戏、写程序 ,那不得比某某派(¥200-300左右)划算多了!

Development Roadmap 开发路线图

Step.1 编写底层架构

  1. 先引入底层驱动,支持访问硬件:

    • 屏幕显示
    • SD卡
    • 屏幕触摸感应
    • 串口键盘
  2. 实现类似MSDOS一样的文件操作系统,可以创建删除文件和文件夹,可以查看BMP图片,可以看英文小说

  3. 编写一个2D卷轴引擎(打算取名Scrollrino,就是Scroll + Arduino),可以通过Page Scrolling实现流畅的界面滚动滑动体验

  4. 导入中文字库到SD卡,实现中文显示,可以看中文小说(最好支持Unicode,支持各个国家语言,如果不行,GB2312编码也是一个可以接受的备选项)

  5. 实现一个简单的C/C++编译器(类似gcc,打算取名Compino,就是Compile + Arduino),可以直接用Arduino编译C/C++二进制程序。

  6. 实现一个文本编辑器(类似vim),可以直接连接键盘,在Arduino上愉快地敲代码

  7. 实现一个C/C++运行时(类似Java JVM,打算取名Runmino,就是Runtime + Arduino),可以在Arduino上运行编译好的C/C++二进制程序。(Arduino并不采用冯诺伊曼结构,而是哈佛结构,所以编译好的二进制程序不经过烧写,是无法被CPU直接读取到的。这注定了Arduino自己编译的程序,即使是二进制,也许要套一层运行时。)

    冯诺伊曼结构,也称普林斯顿结构:是一种将程序指令存储器和数据存储器合并在一起的存储器结构。

    哈佛结构:是一种将程序指令储存和数据储存分开的存储器结构。

  8. 为C/C++运行时实现虚拟内存,用SD卡的存储空间,补充Arduino仅有的2KB运行内存。(真的想吐槽,2KB内存是什么鬼,太抠门了,还不如1980s的老电脑!)

  9. 为C/C++运行时实现多线程支持,同时运行多个程序,实现一边做A,一边做B。

Step.2 丰富应用生态

  1. Tomatino (Tomato + Arduino):运行在Arduino上的番茄钟软件
  2. Rhymino (Rhyme + Arduino):DuinoOS的拼音输入法
  3. The Adventure:运行在Arduino上的2D开放世界游戏
  4. Lumino (Illumination + Arduino):运行在Arduino上的3D光线追踪渲染引擎渲染漂亮的3D图像,各种玻璃球,折射反射,天空盒子!(估计渲染一张图片会用10min以上吧,哈哈哈,不过无所谓,反正支持多线程,可以一边看小说😃)
  5. Neurino (Neural Network + Arduino):运行在Arduino上的PyTorch Compatible的神经网络运行时,可以运行AI模型,实现手写输入识别。(估计慢得要死,但是很好玩啊!哈哈哈)
  6. Bottino (Bottle + Arduino):运行在Arduino上的因特网服务器,类似python的bottle库。
  7. Chromino (Chrominum + Arduino):运行在Arduino上的因特网浏览器,类似Chrome,可以渲染HTML/CSS页面,运行JavaScript脚本。
  8. Gittino (Git + Arduino):运行在Arduino上的版本管理软件

Hardware Prerequisites 硬件要求

  • Arduino UNO 开发板一块(国产兼容版¥10左右,非常便宜)

  • 微雪 3.5inch TFT Touch Shield 触摸屏一块(¥136.35,很便宜的屏幕,毕竟HDMI小显示器动不动就要¥500以上,上不封顶)

    驱动芯片:ILI9486(LCD控制)、XPT2046(触摸);分辨率:480x320

    购买链接:https://www.waveshare.net/shop/3.5inch-TFT-Touch-Shield.htm

    声明:我和微雪官方没有任何商业合作和关联,放这个链接只是为了让大家不要买错型号。

    本操作系统只支持这个型号的显示屏,如果你使用其他屏幕,基本上肯定无法正常工作,除非你运气好。

    为什么不支持更多屏幕?因为我懒得写几百个驱动,我只想写一个。

    如果你想要用不同的显示屏,欢迎联系我获取开发技术资料,然后你自己可以修改代码来支持它们。

  • 8GB microSD 卡一张,插入到触摸屏底部的TF卡槽中,用于内存扩容(¥15左右)

合计:¥161.35(相对一台电脑来说,非常便宜)

About

一个运行在Arduino上的操作系统,写这个系统是为了好玩,旨在压榨Arduino的每一滴性能!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0