117 The History of Linux — The Operating System Beneath the Web

The Technologies That Built the Web

We have followed a web request through several important technologies.

Apache and nginx can receive the request.

PHP can execute the application's logic.

MySQL can store and retrieve its information.

But all of that software has to run somewhere.

Underneath the web server, programming language, database, security tools, and networking software is another fundamental layer:

The operating system.

For an enormous portion of the internet, that operating system is based on Linux.

Its story begins not inside a giant technology company, but with a university student and a personal computer.

What Does an Operating System Do?

An operating system sits between computer hardware and the programs that use it.

It manages memory.

It manages processors.

It manages disks and files.

It manages devices.

It manages users and permissions.

It provides networking capabilities.

And it provides the environment in which applications run.

When Apache, nginx, PHP, and MySQL are running on a Linux server, Linux is quietly coordinating the resources underneath all of them.

Before Linux Came Unix

Linux did not appear from nowhere.

Its intellectual roots reach back to Unix.

Unix was developed beginning in 1969 at Bell Labs by researchers including Ken Thompson and Dennis Ritchie.

Unix introduced and popularized ideas that would influence operating systems for decades.

One important philosophy was to create relatively small tools that performed specific jobs well and could be combined to accomplish larger tasks.

Instead of one enormous program trying to do everything, many tools could work together.

That idea remains deeply embedded in Unix and Linux culture.

C Helps Unix Travel

Early operating systems were often closely tied to particular computer hardware.

Unix took an important step when much of it was rewritten in the C programming language, developed largely by Dennis Ritchie at Bell Labs.

This made Unix substantially more portable.

Instead of rewriting an entire operating system from scratch for every computer architecture, much of the same source code could be adapted and compiled for different machines.

Unix began spreading through universities, research institutions, businesses, and technology companies.

Unix Branches Out

Over time, different versions of Unix emerged.

One especially important branch developed at the University of California, Berkeley.

It became known as the Berkeley Software Distribution, or BSD.

BSD contributed many important technologies, particularly in networking.

Several modern operating systems trace part of their heritage to BSD.

The Unix family tree became increasingly complex, but the basic Unix ideas proved remarkably durable.

The GNU Project

In 1983, Richard Stallman announced the GNU Project.

The goal was ambitious: create a free Unix-like operating system that users could run, study, modify, and share.

GNU stands recursively for:

GNU's Not Unix.

The GNU project produced many of the tools necessary for an operating system, including compilers, libraries, command-line utilities, shells, and development tools.

One major component, however, remained difficult:

the kernel.

What Is a Kernel?

The kernel is the central part of an operating system.

It communicates closely with the computer's hardware and manages fundamental resources such as processors, memory, storage devices, and processes.

Applications normally do not control hardware directly.

They ask the operating system to perform operations, and the kernel manages those requests.

If the operating system were an organization, the kernel would be at the center coordinating access to the organization's most fundamental resources.

MINIX and a Finnish Student

By the late 1980s and early 1990s, personal computers were becoming increasingly capable.

A Unix-like educational operating system called MINIX had been created by computer scientist Andrew Tanenbaum to teach operating-system concepts.

One MINIX user was a computer science student at the University of Helsinki in Finland.

His name was Linus Torvalds.

1991 — “Just a Hobby”

Torvalds had purchased a computer using Intel's 386 processor and wanted to explore its capabilities.

He began developing his own operating-system kernel.

On August 25, 1991, Torvalds posted a now-famous message to the comp.os.minix newsgroup announcing his project.

He described it as a free operating system and famously wrote that it was:

“just a hobby, won't be big and professional...”

History had other plans.

Linux Appears

The first Linux kernel versions were released in 1991.

Linux was modeled around Unix concepts but written independently.

Most importantly, Torvalds made the source code available so other programmers could examine it and contribute.

Developers around the world began sending improvements.

Hardware support expanded.

Bugs were fixed.

Features were added.

The project began growing far beyond one student's computer.

Why Is It Called Linux?

Torvalds initially considered calling his project “Freax,” combining ideas of “free,” “freak,” and Unix.

But when the project was placed on an FTP server, administrator Ari Lemmke used the directory name “linux.”

The name combined Linus with Unix.

It stuck.

Sometimes technology history turns on something as simple as a directory name.

Linux Meets GNU

The Linux kernel by itself was not an entire practical operating environment.

But the GNU project had already created many of the tools needed around a Unix-like kernel.

The combination was powerful.

Linux provided a working kernel.

GNU provided compilers, shells, libraries, commands, and many other components.

Together with additional open-source software, they could form a complete operating system.

