My Thinking About Linux: Why How and Where to Start?
Wednesday, Nov 27, 2013
Why this article
I see a lot of articles online about the Good and Bad about Linux almost every day, and I see a lot of people are 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 staff of Linux out there, but not many of them explains where and what to start 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 is generally refers to a really high level of user that can deeply understand the system and use it as their will. I should categorise myself as an Advanced user. I started my life with Linux about 6 years ago, and now all my computers are installed with Linux as the main operating system. The distribution I use on a daily basis is Arch Linux, and I am also familiar with Debian and Redhat 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 confusing. On the contrary, it is designed to make using computer to be 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 the pre-dominated ideas like “Linux is for Geeks”, “Linux is terrible to use”, “I am not comfortable with Linux”. That may be the real reason that why many people just choose to give up when they first find Linux is crashing and giving you “strange” results. To be fair, think about it, when you use Windows (I never use a OS X), have you ever come across a blue screen? Have you ever found out that a software gives you “Need to close” error? I am sure you do! It is extremely difficult to make any operating system flawless, so don’t make 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, edit a lot of video and audio, probably you need an OS X. If you need to work with Microsoft .Net, giving you an Linux system will not work at all. So the answer to this question is simple: if you think Linux can do all what you normally need to do, then there Linux is one of your choice.
How should I start Linux
The wrong approach: dual-booting
A lot of people started 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 what the result to people who started that way:
- 10% of them couldn’t install it successfully, so they quitted quietly.
- 10% of them installed it, but couldn’t boot it, so they quitted 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 quitted with 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 every week, and never touched 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 my experience from people around me. If you don’t believe that, go and talk to few people started with dual-booting by yourself)
Why this is 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 we want to start this way?
The approach I recommend: 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: unable to boot the system, accidentally lose data and many more.
- You have all the data and software you are familiar with still available to you. Most of the virtualisation software gives you the ability to install a tool so called Guest Additions, which is a kernel module plugin to 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 many more devices support.
- You are getting a really good performance out of a virtual machine. Some people says virtual machine is slow, but actually it performs really good nowadays, unless you are doing some crazy stuff like Graphical 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 killing feature compare to a physical computer: you can easily undo things, completely and easily. You can play around with your system and install test software or doing some dangerous things.
- You won’t lose your data. Unless you are sharing all drives with the guest system and mount them all as read-write, there isn’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 use physical machines.
Yes, that is why I recommend people who does not have too much idea of how Linux works should start. Don’t mess up with your existing system unless you know exactly what you are doing!
Pick a distribution
Yes, this is a question that 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:
- 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:
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, less 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 the ones that widely used in the enterprises, and more importantly, the mechanism behind the system is not intentionally hidden from you. It will be a really easy if you start with those distributions, instead of using Ubuntu or Fedora which is targeted to make Linux working nicely as a desktop operating system and hide all 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
On top of my head, you should get the 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 LAMP server, DNS server, DHCP server, VPN server and other kinds of services on Linux, by which will help you a lot on your way of learning Linux. You can also try to configure something fun, like OwnCloud and other open source services that you can actually use it in the future. You should start with a minimal installation (yes, I know it is harder to start with compare 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), now you should be able to move to a later distribution. When you move to a later distribution, please note that try to stick with the distribution similar to the one that you’ve familiar with, in other words, try to use the distribution which is a child distribution of your familiar one. 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 in Fedora (a child distribution) it has migrated to the systemd packages which uses “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 get over it.
- Have fun.