Creative commons photo by Liam Quinn.
A few basic concepts every Linux newbie should know
Change is hard. It can be intimidating, confusing, and make you feel like a total newb. Migrating to a new operating system can certainly carry that kind of emotional weight. It seems like everyone else is an expert, and the language completely different. The language of Linux can seem especially dense to the uninitiated.
We get it, and we've been there. There's no need to panic.
Linux has evolved by leaps and bounds over recent years, and installing and using the OS can be accomplished without ever using a terminal window. If you're ready to dive into the open world of Linux, there's a few basic concepts you should wrap your head around first.
1. The "Linux" OS isn't what it seems
If you talk to any hardcore free-software advocate, they'll tell you that what we usually refer to as the "Linux" OS is actually properly called GNU/Linux. Although most people will simply say "Linux" for brevity, there's a very important distinction to be made.
What people think of as Linux is mostly the operating system GNU, short for GNU's Not UNIX (programmers love recursive acronyms). GNU is the collection of programs like task schedulers, code compilers, text editors, and other console commands. Basically, it's every program you need to do stuff on a PC. Everything, that is, except talk to hardware.
GNU and Linux work together to form a complete OS.
Creative Commons photo by Francios Schnell.
Linux is what's known as a kernel, and was written as a replacement for the UNIX kernel by Linus Torvalds (guess where he got the name). The kernel basically opens pipes for the OS and drivers to interact with the system's hardware. For hardware that is not natively supported in the kernel itself, the kernel can use drivers in the form of kernel modules. When you install your Nvidia driver in Linux, the driver communicates with the hardware directly, but still needs the kernel to tell it where the hardware is.
Needless to say, an OS can't work without a kernel, and Linux has been the dominant kernel for the GNU operating system. There are other options (like GNU/Hurd), but for most GNU installations in the wild, Linux sits underneath. That's why GNU/Linux can be truncated to just Linux. Some may cry and wail, but it's just easier this way.
Another thing that should be cleared up is that there isn't just one Linux OS. There are actually about 277 different active distributions according to DistroWatch. What is a distribution, you ask? A distribution is essentially a GNU/Linux package with a bunch of other program suites added on top. A distribution will often include a desktop environment (we'll get into that later) and a package management system.
Distributions can also be based on other distributions, making customizing the distribution easier. Ubuntu, for example, is Debian-based, and uses the same package management system, Aptitude. Linux Mint is a derivative of Ubuntu, and also uses Aptitude.
There are also "flavors" of distributions, too. UbuntuGNOME, Xubuntu, and Kubuntu are all the same Ubuntu under the hood, but use different desktop environments (we'll get to those later).
The last, and one of the most important things to remember about the idea of Linux as an OS, is that there often isn't just one place to get support. For the most part, each program or package on a Linux system is developed by a different team, members of which may or may not talk to one another. In terms of support, this means there is no central place to call for help (or to blame). That said, there are plenty of places to find support. Ubuntu Forums is a helpful place to look, and the Arch Wiki has a wealth of information on how different programs work.
2. Filesystems, files, and devices are different
The way filesystems structures are organized in Linux are much different than what you'll see in Windows. At first, it can seem confusing, but once you get the hang of it, it becomes pretty intuitive.
The first thing to know is that the filesystem tree starts at one place, known as the root (not to be confused with /root
), which as a simple path: /
. A hard drive, partition, or other storage device is then mounted to a path on that tree. This means you can use a small SSD for the system mounted at /
, while using a larger SSD or an HDD for user files mounted at /home
. A user named Carol can even have her own drive mounted just for her at /home/carol
.
A look at the root folder.
While the filesystem tree is quite different than Windows, the underlying filesystems themselves are also quite different. Linux can use many different filesystems, and isn't limited to FAT32 or NTFS like Windows is. For most installations, Linux defaults to a filesystem called Ext4. Users can always change filesystems if they prefer something more specialized like BTRFS or ZFS. Linux has the ability to read and write to FAT32 and NTFS, as well. However, the drivers for those filesystems don't support user ownership, and aren't good choices for the /home
folder.
Files themselves are quite different in Linux. Like Windows, each user owns their own set of files, with permissions given to groups or everyone, depending on what's needed. Unlike Windows, file extensions in file names are usually there to help the user, not the operating system. (That means executable files simply have the executable bit set, not an .exe extension.) Just like your mom told you, it's what's inside that counts. Both the files /home/carol/apple
and /home/carol/orange.txt
can be text files. That doesn't mean you should throw away the idea of using file extensions; they're really helpful in reminding you what kind of file you're looking at.
At this point you might have also noticed that Linux uses forward slashes for paths, and there is no drive letter designation. It's okay, you'll get used to it.
What might take some more getting used to is the idea that devices like keyboards, storage, and monitors appear as files. The directory /dev
contains all of the system's devices. When it comes to storage (or block) devices, you'll have a device like /dev/sda
. Now, you usually don't mount or write to /dev/sda
directly. Just like Windows, the device needs to have at least one partition in order to write files to it. Partitions are usually denominated by numbers appended to the block device (like /dev/sda1
).
3. You'll love your new desktop choices
If you're a Windows or Mac user, you're probably quite well adjusted to what your desktop looks like. No matter the machine, you'll know exactly where to find buttons, menus, and commands. They'll all look pretty much the same, too. No so on Linux.
Unlike Windows and Mac OS, the graphical environment isn't baked into the operating system as a core component. Instead, the program that pushes pixels (X11 or Wayland) is just another program like any other, and is completely optional. On top of that, the graphical server doesn't inherently tie you to any interface. You can take your pick of window managers and desktop environments, which, by the way, aren't the same thing.
Huh?
It's easy to get confused, but there is a big difference between a window manager and a desktop environment. A window manager, well, manages windows. It makes sure a window has a title bar, and can be moved, resized, and minimized. A desktop environment is a suite of programs that includes a window manager and a set of tools like a file browser, configuration tools, and other programs.
The GNOME 3 activities panel.
There's a wide range of desktop environments to choose from, but the most common ones are Unity (Ubuntu's default), GNOME 3 (Fedora's default), KDE, XFCE, and MATE (pronounced Ma-Tay, like yerba mate).
While most users will opt for just one environment, it is entirely possible to have more than one desktop environment installed at once. If GNOME's got you down, you can just install and use KDE instead. If it turns out that you're not a big fan of how KDE does things, you can set GNOME to be your default again with just a little configuration. Desktop environments usually come with window managers as dependencies. Ubuntu's Unity uses the Compiz window manager, while GNOME 3 ships with GNOME Shell.
If you want a super-lightweight experience, you can always just run a window manager like Openbox by itself.
4. Software repositories are awesome
Right after you're done installing Windows, what's the first thing you do? If you're like us, it's open up Internet Explorer to download Chrome or Firefox. From there, it's a race to download favorite programs like VLC. With Linux, all of this can be done much, much faster, and all without the need for a browser.
Most popular Linux distributions come with a package manager, which keeps track of what programs you have installed and the version for each program. When you try to install a new program, the package manager queries the distribution's repository (or repo, for short) to look for the software package. If it is found, the package manager downloads and installs it automatically. If a program has a dependency of some sort, most package managers will attempt to install the dependencies first.
The Ubuntu Software Center is a lot like an app store. Creative commons image by immysl.
The majority of package managers and repos offer binary versions of programs, so you can use the program right away once it is installed. However, some distributions—like Gentoo—download the source code for a program and compile it before installation.
While that may sound a little complex, it's not much different from the idea of having an app store, though Linux software repos have been around much longer than iTunes or Google Play.
While some package managers come with a GUI, the command line is usually the quickest and most powerful way to manage programs.
5. You'll get over that terminal illness
Now that we've brought up the command line, we can feel some of you backing away. Many people haven't had to type text commands into a box since DOS and Windows 3.1. But it's okay, really. It's not as scary as you think.
If you find yourself in a bind on Linux, there's a good chance you can fix it with a few terminal commands. Terminal commands can be powerful, and learning the basics will help you fix things and get stuff done, even if you use a GUI 90 percent of the time.
And if you're frightened about messing things up, Linux does its best to keep you from shooting yourself in the foot. Remember how files have a pretty strict permissions system? Many configuration files and system operations require root access, which means normal users can't break things. Since you should NEVER log in as root for everyday use of a desktop, you'll likely use the command sudo. (Think of it as "super user do").
You can update all the packages on Arch Linux with a single terminal command.
Sudo temporarily elevates a user's permission to that of the root user, allowing for editing of config files, and the installation of programs. Think of it as confirming administrative access in Windows. Only with sudo, you have to give the user's password (not the root password) and the user has to be in a special user group of "sudoers."
With the help of the terminal and sudo, installing programs becomes a five-second affair. Want to install VLC on Ubuntu? Simply type sudo apt-get install vlc and bam! You're done. No searching on the web, clicking through dialogs.
If you're unsure of what a command does, most programs comes with a manual called a man page. Man pages may not answer all your questions, but they'll clarify what parameters a command can take. If you want to know how to copy files, simply typing man cp will let you know everything about the copy command.
Just a word of caution: don't go copying and pasting terminal commands from the web willy-nilly. While this method can be a time saver over typing in things yourself, it's best if you know what each command is actually doing. If you're unsure what a particular command does, look it up. There's a plethora of documentation available online for the vast majority of console commands.
6. Lack of hardware support makes you a (more) discerning shopper
If there's one thing detractors love to snicker about, it's the lack of support for certain hardware and software. And this, by far, will be the biggest annoyance when using Linux.
For most of your hardware on Windows or Mac, you can expect the vendor to provide driver binaries for you to use. That's not always so with Linux.
Most Linux hardware support is built right into the kernel, so if it's a common piece of hardware, there's a very good chance it will "just work." However, some devices (especially new ones) don't make it into the kernel, leaving the user to find a way to get it to work. This can be especially tedious for Wi-Fi drivers, since getting online makes installing, updating, and finding support much easier.
Even though Nvidia provides a binary Linux driver that works quite well, you can kiss the GeForce Experience good bye.
This isn't all Linux's fault, however. Many vendors support Linux by either providing open documentation for an open-source driver, or by providing a proprietary binary driver to use (like Nvidia and AMD do for their video cards). Some vendors don't see value in supporting Linux at all.
Without vendor support, the only way to get a piece of hardware to work is for someone in the community to obtain the hardware, and try to reverse-engineer it or experiment until they get something to work. This takes a lot of time and effort, and can mean months or years spent developing a driver for a single piece of hardware.
Users looking to switch to Linux should research the hardware they intend to use, and make sure it is supported. If you've got a laptop, double check the Wi-Fi card in use, as some laptop vendors lock the BIOS into using a particular Wi-Fi make and model. There are some PC makers that create machines just for Linux use, but options are far more limited.
7. Embrace the free-software lifestyle
When you switch to Linux, you'll find a few programs you're used to on Mac or Windows available for your new OS. Chrome, Firefox, and even Skype have Linux versions available for penguin-loving rebels. But more often than not, you'll find yourself shorted, and looking for another way to get things done.
If you use a key piece of software for that keeps you tied to Windows, you'll have to look for an alternative if you really want to make the big jump into Linux. Neither Adobe Creative Suite nor Microsoft Office are available on Linux. GIMP offers a good alternative to Photoshop, while LibreOffice can do most things that Microsoft's suite does. Of course, you can always try to run your Windows applications in WINE or a virtual machine, but doing so isn't officially supported.
LibreOffice's Writer looks a lot like a dated Microsoft Word, and can read Word files to boot.
As for games, Steam has a library of over 1,500 games available to Linux users, but it's a far cry from its Windows offerings. For gaming, many Linux users prefer to dual-boot their PC, using Windows only for gaming or other critical software. If you choose to dual-boot, it can be a pain in the butt. But at least you can take solace in the fact you can read files from your NTFS partition when you boot into Linux.
There's one good thing about using free-software alternatives: Your data stays yours and you probably won't have to spend a penny on it. You also have the option to modify anything about the free software you use, since the source code is freely available.
When it comes to security, Linux offers pretty good protection so long as you don't open yourself up to be easy prey. While the belief that there are no viruses or malware for Linux isn't technically true, the amount of viruses and malware that affect desktop Linux installations is quite low compared to Windows. (Many attackers exploit vulnerabilities in outdated software via SSH or telnet. As long as you keep your software updated and disable your SSH server, you'll probably be just fine.) When you use free software, there are no deliberate backdoors, phoning home, or—for those on the paranoid side—NSA shenanigans to worry about since all the code is open to (and auditable by) the public.
8. Prepare yourself for blank stares
PC enthusiasts have a hard enough time trying to explain what it is they use or work on. Being a Linux user requires an extra level of patience when interacting with those not in the community.
Chances are, if you go looking for a piece of hardware at your local electronics store, the staff won't have the slightest clue if the item has Linux support. In polite conversation with people, trying to explain that Linux is an operating system (and that no, it doesn't run on Windows or Mac) can take tact. And, since most people don't use Linux on their laptops or desktops, you'll find yourself becoming an unwilling Linux ambassador of sorts, explaining your OS and why you switched.
Linux offers a great alternative to desktop users who want to try something different than what Microsoft and Apple are offering. As with anything, turning away from the mainstream comes with a few caveats. Luckily, Linux has a vibrant community of enthusiasts who are eager to help others migrate and experiment with their systems.
So don't be afraid; dive in. The water's fine.