This is why such systems are sometimes referred to as GNU/Linux, although in everyday conversation they are commonly called simply Linux.

The GNU General Public License

Another important turning point came when Linux was released under the GNU General Public License, or GPL.

The GPL allowed people to use, study, modify, and redistribute the software while requiring distributed derivative versions to preserve corresponding freedoms under the license.

This encouraged collaboration while helping ensure that improvements to distributed versions could remain available to the community.

Thousands of developers could build upon each other's work.

Linux Distributions

Installing a kernel and assembling all the necessary tools manually would be difficult for most people.

Linux distributions emerged to package the kernel with utilities, libraries, installers, software-management tools, and applications.

Early distributions included Slackware and Debian.

Other important distributions followed, including Red Hat, SUSE, Ubuntu, CentOS, and many others.

Different distributions could target different needs while sharing the Linux kernel underneath.

What Is a Distribution?

This distinction can initially be confusing.

Linux technically refers to the kernel.

A Linux distribution combines that kernel with the other software necessary to create a usable operating system.

Think of the Linux kernel as the engine.

The distribution builds a complete vehicle around it.

Different vehicles can use related engines while being configured for very different purposes.

Linux Finds Its Natural Home on Servers

Linux could run on personal computers, but servers became one of its greatest areas of success.

Several characteristics made it attractive.

It was stable.

It was flexible.

It had strong networking capabilities.

It could run without a graphical desktop.

It could be administered remotely.

Its source code was available.

And it worked beautifully with the rapidly growing world of open-source internet software.

Linux Meets Apache

When Apache appeared in 1995, Linux was already developing rapidly.

The combination proved extraordinarily effective.

A relatively inexpensive computer could run Linux and Apache and become a capable web server.

Add MySQL and PHP, and something even more powerful emerged.

LAMP

The pieces we have been exploring finally come together:

LAMP.

This combination became one of the foundations of the dynamic web.

And there was something remarkable about it.

An organization did not necessarily need to purchase an expensive proprietary operating system, web server, database, and programming environment.

A complete web platform could be assembled from open-source technologies.

Linux Helped Democratize the Server

Before inexpensive hardware and open-source operating systems became widely available, operating serious computing infrastructure could require expensive proprietary systems.

Linux changed the economics.

A university department, small business, startup, hobbyist, nonprofit, or independent developer could build powerful server systems using ordinary hardware.

As hardware became faster and cheaper, Linux became increasingly capable.

The barrier to operating internet infrastructure fell dramatically.

The Command Line

Linux is also strongly associated with the command line.

For someone accustomed to graphical computers, a blinking cursor can initially appear primitive.

But the command line is extraordinarily powerful.

Commands can be combined.

Output from one command can become input for another.

Tasks can be scripted.

Remote servers can be managed efficiently.

Hundreds of files can be searched, moved, examined, or changed without manually opening each one.

This reflects the old Unix philosophy:

Build tools that do specific jobs well, then combine them.

The Pipe — A Small Symbol With a Big Idea

One of the simplest examples is the Unix pipe, represented by the vertical bar:

|

A pipe allows the output from one command to become the input to another.

A developer can create a chain of relatively simple tools that together perform sophisticated work.

That tiny character represents one of the most influential ideas in computing:

Complex systems can emerge from simple components working together.

Remote Administration and SSH

Servers often operate without a monitor, keyboard, or person physically sitting beside them.

Linux systems can be administered remotely using technologies such as SSH—Secure Shell.

An administrator can securely connect to a server across a network, receive a command-line session, examine logs, edit configuration files, restart services, install updates, and diagnose problems.

The server might be across the room or across the country.

From the command line, the experience can be nearly the same.

Users, Groups, and Permissions

Linux inherited a strong multi-user model from Unix.

Files and processes can belong to users and groups.

Permissions determine who can read, write, or execute particular resources.

This becomes extremely important on a server.

The web server should not automatically have unlimited control over the entire computer.

A database process should operate with appropriate privileges.

Administrators should have different capabilities from ordinary application processes.

Permissions create boundaries.

Those boundaries become another layer of security.

Root

At the top of the traditional Unix and Linux permission model is the superuser commonly known as root.

Root has extraordinary authority over the system.

That makes root useful—and dangerous.

A command executed with sufficient privileges can repair almost anything.

It can also destroy almost anything.

One of the lessons of system administration is therefore to use elevated privileges carefully and only when necessary.

Linux and Security

Linux has a strong reputation as a server operating system, but running Linux does not automatically make a system secure.

A Linux server still needs updates.

