TODO
Here's what needs to be done to get the system comparable to a modern Unix
system. If you tackle one of these problems, please contact us to let us
know what you're working on. This will let us give you help as well as
preventing us from duplicating effort. Stuff under longer-term goals is
probably easier to get started with than the short-term stuff since it
relies less on intimate knowledge of how the system works.
Short-term goals/bugs:
-
Crash recovery of local storage (XN and CFFS)
-
Clean up and document XN (maybe provide a mini ultra simple fs that uses
XN)
-
Remove uses of CAP_ROOT and use the right capabilities in the right places
-
remove extra CFFS protection calls and use protected method interface
-
fix protection in XN
-
check with XN before inserting page into BC
-
remove XN registry entries when BC entries are flushed
-
notify XN when BC entries are reclaimed
-
allow page tables to be shared across fork
-
simple threads and maybe pthreads
-
get ld.so and friends working for real shared libraries
-
get rid of remaining shared data structures (mount, UDP socket info, fd's,
tcb's, anything else???)
-
interface for registering functions to be run when a time-slice starts
and ends
-
make sure clock is accurate and doesn't ever reverse
-
TCP sockets need to support inaddr for both bind and getsockname
-
fix strip or reason we can't boot xok made under xok (only xok.gdb)
-
make all ExOS code signal safe (most currently works ok, but TCP doesn't
handle being interrupted with signals too well)
-
page revocation/paging
-
multi-thread NFS
-
solve the booting problem. Maybe use "grub" since it can handle booting
*BSD kernels as well as linux
-
fragmentation support in dpf and removing hacked fragmentation support
in nfs/udp
-
differentiate between filters that are "final" and ones that can be subsetted
Longer-term goals:
-
clean up and document internal interfaces
-
more drivers and/or a framework that lets us take Linux/*BSD/NT drivers
"as is"
-
better binary format (punt a.out and move to ELF)
-
ptrace and native gdb support
-
X (clients and server)
-
more applications
-
upgrade to new dpf and vcode
-
protection to make sure apps don't monopolize disk or network bandwidth
-
figure out what we want to do with process scheduling
-
fast java VM