How Windows Power Users Should Approach Linux.

3rd July 2004

This essay is a result of an email conversation I had this week with one of my juniors from my alma mater, K. J. Somaiya College of Engineering. This guy, Prasad, is what one would probably call a Windows “Power User”, meaning he’s used, tweaked, programmed in Windows for the past few years. He’s the kind of guy ordinary people turn to when their “computer is broken”, and no doubt his friends (all Computer Science undergrads) ask for his help too. Now, he’s giving Linux a try (I guess power users get bored of Windows too, some day!) So he borrowed my set of Fedora Core 1 CDs. The other day, he sent me (and his friends) an email, which I have quoted below. Please note that this email has not been edited by me in any way.

Anyway, it was the most honest evaluation of a Linux install/preliminary configuration I had ever read. Perhaps that is because I knew the reviewer and his skill level personally. Towards the end, he also included some humorous and sarcastic ‘advice’ to his friends, who were still Linux virgins. In my reply to his email, I commiserated with his genuine complaints, offered solutions and agreed with him when he pointed out Linux’s (specifically, Fedora’s) good points.

When I finished my reply, I realised that he, like all such potential converts to Linux, approach the whole phenomenon of Linux in a wrong manner, with the wrong mindset. They look for in Linux the exact same things they were used to in Windows, right from installation, to the desktop, to the tools, to additional software. That is why they are put off by partitioning, multiple desktop environments, editing configuration files – because they never have any of this in Windows, and are equally enthralled by the “built-in” security, eye candy, the included software, even tabbed browsing – again, because Windows never offered them these luxuries. I concluded that this is because they know nothing of the Linux “culture”, have had no exposure whatsoever to the Open Source Community, have never known that there existed a UNIX hertiage, a UNIX culture – all in all, the “Tao of Linux”. Only when they imbibe all of the above will they ever feel comfortable with using Linux on an everyday basis. They probably have to “unlearn” Windows, to an extent.

I continued my email, then, with my advice to him on how he ought to think of Linux itself, and using Linux, differently from Windows. As I wrote in the email, I “poured my heart out”. It was spontaneous – I had not thought about it, not jotted down points or organised my thoughts – but what resulted was a surprisingly lucid and hard-hitting piece of literature that seemed to convey everything I had wanted to tell the dozens of people who had asked me for help on how to “use Linux”.

Here is Prasad’s email, and my reply to him. Do let me know what you think of it.

Hi Rahul and others,

Please read on and reply with your views or experiences.

Why am I writing this in vi?

A few days ago I got my hands on Fedora core 1 installation CDs. As per the tradition I installed the brand new Linux system and started working on it. The first thing that I always have to do after installing Linux is adding my windows drives to automount by edition /etc/fstab. I wonder why has Red Hat not come up with something that automates this procedure as only a fool will install Linux onto the PC without any windows version (Only Mandrake 7.1, I guess…., does this identification and auto mounting of windows partitions for you.). After completing my traditional installation configuration which cannot afford to include luxuries like KDE as my system runs on a 64 MB RAM chip and with onboard 16 MB video memory, I happily logged onto my brand new Linux FC1 machine. It is always nice to listen to some music when you are really happy. What the heck!!! Xmms does not support mpeg anymore due to some licensing problems blah blah blah….. This did not surprise me though, as after every fresh Linux install I always wait for something shocking (In some earlier version they completely forgot to include xmms…..). The real fun comes after this…..

I needed text browser for some reason a few days later. I had to install it using add/remove applications in the control panel as it was not included in the basic installation schema. I also thought of adding a few more applications like mysql which is surprisingly not included in basic database support by default, etc. I selected approximately 25 new apps. to install and 5 apps. to remove. Now before you read next part I want to first give you a few tips and tell you about a few mistakes that people always do and then later curse innocent Linux developing team.

