Funziona su molti tipi diversi di architetture hardware, ad esempio PC 386 (o oltre), 680x0 (Amiga, Atari), SUN Sparc, DEC Alpha, ARM, MIPS, PowerPC (PowerMac, CHRP, Amiga PowerUp) e altri (con sviluppi in corso ad esempio verso computer palmari).
L'elemento fondamentale che caratterizza Linux è che è gratis e disponibile sotto forma di sorgente. Non è public domain, cioè non si ha la libertà di farne quello che si vuole (per esempio non è possibile cambiargli il nome e venderlo come un nuovo prodotto), ma la licenza d'uso GPL (GNU Public License) permette di adoperarlo, copiarlo, distribuirlo senza limiti, compilarlo in una configurazione adattata alle proprie esigenze, e addirittura modificarne il sorgente; versioni modificate però possono essere distribuite solo se accompagnate dal sorgente modificato o da un link che permetta di reperirlo.
Gli utenti sono incoraggiati a studiare il sorgente, trovare possibili bug, fare modifiche ed estensioni o scrivere driver: non è necessaria nessuna autorizzazione, anzi si invita chi effettua cambiamenti importanti a comunicare le modifiche alle persone che curano la coordinazione dello sviluppo di Linux, in modo da integrare le modifiche nelle release successive.
A causa di questa struttura aperta Linux è diventato uno dei sistemi operativi più stabili che ci siano in circolazione (sono una realtà computer mai riavviati per periodi di mesi o anni), perché il codice è sotto gli occhi di tante persone e, in caso di problemi, viene corretto in tempi brevissimi, talvolta bastano addirittura poche ore!!!
Le varie versioni di Linux vengono indicate con tre numeri separati da un punto: ad esempio Linux 2.2.10 indica la seconda versione, secondo patchlevel, decima sottoversione (a volte seguiti da altre sigle o numeri per segnalare versioni particolari). In particolare bisogna sapere che le versioni con il secondo numero pari (come 2.0.x e 2.2.x) sono versioni "stabili", ossia consolidate e pensate per la distribuzione al pubblico, mentre le versioni dispari (come 2.1.x e 2.3.x) sono versioni per sviluppatori, ossia vengono modificate frequentemente e contengono codice non ancora sufficientemente garantito per un uso stabile e sicuro da parte di tutti. Quando i miglioramenti apportati alle versioni per sviluppatori si rivelano ben funzionanti, vengono inglobati nelle versioni stabili.
Nulla vieta di usare le versioni per sviluppatori, se non la consapevolezza che, in circostanze particolari e sfortunate, si possono avere malfunzionamenti che possono condurre a situazioni anche spiacevoli (ad esempio un problema in un driver per il disco potrebbe corrompere i filesystem, rovinandone il contenuto). Chi le usa, lo fa quindi a proprio rischio e pericolo.
Linux offre tutte le caratteristiche che un buon sistema operativo dovrebbe fornire (a differenza di alcuni diffusissimi prodotti commerciali).
Si tratta di un sistema operativo multitasking (di tipo preemptive), multiutente, con memoria virtuale, memoria protetta, librerie condivise, caricamento su richiesta, caching dinamico e automatico del disco e codice di rete TCP/IP integrato. Supporta inoltre configurazioni multiprocessore su alcune architetture.
Le prestazioni in termini di velocità e affidabilità di Linux a parità di hardware, sono spesso largamente migliori rispetto a molti dei più blasonati sistemi operativi commerciali, anche di derivazione Unix.
Ulteriori informazioni su Linux sono facilmente reperibili su Internet: grandi quantità di siti, mailinglist, newsgroup sono a disposizioni di tutti e rintracciabili usando motori di ricerca e link incrociati.
Come già detto, è possibile utilizzare Linux anche su Amiga. La versione 68k richiede una CPU con MMU (un 68030 va bene, un 68EC030 invece no) e possibilmente con FPU. La versione PPC, il cui nome è APUS (Amiga PowerUp System), necessita di una CPU 603e o 604e installata su una scheda PowerUp prodotta da Phase5.
La maggior parte dell'hardware Amiga è supportato: seriale, parallela, floppy, audio, AGA, schede grafiche, IDE, controller SCSI. Non è ancora supportato (ma ci si sta lavorando su) il controller SCSI delle schede PowerUp. E' già presente invece il supporto per le schede grafiche CVPPC e BVPPC.
Linux prende il controllo completo dell'hardware e quando lo si fa girare su Amiga, l'AmigaOS non esiste più: non è possibile utilizzare il Workbench o altri programmi Amiga contemporaneamente. Naturalmente è possibile installare Linux su un Amiga senza distruggere l'AmigaOS esistente, lasciandosi la possibilità di decidere di volta in volta il sistema operativo da usare.
E' possibile anche far convinvere AmigaOS e Linux su uno stesso harddisk, usando partizioni differenti dello stesso disco; inoltre durante il funzionamento di Linux si può anche accedere alle partizioni Amiga (se sono formattate in FFS), mentre non è al momento possibile il viceversa.
Il sistema più comunemente usato per fare il boot di Linux su Amiga consiste nel fare il boot di Amiga e poi eseguire un comando che carica il kernel da un file e provoca un reset che "distrugge" l'AmigaOS correntemente in memoria e lancia il kernel Linux. Naturalmente è possibile usare qualche utility o degli script per rendere queste operazioni automatizzate durante la fase di avvio dell'Amiga, legandole a pressioni di tasti e simili.
La cosa interessante di Linux APUS è che l'utility di nome "boothack" o "bootstrap", che carica e lancia il kernel, è l'unica a contenere codice 68k: dopo aver caricato il file, il controllo di tutto passa al PPC, mentre il 68k viene fermato completamente.
Il processore PPC gestirà tutto l'hardware Amiga, si occuperà degli interrupt e tutto il resto, con le immaginabili conseguenze (positive!) sulla velocità del tutto. Tempo fa circolava voce che il PPC delle PowerUp potesse lavorare solo come coprocessore del 68k: APUS smentisce questa affermazione nel modo più convincente possibile.
Se si vuole utilizzare Linux bisogna procurarsene una distribuzione, che oltre al kernel (equivalente grosso modo al kickstart dell'Amiga e di dimensioni approssimativamente dell'ordine dei 500-1000kB) comprende molti altri programmi come editor di testi, compilatori, utility varie o programmi di grafica per centinaia di megabyte.
Il tutto è distribuito in formato eseguibile pronto all'uso, ma nella quasi totalità dei casi è possibile anche installare i sorgenti (in linguaggio C) per modificarli o ricompilarli.
Tutto è disponibile su Internet, ma le dimensioni del materiale da scaricare è tale da sconsigliare caldamente un download, viste le dimensioni esorbitanti di tanto materiale.
Certamente però è utile scaricare documentazione, FAQ, readme. Questa è la prima cosa da fare per avvicinarsi a Linux.
Come sito di riferimento si può usare http://ftp.unina.it/pub/linux/ ed in particolare la directory "linux68k" per la versione 68k e "apus" (non linuxppc) per quella PPC. Questo non è il sito principale, bensì un mirror situato in Italia.
Il miglior metodo per procurarsi una distribuzione completa (che non è solo il kernel!) è quello di farsela copiare da un amico che abbia il CDROM (ricordiamo che la copia è perfettamente lecita). Oppure acquistare riviste con CDROM allegato, che frequentemente (negli ultimi tempi) includono distribuzioni complete uscite poco tempo prima.
E' anche possibile acquistare nei negozi o su Internet pacchetti comprendenti vari CDROM e documentazione cartacea a prezzi relativamente bassi. E' naturalmente molto più facile procurarsi una distribuzione per Linux/i386 che non per 68k o PPC, ma ovviamente questa non può funzionare su Amiga.
Le distribuzioni più utilizzate sono la RedHat e la Debian, entrambe disponibili per 68k e per PPC, seppure non sempre supportate ufficialmente.
Linux APUS merita un discorso a parte: date le sue caratteristiche si può usare una distribuzione Linux PPC destinata ai PowerMac, quindi di facile reperibilità anche presso le riviste per Mac in edicola, e poi scaricarsi da Internet solo quei pochi altri file specifici per Amiga, ossia il kernel, un ramdisk da cui fare il boot (come test prima dell'installazione), un ramdisk con l'installer.
Questo materiale è disponibile sul sito http://ftp.unina.it/pub/linux/apus/
In particolare il kernel si trova nelle directory "2.2.x" e "2.3.x" mentre boothack e i ramdisk nelle directory "boothack" e "install".
La prima cosa da fare è leggere la documentazione al file http://ftp.unina.it/pub/linux/apus/docs/faq.html
oppure, ed è consigliabile farlo, scaricare le FAQ complete all'indirizzo http://ftp.unina.it/pub/linux/apus/docs/faq-all.tgz
e scompattarle usando untgz o tar e gzip, scaricabili da Aminet.
E' inoltre molto utile iscriversi alla mailinglist di sviluppo, seguendo la procedura riportata nelle FAQ.
Su Linux APUS girano tutti i programmi compilati per Linux PPC (PowerMac), a differenza del kernel, di cui, come è stato detto, esiste una versione specifica. Al momento attuale (luglio 1999) l'ultima distribuzione RedHat per PPC è la versione R5 (corrispondente alla RedHat 6.0 del Linux/i386).
Si sta lavorando ad un installer specifico per Amiga, che eviti i problemi causati dagli installer pensati per PowerMac, ossia problemi di configurazione della tastiera, del mouse, dell'hardware grafico, che presentano sostanziali differenze rispetto ai PowerMac.
Per la precedente versione R4 (corrispondente alla RedHat 5.0 del Linux/i386) esiste già un installer funzionante, che lascia solo un paio di dettagli da configurare manualmente. Se preferite usare questa versione si raccomanda di fare riferimento al sito già citato per scaricare questo installer e alle FAQ su come operare.
I software disponibili comprendono Netscape Communicator, GIMP (programma di grafica simile a Photoshop), Ghostscript, Tex, KDE, GNOME, una grande quantità di programmi orientati alla rete (dal web server Apache al proxy server Squid), nonché un sistema di sviluppo software notevole (dai compilatori gcc e egcs al Java Development Kit).
Notevolissime le capacità di gestione di rete, grazie al supporto di svariati protocolli di comunicazione che permettono spesso di far colloquiare tra loro macchine incompatibili semplicemente aggiungendo alla rete una macchina Linux; caratteristiche molto avanzate sono implementate nella gestione del protocollo TCP-IP, come l'implementazione di firewall, cioé filtri selettivi sulle connessioni con l'esterno, usati a fini di sicurezza, e l'IP-Masquerading, ossia la possibilità di permettere a un certo numero di computer (anche diversi tra loro) di usare un unico collegamento modem a Internet contemporaneamente, in maniera invisibile dall'esterno.
L'installazione e la rimozione del software sono straordinariamente semplici (tranne la configurazione, che dipende dal singolo programma) grazie a particolari utility che mantengono un database dei programmi installati, dei loro componenti e delle dipendenze reciproche. Il tool "rpm" delle distribuzione RedHat stupisce per la facilità d'uso e la flessibilità: si può ad esempio chiedere a quale programma appartenga un certo file, se questo programma può essere rimosso senza doverne rimuovere altri e verificare se i file presenti sull'harddisk sono corrispondenti a quelli installati. Questa possibilità è molto utile per verificare se qualche file è stato accidentalmente cancellato o modificato, per esempio da un virus, anche se i virus sono praticamente sconosciuti a Linux, poiché offre livelli di sicurezza di gran lunga superiori ad altri sistemi operativi, soprattutto durante l'utilizzo in rete.
La documentazione è abbondante, anche se a volte presuppone un certo grado di conoscenze dell'utente, ed è presente sia nelle installazioni tipiche che in siti Internet. In caso di necessità particolari è possibile utilizzare i newsgroup e le mailinglist per avere aiuto direttamente da altri appassionati (o anche da chi ha scritto il programma su cui si vogliono informazioni).
Da citare gli HOWTO, documenti tematici che spiegano in maniera chiara e con esempi tipici come affrontare particolari questioni: ad esempio come configurare un collegamento Internet, come gestire una stampante o come costruire una rete.
La critica maggiore mossa a Linux è la difficoltà che si trova nell'usarlo, soprattutto nei primi tempi, quando si deve acquisire una certa mentalità che è alla base di Unix. Per esempio una cosa che spesso sorprende è il fatto che il sistema è quasi totalmente case-sensitive ossia distingue le maiuscole dalle minuscole e se si prova ad accedere a "NETSCAPE", quando il nome del file esistente è "netscape", si ottiene un errore di file inesistente.
Chi ha una mentalità aperta e ha dimestichezza con l'uso di una shell a comandi testuali (necessari almeno nelle prime fasi), si trova facilmente a proprio agio dopo un po' di tempo.
E si scopriranno sempre cose nuove, giacché con Linux si può imparare davvero tanto, soprattutto se la curiosità spinge a leggere la documentazione più tecnica o i sorgenti dei programmi (il miglior metodo per imparare a programmare seriamente).
Le cose che si imparano sono applicabili spesso in larghi contesti (ad esempio l'ambiente Unix in generale, ma anche oltre) e arricchiscono il proprio bagaglio di conoscenze, e questa cosa non è di poco conto, soprattutto di questi tempi in cui la maggior parte delle persone che dichiarano di saper usare un computer sanno solo come "fare clic per iniziare" da una barra di avvio.