Linux For Dummies?

Published in ConneXIEons Magazine in 2007

Like it or not, Linux is gaining momentum and it's here to stay. Being open source, it is preferred by computer manufacturers to replace Windows to reduce the cost of their product. Prices of Laptops are declining and more laptops are being shipped with Linux. Mobile Phone manufacturers too are looking at Linux as a suitable replacement to avoid paying huge sums as licensing fees to mobile OS developers such as Symbian and Microsoft. Microsoft itself has realized that Linux might replace Windows in the near future and has released Silverlight and the .NET Framework as a result. Linux is the latest buzz and everyone seems to be trying it out to see what it’s all about. Linux has already proved itself to be better than its adversaries for Server configurations but is it ready for the Desktop Market?

Most First-time users of Linux are Windows or Mac users who are simply trying out another operating system. They expect an interface and the installation procedure as least as friendly as Windows, if not better. But they are greatly disappointed when they use Linux as they can’t decipher the cryptic Messages and Commands of Linux. They are unable to perform even simple operations such as copying files or reading data from a USB flash drive. And without second thoughts, the next thing they’ll do is remove the Operating System from their computer. Why is this so? Is Linux not intuitive enough for a first time user?

The answer is No, not for its cryptic nature but because Linux was never intended to be written for naïve first-time users.

Unlike Windows, Linux was never built with a user interface in mind. As a matter of fact, Linux has no graphical user interface. Linux refers only to the kernel of the operating system and nothing else. Additional components and Interfaces are not a part of the Linux operating system. Linux was written to be an open-source version of UNIX, i.e. a free UNIX clone. This means that all the operating system architecture, File System and user commands of Linux closely resemble that of UNIX.

Since UNIX was only built for scientific and research purposes, its commands reflect this property. For example in Linux, the command cp is used to copy files. The DOS prompt in Windows uses the copy command to perform the same operation but scores on being more intuitive. You would have to agree that rename, del and type are easier to remember than mv, rm and cat. Some might still argue that the purpose of the cp, mv and rm commands lies in its name. But what about commands like fork, grep and awk? Would you understand their purpose as a first-time user?

The Interface that you see in a Linux distribution is just an external program written by another organization. A good user interface hides all system intricacies from the user. Unlike the interfaces of Windows and Mac operating systems, Linux interfaces have a steep learning curve. If the interface itself is not intuitive, how can we even expect end-user’s to use Linux?

Let us look at a rarely discussed topic about open-source software. Since anybody (whether an amateur programmer or a professional) can write code for Linux, there will always be some subtle design faults. I’m not trying to imply that commercial operating systems are devoid of this problem, but more care is taken by these organizations to avoid this problem. Let me take an example out of my own experience. The Latest Ubuntu Distribution DVD version 7.10 (I haven't personally checked out Hardy Heron, but I doubt if this issue has been fixed) requires that some optional components be installed via the Internet. My internet connection requires my network card to be assigned a specific MAC address. Ubuntu Linux by default cannot change the MAC Address of a network card. It needs an additional component to do so. But it requires an internet connection to download this component. Do you see the irony? It is subtle situations like these which aren’t considered in some open-source applications. This problem does not exist on the other distributions. But other problems of those distributions might not even exist on Ubuntu. You cannot predict such situations.

But the problem mentioned above can be resolved. All that needs to be done is to download the component on another machine, transfer it to the target machine and execute a few commands to install it through the terminal. But would an amateur user be able to do this?

Don’t get me wrong. Linux (i.e. the kernel) is extremely fast and stable. It is the interface that is unable to handle such situations. Linux Interfaces are quite complex as it is as compared to their Windows counterparts, but there is still more work to be done. Although interfaces such as GNOME and KDE are great window managers, they still lack the finesse of Microsoft Windows or the Mac OSX. It is imperative that if Linux wants to penetrate the Desktop Market, it should meet with the requirements of an inexperienced user. And the only way to do that is to have an extremely powerful, intuitive, simple yet attractive interface. And only when such an interface arrives can one realize the true potential of Linux. Linux would then be able to replace all major operating systems on desktop and laptop machines. It would be the beginning of a GNU generation.

We’re getting closer to that goal with every passing day. But we’re far from reaching that point. Linux Interfaces are still a work in progress and until that day arrives, Linux will never be appealing to the end-user.