Sortix is a small self-hosting Unix-like operating system developed since 2011 aiming to be a clean and modern POSIX implementation. There's a lot of technical debt that needs to be paid, but 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.
This release 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.
Highlights
This release contains a lot of notable new features:
- Shell line editing, completion and history.
- Pthreads.
- Signals.
- Unicode support.
- Symbolic links.
- Regression tests.
- New utility programs.
- New system interfaces.
- Reduced memory consumption.
- Same build system for native and cross building.
- Incorporates Sortix libz, a clean fork of zlib.
- Considerably improved ports tree.
- And lot of miscellaneous improvements, cleaning up, and bug fixes.
This release includes these ports of third party software: binutils, bison, bzip2, dash, diffutils, gawk, gcc, git, grep (GNU), gzip (GNU), hello (GNU), libffi, libgmp, libiconv, libmpc, libmpfr, libSDL, libstdc++, libz (GNU), make (GNU), patch (GNU), quake, sed (GNU), tar (GNU), and xz. More ports are available in source form only.
Installation and More Information
You can get more information about Sortix at the official website:
https://sortix.org/
You can download Sortix 0.9 for x86 or x86_64 from these locations:
https://users-cs.au.dk/~sortie/sortix/r ... .9/builds/
You can download the source code for this release (with or without included third party ports) at:
https://users-cs.au.dk/~sortie/sortix/r ... .9/source/
Or you can simply browse the git repository:
https://gitorious.org/sortix/sortix/source/sortix-0.9
Be sure to read the official user guide at:
/share/doc/user-guide
https://sortix.org/doc/user-guide
https://users-cs.au.dk/~sortie/sortix/r ... user-guide
Participation in Development
You can either attempt to develop the system using itself (not recommended) or by following this cross-development tutorial:
/share/doc/cross-development
https://sortix.org/doc/cross-development
https://users-cs.au.dk/~sortie/sortix/r ... evelopment
Development is coordinated in the #sortix IRC channel at irc.freenode.net
Missing Features
It's important to understand what limitations Sortix has. Most of these areas are being worked on, but their completion were cut from this release.
- Lots of missing features in the shell.
- No desktop environment with a graphical user interface.
- No man pages (next release will use mdocml).
- No mouse driver.
- There is only a single terminal.
- No SATA harddisk driver (support not merged yet).
- No sound drivers.
- No graphic drivers for real hardware.
- No shared memory mapping mappings.
- No networking except Unix sockets.
- No Unicode font rendering (outside code page 437).
- No proper terminal implementation (curses is not possible yet).
- No real users and groups implementation.
- No dynamic linking.
- And a bunch of bugs.
Known Problems
There's a few important problems that you should know of:
- GRUB may simply lock up with no message if you don't provide enough memory.
- Quake save games doesn't work as printf doesn't support floating point numbers yet, you will be unable to load saved games.
This release was primarily developed by me, but we'd like to thank all the people that helped test the release and gave advise.
Screenshot