Linux is a tried-and-true, open-source operating system released in 1991 for computers, but its use has expanded to underpin systems for cars, phones, web servers and, more recently, networking gear.
Its longevity, maturity and security make it one of the most trusted OSes available today, meaning it is ideal for commercial network devices as well as enterprises that want to use it and its peripherals to customize their own network and data center infrastructure.
That in turn makes Linux skills highly sought after by IT hiring managers. For example, many of the new technologies associated with DevOps, such as containers, infrastructure, and SDN controllers, are built on Linux.
What is Linux?
Linux is an operating system similar to — though, as we'll see, not directly descended from — Unix. Like most Unix-like OSes, Linux is made up of several components.
This is the core of the system and sends instructions to the CPU, peripherals and memory.
The processes that manage the booting up of the system. On a computer the user would recognize this by the splash screen that was up. On a network device there’s a status indicating boot process.
Background services that start at boot time or after the system is fully up. For example, the network daemon activates all network interfaces at boot time. Other daemons are things like time and DNS.
This is the Linux command line. It can be intimidating for people that are used to working in graphical environments, but most network professionals are used to operating in a shell.
The command-line interface (CLI) of the shell offers a number of powerful capabilities — including those crucial for networking and system administration — for expert users who are familiar with the text-based interface.
Linux desktop environments
Beyond the shell, there are a number of desktop environments for Linux, which work like the window-based GUIs familiar from Windows and macOS. Unlike those operating systems, Linux can be outfitted with one of many desktop environments to meet the needs and tastes of the user.
Linux package managers and applications
While many programs — especially those driven from the command line — are included with most installations of the Linux operating system, you will obviously want to install more to gain the functionality you need, and many of those programs will be graphical, GUI-based applications more familiar than those driven by a CLI. Generally you'll use a package manager, a program that downloads software packages from freely available software libraries, for this purpose. Some networking applications for Linux, such as those focusing on traffic analysis, security and network management, have graphical interfaces, but they are far fewer in number than those for servers and desktops.
Linus Torvalds and the history of Linux
As noted, Linux is one of the many operating systems that fall under the heading of "Unix-like". Unix's own history is extremely tangled, but Linux, while providing much of the feel of Unix, doesn't actually reuse any Unix source code.
Linux could actually be considered a grandchild of Unix. Its immediate predecessor was MINIX, a small Unix-like OS created in the late '80s to illustrate the principles of operating system design to students.
The MINIX code was available for educational purposes but couldn't be reused for commercial applications. In 1991, a 21-year-old computer-science student named Linus Torvalds announced that he was going to create a new operating system, inspired by MINIX but written from scratch so that the code could be released as open source under the GNU GPL. He combined the name MINIX with his own name and dubbed the new operating system Linux.
The Linux kernel
The Linux kernel is the core of the operating system. It also represents the key difference between Linux and MINIX (which is somewhat ironic, as Torvalds had been accused of stealing code from MINIX to create his OS). Whereas MINIX is based on a microkernel that contains the bare minimum amount of code necessary to run an operating system, Linux has a monolithic kernel, which means that functions like the file system, virtual memory, and various system calls all take place in privileged kernel space.
One of the advantages of this — which is also one of the key advantages of Linux as a whole — is that, while the internal workings of the OS can evolve over time, the interface between the kernel and user space — the part of the system where individual user's applications execute — remains very stable, which means upgrading Linux won't force you to upgrade your programs.
As noted, Linux's code is open source — specifically, its code is released under the permissive GNU Public License. That means:
- The Linux operating system can be downloaded and installed for free.
- Administrators can study the OS and customize it.
- There are unlimited redistribution privileges of the original or modified versions of the operating system.
One of the clearest signals that Linux is a community-based project is that the kernel is maintained not in secrecy in a corporate lab but rather via a public email list, where all the proposed updates and debates on whether they should be adopted into the operating system are available for anyone to see. Anyone can join the Linux community by participating in and contributing to this mailing list.
Torvalds presides over the list as a not particularly benevolent dictator — he was notorious for letting loose obscene diatribes about code he found particularly problematic — but lately he's been trying to mend his ways a bit.
The Linux community goes far beyond just the kernel, though. The open nature of Linux means that there's a huge group of professionals and enthusiasts actively involved in finding new ways of using it. For instance, containers have largely evolved through community involvement.
And Linux being a community project doesn't mean a Linux-based platform is a “lesser” device. Linux has an excellent ecosystem with mature APIs as well as an agile networking stack optimized for the modernized data center. For example Linux is designed with separate control and data-forwarding planes making it easy to drop in software-defined networking architectures because separating those planes is the basis of SDN.
Because Linux is open source, there is no one vendor selling it; theoretically, you could download the kernel, a desktop environment and various other utilities and applications, and install them all yourself. In practice, these OS components are packaged together into what's called a distribution — basically, a Linux OS tweaked in a particular way that's ready to use out of the box.
Again, in theory anyone could put a Linux distribution together, but most are offered by companies and nonprofit organizations. Commercial distributors may charge for their distribution, or offer optional paid support services. Some of the better known Linux distributions are:
- Red Hat
- Oracle Linux
- Arch Linux
The list is always changing; DistroWatch keeps track of the major players and assesses the pros and cons of each.
Linux vs. Windows
The turn of the millennium was a golden age for the Microsoft versus Linux wars, with smug Linux users sure of the superiority of their chosen OS on ideological as well as technical grounds, and Microsoft firing back just as passionately. Many of the most vocal Linux proponents claimed that the day when Linux would become a dominant desktop OS was just around the corner. This obviously never happened. As a commercial end-user OS, Linux never spread beyond a tiny niche, and the days of those battles have largely passed (though you'll still find folks willing to take up the fight).
But when it comes to Linux servers, that's a different story. Linux is widely seen as a major player in the server market on par with Microsoft and other vendors. And in the most lucrative tech market to emerge in this century, Linux has, in a sense, absolutely crushed Redmond. The Android mobile OS is, deep down, a derivative of Linux, and Android is the top player in the mobile market where, despite repeated attempts, Microsoft has failed to grab a toehold.
What is Linux used for?
Due to its flexibility, Linux has found its way into a number of niches, from embedded products to supercomputing servers. Over the past decade there has been an explosion in the number of Linux-based products that have had a major impact in the IT space, including:
- Kubernetes: Container cluster manager from Google
- OpenStack: Software platform for infrastructure as a service cloud platform
- Open Daylight: Linux Foundation’s java based project to accelerate the adoption of SDNs and Network Functions Virtualization (NFV)
- Docker: Software container program
- Open vSwitch (OVS): Distributed virtual multilayer switch to provide a switching stack inside virtualization environments. OVS is particularly interesting because it offers a richer set of network features than the basic capabilities in the Linux kernel. If OVS is even moderately successful, it could be an excellent precursor of the shape of things to come in networking.
Networking has been slow to embrace Linux, but the more network-dependent businesses get, the more the networking and server domains are being pushed together. For network engineers, being able to access the native Linux shell enables them to utilize tools and software that once were available only for servers. This makes it much easier to orchestrate network services with changes to servers and applications.
Why is Linux so successful in the enterprise?
In his look back on Linux for its 25th anniversary, InfoWorld's Paul Venezia reflected on why this upstart operating system designed by hippies and idealists rather than businesspeople ended up so successful in the corporate world. His take is that Linux's appeal was twofold.
First, Linux is adaptable, with different distributions porting it to just about any computing platform you could name.
And second, Linux is cheap. It wasn't the free kind of Linux that businesses were interested in — they frankly didn't trust free — but low-cost commercial Linux with support available was hard to pass up. And perhaps even more importantly, Linux could run on commodity hardware — the cheap x86 PC boxes most companies already had in abundance — in an age when other Unix vendors like Sun were used their OS to bundle in their high-end hardware.
These factors will keep Linux in the enterprise for years to come. So whether you're a sysadmin or a network admin, you're going to want to familiarize yourself with it.
Thanks to Zeus Kerravala and Josh Fruhlinger (see source)