A bit of history
I initially wanted this article to be only about my recent Ubuntu experiences, but nostalgia got the better of me (especially since Linux is celebrating 20 years this week!). Here's a bit of history about my experiences with various OS's.
My Pre-Linux life
I guess I have to credit my parents for my interest in computers, as they purchased a Commodore 64 in the eighties. My first program naturally printed "HELLO" in an infinite loop :) (Version 2.0 printed "Hello" in mixed case). In the early nineties we graduated to an 386sx PC with Windows 3.1/DOS. I believe my knowledge of DOS at the time included the commands "cd", "dir", and "win".
I started university as a civil engineering major. Within the first couple of weeks, I quickly became interested in VMS, as all students had accounts on the VAX cluster. I didn't know how to do much at first, except for mail and the marvelous "phone" program. I do recall spending hours in the lab going through the VMS "help" though (a bit similar to the man pages in Unix), just out of interest of learning this system. This should have been a signal to change majors to computer science right away, but I put that off for a few years :)
First Linux experience - Mini Linux
My first experience with Linux was in 1995. Some of my friends were CS majors and experimented with some version of Linux at home, so I thought I would give it a try too. The distribution I tried was called Mini Linux, and I believe it was downloaded to four floppies, and installed as a dual boot with DOS. This was the only option available at the time for me, especially considering that I had a 100Mb hard drive with Windows 3.1 on it (which I could not erase), and a 2400 baud modem connection. Ah, the good old days…
I can't seem to find information on this specific distribution now, as the term "mini linux" has come to indicate any small Linux distribution. One unique attribute of this particular distribution was that the default keyboard layout was Polish :) Once I installed it, I poked around for an hour or so to figure out how to change the keyboard layout. Then, I don't believe I really used it for much, except to just explore the filesystem a bit. I did try a terminal program to dial into some BBS's, but it was quite flaky.
Here's an extract from a mail I sent to a friend of mine after my first Linux experience. July 30, 1995. You really can tell that I'm a newbie. I thought being able to do "ls" brought me to "official nerdom status" (rolling eyes).
> It's like 6am and I was up ALL night trying to figure out linux =) I didn't
> have a manual so I was left to be creative hehe sheesh well I finally found a
> "manual" on a web site and i was reading it for about 2 hours!! I even skipped
> a couple sections and it took that long hehe well at least I know how to login
> now and how to do cd, ls, etc.. =) The last couple days have been computers
> computers computers for me... trying to learn little programs in C, getting
> telemate, then this Linux... usign ftp, telnet, www... blah blah blah.. i just
> think its' funny because a year ago I would probably be clueless if I read a
> paragraph like the one I've just written now. I guess that means I'm truly
> reaching official nerdom status =)
My friend was kind enough to reply with some tips on using Linux. It seems he was kind of a newbie as well, though more advanced than me :)
> Okay...here is your Linux session for the day. Every device that you have
> (printer, disk drives, CD-ROM) are not like "files." If you go to the
> main directory of your computer (just type cd /) then you go the dev
> directory. You will see things like dev1, etc (I forgot, you can name
> your devices), and each device there is a drive, or printer, etc. Now, if
> you want to use your FLOPPY drives, find out what device name it is
> connected to, then you put in your floppy, and then you have to MOUNT the
> drive. So then you would have to type:
> mount dev1
> or something like that. You can get help or something lke that. Well,
> when you do mount the drive, DON'T TAKE THE FLOPPY OUT!! It will ruin the
> disk! You have to unmount the drive first, then take ou the floppy. I
> have a book on Linux if you want it. I ran it for a while, but there were
> some things that led me to delete it.
> 1. Unfamiliar
> 2. Didn't know how to run X-Windows (Windows emulator), so I couldn't run
> Windows stuff
> 3. No network (Linux is great if you have internet on the comp, has to be
> PPP/SLIP, or direct connect tho)
> 4. I was the only user (so logging in was pointless)
> 5. New error messages I didn't understand (so I had a headache trying to
> And the list goes on and on. I would install Linux again, but not on my
> computer, maybe on another computer so I can play with it, but not for
> everyday stuff. Well, good luck with your new toy!
Over the next few years, I didn't use any Linux distribution at all. Other than Windows, the only other OS I used was OpenVMS, where I started learning how to program (in C).
In 1998, I was excited to (finally) decide to study CS. :) Now, as a CS student, I had access to a Solaris account in the lab, as VMS was phased out. (It was actually sad to see VMS die out...) At first, to work on my projects, I would either dial into the school network to my Solaris account, or would work on my programs in DOS with DJGPP. In early 1999, I decided to retry Linux at home again. At a computer show, I bought the book "Linux for Dummies" which came with a Red Hat 5.1 CD. (Don't knock the Dummies books for the title!) I installed it at home in a dual boot with Windows 95. Armed with my Dummies book, a real distribution, a slightly more powerful computer, and lots of free time and interest, I learned how to install Linux and actually use it :) Below are some screenshots of Netscape, ICQ, and other applications. You can see that the screenshots were taken around 3am :)
|Logging in from RedHat to my VMS account at school, at 3:30 am :)|
|Taking some screenshots with xwd, which would be used in this blog 12 years later.|
I stuck with RedHat at home, eventually upgrading to 5.2, then 6.2, until 2002.
From 2003 until 2010, I mostly used Windows (XP/Vista) for my personal computing, but not without Cygwin installed. At some point I had an XServer installed on Windows, and with Cygwin, ran a window manager (twm I believe) and almost convinced myself that I had Linux inside Windows. As for the usefulness of this "XWindows" setup, I think I played with it for a day, using not much more than xterm, and, of course, the indispensable xeyes. I continued to use Cygwin for the command line, however (sure beats DOS).
Unix/Linux at work
From 2000 to 2006, I had the opportunity to use a variety of Unices for work, including:
FreeBSD 4.0, 2000: This was considered more stable than RedHat Linux at the time, so when my company moved to FreeBSD, so did I. I remember vaguely having to hack around a bit to get Quake running, experimenting with Gnome and KDE, installing some pointless things like a binary clock applet, and, oh yeah, actually working on web development :)
From 2004 to 2006, the distributions of choice at the office were:
I then had a gap from 2007 to 2010 in which the primary OS of choice at work was Windows, with the occasional exception involving a customer who used Solaris. Perhaps a "dark period" as far as this article is concerned :)
I acquired, for the first time in my life, a Mac, in 2011. I have been pleasantly surprised that I have been able to do anything I've ever wanted to do on Linux and Windows, on this Mac, for entertainment or development.
A couple of weeks ago, I started a new job where Linux is once again the OS of choice. In this case, the distribution is Ubuntu. In comparison with the "good old days", where I was excited to play with Linux installations at home (even recompiling the kernel when needed) until 3am or 6am, to learn or just entertain myself, I now needed to have an environment up and running as soon as possible, to focus on my actual work. Ubuntu was almost able to deliver, but because of a few (perhaps stupid :) ) mistakes, I've wasted a bit of time. Here are a few things I've learned:
The first thing I did when I booted up my new laptop (on Windows) was to visit ubuntu.com and download the installer. I chose the Ubuntu installer for Windows (Wubi). This was my first mistake :) If you want to try out Ubuntu for fun, this might be a good approach. If you know you need to use it as your primary OS, you should install from a USB stick or CD.
- Out of space! I accepted the default configuration proposed by the Wubi installer. This resulted in a 17Gb partition (an actual file called "root.disk" in Windows which I later discovered) allocated for Ubuntu. After a week, I started seeing messages in Ubuntu about running out of disk space :) 17Gb doesn't go too far when it's used for the OS AND your data.
- I wanted to increase the size of this partition (on /dev/loop0), but it was not possible. I used gparted to try to resize the partition, but this device did not even appear. A couple of hours of troubleshooting revealed that I could make it appear by specifying "/dev/loop0" as an argument to gparted. (Another mistake - I could have tried a "man gparted" before spending a couple hours on forums :) )
- I discovered that this 17Gb partition, /dev/loop0, was a separate "device" with one 17Gb partition using the whole device. To temporarily relieve my space issues, I used gparted to shrink my Windows partition on my main disk (/dev/sda), and created a new partition on /dev/sda for my large data files on Linux. If I had no other issues, I just might have kept this configuration.
- Weird X behavior. By day 3, I was experiencing strange issues involving the keyboard and mouse. Basically, at times, while the current application I was using worked perfectly (I could type and click with no problem), it was impossible to click anywhere outside of the current application. Alt-tab would not work when this happened. At one point, I had the terminal application opened in front of Firefox. The keyboard would work in Terminal, but the mouse clicks would go right through to Firefox. Sometimes the problem would magically resolve itself within a few minutes, and sometimes a hard reset was needed. I only had this problem running Ubuntu Classic, and not Unity. After a few hours searching forums, I only discovered that other people had similar issues, and the suggestions proposed in the forums only worked for some people.
- System settings not accessible. After 4 days, I was no longer able to modify certain system settings: the Login Screen settings "Unlock" button did nothing, and in the Software Center, clicking on the "Install" button for a package did nothing. Various forums suggested running these programs as gksu, but even that did not resolve my problem. This, combined with the "Weird X behavior", motivated me to completely reinstall Ubuntu.
I decided to completely reinstall Ubuntu, erasing Windows in the process.
- Wrong version! I downloaded the Ubuntu ISO to put on a USB stick. However, I made the mistake of not paying attention to the Download page, and just downloaded the default version (32 bit instead of 64 bit). I discovered this error after installing Ubuntu, downloading and setting up various applications, and then downloading 64-bit Eclipse, and wondering why it wouldn't run…
- Maven woes. While not a Linux-specific problem, this particular adventure occupied me after my Linux install from about midnight to 3am Friday night. I'm including this here in case somebody, desperately searching the internet for a solution, might type in the right keywords to land here and find a solution :) For work, we have a project which uses Maven. Once I finally installed the proper version of Ubuntu, and installed Eclipse (Indigo), maven, and the maven plugin for Eclipse m2e, one of our pom.xml files showed an error in Eclipse: "maven-dependency-plugin (goals "copy-dependencies","unpack") is not supported by m2e". To keep an already long story short, after trying multiple versions of Eclipse (Galileo, Helios), the solution for this was to actually install an older version of the maven plugin m2elipse, which works just fine with Indigo.
I would like to provide a simple conclusion like "Linux rocks", but I guess it's never that easy :) I've enjoyed spending hours learning, installing, and configuring different distributions of Linux. I have heard people say that Linux has advanced to the point where a distribution like Ubuntu could be used by a "grandmother who has never used a PC before" (the epitome of a newbie). Given the issues I've had in the last couple of weeks, as well as seeing non-technical people trying to use Ubuntu, I'm not convinced. I think a more accurate statement would be:
Ubuntu, installed by a grandchild who is available to provide technical support, can be used by a grandmother who has never used a PC before.
VMS holds a special place in my heart, but more based on nostalgia of my college years than on any technical merits :)
MacOS X has impressed me as a system which can appeal to both hackers and the grandmothers mentioned above.