Norwegian ex-Amiga coder Kurt Skauen started designing & writing AtheOS in 1996. Until late 1999, AtheOS (a name derived from the Greek Goddess Athena) used to be called AltOS. AtheOS has even seen complete rewrites along the years, and today is on version 0.3.7. Come with me and see what AtheOS has to offer today to you. All your questions answered and we also include five new screenshots.
The AtheOS 0.3.7 download is pretty slim for a self-hosted, full Posix/GUI magnitude OS, as it is only 22 MB for the base installation, plus about 20 more MB for the (unavoidable) C/C++ developer’s tools (gcc, NASM, binutils etc). Installation is not really difficult, but it surely is not for the faint of heart or for those who have never installed anything else than Windows before in their lives. The installation process involves 3 floppy disks, a fat partition (used only to hold the base installation tarball), initializing the partition of your choice as AtheOS-fs (a small, 500 MB, partition should be enough), untaring the base installation package to the new partition and then configuring GRUB to boot load the AtheOS kernel or even install GRUB on the MBR (maybe the configuration of GRUB can be the most tricky part for most users in the whole installation process).
After you do your necessary configs on GRUB, you are up and ready to select AtheOS in your next boot. AtheOS loads in full GUI in less than 8 seconds in a modern PC (around 16 seconds in my old and slow laptop). You will soon be presented with the login screen window (AtheOS is fully multiuser, following the Unix model) and here you go in the AtheOS main desktop.
The shortcut icons on the left of the desktop are hard-coded, but they are good enough to load for you the main applications bundled with the base AtheOS installation. A (very) basic file manager, a CPU and memory monitor, Emacs, and of course, your best friend in the AtheOS world, the AtheOS Terminal, called ATerm. ATerm is basically an xterm-type terminal and it is vital to know how to use unix commands and Bash, as most operations under AtheOS will involve the command line (however, by being a modern OS, AtheOS is GUI-only, it does not offer a fullscreen text mode). Make sure you use a fixed font that includes the full character set instead of the one supplied with AtheOS because you will get screens like this, instead of like this. Copying the LucidaConsole ttf font from my Windows partition for example, and use it instead of the default fixed font, saved my day. AtheOS uses the FreeType library, so it supports True Type fonts, in a gorgeous anti-aliased mode.
In the AtheOS desktop you will also find the ‘Preferences’ application, which it will help you modify some of the AtheOS default settings. You will be able to change keymaps, set font defaults, change screen resolution and select a different window manager theme or modify color themes for the GUI widgets.
By pressing ALT+F1..F12 you can utilize the workspaces (virtual screens) available in AtheOS. Each workspacce can have its own resolution and color depth, but a common background image/color.
Two additional, must-have, third party applications that any AtheOS user should download is Launcher, which considerably eases the process of launching applications, and Locator, a file find utility. AtheMgr is also a must-have, as it manages the killing of bad-behaving processes, which can be very handy at times.
The GUI is pretty basic, but it is fully functional. Its app_server is written in C++ and the AtheOS GUI API is also 100% C++ and object oriented. Being a web designer myself, I am always nit picking a bit about the visual stuff, so I could say here that the GUI could do with the help of a GUI designer. Font and Widget spacing, general aesthetics are far from ideal, but as I said, works fine. That’s just more than enough for a one-man project, as AtheOS is. A lot of GUI-related classes have not been implemented yet, so several people who are porting or developing their GUI applications to AtheOS, are often bumping on limitations. Word has it that Kurt is planning to completely re-write the whole GUI part at some point.
AtheOS is an open source (GPL) and modern, multitasking, 32-bit OS, with a 64-bit journal attributed file system (similar to BeOS’ BFS in many ways), written in C and C++, and supports Symmetric Multiprocessing (SMP) which scales pretty well on my dual Celeron 533 Mhz. AtheOS is also POSIX compliant to a large degree (support for mmap() is missing though, but AtheOS is still far more Posix compliant that BeOS is for example). Posix applications written for Linux or other Unices, should easily compile under AtheOS too, with none or minor changes. The file system hieriarchy has a sense of duality I could say. While you will find a /usr/bin, /root and /var and other unix-alike directories just to satisfy the Posix demands for compliancy, most of these entries are symlinks to the ‘real’ AtheOS filesystem hieriarchy, which is a bit more compact (for example, /root symlinks to /home/root and /system to /atheos/sys/ while the ‘real’ / (not viewable by the user) only includes /atheos (with all the directories the user sees inside it) and /boot (which only holds GRUB and its configuration files)). Still with me?
Installing ported Posix applications is an easy process, you simply untar them to your /usr/ and then run the pkmanager -a /usr/* command to update the enviroment settings that these apps may require. Currently, there are around 210 applications available for AtheOS, but only about 35 of them are GUI-based. Of course, the flagship GUI application for AtheOS is ABrowse (included in the base installation), a very capable web browser, based on the KDE Konqueror’s KHTML KPart. It is funny to see ABrowse loading in 1 second on my K6 300 Mhz laptop’s extremely slow hard drive, while Konqueror takes 5-6 seconds to start-up on my dual Celeron 533 with 256 MB of RAM and the speedy IBM 30 GB IDE hard drive (yes, my whole KDE install is object-prelinked).
AtheOS, like with BeOS, loads all its drivers when it boots and then selects which one is supported and which one is not. There is no IDE driver so far, which is why AtheOS does not support reading from a CD-ROM or ‘talk’ to the hard drive directly. It uses the BIOS for reading and writting the hard drive and the floppy drive. I noticed on my AMD K6-2 300 Mhz laptop that each time AtheOS touches the floppy, the mouse cursor does jerky movements and becomes a bit unresponsive. While it behaves better than the Win9x/ME codebase on the specific floppy/mouse issue, it is still away from delivering a comfortable experience. Maybe the fact that you have to go through the BIOS has to do with this though (BIOS is 16-bit while AtheOS is 32-bit and it has to momentarily switch to 16-bit mode in order to ‘talk’ to the BIOS).
Not much hardware is supported on AtheOS, but it is enough to allow most of the PC configurations today to work flawlessly (you will need a FAT16/32 partition though to complete the installation – except if you are cool to mess up with 12+ floppy disks). There is an SBPro sound driver, 4 graphics drivers including nVidia chipsets (unsupported gfx chipsets will have to use a painfully super-slow VESA), all IDE hard drives and the SCSI ones that expose themselves to the BIOS are working, and 3 network card chipsets. PPP and modems are not supported and probably they never will, according to Kurt. 32 MB of RAM is more than enough for the OS itself, however if you are planning to do any kind of development, you will need at least 128 MB, as AtheOS VM and kernel scheduler can choke easily (eating up all your system’s resources with only resort to reset the PC) on anything less than 128 MB RAM in some ‘heavy’ GCC compilations. AtheOS’ swap support is disabled for now (there is one, but it does not work after it got broke after an AtheOS release 2 years ago).
Kurt does not accept code submissions for the crucial parts of AtheOS. AtheOS is solely his project, and the fact that it is licensed under the GPL does not make it immediately a ‘community’ project. Kurt accepts however source code for drivers or for some important bug fixes. You can always discuss the internals of the OS with Kurt or exchange opinions in design issues by using the develoepr’s mailing list, but that does not mean that your code will be accepted if you re-write something as critical as, let’s say, the VM.
Many do not understand this behavior, they cannot conceive the idea that an open source project can only be developed by a single man and lock the rest out. I personally understand Kurt, because I lived among people who are OS writters for a long time (and I even married one ;-), specifically, since 1995.
Writting a hobby operating system is all about a journey on gathering knowledge and having lots of fun in the process.
(late nights coding, lots of pizza, beer etc)
There is nothing more and nothing less into it. Hobby OS coders do not seek to overthrown Microsoft. They do not want to be the new Linus. They simply code to learn more and better themselves (which is proved by the fact that AtheOS has been re-writen in the past). If someone offers the code to you (‘ready-made spinach pie’ as we say in Greece), you learn nothing. If you just put together what different people have done at different times, it will result in confusion and bloatware, with no personal gain that fullfils the above ‘dogma’.
A lot of people are asking “why not use XFree?” and “why not port OpenTracker?”. The answer is because AtheOS features its own GUI (written from scratch with blood and tears), it does not need, in any way, XFree or anything similar. AtheOS GUI is C++ based, fully multithreaded and fully integrated to the rest of the system, things that XFree can not offer. Having XFree running in a rootless/server mode, side by side to the native GUI (the way it runs under MacOSX and QNX), is not a bad idea at all though. As for OpenTracker, we should not forget that OpenTracker is in some sense a ‘client’ of the BeOS filesystem, not just the Be Desktop. Kurt tried in the past looking into a port (after a hoard of AtheOS/BeOS users pressing the matter), but Tracker is so tied to the BeOS API & design, that the port has proved difficult. However, Kurt has already promised to update the kernel in order to introduce a full port of PostgreSQL 7.1 for AtheOS 0.3.8.
Personally, what I would like to see on AtheOS, is not applications. AtheOS is an interesting OS experiement in my book, so trying to port Mozilla or the Evolution email client does not really fulfill the goal of AtheOS, at least not at this point in time. Personally, I would like to see a jump to GCC 3.x which generates better code. Aterm fixes to support ncurses properly with full coloring. A better VM and kernel scheduler. Enable write-combine (MTRR support in other words) and double/back buffer everything, which can help increase considerably the speed of any 2D driver (including VESA) and offer a flicker free GUI. Support for NTFS or CD-ROM devices, as WindowsXP users already cannot install AtheOS without the use of a dozen of floppies. Also, another imperative feature request is the addition of a native debuger, as the only way to debug your applications on AtheOS today is… printf().
Another thing that I should mention and I find pretty funny, but also shows that lots of curious people love being ‘geeks’ and mess around with alternative OSes (which is a good thing for the OSNews business ;), is the fact that Kurt never advertised his OS beyond his personal web site. He never announced a new AtheOS version to the media or to newsgroups. The geeks found AtheOS, AtheOS never seek them. However, Kurt appreciates feedback and this is why he has put up the developer’s mailing list, plus, if you are a driver writter or you want to be one, here is your chance. AtheOS is a virgin land awaiting to be filled with new projects. Also, AtheOS definetely needs more GUI applications, so if you want to be the very first that will write/port an email client or a newsgroup client for AtheOS, here is your chance too.
So, for whom AtheOS is for? Despite its almost non-existant GUI application base, AtheOS is made in such a way that it is truly easy to use. However, there are not many applications so far to justify a full switch from a mainstream OS to AtheOS. I would highly recommend AtheOS to C/C++ developers (who could help grow the OS), but not to simple users yet. If you are geek enough though (like myself), and you have a small partition available, give it a go, try AtheOS today!