Always see to it that you have plenty of time to do any system changes or installing Linux
for that matter as some unforeseen situations may arise which even linuxers (this term a references those people who claim to have a very satisfactory working experience with Linux) cannot explain. It took me 4 iterations and 3 days to install a basic Linux configuration on a PC in my college (Ah college PCs…..Always problematic. Isn’t it?). Every time some a new error message would flash on screen (that too after 25/30 minutes when the installation is almost complete) informing me that I am a fool and don’t know even the basics of installing an OS and that perhaps I should read a few reference books before trying something as adventurous as this. In an other incidence the installation simply refused to detect the extended secondary memory on my friend’s computer. The poor fellow did not upgrade his BIOS and so his BIOS could not detect the newly added 40 GB HDD. Windows though did not even complain of such a problem(Ah, these windows guys……I dont know how do they manage to be that over smart). Apart from these minor things Linux installation is fairly simple and even a novice could manage it.

Take a few hours’ rest before attempting to upgrade a Linux system.I will explain this later…but probably this is the most important tip as otherwise you may end up losing your beloved PC or have a nervous breakdown.

Forward this to everybody you know and ask them to please reply to me if anyone has any answers.

Now the rest thing. I selected all add/remove applications, put FC1 CD in my CDROM drive and decided to spend next half an hour watching Indianapolis GP as system was being upgraded. As this thought struck my mind my CDROM drive ejected and a message flashed on my screen indication to put the 2nd FC1 CD to continue installation. I was amazed at the speed of upgrade and thought of first completing the upgrade (as I thought it would take 5 minutes more at this speed) and then watching schumi. I was correct I guess, in less that 15 seconds my CDROM drive ejected out again and a message informing me to put in FC1 3rd CD into the CDROM drive to continue installation. Frankly speaking I was impressed by this upgrade speed. I put in the CD for upgradation to finish and again the same thing happened. My CDROM drive ejected out and a message informing me to put in FC1 1st CD flashed again. Believe me people this fun continued for next 20 minutes and involved at least 12 ejections and reinsertions. I have nothing more to say….Have Fun. the only question to be asked here is “Why am I writing all this in vi?”.

Prasad R. Shahane.

My Reply

Venky (Prasad is known as “Venky” in college; why is a long and irrelevant tale: Rahul) – please forward this email to all those to whom you sent the original email – Saket, Alhad, Mandar et al. I am not certain if they want Linux-related emails from a senior in their inbox directly!

UPDATE: I have not sent you any of the attachments I have talked of in this email – apparently your account is over quota, my original email was returned. Please clear up your acct, or give me some rediff address, so I can send you 1,) the IceWM article, 2.) The Art of UNIX Programming. For now, read my email:

Hi!

I am thrilled to read such an honest evaluation of a Linux newbie’s attempt to get a working Linux install! I am so used to the sheer indifference and lethargy that my classmates/seniors showed towards Linux, it’s refreshing to find juniors who at least take the first tentative steps towards trying Linux out. Please read my opinions on this below. Remember that I am not trying to defend Linux’s shortcomings – as an experienced Linux user, I am only too aware of them!

Installation Pains:
Well, everyone goes through this kind of trouble when they’re starting out with Linux. Venky, let me tell you that you’re very lucky to start with FC1 – Think of the 6 months that I spent unsuccessfully in trying to get my graphical configuration working with RedHat Linux 5.2 in May 2000!

Windows partitions:
Come on, Venky – during the partitioning procedure, did it not occur to you to mount your Windows partitions then and there? Just click on your Windows partition, choose the “Leave Unformatted” option, and mount it as /mnt/win2000 or something. That simple! In fact, this is an advantage over Mdk as Mdk chooses complicated names like /mnt/hdb1 or similar. This is something that any linux newbie with basic concept of mounting will get!

MP3 Support:
OK, the exclusion of xmms in previous versions (was it RHL 7.3?) was a blunder. The RHL team acknowledged that. And the exclusion of MP3 support in all subsequent versions of RHL/FC is a real pain. At least they should include clear instructions on how to download/install the plugin, rather than some bombastic statement about licencing issues that the end-user does not give a shit about. In case you haven’t figured out already how to install the plugin, here is the rpm:

http://dag.wieers.com/packages/xmms-mp3/xmms-mp3-1.2.7-0.rhfc1.dag.i386.rpm

As root, type rpm -Uvh xmms-mp3-1.2.7-0.rhfc1.dag.i386.rpm

