This documentation presents the UNIX kernel I wrote in 1994-1995. It's an almost complete implementation of the POSIX.1 standard (IEEE Std 1003.1-1988). My main motivation was learning about operating systems design and architecture, kernel algorithms, resource allocation, process scheduling, memory management policies, etc. The result is a new POSIX compliant UNIX kernel with many features real operating systems have: virtual memory, demand paging, protection, swapping, etc. It is not perfect, it probably has bugs, but in time they will get fixed and the kernel will become more stable. Since many high-quality free software packages are available on the Internet, coming especially from the GNU project, I have ported many of them to my system, with the idea of getting real functionality.
The Thix Operating System is fully functional at this time. Many free software packages have been succesfully compiled/run under it, including development tools such as the GNU C/C++ Compiler suite. However, there is no networking support and the only drivers available are for floppy disks, (E)IDE hard disks, printers, virtual terminals, mem, kmem and null.
The format of the executable is still a.out which is very hard to maintain due to its so many variants. Maybe I'll switch to ELF one day.
Thix has been developped under Linux with GCC. Many thanks to all the people that made this possible.
Thix has been reviewed as a course project in the Department of Computer Science at University of Salzburg. The review is available here. I'd love to read it, but unfortunately I can't read German.
December 2006, i.e. 10 years later... Yeah, it's been that long since I touched this stuff. I could never get Thix to work in VMware, not straight out of the box anyway, but now that I got a Mac and Parallels seems to handle it quite well (minor keyboard issues notwithstanding), I figured I'd put an image out there for people to play with.
I have created 3 images that can be useful for a number of things (development, study, or plain curiosity). The first one is a VMware image with an old distribution of S.u.S.E Linux (circa 1996). This distribution has the old versions of GCC and binutils required to compile Thix. I've set up two accounts, root and tudor, both using the account name as the password. The tudor account contains the sources for the kernel and all the tools that have been ported to Thix. I tried getting the same Linux version to install in Parallels under Mac OS X (Tiger) as well as convert the VMware image to Parallels once installed, and failed miserably in both cases, so for now development is under VMware and testing under Parallels.
The more exciting part though are the other two images, one which is a full installation of Thix complete with a rescue floppy disk. These are raw images (the disk one corresponds to an IDE disk with C/H/S=163/16/63 geometry). Unfortunately, I couldn't get Thix to work in VMware, so these images, as you can tell from the file extensions, are for Parallels.
... now back to the old stuff.
Thix is distributed under the GNU Public Licence. You can download the Thix kernel sources and the sources of the fsck utility, a great tool in repairing damaged Thix File Systems. To get an idea of how Thix works, you can download the raw compressed image of a 3.5" bootable demo floppy. Uncompress it with gunzip, dump it on a formatted 3.5" floppy and boot from it. At the login prompt type root to enter as superuser or guest to log in as an ordinary user. The root password is root and the guest password is guest.
If you are curious and want to install the entire Thix distribution (including the GNU C compiler and the related utilities), just download the sources (you will need them anyway), and read the installation instructions in the INSTALL file.
Basically, you will have to download the install floppy and the packages in the distribution: