Fiwix
Operating system
From Wikipedia, the free encyclopedia
Fiwix is an operating system kernel based on the UNIX architecture and fully focused on being POSIX compatible. It is designed and developed mainly as a hobbyist operating system, but it also serves for educational purposes. It runs on the i386[1] hardware platform and is compatible with a good base of existing GNU applications. It follows the UNIX System V application binary interface and is also mostly Linux 2.0 i386 system call ABI compatible.
| Fiwix | |
|---|---|
FiwixOS 3.5 with Fiwix kernel v1.7.0 | |
| Developer | Jordi Sanfeliu i Font |
| Written in | C, Assembly |
| OS family | Unix-like |
| Working state | Current |
| Source model | Open source |
| Initial release | 1.0.0 (April 23, 2018) |
| Latest release | 1.7.0 / (November 15, 2025) |
| Available in | English |
| Supported platforms | i386 |
| Kernel type | Monolithic |
| Default user interface | Command-line interface |
| License | MIT License |
| Official website | www |
The FiwixOS 3.5 operating system is a Fiwix distribution. It uses the Fiwix kernel, includes the GNU toolchain (GCC, Binutils, Make), it uses Newlib v4.5.0 as its C standard library, and Ext2 as its primary file system.
Between October 2022 and the whole 2023[2] the Fiwix kernel accepted a series of patches that were necessary to be able to be compiled with TCC. This was a necessary step into the whole bootstrapping process[3] to build a complete Linux distribution from scratch,[4] with Fiwix being currently a crucial part[5] of it.
In January 2026 appeared a project[6] that acts as a full-source bootstrap chain for NixOS
Features
Features according to the official website include:
- Written in ANSI C language (Assembly used only in the needed parts).
- GRUB Multiboot Specification v1 compliant.
- Full 32bit protected mode non-preemptive kernel.
- POSIX compliant (mostly).
- For i386 processors and higher.
- Process groups, sessions and job control.
- Interprocess communication with pipes, signals and UNIX-domain sockets.
- UNIX System V IPC (semaphores, message queues and shared memory).
- BSD file locking mechanism (POSIX restricted to whole file and advisory only).
- Virtual memory splits (user/kernel): 3GB/1GB and 2GB/2GB.
- Linux 2.0 ABI system calls compatibility (mostly).
- ELF-386 executable format support (statically and dynamically linked).
- Round Robin based scheduler algorithm (no priorities yet).
- VFS abstraction layer.
- Kexec support.
- Ext2 filesystem support with 1KB, 2KB and 4KB block sizes.
- Minix v1 and v2 filesystem support.
- Linux-like Proc filesystem support (read only).
- ISO9660 filesystem support with Rock Ridge extensions.
- RAMdisk device support.
- Initial RAMdisk (initrd) image support.
- SVGALib based applications support.
- PCI local bus support.
- UNIX98 pseudoterminals (pty) and devpts filesystem support.
- Virtual consoles support (up to 12).
- Keyboard driver with Linux keymaps support.
- PS/2 mouse support.
- Frame buffer device support for VESA VBE 2.0+ compliant graphic cards.
- Framebuffer console (fbcon) support.
- Serial port RS-232 driver support.
- Remote serial console support.
- QEMU Bochs-style debug console support.
- Basic implementation of a Pseudo-Random Number Generator.
- Floppy disk device driver and DMA management.
- IDE/ATA hard disk device driver.
- IDE/ATA ATAPI CD-ROM device driver.