KDE? GNOME?
Venky, with your kind of PC configuration, I think running a full-fledged KDE/GNOME desktop is out of the question. Perhaps you should try IceWM. Maybe use XFce. Find my XFce article at http://www.osnews.com/story.php?news_id=7002 . I have written a comprehensive article on IceWM, which I am still in the final stages of editing. I’m sending you the HTML page as attachment. Give it a try.

Use Mozilla Firefox instead of Mozilla – find it at www.mozilla.org/products/firefox . Use xterm instead of konsole/gnome-terminal. Use the command-line instead of konqueror for browsing the filesystem. Do research on using applications which use low memory instead of the default ones. Use a tiled wallpaper – the ones found in /usr/share/backgrounds/tiles/Propaganda – they are good ones. Finally, log into your graphical desktop using runlevel 3 + startx rather than boot into X directly (runlevel 5). Saves the memory of maintaining the Login Manager. Turn off all unwanted services. There is so much you can do to conserve memory! I am writing an article on this too.

As far as your repeated insertions/ejections go, this is a truly hilarious situation which I have never encountered – but really funny! What I normally do, is to copy the contents of all 3 CDs into one directory hierarchy on my HDD (kya yaar – 40 + 8.4 + 2.1 GB ke teen hard disks hain). then if I want to install say mysql, I cd into that directory, and type rpm -Uvh mysql-.i386.rpm. It usually fails, giving me a list of dependencies which must be satisfied. I then install them from the same rpm cache, and lastly install mysql. No, it is NOT time-consuming – it is much quicker than add-remove program.

Finally – why are you writing this in vi? Hmm – could be because you haven’t got your graphical system to work yet? But you would have mentioned that. Why not use Kwrite/Kedit/Gedit/Kate/Nedit? Hmm – nope – I can’t answer!

After replying to your email, I want to give you – a person who is an experienced, “power user” of Windows and is now giving Linux a try – some advice. Almost none of this advice is technical – most is psychological. Read on, and share this with poor Saket before he becomes totally anti-Linux!

Do not ever approach Linux with the mindset that everything will be the way it was with Windows. You might have the same sort of desktop – start button, menu, wallpaper, Control Panel, and so on – but underneath all that it’s still UNIX. Linux is fortunately/unfortunately still a techie’s OS. It needs experience before you can use it as a normal desktop OS. I began to use Linux full-time only 3 years ago – a full 12 months after I gave Linux a try. Till then I was constantly dual-booting, most of my data on Windows.

Approach Linux with a mindset – this OS is going to help me understand my computer better. I am going to learn about how an OS functions. By this I don’t mean learn about the scheduler/filesystem design or interrupt handling – not the kernel level – we learnt that in Engg. But we totally ignored the user level. For example, the entire booting-up procedure. We take for granted that we have the NT Boot Loader that will present us a choice of Windows OS, we will get a pretty graphical screen and soon a desktop will appear. How? Why? We will never get that chance with Windows. But with Linux, we first see /etc/inittab to see what file the “init” process looks for (rc.sysinit), how each service is started (you know services exist in Windows NT/2K/XP too) – in Linux that is via the “rc” script. Look thru these files, make simple changes, observe how stuff works – enjoy the experience of just exploring the OS itself. Even after 4 years and two months of first using Linux, I still discover new stuff EVERY DAY. Change your mindset – the moment you find a graphical utility to perform a task, say to yourself – I am going to find a way of doing this via the command-line.

See, UNIX (on which Linux is based) was designed by utter geniuses – Thompson & Ritchie – in 1969. From that time till today, the user-level OS has remained relatively unchanged for 35 years. Think of the hardware that was available in 1969 – the first PC was still 12 years away!! So the design decisions made by the two were so technically sound that they are viable even today! I want you to read this article (mini-book?) by Eric S. Raymond, one of the most respected figures in the Open Source Community today – “The Art Of UNIX Programming” – it’s already a classic. I have sent you a tar.gz of this book (taoup.tar.gz) . Read it – it is one of the most important texts you will read – far far more important than engg. notes!!

