Ten years ago, if you had asked me where I was likely to be… what my plans were… chances are I would’ve responded along the lines of setting up my own software company here, and making software for a living. I hadn’t heard of Open Source, or Linux… I had heard of Unix, but had never seen or used it, and I was aware of only two platforms, IBM and Apple.
My, have things changed over that 10 years.
At the time, my father had recently been made redundant from Telstra (having been a communications engineer there for 29 years) and had gone back to university to study a post-grad IT degree.
Part of his course, dealt with this funny little Unix-like OS called Linux. He brought home a set of CDs, complete with Red Hat Linux 4.0, dragged out his old workstation (a 486 DX4 100MHz with 64MB RAM, previously ran Windows NT 4.0) and loaded it on. This was my beginnings with Linux.
At first, all I knew how to do, was to switch the machine on, log in, run startx at the prompt, and I discovered issuing the 3-finger-salute sent the machine into a shutdown procedure. (Very useful when you didn’t have root access) I used to fire that machine up a lot… largely to play the games that were available.
For the most part, I was fascinated by the games. xbilliard and xhextris in particular, as I had nothing like them on my Windows machine. (At this point, I had just upgraded to Windows 95, and was still trying to adjust) First time I ever saw the desktop in Linux (FVWM 2) my first comment was how much the task bar resembled Windows 95… until I realised that FVWM 2 got there first. Microsoft do like pinching ideas of others.
Anyways, it wasn’t long, before I was putting it on my machine. Initially, it was Red Hat 4.0, then later, 4.1. I managed to screw up my machine’s installed version of Windows 95 in the process, but soon I had mastered the concept of dual-booting.
Sometimes I came into uni, and helped out with the exercises — largely to do with routing and TCP/IP. The lab machines there ran some derivative of Slackware, sporting the FVWM 95 desktop, which I quite liked. It wasn’t long before I switched to Slackware on my desktop machine at home, and that’s where I learned the most about how Linux works.
From there, I ricochetted between several distributions… Red Hat, Slackware, Mandrake (briefly), Caldera, SuSE (before Novell took over)… Most of the time was spent running Red Hat or Slackware.
At this point, we also upgraded the Linux box… to a Pentium 120MHz w/ 48MB RAM. The old 486, then got a lesson in true Unix… it got a dosage of SCO OpenServer 5.0.4… which it still runs today.
This continued right up to around 2001, when I downloaded Slackware 8.0… on dialup, whilst trying to burn up hours. We were preparing to switch to ADSL, and I had clocked up some 800 hours on my account. In that time, I downloaded Slackware 8, Solaris 8/x86, Counter-Strike 1.3 (although I lacked Half-Life), and numerous other bits and pieces.
After running Slackware 8.0 happily for some time, I had gotten used to the concept of compiling stuff by hand. Anyways, we managed to get hold of Red Hat 8.0.
My, what a disappointment. No support for MP3 playback, RPM dependancy hell (Incidentally, I have heard Red Hat developers complain about RPM), and a stuffed up text console. BlueCurve wasn’t all it was cracked up to be either. I sorta got used to it… but there were things I didn’t like. Essentially, I had outgrown the distribution, and found it very fragile when I tried to bring in third-party apps. I spent more time wrestling with RPM than I did using the distro.
Eventually, it was back to Slackware 9.0. Sure, there was next to no package management, but that was okay… I knew how to compile stuff at this stage. I had also dabbled a bit in FreeBSD, and saw Ports which I liked emmensely. It was here (Slackware), that I stayed, and contemplated making my own, using some sort of Ports-like system for package management (later to be called Atomic Linux).
At this point, I knew quite a bit about how to use Linux, and regularly assisted others in using it. I was also starting to play with Linux on RISC architectures. We had bought a Gateway Microserver (cousin to the Cobalt Qube 2), which ran an ancient distribution of Linux based on Red Hat 5.0. (Kernel 2.0.37 or something — need I say more?) Anyways, needless to say, I decided to try upgrading the distribution by hand. BIG MISTAKE.
The distribution on this Gateway machine, was so out of date, I practically had to replace every single package on the system. Of course, once I replaced things like modutils it all turned pear shaped. I tried compiling kernel sources from kernel.org (which don’t work with MIPS), and failed… and managed to bugger up the module loading. So things like PPP didn’t work.
Upon restoring a backup… I reformatted the root filesystem, EXT3. I thought this would be fine, as it was backward compatable with EXT2. Wrong! The machine’s boot ROM is so primitive, it can only understand EXT2 revision 0. I had made a nice AU$400 MIPS-powered door stop.
I ended up trying out Linux From Scratch, which I ran for a couple of months. The aim of the experiment was also to figure out how to compile a distribution for the Gateway box. During this time, I also got a Silicon Graphics Indy. The intent was to follow this guide I had found on bootstrapping an Indy with Linux.
Well, in the end I didn’t go though with it… I found Debian had a MIPS port of Linux, and ended up running Debian Woody on both the Indy and the Gateway. Debian wasn’t bad on MIPS… but it really didn’t satisfy me. There were things that didn’t work right on the Gateway machine… and I was forever plagued with problems trying to build kernels on both machines.
On my desktop, I tried Gentoo on the recommendation of a few others. Damn… that scratched itches that I never knew existed! It wasn’t perfect… but it was the best distribution I had tried yet. So far, I haven’t left Gentoo.
I later discovered there was a MIPS port of Gentoo. This was before the Cobalt port existed. Needless to say, off came Debian, and I had printed out the handbook, and was sitting in front of my Indy, having netbooted it (at the time Gentoo pinched Debian’s netboot images) and was doing a stage1 install on it. Initially, I just left the CFLAGS unset… I figured I’d just keep things simple, then build up from there. It was bliss. 🙂 I later tweaked the CFLAGS (to their present setting, -pipe -march=r4600 -mabi=o32 -O2) and saw a DRAMATIC improvement in the system’s responsiveness — much greater than I had seen on x86.
Kumba, then announced a port to the Cobalt server. This immediately purked my interest. At the time, my Gateway box was acting as a CVS server for the Atomic Linux project, but the moment we moved it to BerliOS, I took Gentoo/Cobalt for a spin. I did a stage3 this time… had all sorts of fun doing so… but eventually I cracked it. Once again… bliss… The machine was so much more responsive under Gentoo than it was under Debian, and for once, it was nice to have a common platform on all my machines. Not to mention, I finally got a hand-made kernel to boot on the damn thing. No more kernel 2.4.18… hello 2.4.22 🙂
It was some time later, the Gentoo/MIPS team were looking for someone to handle the Cobalt port, and the Documentation. I wasn’t sure at the time. I did assist a lot of people with Gentoo/MIPS, but wasn’t ready at the time to commit myself. Eventually (about 6 months down the track), I decided I’d test the water by maintaining the documentation.
One complete re-write of the docs later… and a crash course in using Catalyst… I’m filling both roles. I’ve gone full circle. Started out a newbie user… and have now been made a developer working for Gentoo.
The Linux community has let me gain HEAPS. Not just technical knowledge either. It helped my social skills, as I had to ASK questions, and it helped my research skills, as I had to go locate the information before asking. (People get justifiably upset when you don’t do some research first).
The latter two have applications in real life. Especially the social skills one. I have Asperger’s Syndrome, which affects my ability to communicate with others… Having to go out, and ask people, whom I’ve never met, how to do something has been great life experience for me.
So the open source community has helped me greatly along the way. Now, as a developer, I’m able to give back to the community. I’ve already done a complete re-write of the Gentoo/MIPS documentation… and up on my dev space I have stages and netboot images for use on Cobalt servers.
I hope to continue this work for much time to come. What comes of it, I don’t think anybody can say, but for the moment, I intend to keep at it. I’m having fun here, doing something practical, and of use to the community overall. Unless things suddenly change for the worse, I don’t see myself leaving any time soon. 🙂
In a way, I’ve thrown away the old dream of running my own company… but in a way, I’ve succeeded. I’m freelance now, working on a number of opensource projects, and under my own terms. Sure, there’s no money involved… but it’s practical experience, which may be useful when I do get to the stage of getting a paid job. I’m hoping my job, will also involve one of my primary hobbies. I’ve had a lot of fun in the open source community, and hope to continue to do so, in the distant future.