The fact that youâre reading this book means you want to learn about the Linux operating system (OS). To begin this journey, you must first understand what an OS is and what type of OS Linux is. This chapter is therefore devoted to these basic issues.
In this chapter, we describe what an OS is, how users interact with an OS, how Linux compares with other OSs with which you may be familiar, and how specific Linux implementations vary. Understanding these issues will help you find your way as you learn about Linux and switch between Linux-based and other systems.
- What is an OS?
- Investigating user interfaces
- Where does Linux fit in the OS world?
- What is a distribution?
What Is an OS?
An operating system, or OS, provides all of the most fundamental features of a computer, at least from a software point of view. An OS enables you to use the computerâs hardware devices, defines the user interface standards, and provides the basic tools that begin to make the computer useful. Ultimately, many of these features trace their way back to the OSâs kernel, which is described in more detail next. Other OS features are owed to additional programs that run atop the kernel, as described later in this chapter.
What Is a Kernel?
An OS kernel is a software component thatâs responsible for managing various low-level features of the computer, including the following:
- Interfacing with hardware devices (network adapters, hard drives, and so on)
- Allocating memory to individual programs
- Allocating CPU time to individual programs
- Enabling programs to interact with each other
When you use a program (say, a web browser), it relies on the kernel for many of its basic functions. The web browser can communicate with the outside world only by using network functions provided by the kernel. The kernel allocates memory and CPU time to the web browser, without which it couldnât run. The web browser may rely on plug-ins to display multimedia content; such programs are launched by and interact with the web browser through kernel services. Similar comments apply to any program that you run on a computer, although the details vary from one OS to another and from one program to another.
In sum, the kernel is the software âglueâ that holds the computer together. Without a kernel, a modern computer can do very little.
Kernels are not interchangeable; the Linux kernel is different from the Mac OS X kernel or the Windows kernel. Each of these kernels uses a different internal design and provides different software interfaces for programs to use. Thus, each OS is built from the kernel up and uses its own set of programs that further define each OSâs features.
Many programs run on multiple kernels, but most need OS-specific tweaks. Programmers create binariesâthe program files for a particular processor and kernelâfor each OS.
Linux uses a kernel called Linuxâin fact, technically speaking, the word Linux refers only to the kernel. Nonkernel programs provide other features that you might associate with Linux, most of which are available on other platforms, as described next in âWhat Else Identifies an OS.â
A student named Linus Torvalds created the Linux kernel in 1991. Linux has evolved considerably since that time. Today it runs on a wide variety of CPUs and other hardware. The easiest way to learn about Linux is to use it on a desktop or laptop PC, so thatâs the type of configuration thatâs emphasized in this book. The Linux kernel, however, runs on everything from tiny cell phones to powerful supercomputers.
What Else Identifies an OS?
The kernel is at the core of any OS, but itâs a component that most users donât directly manipulate. Instead, most users interact with a number of other software components, many of which are closely associated with particular OSs. Such programs include the following:
Command-Line Shells Years ago, users interacted with computers exclusively by typing commands in a program (known as a shell) that accepted such commands. The commands would rename files, launch programs, and so on. Although many computer users today donât use text-mode shells, theyâre still important for intermediate and advanced Linux users, so we describe them in more detail in Chapter 6, âGetting to Know the Command Line,â and subsequent chapters rely heavily on your ability to use a text-mode shell. Many shells are available, and which shells are available and popular vary from one OS to another. In Linux, a shell known as the Bourne Again Shell (bash
or Bash) is popular.
Graphical User Interfaces A graphical user interface (GUI) is an improvement on a text-mode shell, at least from the perspective of a beginning user. Instead of typing in commands, GUIs rely on icons, menus, and a mouse pointer. The Windows and Mac OS both have their own OS-specific GUIs. Linux relies on a GUI known as the X Window System, or X for short. X is a basic GUI, so Linux also uses desktop environment program suites, such as GNOME or the K Desktop Environment (KDE), to provide a more complete user experience. Itâs the differences among Linux desktop environments and the GUIs in Windows or OS X that will probably strike you most when you first begin using Linux.
Utility Programs Modern OSs invariably ship with a wide variety of simple utility programsâcalculators, calendars, text editors, disk maintenance tools, and so on. These programs differ from one OS to another. Indeed, even the names and methods of launching...