Given this craze for Linux, soon everyone is going to start offering courses for Linux, and many will then know how to install Linux, and use KDE + Mozilla, and connect to the Internet and so on – but is that Linux? No! We have not even scratched the surface! Using Linux like “another Windows” is stupid!! People will say there is a “trend” towards Linux, Linux has “scope” – say bullshit to all of this. Linux may or may not become the world’s most popular OS, it may or may not destroy Microsoft, but one thing is for certain – people who have truly “understood” Linux and the UNIX philosophy become the best computer professionals. Why do you think IITs and Universities abroad use Linux/UNIX throughout their campus? Because it’s cheap? Nonsense. In the 80s and early 90s, when Linux was not viable, univs purchased expensive UNIX licences. Why? Were they mad? No! The only way to teach true Computer Science was to expose students to an OS they could “play about with”, not something which is shut, sealed, packed and where a company decides how YOU should use THEIR OS. Please- I am not bashing MS – but it is true. How much can you learn about Windows by using Windows? Nothing! Windows does not have a heritage, Windows does not have a culture, Windows does not even offer any incentive WHY you should attempt to find out more about it in the first place!! That is why the first question that must be popping up in your minds is “Why do I need to know about my OS in the first place?” You will find out.

To Saket I say – try and try till you succeed – take it as an insult that you cannot get Linux to work on your computer. It is an insult to your skills that Linux refuses to install. Do whatever you can – even upgrade your BIOS – it can be done via DOS (go to your BIOS manufacturer’s site, download the exe, make bootable floppy, and run the exe from the floppy.) It is risky, but I have done it twice and nothing untoward has happened. You have a non-standard monitor – find your monitor specifications, edit the XF86Config file. You will never know about the X Window System if you want to stay hidden behind pretty graphical tools all your life. Sooner or later some “Computer Institute” will teach its students these tools – after all they are in the menu.) But what do these tools do and how? No one but you will be able to answer. Don’t have XConfigurator? Go into Windows, download the rpm or even source (actually source is better), reboot into Linux, compile it yourself, run it and get your monitor working.

You must have a sound technical knowledge of whatever tools you use. Trust me – Mihir’s and my knowledge of Linux has helped us on many occasions when we were giving job interviews. They really quiz you on such fundamental matters in computing that you realize that without a thirst for knowledge about UNIX, it will be very difficult. The fact that you are so experienced in Linux also gives you an instant edge over others.

Finally, I come to the programming side. I have used VB 5 extensively and VC++ 5 a little, in 1998/99. I know intermediate VBScript. So I do have experience of programming on Windows. Since 2000, it has been nothing but Linux. Believe me when I tell you that the programming environment on Linux – vi/emacs + gcc + make is the BEST way you can learn about project management, about good coding practices, about programming techniques, about how your applications should interact with the environment – because you don’t use all the advanced features that VStudio offers you. You are “on your own”. When you are a student, there is no use learning “industry standard” tools. These can always be picked up later. But no one is going to teach you the kind of things I have mentioned above. These are things you are supposed to learn in your undergrad education. But are we taught them in Mumbai U? Never. How else are we going to learn this? If we use VB/VC++ where automatic memory management, garbage collection, easy-to-use APIs are given to you, along with drag-and-drop interface builders, when are you going to learn ACTUAL programming? Surely you should be able to allocate/free/keep track of memory on your own. Surely you should be able to do low-level I/O, use actual system calls, to build your own interfaces (command-line or otherwise). Do it the hard way now, you will be KING when you have such a solid base! LEARN TECHNIQUES TODAY, TOOLS TOMORROW.

After pouring my heart out to you, I end this email. Apologies if I bored you. But you see, I never had seniors or classmates who were computer enthusiasts, who truly loved computers, who saw computers as tools, not just machines. You guys – Venky yourself, Saket, BP, maybe Akash, Alhad… are like that. The only hitch is that you have used computers/technology extensively, much more than your peers, but have not bothered to learn more about the tools you use. Maybe I am wrong, but that is the impression I got.

Anyways, hoping to hear from you guys.

Rahul.

Blogs I Read

