WIP PLATFORM INDEPENDENT MINI OS This should be a very simple CC0 OS written in C, independent of any specific platform, to run on Arduboy, Pokitto etc., with programs compiled into the executable binary, so that everyone compiles their own small OS with their own set of programs. source files: core.h: - OS core - microkernel, everythig in programs - 8 bit only, with wider types implemented as multiple bytes + functions - will NOT provide any text or graphical shell, these will be normal programs - will provide syscalls for the programs to make: - list files - open file - - "everything is a file" philosophy, so that there will only be a few syscalls (open file, write file, read file, ...) - will abstract and manage: - simple file system: - no directories, just files on the same level - a file in memory is save as: ... - the first file is special: the file index, but is accessed the same way as any other file, the file contains these bytes: <32 bit address of file 0> ... - HW devices: - as dev files - processes and non-preemptive multitasking: - each program will provide a "step" function which the core will be calling cyclically - - networking? main_*.c: - small main glue code, specific for each platform (e.g. SDL, bare metal, ...) - has to implement core's API: - - - program_*.h: - programs to be compiled in and included in the final binary - have to implement these API things: - step() function, performs the next "short" program step (non-preemtive multitasking) - halt() function, called before terminating the process basic programs to write: - text shell, language and interpreter - core utils (ls, mv, cat, ...) - graphical shell, a "simple desktop" - games