Back to the archive

From the archive

My Thinking About Linux: Why, How and Where to Start?

On this page

Why this article?

I see a lot of articles online about the good and bad sides of Linux almost every day, and I see a lot of people wondering whether they should learn and use Linux. Some people (maybe I should say most people) who decided to learn Linux did not know exactly where and what they should start their journeys with. There are a lot of advanced Linux users and developers talking about the good and cool stuff in Linux out there, but not many of them explain where and what to start with for a new Linux user. Some of them do have explanations, but from my perspective they are still too difficult for a new user to understand.

Something about me

I am a Linux user, and I love Linux. I am not an expert user, because that generally refers to a really high-level user who can deeply understand the system and use it as they wish. I should categorise myself as an advanced user. I started my life with Linux about 6 years ago, and now all my computers have Linux installed as the main operating system. The distribution I use on a daily basis is Arch Linux, and I am also familiar with Debian and Red Hat-based distributions like Ubuntu, Fedora and CentOS.

Linux as a desktop and its users

What is Linux and why can’t people use it?

It’s not something that is designed to make people go crazy, nor to make people miserable or confused. On the contrary, it is designed to make using a computer simple and painless (that is what Linus thought, by the way). It is just an operating system, like Windows and OS X, that bridges software on the computer and the hardware.

I think the problem when most people start to use Linux is that they have preconceived ideas like “Linux is for Geeks”, “Linux is terrible to use”, “I am not comfortable with Linux”. That may be the real reason why many people just choose to give up when they first find Linux is crashing and giving them “strange” results. To be fair, think about it: when you use Windows (I have never used OS X), have you ever come across a blue screen? Have you ever found that a piece of software gives you a “Need to close” error? I am sure you have! It is extremely difficult to make any operating system flawless, so don’t jump to the conclusion that “Linux is unstable” or “Linux is buggy” when you see some of the tools are crashing. It happens everywhere.

Is Linux better or worse than other operating systems?

From my perspective, it truly depends on what you are doing with your system. If you need to work on Photoshop or edit a lot of video and audio, you probably need OS X. If you need to work with Microsoft .Net, giving you a Linux system will not work at all. So the answer to this question is simple: if you think Linux can do everything you normally need to do, then Linux is one of your choices.

How should I start with Linux?

The wrong approach: dual-booting

A lot of people started with Linux in a “hard” way, which is dual-booting. In other words, they tried to install two systems on their computer. Let me tell you the results for people who started that way:

  • 10% of them couldn’t install it successfully, so they quit quietly.
  • 10% of them installed it, but couldn’t boot it, so they quit quietly.
  • 20% of them installed it, but couldn’t boot it, and what was worse, they couldn’t even boot their old system, so they quit in anger.
  • 50% of them installed it, booted successfully and used it for about 2 hours. Then in the next few weeks they spent 30 minutes on it every week, and never touched it again. Until one day they needed more space for the latest “Call of Duty”, so they deleted it.
  • 10% of them finally made it and started to use Linux frequently when they needed.

(The data above is not based on statistical analysis, but purely on my experience with people around me. If you don’t believe that, go and talk to a few people who started with dual-booting yourself.)

Why is this wrong? If you really think about it, it is obvious:

  • You are moving to another operating system, newly installed, without much software installed. What can you do on it?
  • You cannot access your data on the old system easily, so you are kind of starting from scratch.
  • Your host operating system is just a reboot away, so why sit here doing nothing with Linux? Let’s reboot and start to kill some enemies!

See the problem? You are facing not only a new system, but also a new computer! Why would we want to start this way?

The approach I recommend: a virtual machine