Ray Ozzie
Water Mossberg
Bob Cringeley
Rajesh Jain

IBM Lotus Software:
Ed Brill
Alan Lepofsky

News, Current Affairs, Economics:
BBCWorld
BusinessWeek
Business 2.0
TheEconomist
The Indian Express
Slashdot

Humour:
Sidin Vadukut
Abhinav Jain
Vinod Ganesh

Friends:
Pallavi Galgali (IBM)
Abhinav Kumar
Anil Dalvi
Sameet Dalvi
Niranjan Tulpule (Google)
Aalhad Saraf (IBM)
Prasad Shahane (TCS)
Gordon D’Souza (MDI Gurgaon)
Venkat’s Photo Album (Arizona State U)
Rohan Thakare (IBM)
Rohan Patankar (Atos Origin)
Paresh Murudkar (IIMA)

Google Blog… and a Linus interview!

Google’s got a blog too: http://www.google.com/googleblog/.

Seattle Times has published an interview they did recently with Linus Torvalds. While it’s nothing spectacular, there’s one bit that interested me:
Q. Where do you expect Linux to see its biggest growth over the next five years?
A. I’ve felt strongly that the advantage of Linux is that it doesn’t have a niche or any special market, but that different individuals and companies end up pushing it in the direction they want, and as such you end up with something that is pretty balanced across the board.

I continue to feel that the desktop is interesting, because it’s how I personally have always used Linux, and what I myself have been interested in. It’s also the technically (and marketwise) most challenging area, which makes me appreciate it all the more. And clearly there is a lot of budding interest in the area from the commercial players.

I’m enthused by the fact that even Linus is interested in the development of Linux as a serious desktop Operating System. It’s all very well if we nerds on Slashdot keep hailing each passing year as the “Year of the Linux Desktop”, but unless someone who’s in a leadership role in the Linux community (and who better than Linus) believes that serious steps need to be taken to make Linux a real desktop-worthy OS, nothing’s going to happen. So I’m glad Linus recognises the Desktop as the next area for Linux to make inroads into.

Linus also recognises the role that commercial players will play in Desktop Linux, while also conceding that it’s the most challenging “technically and marketwise”.

After Google Toolbar, Google Desktop Search!

Google’s launched a desktop search tool, Google Desktop. A Windows-only tool for now, Google Desktop can search your Outlook emails, AOL IM conversations, plain text files, cached/saved web pages, MS Office files, and a few more (can it search PDFs? I dont know).

The Google Desktop first indexes the above files (you can choose which ones to leave out) when your computer is idle. An interesting feature is that while there is a system tray icon, the search tool itself is completely web-based. Clicking on “Search” or “Preferences” on the system tray icon will bring up a browser window with a search form, a la Google’s own home page.

This marks another step in Google’s foray onto our desktops. Not content with being merely a web-based search tool, Google has quietly released a few applications for our desktops. Think Google Toolbar, Picasa, GMail Agent.

Technology For The Sake Of Technology?

I found this thought-provoking article on the Web. It debates what continuous adoption of (often disruptive) technology, without considering the ends which they may help us achieve, is doing to us as a society. The author terms it our “hollowing out as human beings”.

The article’s been written some time ago, because it mentions the Heaven’s Gate Cult Suicide of 1997 as a relatively recent event. It’s scary that this “technology overload”, as it were, had its beginnings at least seven years ago. Imagine how much technology we’re bombarded with today. Why are we, then, almost unaware of this phenomenon? Have we adapted to this, are we now able to keep up with the pace of technological evolution? Or is this like a ticking time bomb – one fine day might we all reach a limit and collectively scream “no more!”?

It’s a topic about which I’ve lately thought about, too. It’s easier for me, involved in the computer technology industry, to realise the implications of what the author’s talking about. Maybe I’m a victim of this “hollowing out” also. Let me explain. I work exclusively on the Linux platorm at home. I’ve been doing so for the past 3 years. Now the Open Source Community churns out software updates at an alarmingly fast rate. This includes the Linux kernel itself, Linux distributions, development tools, productivity software, internet software, and the like. I like to keep my system populated with the latest versions of whatever software I use. These include browsers, email clients, code editors, music players, IMs, and more. I find myself spending a lot of (paid) Internet time simply downloading the source for these updated releases, compiling and installing them, and deleting the older versions. Then I start up the application again, confirm the newer version number, and get a warm and fuzzy feeling inside about “living on the cutting edge”.

