Fiwix
This article needs additional citations for verification. (April 2024) |
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.5.0 / (November 15, 2023 | )
Available in | English |
Platforms | i386 |
Kernel type | Monolithic |
Default user interface | Command-line interface |
License | MIT License |
Official website | www |
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 system call ABI compatible.
The FiwixOS 3.3 operating system is a Fiwix distribution. It uses the Fiwix kernel, includes the GNU toolchain (GCC, Binutils, Make), it uses Newlib v4.2.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], which Fiwix being currently a crucial part[5] of it.
Features
[edit]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 and signals.
- 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.
- Virtual consoles support (up to 12).
- Keyboard driver with Linux keymaps 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.
References
[edit]- ^ "FiwixOS - Virtual x86". copy.sh. Retrieved 2023-08-06.
- ^ "IRC #bootstrappable channel logs". logs.guix.gnu.org. Retrieved 2023-08-06.
- ^ "Live Bootstrap by Rick Masters - Handmade Meetups NYC". youtube.com. Retrieved 2024-05-09.
- ^ "Pulling Linux up by its bootstraps". lwn.net. Retrieved 2024-07-31.
- ^ "parts.rst file". github.com. Retrieved 2023-03-31.
Further reading
[edit]- Sanfeliu, Jordi (2003-10-16). "The GNU/Fiwix Operating System". osnews.com.
- "Fiwix: Unix-like kernel for the i386 architecture". Hacker News. 2024-07-05.
External links
[edit]