This post is the Part 2 in a series of posts where I describe how I switched my personal computer from pirated closed source solutions to completely open source solutions.
In Part 1, I discussed how I started swapping open source solutions for closed source solutions in Windows XP. A lot of these software tools are multi-platform and they run on all operation systems such as Windows, Linux and Mac OS. For instance, I described GIMP for photo editing and VLC for playing audio and video. Once I got fluent at using these various tools, it was time for me to make the biggest change of all, i.e. to uninstall Windows and install and use Linux permanently. This can be a very intimidating change and I would like to dedicate this post to introduce some principles of Linux that must be understood before preparing for the big change. The biggest thing to learn was to ‘unlearn’ the Windows way of doing things and embrace the Linux way. Here are the tips in no particular order of importance.
- Do not compare: Please understand that Linux is not the same as Windows. On one hand, it is always easy for us to understand and learn one concept with the help of another concept using comparisons and analogies. But on the other hand, it automatically puts some expectations into our mind based on what we know about the analogy.
E.g. In the 1990s, we were told, “Writing an email is the same as writing a letter to someone over a computer”. This sounds simplistic and makes a concrete image in our mind about what exactly an email is. However, this does not apply when we actually sit down to write an email. The nitty gritties get to us. In the 90s, connecting to the Internet over a dial-up connection was an ordeal. Then came the learning curve of typing intuitively on a QWERTY keyboard vis-a-vis writing with a smooth flow with a pen. I have not even bothered explaining the long process of registering and signing up for an email account. The experience was so frustrating that we were tempted to lament, “This would never happen while writing a letter. It is so easy to just write with a pen.”. Now in hindsight, there is no question that email is much more convenient than writing a letter. But because of the initial analogy, we came into the new system with some expectations and harboured frustrations when the expectations were not met smoothly.
Learning to use Linux initially raises similar feelings. We come with the same set of expectations as the equivalent Windows tools, until we realise that everything from the screen layout to the keyboard shortcuts are not the same. It is important to embrace the differences and unlearn old habits.
The above screenshots compare the two desktops, i.e. Windows and Linux. While the two do not look extremely different from each other, i.e. both have icons, bottom bars with status icons and a place to invoke the start menu, the experience while using the two will have differences that are noticeable and will have a learning curve.
- Always start with a brand new hard disk: While most Linux enthusiasts (myself included) will happily claim that Linux and Windows can co-exist on the same hard disk, beginners will typically see some toe-stepping between the two. On installation of both the OSes on the same hard disk, we are supposed to see a screen (called GRUB or GRand Unified Bootloader) that gives us a choice to boot into one of the two OSes. Alas, the installation doesn’t always work as advertised and we end up with black screens with undecipherable prompts giving the user no clue on what happened or how to make the right things happen.
Invest in a good clean new hard disk and use it for experimenting with Linux. Instead of the GRUB menu, we can always use the guaranteed-to-work BIOS settings to boot between either of the hard disks.
- Think directory hierarchy throughout, not partitions: Windows users are used to seeing hard disk partitions like C:, D: and so on. Each partition has its own hierarchy of directories, e.g. C:\My Documents, D:\Annual Reports, etc. This does not apply to Linux. Linux has one tree for the entire system, that starts with /. There are directories like /etc, /home, etc. Additional hard disks are represented as directories within that single hierarchy. Typically most Linux distributions (we will come to this term in a bit), will use /media or /mnt to represent extra hard disks, e.g. /media/Seagate4GB or /mnt/cdrom. Further hierarchy within those directories represent the contents of that disk. E.g. /media/Seagate4GB/Pictures represents a directory named Pictures in that additional Seagate hard disk.
The left panel shows Windows Explorer with drive letters for different partitions / external disks. The right panel shows how Linux arranges things. The external disk is located under /media/disk. Notice that there are no seperate drive letters to indicate a different disk.
- Ignore all the noise and install the latest Kubuntu to get the best Linux desktop experience: I just mentioned ‘distribution’ in point 3. Since Linux is open source, many different organisations have come up with their own variations. Each variation is called a distribution or distro for short. Each distro has a different purpose depending on what the distro maker thinks constitutes the best Linux experience. Since the day 1 of my switch, I wanted to make Linux my go-to OS of choice, which means that whichever distro I chose was to be desktop friendly. Most distros are not so desktop friendly and will need a big learning curve especially when switching from the super easy experience of Windows / Mac GUI. I am committed to encouraging people to use Linux as a desktop OS and with my over-a-decade experience will recommend only ONE distro to start with. Do not look beyond the latest version of Kubuntu. That happens to be 15.10 as I write this blog. Kubuntu uses the KDE desktop which is the easiest Linux GUI system to use and provides the best bridging experience from Windows. It also comes with a very rich set of inbuilt tools, in fact better than Windows’ set of inbuilt tools. E.g. the inbuilt editor Kate is better than Notepad, since it supports Unicode out of the box, which means you can make text files in non-Latin script languages, such as Hindi, Arabic, Tamil, etc. There are other desktop GUIs such as GNOME, Unity desktop, XFCE, etc, but their capabilities are limited and they do not offer an intuitive experience like the KDE desktop. Even after 13 years, I still use KDE desktop for my day to day Linux computing needs.
- In the war between security and convenience, Linux opts for security: Windows users (especially XP, Vista and 7) are used to one-touch interactions with the OS to get the job done. This is seen especially while installing new software tools. Clicking once on a setup.exe will ensure that after a few seconds, a shiny new tool is ready for use. This also opens up the possibility of malware being easily installed. In such situations, Linux makes it mandatory to either log in as the administrator user (called ‘root’ user in Linux parlance) or type in the root password whenever a new change is requested. Beginners will find it particularly annoying when learning Linux when they run into a sea of permission problems. This is Linux’s way to telling the user that some sensitive things are about to change in the computer. The solution is to simply switch to being the root user until the sensitive work is done. Over time, the annoyance will fade away as it becomes a routine and a good practice.
- Software installation is more like an app store: This probably is the biggest confusion that most Windows to Linux users will encounter at first. In Windows, each tool supplies its setup.exe, clicking on which will go on to install the software that the user is intending to install. To obtain the setup.exe, the user simply goes to the software vendor’s website and downloads the installer. In the Linux world, things work differently. Similar to the mobile world’s app store model, there are repositories which host software for various distros of Linux. There is a software tool which accesses the repository to download and install the software. In the Ubuntu world, the tool is called Apt, for Red Hat, it is Yum and for SuSE, it is YaST. One can think of them as the Google Play Store for Android or the Apple App Store for iOS. Each tool only works on the distro of Linux that it comes with. While the tools are different, the principle of use is the same. We use the installation tool to look for the software that we want. It then goes on to find the software in the repositories that host the software, downloads it and installs it. There is one more method by which we can install software on Linux and that is by downloading the original source code of the software and manually building it ourselves. But this is impractically difficult for a desktop user and I will not cover this method in this series.
- Hardware support is excellent for some vendors, but extremely patchy for others: One of the biggest nuisances that I had after installing Linux was the dismal support for HP printers. I simply could never get it to work with the same seamlessness as in Windows. This is a common story for many vendors. Monitors, display cards, keyboards, mice, wired network cards, scanners, bluetooth devices and sound cards are generally supported with little or no problems. However it is quite a different story to make printers, USB Internet dongles and WiFi cards work without teething troubles. This is generally due to the indifference shown by certain vendors to Linux, due to the low user base. If you see problem with some of the hardware, I suggest getting up the Internet connection as the first and foremost priority so that you can search for solutions over Google. Some commands like lspci and lsusb become indispensible so that we can see the name of the manufacturer and model. These two key pieces of information make Google search a snap. E.g. “Ubuntu 15.10 Broadcom BCM4313 wifi”, will give you more relevant results, rather than typing in, “Linux wifi not working”. Search for narrower results first. Then if you are not able to find what you are looking for, you can start broadening your scope. With enough perseverance, it is possible to get every bit of hardware working without a hitch. Also, the newer the version of Linux installed, the better the support for hardware.
Thats it for this post. I hope it has helped highlight some differences that the a first time user will encounter while installing and using Linux. In the next post, I will post some more details on what I encountered while switching my own computer from Windows to Linux.