Skip to content

Things on the TODO List

EtchedPixels edited this page Feb 16, 2019 · 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)
  • 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. Not needed possibly - Will Sowerbutts had a more cunning plan at least for 16K and 8K banking (which are the only interesting case)
  • "Shared" library support and maybe RLE compressed binaries. Shared in the sense of disk saving not memory
  • 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 ?