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

