12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- 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:
- <n0: length of block 0> <n0 bytes> <n1: length of block 1> ...
- - the first file is special: the file index, but is accessed the same way
- as any other file, the file contains these bytes:
- <file 0 name> <32 bit address of file 0> <file 1 name> ...
- - 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
|