From: Alan Cox Date: Fri, 31 Oct 2014 12:14:41 +0000 (+0000) Subject: README: remove notes leaving historical bits here X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=95d65d70e5bffd9413e0d5a3680b243c1a3b7c80;p=FUZIX.git README: remove notes leaving historical bits here --- diff --git a/Kernel/README b/Kernel/README index 63b414b0..b6f9c91b 100644 --- a/Kernel/README +++ b/Kernel/README @@ -1,108 +1,3 @@ -FUZIX -===== - -FUZIX is a fusion of various elements from the assorted UZI forks and -branches beaten together into some kind of semi-coherent platform and then -extended from V7 to somewhere in the SYS3 to SYS5.x world with bits of POSIX -thrown in for good measure. Various learnings and tricks from ELKS and from -OMU also got blended in - -What does FUZIX have over UZI -============================= - -o Support for multiple processes in banked memory (as per UZI180) but - with Minix style chmem and efficient use of bank allocations. -o Support for multiple processes via hard disk or non mappable RAM - drive switching (as per UZI, UZIX). -o The ability to run single tasking on small devices, for bring up - and for standalone tool execution -o Support for "real" swapping combined with banked memory. -o Proper sane off_t and lseek -o Normal dev_t -o 30 character filenames -o Proper sane time_t -o System 5 signals (half baked) -o Posix termios (does all the original UZI tty did but much can be added) -o Blocking on carrier for terminals -o Optimisations to avoid bogus uarea copying compared to UZI180 -o More modern system call API: 3 argument open, mkdir, rmdir, rename, - chroot (with correct .. semantics), fchdir, fchmod, fchown, fstat, - fcntl, setpgrp, sighold and friends, waitpid, setpgrp, nice - O_NDELAY, O_CLOEXEC, F_SETFL, F_DUPFD etc -o Address validation checks on all syscall copies -o Builds with a modern ANSI C compiler (SDCC) -o Core code can be built for 6809 and 6502 so should be far more - portable -o Core architecture designed to support building and maintaining - multiple target machines without forking each one -o Helpers to make many bits of implementation wrappers to core code -o Lots more bugs right now - -What does UZI have over FUZIX -============================= - -o Can run in 64K of RAM (32K kernel/32K user). FUZIX would need - banked ROM or similar to pull this off. - -What do the UZI branches have that FUZIX has not yet integrated -=============================================================== - -o Minimal TCP/IP (UZIX 2.0). Unfortunately the original TCP was never -released openly. -o Symbolic links (UZIX) -o Various clever fusions of syscalls that may save a few bytes - (UZIX) -o setprio (UZIX) -o Rather crude loadable drivers (UZIX) -o Use of __naked and __asm for Z80 specific bits to avoid more - .S files than are needed (UMZIX) - -Plus OMU has a really clever function passing trick for open/creat and -friends, while UMZIX has a neat unified "make anything" function. - -What Key Features Are Missing Still -=================================== -o ptrace, core dumps, ulimit -o root reserved disk blocks -o banked executables -o TCP/IP -o select/poll() -o Z180 banking support -o /dev/tty alias -o Support for > 32MB filesystems (but first figure out how to fsck - a giant fs on a slow 8bit micro!) -o Uptime -o Smarter scheduler -o Optimisations for disk block/inode allocator (2.11BSD) -o CP/M emulator has not yet been ported to FUZIX syscall API - - -Tool Issues -=========== -o No useful 8086 compiler option (started work on pcc 8086 but help - needed) -o 6809 gcc and cc65 don't have long long 64bit (for sane time_t) -o SDCC has long long bugs and gaps -o SDCC can generate ROMmable binaries but not banked ones -o SDCC has no register passing function call support, and for some - stuff it really shows -o SDCC generates quite bloaty small applications. Needs research - on how to improve. -o None of the above have an O88 style common sequence compressor - - -Platforms -========= -o Z80Pack - used as a dev and test environment for both large swapping - mulitprocess and for small single tasking -o Amstrad NC100 - real hardware sanity check - -Various other platforms are partly filled out to sanity check assumptions -and start making progress on them. The main need there is now to tackle all -the billion different ways of interfacing the floppy controllers. - - - --------------------------- Historical README files ------------------------------ UZI180 - Unix Z80 Implementation for the Z-180 (UZI180)