For several years now, you’ve probably been hearing about “Linux.” You may be wondering if it’s something you should know about, even be considering for your computer. You may even know that it is a free alternative operating system competing with Windows that’s been around for over two decades. But you may also be a little afraid to learn any more about it because it seems intimidating. Now, I’m not saying you should switch to Linux. It has its uses just as it has its detriments. It just depends on what you’re doing with your computer. It may or may not be right for you. But if you want to know what it’s all about, read on.
In 1991, I had been using computers for quite some time. Apple was just beginning to get popular, but was still viewed by serious computer guys as a (relatively expensive) toy. DOS had migrated to Windows, with a GUI and a mouse to make things far easier and much more intuitive than the old command line interface. And monitors ran graphics and lots of colors to make the interaction a thing of beauty over the old black and green or amber screens.
But, by and large, it was a Windows world. Windows was King. And the King demanded his due. Windows was costly, was often rather buggy, requiring upgrading and patching, had to be defended against viruses and, most irksome to developers, Microsoft refused to disclose its source code. It was proprietary. Without access to this code, users and developers were prevented from making any changes or adding any new or different features to the operating system. Alternative O/Ss such as Unix were also protected and expensive, making them effectively unavailable to PC users. [Click HERE for an explanation of how Unix, Linux and OS X are related.]
Developers dreamed for some time of a utopian O/S world in which the source code was readily available to all at no charge, and anyone interested could submit features to modify or upgrade that code, free of charge and also available to all. Several attempts to develop such an O/S, such as MINIX, just didn’t take off. Minix was an operating system written from scratch by a Dutch professor, Andrew S. Tannenbaum, who was teaching his students how operating systems worked.
A major step forward was the work of Richard Stallman, originally of MIT’s Artificial Intelligence Lab and later the founder of the Free Software Foundation which advocated GNU. GNU stands for “GNU is Not Unix”, meaning that it is free and not protected from distribution and modification. GNU stood for Stallman’s vision that, unlike all other O/Ss at the time, GNU software would be free from any restrictions or costs (under the first GPL or “General Product License” which he wrote in 1989), so that contributors could make changes resulting in better and more efficient software. So, in order to start on the path to such software, he created the GCC (“GNU C Compiler”), a necessary tool for compiling an open O/S code. Such software is now commonly known as FOSS (Free Open Source Software).
Enter Linus Benedict Torvalds, a 21 year old second year student of Computer Science at the University of Helsinki (in 1991, at left, recently at right.) He began with tech at age 11 on a Commodore VIC-20, prior to attenting University. Starting on August 25, 1991, he started posting on newsgroups that he was developing an open-source operating system and solicited comments. By September, 1991, Version 0.01 was released for sharing over the Internet. He didn’t expect much interest. [In 2010, he became an American citizen.]
He was wrong. An entire Linux community popped up, growing geometrically into the hundreds of thousands and spawning hundreds of “distros” or distributions of the O/S, many of which have added their own features, while still remaining true to the open source and cost free elements for the Linux kernel itself. Each distro may come with a version number and even a code name (e.g. Ubuntu v. 11.4, “Narwhal” (2015); 12.04 “Precise Pangolin” (2017)), depending on where it was obtained. It may also result in other distributions based on it (as Debian has over a hundred releases alone, including the popular Ubuntu). The code is estimated to be over 30 million lines (compare to the Ver. 1.0, which was 176,250 lines). The first major distro was introduced in May, 1992 by Softlanding Linux Systems, which later became Slackware (founded by U. of Minnesota State U. student Patrick Volkerding), which is still the oldest of the distros. In 1994, Red Hat, perhaps the best known of the distros, arrived, named after creator Marc Ewing’s habit of wearing his grandfather’s red Cornell lacrosse cap while a student at Carnegie Melon U., surpassing $1 billion in sales in 2012. Over the past two decades, Linux has been adapted to work with a vast array of hardware, has resulted in the creation of thousands of free software packages and has been applied to systems as small as PDAs and cell phones and as large as business networks (e.g. Ubuntu server edition) and parallel computers for personal users, businesses and even governments.
Because it is free of charge, has not been subject much to virus attacks (yet), has lots of free apps, has a global and dedicated community of users, quickly acts to adapt to new hardware and has a desktop which superficially emulates Windows and Mac, and it is now used in homes and offices around the world. However, it still takes a little learning, even if you’ve used Windows or OS X, and it may not support each and every hardware device or software program. Of course, neither does Windows 7 or every version of OS X. For those instances, just as with Apple computers, there is available virtual machine software allowing you to run Windows programs using Linux. (See Links below).
How did it get the name “Linux”? Story goes that Linus originally tried to adopt the Minix operating system, but didn’t like it. Since his program was created to address the problems he had with Minix, he gave it the name “Linux,” meaning “Linus’ Minix”. But he didn’t want to call it that. He actually wanted to call it “Freax” (“Free + Freak + x”). Supposedly his friend Ari Lemmke encouraged Linus to upload it to a network for downloading but, because Ari didn’t like the name Freax, he put it in a directory named “Linux” on his FTP server. The rest is history.
The logo of Linux is a penguin named “Tux”. He was selected to symbolize the friendliness of the Linux movement. According to a post by Ragib Hasan of the U. of Illinois, this cute logo has a very interesting history. As put forward by Linus, initially no logo was selected for Linux. Once Linus visited the National Zoo & Acquarium in Canberra, Australia in 1996 on a vacation. There he encountered a penguin, not unlike the current logo of Linux. As he tried to pat it, the penguin bit his hand. This amusing “penguinitis” incident led to the selection of a penguin as the logo of Linux sometime later. Really?
First, don’t let Linux scare you. It can be easily customized so that it will not appear or act much differently from the Windows or Mac OS that you’re already used to. An example would be the Ubuntu desktop, shown below. Look familiar?
The Main Menu mimics the Start Menu in Windows. You can even install Windows specific programs. This distribution will make it much easier for Windows users to make the jump to Linux.
As originally developed, Linux was exclusively text-based, meaning the user had to type commands into a terminal interface, much like the original DOS. Today, almost all distributions of Linux include user-friendly GUIs. Just like Windows and Apple created a generation of users who didn’t need to know coding and commands, the Linux GUI freed it’s users from the same limitation. Installation has also become easier. Gone are the days when users would need detailed expertise in computer hardware to install Linux. Distributions like Ubuntu, Debian, Suse, Knoppix, and Red Hat's Fedora Core can be installed by even novice users. Most distributions are also available in Live CD format, which the users can simply put in their CD drives and boot without installing it to the hard drive, making Linux available to the newbies who just want to see what it’s all about or test it before installation.
Users can operate the Linux system through either or both of two ways: A GUI (“graphic user interface” similar to Windows) or a CLI (“command line interface” similar to UNIX). For users of the GUI the CLI is available through what’s known as a “terminal emulator” program within. Each command line starts with “sudo,” which means “super users do,” which is a program for Linux that allows users to run programs with administrator rights. Sudo is often followed by “gedit,” which is simply a general purpose text editor.
When the Linux system boots, it uses a automated boot loader program named GRUB. GRUB, the Grand Unified Bootloader, is a flexible and powerful boot loader program from GNU which is used with a wide range of architectures, including Linux. When it starts, for example, it can offer a dual boot option between Windows and Linux on the same hard drive.
After boot, the standard user interface is a desktop environment. This is the same type of desktop, with wallpaper, icons, drop-down menus, a task bar and some sort of equivalent to the Windows Control Panel (e.g. Ubuntu “Control Center”), that you would normally expect on your Windows or Mac desktop machine (but on some versions no Windows Start Button). Depending on your particular flavor of Linux, the desktop “shell” will have it’s own name and features (or quirks): Canonical Ubuntu uses “Unity,” others use “Gnome” (click HERE for a comparison of the two). The resulting windows function pretty much like the windows to which you are accustomed, kind of a merger between those in Windows and Mac. Many of the distros come pre-loaded with Firefox, Libre Office, CD/DVD burning software and the like. You simply have to click and use the software. Depending on your distro, the desktop will have similar but different icons, shortcuts and menus, but the principal is essentially the same. The settings folders may pretty much emulate the Windows control panel as well. Because of these similarities, it shouldn’t require much use to become fully acclimated.
So far, we’re on the same page, I hope. Then what are the major differences?
One of the few major differences between Linux and other operating systems you may be used to is the File Manager. In Windows, for example, the file manager is accessed via Windows (not Internet) Explorer, and it provides a hierarchal display of all of the files and folders on the hard drive. Moreover, programs are installed or uninstalled using the Control Panel or directly with the software package. Linux is slightly harder. In order to manage files, each distro comes with one of several available “file” or “software” managers (although you can change to another if you desire). The most popular ones are KDE and GNOME, both of which are built on an implementation of the “X Window System.” GNOME (pronounced Guh-nome, with no silent G) is an acronym for GNU Network Object Model Environment. It provides a fully functional desktop environment and uses a file manager/browser named Nautilus, which is kind of like a clone of Windows Explorer. KDE uses its own file manager/web browser named Konqueror. They can be activated off of the desktop menus or from the command line. Regardless of the name of the file manager, it is always found on the Main menu if not with its own desktop shortcut. In KDE, for example, it’s located under the Main menu, and is named Home. Sometimes finding the file manager can be slightly difficult.
Also, software on Linux systems is organized into “packages,” but even when downloaded, installation isn’t automatic (as in Windows>next...>next...>next...>finish). You have to use a special utility for this. When you do so, you will find that Linux is much like the Mac, requiring you to enter your password each time you vary anything in the root directory of the system.
While Windows places both hardware and software tools together in the Control Panel, Linux doesn’t work this way. They’re separate. Hardware tools are usually found in the Main menu, under System Settings or the like. Software tools are also usually found in the Main menu, but separately. For example, in KDE, to make changes to the desktop, go to Control Center (sometimes Configure Desktop) under the Main menu.
Also, while both Windows and Linux use the hierarchal file structure, they’re not exactly the same. Unlike Windows, Linux does not employ the concept of “Drive Letters” which split the file system into a series of different “trees,” one for each drive. Linux always has only a single tree. Period. Different storage devices may be represented by different branches of the same tree, but it’s always the single tree.
Another major difference you’ll have to get used to resides in the hierarchal file system itself. Linux goes to great lengths to assure that the “core” system files never interact with the individual “user” files. This is somewhat comparable to the separation between “Admin” and “User” files in Windows. Further, as opposed to Windows, which almost never secures files, Linux’s default is to secure virtually every file, so that you must edit the “permissions” for each file in order to allow it to be altered, moved or deleted. [To edit in Linux, Right Click on the file’s Icon, select Properties, then Permissions tab, then edit and save.]
The Linux high level directories relate to Windows as follows (although most users will probably never touch anything outside of the “home” directory:
/bin = Core OS executables (Windows O/S)
/boot = Boot loader files (Windows O/S)
/etc = OS. app configuration files (Windows Program Data)
/home = User Files (Windows Users)
/lib = O/S resource libraries (Windows O/S)
/sbin = Core O/S executables (Windows O/S)
/usr = Application file executables (Program Files)
/var = Dynamic (variable) system and app data (Windows Program Data, Perflogs)
Alsoi, Linux has something similar to the Windows Control Panel, but it’s called System Settings. This is where you will find Personal, Hardware and System settings all laid out for you.
A third big difference in Linux is how you find the programs. While most program files can be found in the Programs folder in the hard drive (with an icon that has an .exe extension) for Windows systems, it’s not the same for Linux. Linux shows the programs under the “root” drive (“/usr,” similar to “C:\”), then under a “library” (“/lib”) or similar directory (perhaps “/opt”), where you must drill down into the subdirectories until you reach a program file (often a “.bin” file) which is marked as an “executable” file. (See the discussion about the Linux drive directories, above.) This isn’t all that easy unless you really understand files, which many of us don’t. It’s much easier to “search” for the program using the Linux search tool. In Gnome, it’s in Search for Files under the GUI Main menu (or gnome-search-tool for the CLI) and in KDE, it’s in Find Files in the Main menu (or kfind for the CLI). Make sure you’re browsing the entire hard disk, type in the name of your program, and click “Find” and look for the executable file. New programs, almost all of them free, are to be found at the Ubuntu Software Center (if you’re using Ubuntu, but similar for other distros) which is also where you go to remove software. Just like Apple and now Windows, don’t forget your (“superuser” or “Admin”) password, because it is necessary for these tasks. BUT WAIT! There’s another major difference between Windows and Linux...
For one, you just can’t start an executable program by clicking on it from within the search results box, like you can within Windows. In order to run the program, you must instead add it to your Linux desktop so that, when you click on it, it’ll start. Also, this isn’t the same as Windows, where you can right-click on the program in your found files and cut and paste it to your desktop. Nope. Make a note of where you found the file. If you’re using Gnome, go to your desktop and right-click on a blank area, click on “Create Launcher” on the resulting menu (with KDE, it’s Create New>File>Link to Application>Application tab), then browse to the folder you just found in the search results, double-click on it, and the icon will appear on your desktop, ready to start the program at your command. It’s more like the “create alias” command in Apple OS X.
To me, it’s like re-learning Windows every time a major release comes out. In addition to new features, the old features are still there, but are moved or renamed. Take Windows XP, where you go to “Add and Remove Programs” in the Control Panel to remove a program. In Windows 7, this was changed to “Programs and Features” in the Control Panel. Windows 8 completely changed everything, and 8.1 even more. And the interface is slightly changed, with more choices. But it’s essentially the same, just renamed and somewhere slightly different, enough to drive you nuts the first few times you look for it. The various flavors of Linux are kind of like that.
If you’re using the GUI desktop version of Linux, you may never have the occasion to use a command line interpreter (“CLI”) any more than you did to use the command line interpreter in Windows. But it’s good to know that, because each and every Linux task can be completed from a command line, you can find the information if necessary. But if you do need it, there are many on-line guides to help you (see Links, below). Basically, you must learn to use the shell commands from the terminal emulator. The shell program used by Linux (and UNIX) is known as “Bash,” [stands for Born Again Shell] which is a command processor that is typically run in a text window, allowing the user to type commands, and also can read and execute a script file (a mini-program containing groups of commands) as well. Although they are based on Unix, these commands are also quite similar to DOS commands run through the “terminal emulator,” if you’ve ever had occasion to use them, and they involve (manually) creating, executing and deleting directories and copying, renaming, checking files and folders and setting their permissions within the system. To open the command line, click the black terminal icon in the launcher or enter “terminal” into the Ubuntu search field.
Most DOS veterans will see an immediate similarity in commands, like ”mkdir,” “cd,” “ls,” “rm,” “mv,” and “rm”. Favorites among users: (1) The the “In” (to create a shortcut to a file). (2) the “man” command (which, when a program’s name is added to the command, opens help about the program’s options and commands, and the help files; if, for example, you want to learn about the ip command (like ip config in DOS) simply type man ip, and there you are. (3) The “is” command (like the DOS “dir” command, it lists the contents of directories, but has more power when used with the switches). (4) The “mv” command, which moves files and folders as well as renames them. (5) The “rm” command, which deletes (“removes”) files or folders (need we say “be careful” here?). And (6) The “grep” command, which is like the “find” command to locate strings in a usually lengthy file. There are countless internet resources about the Linux command line, many of them hundreds of pages. Of course, most of these tasks can be accomplished with the GUI interface as well, which is what most users will usually utilize.
Software programs are available for Linux from various sources. Many of the distros have their own software centers, which are based on the concept of repositories, which are basically a central location for accessing new software through a catalog of “packages” available for downloading from that site. Many of the distros have a simple interface (like the Ubuntu Software Center or Synaptic) which walk you through the installation process. There’s even an open source cloud-based productivity suite, a la MS Office, called Open-Xchange (“OX”).
Finally, there are Linux systems designed for embedded devices, like the Edison from Intel, which require less than a full-blown Linux OS for purposes of running a small-form dedicated device, like Raspberry Pi and other “maker movement” devices.
For those who desire to write programs for Linux, virtually all programming languages (e.g. C++, Java (see Programming for more) are supported. And many of the applications for Windows or Mac are also available for Linux, or in the alternative have similar (usually no cost) applications written specifically for Linux.
It’s well beyond the scope of this site to explain Linux in more detail, but there are lots of sources both on and off of the Web for that purpose (see Links below). The main idea here is for you to understand what Linux is, how it came about and how it is used
For die-hard Windows users who not only want the same visual experience they have been used to, but also want to run their usual Windows programs using Linux, there are several excellent “crossover” alternatives:
First is CodeWeaver’s CrossOver Linux. This application makes it possible to run many common Windows programs using Linux. Click HERE for a list of the supported programs, which include most office apps, games, browsers, graphic and accounting programs.
Even more familiar to Windows XP users, Linux Zorin, released in 2014, is as much like the Windows interface as possible, with a Start Button, a system tray, desktop icons and a taskbar.
Or try Linux Mint (particularly Version 16 Petra, with the Cinnamon interface, which looks and acts a lot like XP). See Tip #58.
Perhaps feeling the pressure, Microsoft has released Core Linux tools, including the Shell, to run natively inside Windows 10, thanks to an official Microsoft project that translates Linux system calls. It’s a start, but to use it you have to jump through a number of hoops, it’s incomplete and it’s mainly for developers, although it may become more mainstream later on.
Finally, Linux is also the base system for Tizen, an open source operating system for smart phones, tablets, smart TVs and other appliances, including automobile devices, and increasingly used over the Internet of Things (“IoT”)
So who would benefit from using Linux?
- Those people who don’t want to pay hefty fees for the Microsoft or Apple operating software.
- Or those users who don’t like the idea of using proprietary software that they can’t modify as they see fit.
- People who are using their computer for relatively simple tasks and don’t have lots of proprietary or specialized software or hardware.
- Businesses which are using dedicated software systems throughout their network.
- Computer users who like to fiddle with, customize and fine-tune software.
If you are a more advanced user, having a Linux boot disk or flash drive and understanding its uses has other advantages. Many network devices such as routers, external drives and network printers, as well as VoiP boxes, streaming video set top boxes (like Roku), and Android tablets and smart phones are controlled by embedded versions of Linux constrained to a very specific task. But they can sometimes be reset or repaired with a Linux boot disk (partition recovery) if they malfunction or crash. Again, only for advanced users. But it’s an added feature.
- People who require absolute consistency with their employers’, clients’ or other people’s software (e.g. if they all must use MS Office Excel 2010, or Quickbooks Premier Accountant’s Version 2011 throughout the enterprise).
- Those who don’t want to take the time or effort to learn anything new.
- Or users with lots of specialized, proprietary software (custom or legacy programs or apps) or hardware (like like special or older printers) that just can’t be made to work on Linux.
...Yes, you can install virtual machine software to run Windows or Mac software or hardware drivers on Linux, but it slows down the computer (after all, you’re running two operating systems on one machine) and defeats the purpose of running Linux if you have to pay for the Windows or Mac O/S!
Will Linux ever become mainstream? It’s happening right now, more and more, as users are being offered a reliable out-of-the-box system (just like Windows PCs) without setup worries, like hoping that the hardware has appropriate drivers and getting the right codecs and programs. The Linux of today isn’t the same as the original Linux of years ago. This is because it had to adapt to capture Windows users, who are used to a complete plug-and-play experience. So, we’re finally seeing more and more delivery systems from current reliable hardware vendors, which is happening now that they realize that people will actually buy such Linux machines. Now, Linux is reaching the masses and even (more) businesses. The “Crossover Linux” versions, discussed above, are going a long way toward bridging the gap, as well as Zorin, discussed below. You may remember that back in 2002 or so the original WalMart attempt at “Lindows” (a Linux machine with Windows desktop interface right out of the box) was a failure, mainly because the users thought they were getting actual Windows and weren’t able (or willing) to make even small adjustments, so they were returned en masse. Now that Linux has evolved to be easier and easier to configure (it’s now actually easier to install than installing Windows), it has secured a major place in the future of computing. (It’s already being used in phone operating systems, whether you realize it or not.)
Once derided by Microsoft’s Steven Ballmer in 2001 as a “cancer that attaches itself in an intellectual property sense to everything it touches,” in 2014 nwq CEO Satya Nadella appreciating Linux’s influence, declaring Microsoft’s love for Linux.
Regardless of the tipping point, it’s inevitable, if not already complete, especially due to its use powering the rise of IoT appliances and the Android mobile platform. It powers more than 95% of the top million domains, most of the world’s financial markets, 98% of the top 500 fastest supercomputers and 75% of cloud-enabled enterprises. That’s a big deal! It’s all timing: Kind of like the Apple’s Newton miserably failed, but the iPad was a resounding success ten years later. (Although, to be fair, the poor battery life, high cost and lack of internet connectivity were also major contributions to Newton’s demise.) Maybe Canonical will develop such a system, time will tell. Right now, System76 supplies them, as does ZaReason, Think Penguin, The Linux Laptop, even Dell and HP (on line, anyway). In 2012, Dell started it’s Project Sputnik to engage Mac and Windows users to it’s Linux-powered developer XPS Ultrabook laptops. The Lemur laptop from System 76, available in 2016 and starting at $699 has raised the bar substantially and is useful for those who rely on the web (a la Chromebook users), are developers or writers and the like. And in 2016, the Aquaris M10 tablet (running the Ubuntu Touch O/S) got great reviews. But the big box stores like Best Buy don’t stock them, probably because they can’t bundle their own bloatware with it, so that’s slowing down mass adoption.
UPDATE: Check out the link to Zorin, which claims to emulate a Windows desktop. And OX productivity suites. Soon, it would be to Linux’s advantage to produce its own ChromeBook cloud device, and maybe someone will...