There are many reasons why you should start with a virtual machine if you are just starting your journey with Linux:

  • You don’t have to touch your physical computer. This saves lots of trouble: being unable to boot the system, accidentally losing data and much more.
  • You have all the data and software you are familiar with still available to you. Most virtualisation software gives you the ability to install a tool called Guest Additions, which is a kernel module plugin for your system in order to get better performance and more features out of the virtual machine. For example, in VirtualBox, you can get flexible resolution, copy-paste between host and guest machines, shared folders and support for many more devices.
  • You are getting really good performance out of a virtual machine. Some people say virtual machines are slow, but actually they perform really well nowadays, unless you are doing some crazy stuff like graphics or video processing, or you want to play games in the virtual machine. None of those will happen in the Linux system really often.
  • You are able to take snapshots. This is a killer feature compared to a physical computer: you can easily undo things, completely and easily. You can play around with your system and install test software or do some dangerous things.
  • You won’t lose your data. Unless you are sharing all drives with the guest system and mounting them all as read-write, there aren’t many ways that you can lose your data if you have some problem with your virtual machine.
  • You will be able to move virtual machines to other computers easily, or make copies.
  • You can build complicated topologies using virtual machines, which you cannot easily do using physical machines.

Yes, that is how I recommend people who do not have much idea of how Linux works should start. Don’t mess with your existing system unless you know exactly what you are doing!

Pick a distribution

Yes, this is a question that is worth some thinking. Which distribution should I start with? My suggestion is simple: start with an enterprise-level distribution.

Here is a list of distributions that I recommend for new Linux users:

  • Debian
  • Red Hat Enterprise Linux (CentOS, Oracle Linux, Scientific Linux)
  • SUSE Enterprise Linux (OpenSUSE)

Here is another list that people usually start with but I do NOT recommend:

  • Ubuntu
  • Fedora
  • Mint

My reason is simple: when you are trying to understand how Linux works, don’t use the bloody cutting-edge distribution because you will easily get yourself into trouble due to the poor documentation of the software, fewer question-and-answer posts you will find on Google, and new designs and concepts that haven’t been fully tested and distributed.

Therefore, start with something that is well documented and supported. All the distributions in the first list are widely used in enterprises, and more importantly, the mechanism behind the system is not intentionally hidden from you. It will be really easy if you start with those distributions, instead of using Ubuntu or Fedora, which are intended to make Linux work nicely as a desktop operating system and hide all the complicated configurations and their mechanisms. Yes, our ultimate goal may be to use Linux as a desktop OS, but it’s not a good starting point because you need to know how Linux works before you can master it.

What you should expect for your first distribution of choice

Off the top of my head, you should get an idea of how Linux works in general. You should get some basic ideas about commands, packages, libraries, file/folder structures, services and all kinds of new concepts which you don’t have to deal with if you are using Windows or OS X. And I think the best way to learn that is to give yourself some tasks. For example, you can try to install and configure a LAMP server, DNS server, DHCP server, VPN server and other kinds of services on Linux, which will help you a lot on your way to learning Linux. You can also try to configure something fun, like OwnCloud and other open-source services that you can actually use in the future. You should start with a minimal installation (yes, I know it is harder to start with compared to a GUI environment, but that’s a better way, because you have a cleaner environment), and then build everything step-by-step, and don’t forget to take snapshots along the way.

After you’ve got a better understanding of the Linux environment, and hopefully a better understanding of either VIM or Emacs (I am joking; if you just like Nano, I am totally fine with that), you should be able to move to a later distribution. When you move to a later distribution, please try to stick with a distribution similar to the one that you’re familiar with. In other words, try to use a distribution which is a child distribution of the one you know. Even with this in mind, you will still find out that the later distribution is hardly similar to the previous generation. To give you a simple example, in RHEL (CentOS), you usually use “service” to start, stop and reload services, whereas Fedora (a child distribution) has migrated to the systemd packages, which use the “systemctl” command. You will find out a lot more when you start to use it.

Finally, my suggestions

  • Know one distribution well, and know other distributions a little bit, don’t ignore them.
  • Understand the configuration files, don’t copy and paste without thinking.
  • Be patient, read the docs.
  • You will get frustrated; just try to make yourself more frustrated, and you will find yourself finally getting over it.
  • Have fun.