This is a personal story about how I came into Linux. A general interest in computers and acaedmic introduction to UNIX eventually got me hooked on personal Linux distributions.
It all started with an Apple ][c purhased for the family by my parents in the mid 80's. Although games were fun, I quickly became fascinated with BASIC programming and how useful it could be for work and fun. This was an era when computers were viewed as little more than typewriters, so people with "advanced computer skills" could easily use these to their advantage.
Some examples: I was once received a punishment in school where I was told to write some appologitic sentence 200 times. I asked the teacher if typinig it out would qualify. This resulted in a 5 line basic program that output the required assignment with about 5 min of work. Also, word processing was very ridumentary (WYSIWYG may not have been a term yet) basic control over margins and line spacing made it easy to take 2.5 pages of bland reporting work and stretch it to nearly 3.5 pages without raising suspicion.
That obscession quickly lead to an Apple ][gs with a ram drive card and an x86 PC co-processor card. Modems and BBS's were getting hot, and having a dual-hardware system like that gave me all sorts of options for software. However, modem speeds of 2400bps put a real damper on getting anything more than a few KB of fun downloads per day. I stuck with Apple as a hobby for some time, but that was soon to change.
My education through undergraduate programs put me mostly into PC's, and a little into timeshare mainframes. The real fun began in my graduate programs where dial-in access to UNIX machines having Internet connections opened a whole new world of exploration. Although I still used my dual processor ][gs for modem work and writing/printing papers, UNIX systems really grabbed my fascination with general access Telnet based games, FTP archives, online e-mail, and C programming. Gopher was popular then growing in popularity with people like me bound to plain terminal interfaces.
My graduate program took a fateful turn for the better when I was a student assigned to the Academic Computing department, charged with running computer services for the school. The students had access to Ultrix based systems with X window terminals. Most were grey scale as color processing back then was a CPU task and really affected system perforence. The few color systems were nice, but those machines just dragged. This was a really fun time for me as I was given root access to systems and assigned to system and network maintenance. I had some excellent mentors at the time, and this strongly influenced my decision to get into system administration rather than programming (although still to this day I really love programming).
Scarisity is the mother of invention, and students often got creative when having to share the scant resources of available computer systems. My school easily had 3-5 times the number of students verses available Ultrix workstations, so finding resources (especially at project delivery time) was often a challenge. There was a bank of 56k PPP modems available for remote system access when graphical displays were not needed. However, finding a machine with spare resources and sharing the system for source compilation often resulted in slow progress. Like most, night time hours often helped, but I needed something else to iterate more quickly.
One of the school's sys admins pointed out to me a freely available UNIX system that I should check out. This was Linux and was made available as 3.5" floppy images. Given our schools blazing fast T1 line, I was easliy able to search news groups and other sources to download and check it out. This was all 32-bit Intel PC based, a class of equipment I did not own. I was lucky that my work at the school got me access to junk piles of old computers and so the wheels started turning.
I was able to find enough discarded PC's to build a solid 80386 PC with some decent RAM (I am sure well under 1g), workable graphic display, thin-net (co-ax) ethernet card, and hard disk. The images I had consisted of Linux kernel 0.98, and I don't recall it was part of an official distribution. It might have been SLS. What I remember is it came on a series of floppy images where the first booted the kernel and a minimal installer which then formatted your drive and asked for each successive flopy image to install the core GNU utilities. After the core was installed and system bootable, you would download and intall other package images like compilers and such.
This was a serious boon to me in my academic career. With no X server display running, this PC seriously outperformed the Ultrix workstations we had access to. I was allowed to connect this machine to the academic network, mount the school's student NFS shares, and access the Internet directly. Since the school program used GCC (and sometimes Perl 4) for most student work, I was able to do my development locally. This granted me exclusive access to a key resource allowing me iterate more quickly on my projecets.
All was not perfect, however. The hardware was a tiny bit unstable (likely why it was discarded) but I could deal with that. What really got me at the time was how Linix and Ultrix differed at the OS and system library level. I began to appreciate what it meant to port software to other platforms; I was free to develope where ever I wanted, but I had to deliver my projects as Ultrix compiled binaries. Perfectly running C code on one platform woiuld easly crash on the other, very frustrating indeed. Probably the ruddest awakening I had was with early Linux's handling of null pointer dereferencing. Linux at the time seemed happy to pass over these as a virtual no-op, but Ultrix promptly dumped core on SIGSEGV. Quite a thing to realize when your first port to the target platform happens days before project due! This also made my exploration of C++ quite challenging as careless use of malloc()/free() along with automatic constructure and destructure processing peppered my projects with null pointer bombs all of the place.
Toward the end of my graduate program I upgraded to a complete beast of a workstation -- an Intel 486dx2 66mhz with SCSI hard drives, CD-ROM drive, 1024x768 RGB monitor, and 16550 UART serial card perfectly matched to my new US Robotics V.Everything modem. This was able to dual boot Windows and Linux, but more improtantly the graphic card and processor allowed for a much more pleasant (and faster) development environemnt. The old 386 was still in service back at the school, but most of my heavy work and hacking happened now at home.
Similar to My Linux story: Learning Linux in the 90s I got really into those CD bundles at the time. There was a new Microcenter close to where I lived, and it was a goldmine of hobby PC parts, phenomenal technical book section, and every concievable Linux (and free UNIX) CD archive. I remember the Yggdrasil and Slackware being some of my favorite distributions. What was really incredible was the enormous size of CD storage -- 650MB! This was an essential resource at the time for getting access to software. Yes, you could download the bits at 56k, but that was quite limiting at the time. Not to mention the fact that most people could not afford to archive that much idle data for later purusal.
Well, that's what kicked off more than 25 years of System administration and open source software fun. Linux has been an important part of both my career and personal development. Nowadays I am still heavily into Linux (mostly CentOS, RedHat, Ubuntu), but often have fun with the likes of FreeBSD and other cool opensource offerings.
My latest forays into Linux lead me here to Opensource.com where I hope to give back a little and help bootstrap new generations of hands-on computer fun.