diff options
Diffstat (limited to 'doc/roadmap.md')
-rw-r--r-- | doc/roadmap.md | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/doc/roadmap.md b/doc/roadmap.md new file mode 100644 index 0000000..fb5b8b2 --- /dev/null +++ b/doc/roadmap.md @@ -0,0 +1,38 @@ +# Roadmap + +## Plans for soon + +* Write device drivers : keyboard, FAT (or EXT2 ?) +* Work on userland : init, terminal emulator, shell +* GUI server with help from kernel for framebuffer management + +## Things to design + +* Reclaiming physical memory : + - Freeing some cached stuff, ie swapping pages from mmap regions + - Swapping pages from processes non-mmap regions (ie real data regions) +* Better handling of errors (rather than panicing) ; userspace apps should not + have the possibility of crashing the system +* How does a process transmit information (such as environment, arguments, file + descriptors) to its children ? +* How do we do stream-like IO on files ? (ie how do we implement the append +* access mode + and non-position-dependant read/write calls & seek call) +* Better error reporting for system calls that fail + +## Things not sure + +* VFS thread safety : is the design correct ? (probably) +* Cache architecture (called *pager*, after 4.4BSD terminology) +* Not enough tests! + +## Plans for the later future + +* Define a format for "packages", i.e. read-only filesystem images used for +* adding system + components or apps to the OS ; make sure to implement it in a way that does + not waste memory +* Module system for extending the kernel In userspace, simple Scheme-like +* scripting language POSIX compatibility layer, self-hosting OS The obvious +* stuff ;-) + |