Skip to content

Things on the TODO List

EtchedPixels edited this page Feb 2, 2018 · 11 revisions

Known Performance Easy Wins

  • Optimised usermem copiers, at least for the usual "yes both ends in the same page" case (Done for COCO3)
  • Replace the compressor in single user mode with one in asm
  • Support vfork()

The TODO List

  • Much debugging
  • 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). (Half way there)
  • 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
  • Report CPU type (Z80/Z180/T80 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, sigaction, sighold, 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 (in progress)
  • TCP/IP (in progress)
  • Add a stack overflow sentinel and kill
  • Bankable userspace processes ?
  • Support for an out of kernel space secondary cache (as in ELKS - eg to use C128 RBU space to back fd) (in progress)