But lately I’ve come to question the very purpose of doing this. I spent the last two weeks downloading Fedora Core 2 (a four CD set, now – see this article on OSNews about software bloat). I only get free broadband access on Sundays, so the last few Sundays (and today) have been spent downloading FC2 full-time, which meant that I had to cut down on my browsing. Now I’m thinking – do I really need FC2? What does it offer me over FC1? New software? No. I’ve already updated the programs that I run, so much so that they’re newer than those that FC2 includes. And why am I obsessed with running the latest versions of my applications? Take Gaim, the ubiquitious Instant Messenger for Linux, as an example. Now that I think about it, the only time I actually needed to upgrade was when Microsoft introduced a new standard for communication via its MSN protocol. I don’t even know (or even care) what new features Gaim’s introduced since then. I certainly don’t notice anything new. That goes for almost all the applications that I use. I’m just using up my Internet time and bandwidth with them, I guess. I have friends who are happily running Redhat 8.0 or even 7.3 – over 2 years old.

Of course, what I’m giving you is just the user’s perspective. What the original article talked about was the actual development of technology, from the producer’s point of view rather than the consumers’. In terms of Open Source, though, this kind of “technology for the sake of technology” is acceptable. After all, most developers of such software work on it during their free time (ok, so they actually free up some time for these pursuits, but the logic is the same) – they have a day job that provides for their families. The problem here lies with the users of such software. I’m sure there are scores like me – who upgrade for the sake of upgrading.

One of the oldest adages we learnt was “Necessity is the mother of invention”. I wonder if that’s even valid anymore. It’s more like “Invention begets necessity” these days. A new technology finds itself a use, rather than the other way round. But why does society accept, often blindly, new tools that become available with such frenzied frequency?

I’ll take mobile phones as an exmaple. Mobile phones now are so rich in features, like 32-bit color screens, wireless connectivity, cameras (some with zoom, for God’s sake!), “polyphonic” ring tone capabilities, and on and on – that it makes me wonder how many of these features we really use. In India (OK, in Mumbai, at least), owning the latest and snazziest mobile phone isn’t even a status symbol anymore – everyone’s got the best. But scan the list of features above, and think for a while how many of them are really useful – useful for the basic purpose of a mobile phone, which is communication. Perhaps we’re spending too many resources innovating in the wrong areas. Instead of polyphonic ring tones, how about researching smarter notification techniques; instead of 32-bit color screens how about working on smarter, easier-to-use grayscale interfaces? It’s been pointed out over and over that the one factor that will limit innovation in phone displays is the size of the screen – so how about working to overcome that? The dimensions of photographs taken with a typical mobile phone camera are way too small and awkward to find any practical use. I know there are phones with cameras that allow for full, 800×600 pixels or better resolutions, but they’re outrageously expensive, and that’s because the cost of the camera is far greater than that of the phone.

And what does that last point indicate? Simply that too much innovation obscures the fundamental purpose for developing that technology in the first place.

There’s another side to this argument, though – and it would become another essay in itself – that we do not have any idea of future uses for today’s outlandish research. The vast majority of the public thinks that research into subatomic physics, into deep space astronomy, and into putting mega-pixel digtal cameras into ever-tinier mobile phones (!) is a collosal waste of time and money. Also, research into technologies such as cloning, and high-tech weaponry, is downright dangerous and should be Stopped At Once. These things are viewed as “Technology for the sake of technology”. But we can gaze only so far into the future. We have no way of finding out if today’s research into what appear to be useless/dangerous fields, actually turn out to be the base for some tremendously useful technology, one that solves a major problem, or makes life unimaginably richer. Are we stifling our future by limiting such research? Are we denying a possible better life to our future generations by insisting that today’s innovators solve today’s problems?

That’s one debate that’s far from being settled.