Sortix

Sortix

Sortix is a hobby operating system. It was originally created as a tool to learn more about kernel and operating system design and implementation. Today is transforming into a real operating system. The standard library and kernel is rich enough that some third party software can and has been ported to Sortix. However, the system remains quite limited as of this writing. Many features are missing such as proper filesystem support, bitmap graphics, and networking. Proper filesystem support is currently being added.

The system aims to be an Unix-clone and is heavily based on POSIX. However, I've drawn much inspiration from systems such as Plan 9, GNU/Hurd and MINIX. Indeed, I plan to construct a micro-kernel with user-space filesystems, per-process namespaces, replacing many system calls with filesystem nodes, and other exciting features. This design will make it safe to let normal users perform operations such as mounting and create their own "sub-operating-system" environment where they are the root.

The source code of version 0.6 has 30k lines of source code (released 18 Mar 2012), version 0.5 had 23k lines of source code (released 06 Dec 2011), while 0.4 had 16k (released 08 Sep 2011), and version 0.3 only had 8k (released 28 May 2011). Development of Sortix began around 8 Feb 2011.

Builds and Downloads

You can boot Sortix from a CD-Rom ISO (recommended), install the kernel manually by extracing a tarball and configuring the bootloader manually, or use a pre-built Debian-compatible package (may not work), or compile the source code yourself. I recommend burning Sortix to a CD/DVD/USB or booting it using a virtual machine.

You can download the latest stable release of Sortix from https://cs.au.dk/~sortie/sortix/release/current/.

Unstable Nightly Builds

These builds are development snapshots towards the release of Sortix 0.7. They often contain more features and better code than the stable versions, but may be unstable and may not work correctly.

You can download the nightly builds from https://cs.au.dk/~sortie/sortix/release/nightly/.

Previous releases

You can download the older releases of Sortix from https://cs.au.dk/~sortie/sortix/release/. Please note that these are no longer supported.

System Requirements

Sortix has very low system requirements. It also works well under virtual machines such as VirtualBox and Qemu.

  • A 32-bit x86 or 64-bit x86_64 CPU.
  • A dozen megabytes of RAM.
  • 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. SATA is not supported yet.

Development Code

You can retrieve the current git master from our gitorious project page.

Running Sortix from a CD

Simply download the bootable CD image and burn it to a CD/DVD/USB, set up your BIOS to boot from CDs/DVDs/USBs first, put the medium in your computer and reboot.

In GNU/Linux you can burn the CD image direct to an USB stick by running "sudo dd if=sortix-0.6_x64.iso of=/dev/sdx", where sdx is the device name of your USB stick. This will wipe the file system on the USB stick and replace it with the CD filesystem. To recover your USB, simply format a new filesystem upon it. Please note that this process will destroy all the current data on the USB, but it does save you from using a recordable CD.

Installing Sortix permanently

You need an x86 processor, a GNU/Linux host system, and Grub2 to follow these installation instructions. The recommended way of installation is downloading the .deb package and installing it with your package manager (may not work on all installations). This also makes removal easier.

Alternatively you can install or build it manually. To install it manually, download the tarball and extract it into your root directory, such that sortix.bin ends up as /boot/sortix.bin. Now run "sudo update-grub" to update your Grub configuration such that Sortix will be an option at boot time.

These instructions should work perfectly in Trisquel, Debian, Ubuntu, and Mint. You need at least an i486 to run Sortix, this means it works on all modern x86-based CPUs.

Building

To install Sortix, first configure, build and install the tool mxmpp, which is used to build the standard library. Typing make in the main source directory will build a copy of the whole Sortix system. You may need to install additional software to compile the system, for instance, you need grub2 to make an iso. You can control whether a 32-bit or 64-bit build is made by specifying CPU=x86 or CPU=x64 when running make. By default, Sortix is compiled to the same architecture as the host compiler.

Install on the same computer

Running "sudo make install" will install it on the current computer. This will install the Sortix kernel, copy any needed grub configuration and reconfigure grub automatically. Sortix will be available at the next boot.

Install it remotely on another computer

For development usage, it may be useful to test it on another computer. Please edit the makefile in the main directory to configure this feature properly. Simply type "make install-remote" to build the system, copy the source code to the destination computer, and reboot it. The grub configuration on the test computer will not be updated, so you'll need to do that manually.

Creating a bootable CD image

To create a bootable CD image, simply run "make iso" in the main source directory. This will create a bootable iso image that can be burnt to CDs, DVDs and USB sticks.

Creating a Debian-compatible package

To create a debian-compatible package, simply run "make deb" in the main source directory. This will create an archive of the source code, an archive of the compiled system, and a .deb file that can be used by debian-compatible package managers.

License and Disclaimer

Copyright(C) Jonas 'Sortie' Termansen <sortie@maxsi.org> and contributors 2011, 2012.

The Sortix kernel, the filesystem servers, the initrd tools, the utilities, the games, and the benchmark programs are licensed under the GNU General Public License, either version 3 or (at your option) any later version.

The libmaxsi standard library is licensed under the GNU Lesser General Public License, either version 3 or (at your option) any later version.

Any experimental repositories and branches on Gitorious related to Sortix but which contains no copyright statements are also released under the GNU General Public License, either version 3 or (at your option) any later version. These things are so experimental that I didn't add copyright statements yet.

The Sortix code tree may contain source code and binaries that are part of GNU GRUB. These are naturally released under GNU GRUB's free license.

Sortix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License and the GNU Lesser General Public Licenser files for more information.