GNU/Fiwix is an operating system kernel based on the architecture of UNIX and Linux.
GNU/Fiwix operating system is designed exclusively for educational purposes, so the kernel code is kept as simple as possible for the benefit of students.
It runs on the 32-bit x86 hardware platform, and is compatible with existing GNU applications.
Product's homepage
Here are some key features of "GNU/Fiwix":
· GRUB Multiboot Specification compliant.
· Fully 32bit protected mode non-preemptive kernel.
· For Intel 80386 processors or higher.
· Real multitask (kernel tasks at level 0).
· Protected task environment (independent memory address per process).
· Interrupt and exception handling.
· Semaphores.
· Signals.
· Virtual memory management up to 4GB.
· Demand paging with Copy-On-Write feature.
· Linux system calls compatibility.
· Linux ELF-386 executable format support (statically and dynamically linked).
· Round-Robin based scheduler algorithm (without priorities).
· VFS with Linux EXT2 filesystem support (read only).
· Keyboard driver with spanish/catalan and english keymaps (hard coded).
· Floppy disk device driver and DMA management.
· IDE/ATA hard disk device driver (read only).
Requirements:
· Standard PC architecture
· Intel IA-32 and compatible processors (80386 and Pentium)
· 4MB of RAM memory
· Floppy disks (3.5" and 1.44MB)
· Keyboard (US and ES/CA)
· VGA graphics adapter
What's New in This Release: [ read full changelog ]
· Optimized the segment descriptors code and reduced a lot of redundant assembler code in the GDT and IDT initialization.
· Optimized the function to calculate de processor clock speed.
· Isolated a lot of i386 machine dependant code and other cosmetic changes.
· Improved the IDE/ATAPI device detection and fixed a good number of bugs.
· Improved the initial environment of the INIT process.
· Reduced the memory footprint of the process table.
· Fixed some termios bugs in the console driver that affected the behaviour of the BS and DEL keys.
· Fixed an out of bounds subscript in the command line arguments array.
· Fixed a missing creation of the minors list of the IDE ATAPI CDROM that prevented working CDROM devices in some cases.
· Fixed to disable the RAMdisk driver when there isn't enough free memory.
· Fixed a kernel page fault when showing the contents of /proc/PID/cmdline and /proc/PID/environ.