Fundamentals 16 min read

What Was Linux in 1991? A Deep Dive into Its Origins, Licensing, and Installation

This article recounts Linus Torvalds' 1991 announcement of Linux—a free Unix‑like kernel for 386‑AT machines—detailing its design, permissive licensing, required hardware, how to obtain the source, step‑by‑step installation, known limitations, and early ported GNU tools.

MaGe Linux Operations
MaGe Linux Operations
MaGe Linux Operations
What Was Linux in 1991? A Deep Dive into Its Origins, Licensing, and Installation

What Is Linux?

Linux is a free Unix‑like kernel for 386‑AT computers, distributed with full source code. It is primarily written in C with a small amount of GNU‑style assembly and an Intel 8086 assembly boot sequence. The C code follows ANSI with GNU extensions such as __asm__ and inline.

At the time many other Unix systems for 386 required expensive licenses and did not provide source code, making Linux an attractive learning platform for hackers and computer‑science students.

Some Unix variants did provide source (e.g., Minix, BSD‑386), but they were either costly or had restrictive copyrights. Linux, derived from Minix but written from scratch, is completely free and carries a very permissive license.

Linux License

Although freely distributable, Linus imposed a few conditions:

You may copy and redistribute source and binaries freely.

The distribution must remain fully open‑source; you cannot ship only modified binaries.

You may not profit from the distribution (no “handling fees”).

You must retain the full, appropriate copyright notice.

If you modify the source and distribute a part of the system, you must include the new code.

Minor changes are allowed without redistribution, but sharing them is appreciated.

These terms are intentionally lax to encourage sharing while protecting the original work.

Hardware/Software Required to Run Linux

386‑AT (PS/2 machines are not supported).

VGA or EGA display hardware.

Standard AT hard‑disk interface (IDE works).

Real‑mode BIOS (machines using virtual‑86 mode may not boot).

Initially Linux depends on Minix‑386 to bootstrap the file system and compile the kernel; after that it becomes self‑sufficient.

Obtaining Linux

The complete source tree and some binaries are available via anonymous FTP at nic.funet.fi:/pub/OS/Linux. The directory contains:

linux-0.03.tar.Z – full source archive.

Linux.tex – LaTeX source of this document.

bash.Z – pre‑compiled Bash binary (to be placed as /bin/sh).

update.Z – update utility for /bin/update.

gccbin.tar.Z – GNU C compiler binaries and supporting tools.

include.tar.Z – header files required by gcc.

unistd.tar.Z – source for the unistd library.

utilbin.tar.Z – assorted GNU utilities (fileutils, make, tar, uemacs).

README, RELNOTES‑0.01, INSTALLATION – assorted ASCII documentation.

The minimal set needed to run the system is the kernel source, Bash, and the update binary.

Installation

After acquiring the files, you must compile the kernel and create a root file system:

Back up your existing software.

Create a standard Minix‑HD partition for the new Linux root.

Create device nodes ( /dev/tty, /dev/tty[0‑2], /dev/hd[0‑9]) using Minix’s mknod.

Copy the required binaries and libraries into appropriate directories ( /bin, /usr/bin, /usr/include, /usr/local/lib, /usr/local/bin).

Edit linux/include/linux/config.h to match your hardware (memory size, disk type, root partition, keyboard type).

Compile the kernel (adjust makefiles as needed; older gcc versions may require adding LIBS= entries).

Write the resulting image to a floppy ( cp Image /dev/ps0) and boot from it.

On boot you will see a simple single‑user prompt; there is no init process yet.

Missing or Incompatible Features

Hardware support is incomplete (e.g., floppy driver, serial ports at 2400 bps).

The standard C library is not fully functional.

Many system calls are only partially implemented.

No login or multi‑user init; the system boots directly to a root console.

No 387 floating‑point support (soft‑float only).

Essential utilities such as mkfs, format, fsck, mknod are absent.

These gaps are expected to be filled over time as patches and contributions arrive.

Ported Software

The following GNU tools have already been ported to Linux:

gcc (cc, cc1, cpp)

as386 (assembler)

binutils (ld, ar, nm, size, strip, ranlib)

compress (16‑bit)

tar

make

bash (Bourne Again SHell)

sed

bison

awk

GNU fileutils (ls, cp, rm, mkdir, rmdir, tail, …)

less

uemacs

All of these can be found on the FTP site under /pub/gnu or /pub/OS/Linux.

Technical Help

A mailing list (Linux‑activists) is available for questions; subscribe by emailing [email protected]. Direct queries can be sent to [email protected].

Acknowledgments

Linus thanks numerous contributors for patches, library support, and testing, emphasizing the collaborative nature of the project.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Linuxopen‑sourcehistoryInstallation
MaGe Linux Operations
Written by

MaGe Linux Operations

Founded in 2009, MaGe Education is a top Chinese high‑end IT training brand. Its graduates earn 12K+ RMB salaries, and the school has trained tens of thousands of students. It offers high‑pay courses in Linux cloud operations, Python full‑stack, automation, data analysis, AI, and Go high‑concurrency architecture. Thanks to quality courses and a solid reputation, it has talent partnerships with numerous internet firms.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.