So, this weekend I'm playing with Fiwix. Fiwix (https://fiwix.org/) is a small hobbyist operating system for i386 that aims to be Linux 2.0 compatible while being small enough that a single human could understand it as a whole (it's ~30k SLOC, self-hosted, and can be built with tcc).

A couple of years ago Fiwix was used in a fun project of "let's bootstrap a Linux system with only tiny tools that can be understood by a single person": https://github.com/fosslinux/live-bootstrap/blob/master/parts.rst

My refreshed interest in it comes from multiple sources: first, there is now a TCP/IP stack (still WIP). Second, GNU/Linux is *gestures ambiguously* in a strange state, so it is interesting to see how far one could get with a completely non-BSD non-standard tiny, toy-like operating system.

The installation is quite straightforward. "Please keep in mind this kernel is not yet suited for production. Use at your own risk!" is, in itself, a proof of reliability.

This is a beginning of a slow-going🧵

FiwixOS comes with quite a few ports, and will require close to 1GB on a disk. I suppose this is because the packages are not particularly optimised in size. The biggest packages beyond the base and GCC are Python3, Perl, ZX Spectrum emulator and Doom/Heretic.

Also, look at this Halt message, so cute!

The system is small, but functional. At the same time, there are quite a few sharp corners, unfinished and untested things.

The list of packages/ports is small, so I want to bring a few things in. Is it going to be easy? Let's find out!

🧵 cont

The first fun challenge is exchanging files with Fiwix. You see, Fiwix only supports ext2 (3?), Minix, and ISO9600 (CD drives).

My daily driver is (still) MacOS, so I cannot just mount the ext2 partition to send files over. I can create an ISO image with the files, but this is a one-way trip. Would be nice to add the support for FAT16/32 disks to Fiwix, right?

Well! First, I simply created a new CD image with mtools-4.0.49.tar.gz. Fiwix recognised the CD, and I was able to unpack mtools archive. Then I ran `configure`, and then edited a few things here and there (mostly mis-configurations in the config file). Then I ran `make`, and few minutes later I got myself a working set of tools to access FAT-formatted disks. Now I can copy files between Fiwix and MacOS, neat.

🧵 cont

@nina_kali_nina
Hmm, I wonder if Fiwix has 9P support. It would make working in a VM easier (QEMU supports 9P for shared folders)
@kirtai I seriously doubt that :) but if it can be compiled with C in userland, it can be done