Open Source and Atari
As the title would suggest, this is an article that goes into depths not so much about the concepts and ideals of open source but instead dilvulges in plain detail how open source has helped the world, and specifically Atari. It will also go into detail as to describe my future plans and how open source could lead Atari to a very bright future.
To start we should probably go through a little bit of background of about how open source software has helped Atari already. Although the MiNT license may have originally been a proprietary closed one, I am unsure, MiNT is now very much so open source. The MiNT licensing scheme is a very BSD style "do whatever the hell you want with this code" idea. The MiNT kernel is perhaps one of the most unique pieces of software in the industry and one of the reasons Atari computers have remained so attractive to me in this day in age, along with the amazing power of MagiC. MiNT closely resembles a typical Unix kernel. The one most people would tend to be familiar with is Linux which originally started on Intel x86 platforms but is now portable to even Atari computers today. Unix kernels and operating system ideals offer a unique set of advantages and disadvantages. I believe that for both the knowledgeable and novice computer user, the benefits are endless. A typical unix kernel offers POSIX compliance which means a uniform programming and interface. There are several other features but my knowledge is not good enough to accurately detail them.
So then why is MiNT so special. Well MiNT offers a unix kernel to Atari but unlike all other unix systems that I know of, it runs over top of the original operating system. MiNT is by definition the perfect harmony of TOS and Unix. The result is the ability to run ported applications for both console and X11 (with the X server graciously provided by AltF4) side by side of TOS and GEM applications. This unique feature is unseen by most things with the notable exception of cygwin under Windows.
Okay enough, what is this article really about? Well open source and especially unix programming has been designed from the beginning to be the ultimate in portability. A good unix kernel will allow gcc to run. A properly ported glibc (the gnu C library the gcc relies on) will allow most programs to compile. This has been done with MiNT-lib which impressively enough is a mostly rewrite of glibc to make it specially compatible for the Atari and MiNT. How have we benefitted so far? On my desktop I can have one window open with AtarICQ and a console window open with pine. While the average user doesn't think much of this, this is some fantastic stuff!
Because of unix's layered interface and open source ideals, a lot of unix software is now available to us. Atari programmers don't have to worry about creating that software. Proper programming and a layered interface means ease. Atari was never much of a console or server system, but now with the unix foundation and open source console software and daemons, we have it all. Ftp servers, ssh, ssl, etc.
Now take a commonly used program such as Gaim on linux. Gaim is an instant messenger client that supports a wealth of protocols and just plain works great. In order to be able to port Gaim to the Atari we must focus on having the layers available that gaim needs. Layers being dependencies. On linux gaim relies on kernel -> glibc (and BSD sockets) -> X11 -> Gdk/gtk -> gaim. Now how do we take something like this X program and bring it to the Atari? First we must analyze what Atari already has. Kernel -> glibc (and bsd sockets) -> X11.... Okay now stop. Gtk/gdk is a widget/drawing set that has been designed from the ground up to be portable across display systems. Which means rather than running it on X11, instead we could use it with direct support for say.... VDI and AES. Hmmmm. Therefore if we were to take on such a project, we could abandon X11 entirely and save resources. A most notable effort of this concept would be the fact that you can run GTK programs on a simple linux frame buffer with no X11 windowing system. They simply made it use linux frame buffer calls and designed a simple window manager. Well Atari already has a window manager - and a darn good one. AES. No worries there.
So where do we go from here. Well GTK/GDK has a lot of dependencies that will directly port over to Atari, but nobody has actually bothered to support these libraries due to a lack of need. These libraries would include glib, pkg-config, and a few other things. Porting these programs should be easy. But unfortunately I have no Atari computer with a good size of RAM to compile this stuff with. When my CT60 arrives, that is an entirely different story.
So what is GTK/GDK. GTK is the top level interface to program a windowed application. It is at the top end a set of widgets. Buttons, pictures, etc. The things you see displayed in a typical computer "window". GDK is the supporting layer for Gtk that makes it work on whatever particular system. This layered design is extremely advantageous to crazy Atari programmers (and wannabe's like myself) because it is a specific setup that can be converted to use VDI and AES all in one shot.
The end result will be astounding. GTK programs for unix will compile effortlessly on Atari computers. Notable programs? GNUcash - A double entry accounting program that rivals commercial equivalents costing hundreds of US dollars, Gaim - Hands down the best instant messaging client. It supports all protocols and allows multiple signons. Reliable, fast, efficient, how about gnu-tella for Atari? Gtk-gnutella would compile without a hitch. The possibilities are absolutely endless for a very small amount of work. With additional work we can also run non-GTK programs on Atari like perhaps XMMS, etc without the need for an X server.
But why? Will this work on my ST? The answer is no. Atari-source has always been focused on the future. The future is hardware from Rodolphe Czuba - the CT60 accelerator for the Falcon. The future is the Atari coldfire project. With whatever gripes you may have towards people in the Atari community, you really should get out your chequebooks and support Atari hardware developers. These programs might be able to run with okay speed on an ST but the video hardware is certainly not enough. Also even the smallest GTK programs probably consume 4 or more megs of RAM, dwarfing even a standard falcon. You could also buy a clone, but no clone makers are supporting Atari anymore really (where is the Milan060?), leaving the choice the best buy being the people supporting Atari RIGHT NOW.
If it's so incompatible with our base hardware set, why bother? The answer is why not? In the Atari world, hardware has always driven the software development. I thoroughly believe that while this created the uniqueness of Atari programs, this was the end demise of Atari (with a slew of other reasons). Why should we bother creating high powered machines with 256+ megs of RAM without having some GOOD way to make use of it. This is the answer. Today's applications running side by side with GEM programs thanks to open source. A simple idea like porting gdk to Atari VDI expands the Atari developer base probably 10 times! Atari programmers can focus on more important things then text editors, accounting software, IM clients, etc, such as MiNT development for shared libraries and virtual memory support - both of which will also probably draw a lot from linux and open source.
I throughly believe it's time to flush the "bloat FUD spreaders" down the toilet and turn Atari computers into a useable machine for today's computing. This includes concepts like Aranym which allow PC computers to run Atari software VERY quickly. Efforts like this will help Aranym users NEVER have to switch back to Linux and X11. If your Atari does it all, why would you need soemthing else? Yes this new software will be huge. It will take lots of RAM. It will never be as fast as GEM applications. But when is the last time you saw a GEM application developed recently by non-commercial entities that even remotely competes with mainstream software? I don't know if I even have sadly.
While many people might not want to believe it, the future of Atari computing is bright - thanks to probably a large amount of good natured programmers. The vast majority of them probably does programming on Linux X86 - PC's. Perhaps that's something to think about next time you go bad mouthing PC users... ;-) While the future of Atari is not dependent on these PC users, it could be greatly enriched and isn't that what we are all really looking for?