The Sortix OS
Post by: max

SORTIX - A small self-hosting Unix-like operating system developed since 2011 aiming to be a clean and modern POSIX implementation. Though there's a lot of technical debt that needs to be paid, it's getting better. Traditional design mistakes are avoided or aggressively deprecated by updating the base system and ports as needed. The Sortix kernel, standard libraries, and most utilities were written entirely from scratch. The system is halfway through becoming multi-user and while security vulnerabilities are recognized as bugs, it should be considered insecure at this time.
Sortix 0.9 was released on December 30, 2014 has 144k lines of source code. It is a very considerable improvement upon Sortix 0.8 and contains significant improvements all over the base system and ports. The previous release made Sortix self-building and this release works hard towards becoming fully self-hosting and installable. Several real-life prototype self-hosting installations of Sortix exists right now, I expect the following 1.0 release to make real Sortix installations available to the general public.
Sortix is available for ix86 and x86_64 systems.
System Requirements
- A 32-bit x86 (with SSE) or 64-bit x86_64 CPU.
- You likely need twice as much RAM as the size of the initrd, i.g. the size of the bootable disk. 1 GiB RAM is recommended.
- A harddisk or cdrom drive or support for booting from USB.
- A multiboot compliant bootloader if booting from harddisk.
- A Parallel ATA harddisk, if you wish to access it from Sortix. The AHCI driver has not been merged yet.
- Everything is part of an coherent whole.
- Homemade kernel.
- Homemade libc.
- POSIX implementation.
- NetBSD's libm (will likely be replaced by musl's libm).
- Homemade shell utility programs.
- Shell environment with common Unix programs.
- Documentation and user guides.
- Games (asteroids, quake).
- C and C++ compilers.
- Development headers and libraries are included.
- Text editor.
- Unicode support.
- System source code is included.
- Ports of third party programs and libraries.
- User-space filesystems.
- ext2 filesystem support.
- mbr partition table support.
- PATA PIO harddisk driver (AHCI driver not merged yet).
- Memory mapped IO.
- Unix sockets.
- Kernel debugger.
- Non-blocking IO.
- Date and time support.
- Process groups.
- chroot.
- Line editing in the shell.
- Pthreads.
- #! magic sequence supported.
- Unix Signals.
- Symbolic links.
- Regression tests.
- BGA graphics driver for virtual machines.
- Incorporates Sortix libz, a clean fork of zlib.