SKRTOS采用微内核架构开发,目的是实现一个分布式实时操作系统。
笔者想实现的一个效果就是:把一百片esp32链接起来给远程的一个人使用,让他感觉自己在使用一片比esp32强一百倍的mcu,而不是在使用一百片esp32。
大概分四层:
第一层是linux化的实时操作系统,目的是实现基本的调度和IPC机制。
第二层是实现POSIX接口后兼容linux生态,这一层为基本组件,如shell、文件系统、设备树。
第三层是特定的RPC协议。
第四层是基于RPC协议的分布式应用。
理论参考:《操作系统---并发与分布式软件设计》(jean)、《分布式操作系统》(Andrew)
skrtos文件夹是稳定版本的rtos内核,大概一个月更新一次。
SKRTOS_exploit是开发中的备份内核源码,包括完整的开发工程和正在开发中的RTOS源码,更新时间取决于开发进度。
2024.11/17 晚
耗时三个月,利用零碎的时间,终于完成了SKRTOS0.11版本。这是初步版本,共四十个文件,约有上万行代码。
总功能如下:
任务管理:线程、延时阻塞、时间片、分时系统、优先级抢占、定时器、CPU利用率统计
内存管理:支持动态内存,有小内存管理和内存池管理两种功能
并发管理:临界区、原子操作
IPC层:消息队列、信号量、互斥量、完成量、事件组、通知量
SKRTOSV0.11版本是一个实验品,说实话,笔者对它的代码非常不满意,既不优雅,也不美观,但是很无奈,作为它的作者,只能承认自己的设计能力不足。
写到最后,笔者的已经把SKRTOS的代码作为一种思路的记录,从完成量开始,SKRTOS的功能就没有测试了。
POSIX接口这些暂时放一放了,因为过段时间准备重新写一个RTOS,SKRTOSV0.11版本算是一种试错,且容笔者缓一缓。
接下来准备更新单独的组件,准备写一个设备树编译器,说实话,笔者虽然十分热衷于写底层组件,但是重复的轮子也会让人觉得毫无意义,如果有现成的的设备树,笔者是很热衷于移植的,可是很无奈,找不到成熟的轮子,所以,笔者打算写一个小巧、易移植的设备树编译器。