AtheOS
garethwi writes "A new OS has been released, called AtheOS. It has been designed from the ground up for Intel architecture, and already has a lot of software for it. The screenshots aren't too bad either. " Quite a lot of people have been submitting this over the last few days - what does everyone think about it?
But what *IS* it with this idea that designing for a specific platform is anything but a short-sighted, ill-considered, idea?
You've surely got a point there. However, AtheOS seems to have a POSIX/Unix style API (at least the lower-level stuff). So applications are portable, even if the OS is not. It's one of the arguments Linus made back in the Minix vs Linux flamewars. I can't agree with it entirley (I like portability too), but there is, IMHO, some value to it.
If the GUI library were ported onto Xlib or something, developers would have few problems porting stuff to/from Unix. And keep in mind that even if a complete kernel rewrite were necessary to port to Alpha or PPC, applications should be totally portable. Consider Linux. Which would be harder to completely reimplement: the kernel and associated device drivers, or all of the applications living on top of it?
Kurt has done an amazing job writing a new OS.
The Atheos is a free GPL'ed operating system, using many of the popular GNU tools, and some opensource programs have been ported (Apache for instance).
The system still suffers from a lack of drivers, but those will get there eventually.
One of the major differences between Atheos and Linux is that Atheos does not use an X server to do graphics. The graphics is handled by an application server, that also handles IPC. This is a BeOS like approach to doing things.
This system is still in the early stages, but it works really well and rarely crashes.
The installation procedure is horrible, but it is manageble.
So I can only encourage you to try it out
The gui can be replaced in no time as it is loaded as an addon to the application server. And please notice that the application server is not anything like X-Windows. It is more like the appserver found in BeOS.
As for the software ports, I think Kurt modified XEmacs quite heavily before it compiled. And QT is not available, even though there are some similarities between QT and the Atheos API.
The kernel implements some of the LibC functionality to allow easy porting of some Linux applications!
From Atheos page (http://www.atheos.cx)
Mirrored screenshots:
Shot 1, Shot 2, Shot 3 and Shot 4
What is AtheOS?
AtheOS is a free operating system for the Intel architecture released under the GPL license. I have seen quite a few anouncements of "promising" OSes with "great potential" during the development of AtheOS. The problem is that when I follow the links I normally find a description of the concept, a floppy-bootloader written in assembly, and not much else. AtheOS is a bit more mature, and is already running quite a lot of software. As a "proof" I can tell that the server you currently are browsing is running the AtheOS operating system. AtheOS is not ment to be a new Unix clone (like Linux and *BSD) but a new clean desktop OS. It does not run X-windows, but has it's own heavy multithreaded GUI system. Not using X has its ups and downs. The big down is ofcourse the lack of application's that can be easily ported to the OS. Another down is that the current GUI does not support remote display, even though implementing it should not be hard at all. The up's is that the GUI interface is much more high-level, and is much better at defining how a GUI should work. This leads to better consistency between applications. Drag and drop, clippboard, and other forms of high-level communucation between apps are defined by the OS. This will hopefully lead to applications that work well together and that give the user an impression of a compleat system with consistency between applications. I belive this consistency is important so the user dosen't have to start from scratch each time she learns a new program to know.
The AtheOS GUI consists of two main components: An application server and a dll providing a C++ interface between the server and the application. The GUI is therfore programmed through a C++ API providing windows containing a hierarchy of widgets that all have their own graphical environment.
The kernel was written from scratch. It supports SMP (Symmetric Multi Processing), has a built-in network TCP/IP stack. It supports loadable device-drivers and file-systems. It provides threads and processes with several powerful communication systems that makes it easy, efficient and safe to create server/client implementations where both the server and the client run on the same machine. Threads can communicate through message ports (most common), shared memory, posix signals, semaphores, pipes, pty's, TCP/IP, and propably a few other method's as well.
If you have any questions or comments you can reach me at kurt@atheos.cx
Frequently Asked Questions
Q: When trying to boot AtheOS the screen flicker for a while and then everything is dead. Why?
A: It might be due to missing fonts in the atheos/sys/fonts directory (see INSTALL). If that is not the case check the boot.ini. Make sure the memory and boot-device settings ar ok. You might also try to disable some features by uncommenting any of the DISABLE_* entries in boot.ini If possible, taking a look at the kernel output from the seraial port as configured in boot.ini can often geve a clue to what when wrong.
Q: Why does my serial-mouse dont work?
A: Propably cause it is in COM2, currently only COM1 is scanned for a mouse. If you use a serial-mouse you MUST set the DEBUG_PORT to 2 (in boot.ini) even if you dont have a serial cable attached for the kernel-debugger.
Q: I have run AtheOS from the native FS for a while, and now I installed a new kernel, but it seems like it still boot with the old one. Why?
A: Since the bootloader don't know how to load the kernel from AFS you must also install it on your FAT partition (in atheos/sys).
Q: AtheOS boots, and the GUI seems to be working, but there is a problem with the mouse-pointer, it leaves a trail of pixels when moved, what's up?
A: The problem is most likely that you have selected a 15-bit screen-mode. Both the Matrox driver and the Vesa20 driver is broken in that they list's more screen-modes than the render-module supports. Only 16 and 32 bit are fully supported by now.
Q: What kind of architecture is the kernel built around? Monolitic, micro-kernel, nano-kernel?
A: I often ask myself that question to :) The kernel is very modular and the it have a well defined interface between the kernel and it's device-drivers and file-systems. So given that each component comunicate through a thin defined interface, and don't know much else about each other, it ressembles a micro-kernel. I am not sure if this is the right term though, since all kernel-components lives in kernel-space and is not protected from each other, this is all properties from a monolitic-kernel. I am a bit confused :)
Q: The GUI look very Amigaish, is it an AmigaOS clone?
A: No. In the beginning it was actualy ment to be one, but this days there is nothing resembling the AmigaOS in AtheOS other than the window-borders. This seems to be rather hard for the Amiga-community to grasp though. They still think AtheOS is an Amiga clone :) Hey the Window borders look like on my Amiga! It must be an Amiga clone Right? I find it rather amusing to see that the Amiga-hord think that the single-most important property of an OS is the window-borders :) BTW: You can replace the border-look by writing a plugin to the appserver so I guess the Amiga look will go away quite soon.
Q: Is it a BeOS clone?
A: No, AtheOS is not meant to be a BeOS clone. I have never run BeOS myself, but I have read a lot about it, and I realy like the high-level API's and the GUI. The AtheOS GUI is very inspired by BeOS, but it is not meant to be a clone. Even though many of the general concepts is similar, there is also many differences in the API details.
That's the kind of thing that terrifies me. I already have Windows. Why would I want another system that wants to devote its existance to a single platform?
Now, this system is probably better than Windows. Hell, I can't *imagine* how it could be worse.
But what *IS* it with this idea that designing for a specific platform is anything but a short-sighted, ill-considered, idea? Do you remember the amount of trouble Linux/alpha was? The amount of effort that the *BSD's had to put into getting the early Alpha and PPC ports? It's a *HUGE* amount of work to redesign. Design from the ground up for *generic computers*, and let the individual machines cope. You'll end up better off.
(Remember the Apple ads based on using 486-optimized Bytemark code on PC's? Same problem. If you tie yourself down, well, you're tied down.)
My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
Now, not all of this translates directly to Linux: there's a big difference between a programming language and an OS. But the phenomenon is the same. Right now, the average Linux user is much more computer savvy than the average windows or mac user. The "average" EROS, AtheOS, JavaOS, or even OpenBSD user is probably significantly more computer savvy than the average Linux user. Just as you aren't going to adopt an emerging language as your first programming language, you aren't going to start with a fringe operating system. But using these systems doesn't necessarily make you better at anything.
The moral: expect Linux users to become as irrational and fanatical as users of any other operating system. If you don't like it, the only real solution is to stop thinking of "the linux community" and find some other way to define the people you want to identify with.
--Kevin
Why challenge the urge to create a new operating system? What if Linus had said, "Oh, MINIX is just fine for what it does. Why bother changing it?"
You forget the simple fact that human beings are creative and need a challenge. Perhaps the developers think Linux is too krufty? Perhaps they wanted a GOOD API for a change? What if they just wanted an open source achievement like that of BE?
When confronted with the prospect of an unknown ocean, did Columbus shrug and say, "I already have a country to live in, why would I need to visit another?" What if Ford had said, "We already have horses, why would we need something different?" What if ID's developers has collectively decided "We already have Wolfenstein 3D, what more could we do?"
I will close with a quote from the first posting Linus made to Usenet about his then nameless OS: Do you yearn for the days when men were men and wrote their own device drivers?"
By God, some of us do.
Matthew Miller,
"Live Free or Die." Don't like it? Then keep out of the USA