Accounts need protection.

Services need appropriate configuration.

Unnecessary network access should be restricted.

Logs should be monitored.

Applications need to be maintained.

Backups need to exist.

File permissions need to make sense.

Security tools can add further protection.

Once again, the principle from our Digital Life Security Series appears:

Security is not one product. It is a system of layers.

Linux Goes Far Beyond Web Servers

Linux did not stop at the web server.

It spread into enormous numbers of computing environments.

Linux runs on supercomputers.

It runs inside networking equipment.

It powers embedded systems.

It appears in televisions, appliances, automobiles, industrial equipment, and countless specialized devices.

Linux became one of the great adaptable foundations of modern computing.

Linux and Android

There is also a good chance that someone who believes they have never used Linux has actually used it many times.

Android uses the Linux kernel.

The experience of using an Android phone is obviously very different from administering a Linux web server, but Linux exists underneath the Android software stack.

A kernel that began as a student project now sits beneath billions of mobile devices.

Linux and the Supercomputer

Linux also became extraordinarily important in high-performance computing.

Modern supercomputers overwhelmingly rely on Linux-based operating environments.

The same fundamental kernel family that can run on a tiny embedded device can be adapted for some of the most powerful computing systems ever constructed.

That range is remarkable.

Virtualization Changes the Server

For many years, one server generally meant one physical computer.

Virtualization changed that.

A powerful physical machine could host multiple virtual machines, each behaving much like an independent computer.

Linux became extremely important in these virtualized environments.

A hosting company could run many separate Linux servers on shared physical hardware while keeping the environments logically separated.

This helped transform how internet infrastructure was deployed.

Then Came the Cloud

Cloud computing took the abstraction further.

A developer could request computing resources without necessarily knowing which physical machine would provide them.

Servers could be created, resized, duplicated, or removed through software.

Linux became one of the dominant operating-system foundations of cloud computing.

The physical server became less visible.

The operating system remained essential.

Containers

Another important development was the rise of containers.

Containers allow applications and their dependencies to run in isolated environments while sharing the underlying operating-system kernel.

Technologies such as Docker helped make containers widely accessible.

Linux features involving processes, namespaces, resource controls, and filesystems provide much of the foundation that makes modern containers possible.

Once again, an older foundational technology enabled a newer layer of abstraction.

The Internet Runs on Layers

Our picture is becoming increasingly complete.

A visitor may see a webpage.

Behind that page might be:

Browser → Internet → nginx → Apache → PHP-FPM → MySQL

And underneath those server applications:

Linux.

Below Linux is another layer:

the physical or virtual hardware.

Each layer provides services to the layer above it.

Linux Usually Disappears

A website visitor does not normally know that Linux is involved.

The visitor sees the finished page.

Even the website developer may spend most of the day working with PHP, HTML, CSS, or database information without thinking about the operating system underneath.

But remove the operating system and everything above it disappears.

Linux demonstrates one of the recurring ideas in this series:

The technology can become invisible without becoming unimportant.

One Student and One Computer

There is something particularly compelling about Linux's origin.

It did not begin with a corporate plan to dominate internet servers.

Linus Torvalds wanted to learn and experiment with his computer.

He built something useful.

He shared it.

Other people improved it.

More people used it.

Companies built businesses around it.

Entire industries eventually depended upon it.

That progression captures something important about the history of computing.

A useful idea can travel much farther than its creator originally imagined.

“Just a Hobby”

In 1991, Linux was described by its creator as “just a hobby.”

Today Linux exists beneath an extraordinary portion of the world's digital infrastructure.

It helps serve websites.

It powers cloud systems.

It runs supercomputers.

It operates phones and embedded devices.

It carries network traffic.

It supports scientific research.

And much of the time, nobody using the systems above it knows it is there.

Next: Linux Today and Tomorrow

Linux began as a personal project and grew into global infrastructure.

But where does it stand today?

Why has Linux become so dominant on servers while never achieving the same dominance on traditional desktop computers?

What is the relationship between Linux distributions?

What roles do Red Hat, Debian, Ubuntu, and other distributions play?

How do virtualization, containers, cloud computing, security, and artificial intelligence change Linux?

And could AI eventually administer Linux systems largely by itself?

Next in The Technologies That Built the Web, we will explore Linux today and tomorrow—and why an operating system whose users often never see it may become even more important as computing becomes increasingly automated.

Home
Brad Zehr | Zehr.net | brad@zehr.net

About Services Why A Site Site Ideas Topics Podcast Help Contacts

Topics, Podcast & Images on this site are AI Assisted.

Search Contact Home