CommunityNews

CommunityNews

Fuzix: A Unix-ish operating system for small machines by Alan Cox

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

Pre-built images

Some pre-built filesystems are now available on www.fuzix.org, and other
images should follow in time.

What does FUZIX have over UZI

  • Support for multiple processes in banked memory (as per UZI180) but
    with Minix style chmem and efficient use of bank allocations.
  • Support for multiple processes via hard disk or non mappable RAM
    drive switching (as per UZI, UZIX).
  • Support for “real” swapping combined with banked memory.
  • Proper sane off_t and lseek
  • Normal dev_t
  • 30 character filenames
  • Proper sane time_t
  • System 5 signals
  • Posix termios (does all the original UZI tty did but much can be added)
  • Blocking on carrier for terminals
  • Optimisations to avoid bogus uarea copying compared to UZI180
  • 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
  • Address validation checks on all syscall copies
  • Builds with a modern ANSI C compiler (SDCC)
  • Kernel boots to userspace on 6303, 6502, 65C816, 68000, 6803, 6809, 8080, 8085, MSP430 (bitrotted) and Z80/Z180
  • Core code can be built for 6303, 6502, 65C816, 68000, 6803, 6809, 8080, 8085, 8086, MSP430, pdp11, rabbit r2k/r3k and Z80/Z180 so should be far more portable
  • Core architecture designed to support building and maintaining
    multiple target machines without forking each one
  • Helpers to make many bits of implementation wrappers to core code
  • Lots more bugs right now

What does UZI have over FUZIX

  • Can run in 64K of RAM (32K kernel/32K user). FUZIX would need
    banked ROM or similar to pull this off. If you have banked
    ROM then our kernel footprint in RAM is about 8K plus userspace
    plus any framebuffers and similar overhead. On a 6809 it’s just
    about possible to run in a straight 64K

What do the UZI branches have that FUZIX has not yet integrated

  • Symbolic links (UZIX)
  • Various clever fusions of syscalls that may save a few bytes
    (UZIX)
  • setprio (UZIX)
  • Rather crude loadable drivers (UZIX)
  • 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

  • ptrace, most of ulimit
  • root reserved disk blocks
  • banked executables
  • TCP/IP (in progress)
  • select/poll() (in progress)
  • Support for > 32MB filesystems (but first figure out how to fsck
    a giant fs on a slow 8bit micro!)
  • Smarter scheduler
  • Optimisations for disk block/inode allocator (2.11BSD)

Tool Issues

  • 6809 gcc and cc65 don’t have long long 64bit (for sane time_t)
  • SDCC can generate ROMmable binaries but not banked ones (hack fixes done)
  • None of the above have an O88 style common sequence compressor
  • CC65 can’t handle larger objects on stack, and lacks float support
  • We need a ‘proper’ 65C816 C compiler
  • ACK 8080 lacks floating point support

http://fuzix.org/

This thread was posted by one of our members via one of our automated news source trackers.

Where Next?

Popular General Dev topics Top

First poster: bot
Hush Keyboards with Hushboard. Yesterday while surfing the ASCII highways of IRC (yes, IRC) a URL linking to a MacOS application scrolle...
New
First poster: dwaynebradley
Maybe it’s just my experience, but Object-Oriented Programming seems like a default, most common paradigm of software engineering. The on...
New
First poster: wolf4earth
It’s official. Your private communications can (and will) be spied on - European Digital Rights (EDRi). On 6 July, the European Parliame...
New
First poster: bot
The overengineered Solution to my Pigeon Problem. TL;DR: I built a wifi-equipped water gun to shoot the pigeons on my balcony, controlle...
New
First poster: bot
GitHub - lucidrains/PaLM-rlhf-pytorch: Implementation of RLHF (Reinforcement Learning with Human Feedback) on top of the PaLM architectur...
New
First poster: bot
Rewrite it in Rust by ridiculousfish · Pull Request #9512 · fish-shell/fish-shell. (Sorry for the meme; also this is obligatory.) I thi...
New
First poster: peterchancc
Why I like Clojure as a solo developer | Biff. Most of the reasons fall into a few categories: data orientation, the JVM, and the REPL.
New
First poster: joeb
GitHub - crablang/crab: A community fork of a language named after a plant fungus. All of the memory-safe features you love, now with 100...
New
First poster: FatimaAdamu
Two US lawyers fined for submitting fake court citations from ChatGPT. Law firm also penalised after chatbot invented six legal cases th...
New
CommunityNews
After switching from Firefox to LibreWolf, I became interested in the idea of self-hosting my own Firefox Sync server. Although I had see...
New

Other popular topics Top

Exadra37
I am thinking in building or buy a desktop computer for programing, both professionally and on my free time, and my choice of OS is Linux...
New
dasdom
No chair. I have a standing desk. This post was split into a dedicated thread from our thread about chairs :slight_smile:
New
AstonJ
I ended up cancelling my Moonlander order as I think it’s just going to be a bit too bulky for me. I think the Planck and the Preonic (o...
New
Rainer
Not sure if following fits exactly this thread, or if we should have a hobby thread… For many years I’m designing and building model air...
New
PragmaticBookshelf
Learn different ways of writing concurrent code in Elixir and increase your application's performance, without sacrificing scalability or...
New
Margaret
Hello everyone! This thread is to tell you about what authors from The Pragmatic Bookshelf are writing on Medium.
1143 25883 760
New
wmnnd
Here’s the story how one of the world’s first production deployments of LiveView came to be - and how trying to improve it almost caused ...
New
PragmaticBookshelf
Author Spotlight: Tammy Coron @Paradox927 Gaming, and writing games in particular, is about passion, vision, experience, and immersio...
New
New
AstonJ
Curious what kind of results others are getting, I think actually prefer the 7B model to the 32B model, not only is it faster but the qua...
New