In genere, ciò che di solito chiamiamo un sistema operativo, è una combinazione di software che coinvolge un kernel , il cui compito è gestire le risorse della macchina e alcune applicazioni in esecuzione sul kernel, chiamato userland (che contiene browser, compilatori, lettori pdf, tutto ciò che non è il kernel, o un driver, o forse un hypervisor VM.
Al resto di questa domanda non è possibile rispondere senza un certo contesto storico. Richard Stallman ha annunciato il progetto GNU il 27 settembre 1983. Lo scopo era quello di fornire il software necessario per sviluppare un sistema operativo simile a UNIX (e la terra dell'utente che lo accompagna) come software libero . Nel 1992, il Progetto GNU aveva completato quasi tutti i pezzi essenziali per il loro software - tranne uno: il kernel. Allo stesso tempo, Linus Torvalds ha rilasciato il suo kernel Linux (versione 0.12) come software libero, concesso in licenza con licenza GPL . Quindi, per la prima volta, potrebbe essere possibile eseguire un computer composto (quasi) interamente da software libero.
Linux (come detto) è un kernel e, sebbene sia la base definitiva del software che ti consente di usare il tuo computer, non è molto utile da solo. Dovresti accoppiarlo con una sorta di applicazioni (userland) per l'esecuzione. Questo è ciò che fanno le distribuzioni GNU / Linux come Debian o Ubuntu e simili.
Vale la pena ricordare che un kernel è sia importante che non importante allo stesso tempo. Mi permetta di spiegare. La maggior parte delle persone che usano un computer sono abituate alla userland piuttosto che al kernel. Il kernel è per lo più trasparente e la maggior parte delle persone userebbe un altro kernel con la stessa area utente e potrebbe anche non notare la differenza (a meno che ovviamente non dipendano da una funzionalità fornita da un particolare kernel).
Pertanto, quando usi Linux , stai davvero usando una realizzazione del sistema operativo GNU; cioè il kernel Linux e la userland GNU (GNOME, GNU Compiler Collection, debugger GNU, GNU Coreutils, GNU binutils, ecc.). Ecco perché la FSF insiste nel chiamarlo GNU / Linux (a mio avviso, una richiesta equa).
Ovviamente puoi usare Linux senza la userland GNU (suggerimento: Android, Busybox ) e ovviamente usare la userland GNU sopra altri kernel (kfreebsd, hurd, ecc.).
Per quanto riguarda Unix è open source e simili, questa è una domanda che può comportare un bel po 'di discussioni. Tuttavia, potresti trovare alcune informazioni utili qui