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.
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
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
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/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
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.
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.