Linux è una famiglia di sistemi operativi di tipo Unix-like, pubblicati in varie distribuzioni, aventi la caratteristica comune di utilizzare come nucleo il kernel Linux. Oggi molte importanti società nel campo dell’informatica come Google, IBM, Oracle Corporation, Hewlett-Packard, Red Hat, Canonical, Novell e Valve sviluppano e pubblicano sistemi Linux.
Il primo nucleo del kernel Linux fu creato il 25 agosto 1991 da un giovane studente finlandese di informatica Linus Torvalds che, appassionato di programmazione, era insoddisfatto del sistema operativo Minix (sistema operativo unix-like destinato alla didattica, scritto da Andrew Tanenbaum, professore ordinario di Sistemi di rete all’università di Amsterdam), poiché supportava male la nuova architettura i386 a 32 bit, all’epoca tanto economica e popolare. Così Torvalds decise di creare un kernel unix con lo scopo di divertirsi e studiare il funzionamento del suo nuovo computer, che era un 80386.
Il sistema operativo basato sul kernel programmato da Torvalds, chiamato Linux, per girare utilizzava inizialmente, oltre al kernel di Torvalds, lo userspace di Minix. Successivamente, Linus decise di rendere il sistema indipendente da Minix, anche perché non ne gradiva la licenza che lo rendeva liberamente utilizzabile solo a fini didattici, e decise quindi di sostituire quella parte del sistema operativo col software del progetto GNU. Per fare ciò, Torvalds cambiò la licenza e adottò la GPL, che tra l’altro considerava buona per il suo sistema operativo a prescindere dal software GNU stesso.
Linux era all’inizio un semplice emulatore di terminale scritto in C e assembly, e non aveva bisogno di appoggiarsi a un sistema operativo. L’emulatore di terminale avviava e gestiva due thread: uno per mandare segnali alla porta seriale e uno per riceverli; quando poi Linus ebbe bisogno di leggere e scrivere file su disco, questo emulatore fu esteso in modo che potesse gestire un file system. Lentamente, questo programma si trasformò in un intero kernel in grado di gestire un sistema operativo e Linus iniziò a documentarsi sulle specifiche POSIX, chiedendo assistenza sul newsgroup. La prima versione del kernel Linux, la 0.01, fu pubblicata su Internet il 17 settembre 1991 e la seconda nell’ottobre dello stesso anno.
Torvalds preferiva chiamare Freax il kernel a cui stava lavorando, ma Ari Lemmke, assistente alla Helsinki University of Technology che gli aveva offerto lo spazio FTP per il progetto (ftp.funet.fi), preferì assegnare alla subdirectory dedicata il nome alternativo di lavorazione Linux.
Sin dalla versione 0.01 si poteva compilare e far partire la shell GNU Bash. Fino alla versione 0.10 era richiesto un computer con Minix per configurare, compilare e installare Linux perché quest’ultimo usava il filesystem del sistema sul quale si appoggiava; dalla versione 0.11 poteva essere compilato da Linux stesso. Presto i sistemi Linux superarono Minix in termini di funzionalità: Torvalds e altri sviluppatori della prima ora di Linux adattarono il loro kernel perché funzionasse con i componenti GNU e i programmi in user-space per creare un sistema operativo completo, pienamente funzionante e libero.
Il 12 marzo 1994 il 16º livello di patch del kernel 0.99 divenne Linux 1.0. Fu lo stesso Linus Torvalds a presentare la prima versione stabile all’Università di Helsinki.