What Is Linux? A 1991 Primer on the Free Unix‑Like Kernel
Linux is a free Unix‑like kernel originally written for 386‑AT computers, described by Linus Torvalds in 1991, covering its source‑code licensing, hardware requirements, download sources, installation steps, missing features, and early ported utilities, offering a historical snapshot of early open‑source OS development.
What is Linux?
Linux is a free Unix‑like kernel for 386‑AT computers, with full source code, intended for hackers and computer‑science students. It is mostly written in C with some GNU‑style assembly and Intel 8086 assembly for the boot sequence. The C code is ANSI‑like with GNU extensions.
Many other Unix systems for 386 cost money and lack source, making Linux an ideal choice for learning.
Some Unix systems do provide source, such as Minix (a teaching tool by Andrew S. Tanenbaum) and BSD‑386 (with copyright restrictions and high cost). GNU Hurd is free but not yet ready.
Linux is similar to Minix; it was based on Minix but contains no Minix code, so Minix's copyright does not apply. Linux is completely free with a permissive license.
Linux License
Although released for free, the author imposes a few restrictions:
You may freely copy and redistribute source and binaries, provided they are fully open source; you cannot distribute binaries alone, even with minor changes.
You may not profit from the distribution; even "handling fees" are not allowed.
You must preserve the full appropriate copyright.
If you modify the source and distribute a part of the system (or only binaries), you must include the new code.
Small modifications are allowed, but the author would appreciate being informed of changes.
This license is intended to be permissive enough for anyone to share binaries with friends without fear of lawsuit.
Hardware/Software Required to Run Linux
Linux was developed on a 386‑AT running Minix. To run it you need a similar system:
386‑AT (PS/2 machines are different and will not run).
VGA or EGA display hardware.
Standard AT hard‑disk interface (IDE works).
Real‑mode BIOS; machines that use virtual‑86 mode for boot will not work.
Linux eventually becomes self‑sufficient, but initially requires Minix‑386 to bootstrap the filesystem and compile the OS binaries.
Obtaining Linux
Linux can be fetched anonymously via FTP from nic.funet.fi/pub/OS/Linux, which contains all source and some binaries.
Note that most binaries are GNU software with stricter non‑commercial licenses; you must also obtain their source from /pub/GNU.
The directory includes:
linux-0.03.tar.Z – complete source (16‑bit tar).
Linux.tex – LaTeX source.
bash.Z – bash binary (to be placed as /bin/sh).
update.Z – update binary (to be placed as /bin/update).
gccbin.tar.Z – GNU C compiler binaries and related tools.
include.tar.Z – header files needed for gcc.
unistd.tar.Z – source for the unistd library.
utilbin.tar.Z – various GNU utilities (fileutils, make, tar, uemacs).
README, RELNOTES-0.01, INSTALLATION – assorted ASCII documentation.
The minimal set to run the system is the OS source, bash, and the update binary.
Installation
After obtaining the necessary files, compile the system and create a root filesystem, placing required binaries in appropriate directories (/dev, /bin, /usr/bin, /usr/include, /usr/local/lib, etc.). Edit linux/include/linux/config.h to match hardware specifics, then compile the source, copy the resulting image to a floppy, and boot.
Missing / Incompatible Features
Linux is not yet a complete system; it still depends on Minix for boot and filesystem checks. Notable missing parts include:
Hardware incompatibilities (e.g., floppy driver, serial port features).
Incomplete standard C library (libc.a).
Unimplemented system calls and lack of init process; it boots in single‑user mode as root.
No 387 floating‑point support yet.
Missing system management commands (mkfs, format, fsck, mknod).
These issues are being addressed via patches and community contributions.
Ported Software
Linux includes a fairly complete termios implementation and some POSIX libraries, making porting relatively easy. The following GNU programs have been ported:
gcc (cc, cc1, cpp)
as386
ld, ar, nm, size, strip, ranlib
compress (16‑bit)
tar
make
bash
sed
bison
awk
fileutils (ls, cp, rm, mkdir, rmdir, tail, …)
less
uemacs
All these can be found on nic.funet.fi/pub/gnu or nic.funet.fi/pub/OS/Linux.
Technical Help
Linux has a mailing list; subscribe by emailing [email protected]. Questions can be sent to [email protected] or directly to [email protected]. The author thanks contributors for patches and support.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
21CTO
21CTO (21CTO.com) offers developers community, training, and services, making it your go‑to learning and service platform.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
