-
Notifications
You must be signed in to change notification settings - Fork 278
Things on the TODO List
EtchedPixels edited this page Oct 16, 2015
·
11 revisions
Known Performance Easy Wins
- Optimised usermem copiers, at least for the usual "yes both ends in the same page" case
- Replace the compressor in single user mode with one in asm
- Support vfork()
The TODO List
- Much debugging
- Stabilize libc
- Make fcc a useful tool for wrapping sdcc
- Implement a map_page_low map_page_high helper pair so that we can have generic tricks.s code for 16K banking (using them for the fork bank copy).
- Implement paging stubs for 32K banking that flip user<->kernel and stack while fliping the full address space
- Combine them in 32K banking mode with support for map_page_low + bounce buffer to get a common tricks.s, and for a 32K banked generic usercopy
- Relocatable binary format
- Relocatable binary format with stack low and data above (so brk can expand memory without chmem hacks), as in ELKS, and interleaved maps as in 8086 Unix platforms.
- "Shared" library support and maybe RLE compressed binaries. Shared in the sense of disk saving not memory
- bogomips 8)
- Report CPU type (Z80/Z180/T80 etc)
- Finish SYS5 signal interfaces (SIGSTOP handling, SIGCHLD etc)
- Finish post 2038 support (rework superblock bias field and propogate into inodes)
- UZIX has a clever space saving merge of chown/chmod
- UZIX symbolic links
- UZIX setprio versus FUZIX nice
- 8086 Support
- UZIX per process versus global trace flag
- Finish profil
- Bankable kernel images for 6502 or 6809 (needs cc65 support, and some work on gcc-m6809).
- Missing for System 3 equivalence: ulimit, ptrace
- Root reserved blocks/inodes on disk
- 2.11BSD optimisations for blk_alloc/free and i_alloc_free
- Sort on read in/write out for block tables
- Sticky bits
- Does the OMU function pointer based open/create/mk* approach save memory versus UZI style ?
- UMZIX has a neat "make anything" function unifying a lot of the creation logic
- Missing from System 5 equivalence (ignoring streams and sys5 ipc) fpathconf(), fstatfs(), getdents (internal)(), getgroups, pathconf(), plock, poll, setgroups, setpgid, setsid, sigaction, sigold, sigignore sigpause, sigpending, sigprocmask, sigrelse, sigset, sigsuspend statfs, sysconf, sysfs, sysi86, ustat(obsolete). what can we do in userspace - quite a lot looks puntable given just an fs type field back from kernel (* = userspace via helper)
- Select/poll
- TCP/IP
- Core dumps
- Add a stack overflow sentinel and kill
- BSD process groups could be added
- Bankable userspace processes ?
- Support for an out of kernel space secondary cache (as in ELKS - eg to use C128 RBU space to back fd)
Fuzix: because small is beautiful