UNIX: introduzione elementare

Introduzione

Unix non è certo un'invenzione recente. Le prime versioni di questo sistema operativo furono sviluppate negli Stati Uniti intorno ai primi anni '70 presso gli ormai mitici AT&T Bell Laboratories. Sono passati quindi più di trent'anni da allora, un secolo se rapportato ai tempi rapidissimi di evoluzione dell'informatica. Nel frattempo sono cambiate le architetture hardware dei computer e persino gli scopi per cui questi vengono utilizzati, in questi trent'anni è cambiato quasi tutto ciò che riguarda la microinformatica. Eppure lui, Unix, è ancora lì, perfettamente integrato con i nuovi sistemi ed anzi, da una decina di anni a questa parte sta vivendo una seconda giovinezza (o una seconda maturità, sarebbe il caso di dire), non più soltanto per il peso che negli anni '90 aveva assunto il settore delle workstation basate su architettura RISC, ma piuttosto per lo sviluppo che hanno avuto nuove generazioni di sistemi operativi "Unix-like" per macchine con l'architettura di un personal computer. Sto pensando naturalmente al sistema operativo Linux, nelle sue innumerevoli versioni e "distribuzioni", ma anche ai vari sistemi operativi open source di derivazione BSD, come Open BSD, FreeBSD, NetBSD ed il più recente Darwin, con la sua controparte open source denominata Open Darwin, realizzato dalla Apple come nucleo su cui basare il suo meraviglioso sistema operativo Mac OS X. Ma forse i motivi di questa longevità (più unica che rara, lo ripeto, nel mondo dell'informatica dove tutto invecchia rapidamente) li dobbiamo ricercare anche nel portentoso sviluppo che le reti (locali e geografiche) hanno avuto nell'ultimo decennio; e Unix, in un ambiente di rete, la fa da padrone. La maggior parte dei server su Internet sono macchine Unix, su Unix sono basati la maggioranza dei server di posta elettronica, dei server web e dei repository per la condivisione e lo scambio di file; in una macchina in ambiente Unix tutti i servizi di rete sono perfettamente integrati col sistema (davvero la rete diventa un'estensione naturale della workstation) e questo spiega un vecchio ma efficace slogan di Sun Microsystems, leader mondiale nella produzione di sistemi Unix: "The network is the computer".

Proprio perché è stato concepito in modo esemplare, Unix è anche un ottimo "oggetto didattico", un sistema da usare per imparare veramente cosa è un computer, cosa è un sistema operativo; studiare tutto questo su un PC in ambiente Windows può essere forse più comodo, ma ci darebbe un punto di vista limitato, già molto indirizzato verso un certo tipo di applicazioni, di sicuro non completo. Dopo aver studiato ed operato su una macchina Unix, potremo capire cosa è un PC e anche come funziona il sistema operativo Windows con maggiore facilità, potremo apprezzarne meglio le differenze, la maggiore facilità d'uso ottenuta al costo di una potenza operativa inferiore (anche a parità di risorse hardware). È possibile così accorgersi quanto Unix abbia influenzato anche lo sviluppo del sistema operativo di Microsoft, soprattutto nelle versioni più recenti, che hanno integrato in modo molto efficace i concetti di multiutenza, di servizio e di memoria protetta, che caratterizzano i sistemi operativi Unix da moltissimi anni.

Per capire a fondo il perché di certi aspetti di Unix è forse utile conoscerne gli utenti. Non conosco un altro sistema operativo che sia stato così pesantemente modellato dai suoi utenti, per certi aspetti si potrebbe dire che Unix è parzialmente "fatto in casa", ogni installazione di Unix è ritagliata, modificata ed integrata dai suoi utenti, mediante un insieme di applicazioni piccole o grandi, programmate direttamente o reperite per i canali del software open source attraverso la rete Internet. E infatti gli utenti Unix, quelli che il sistema operativo hanno imparato ad apprezzarlo nei suoi aspetti più essenziali, sono un po' particolari, formano quasi una allegra "setta", si sentono (sono) la crema degli utenti di computer, amano essere autodidatti, adorano integrare il sistema con programmi sviluppati in proprio, scrivono correntemente in C e in Perl, il loro editor preferito è vi (e presto capirete quali implicazioni ha un'affermazione di questo tipo!). Parlano con un codice linguistico molto particolare, spesso si capiscono solo tra di loro. Soprattutto, un vero utente Unix troverebbe aberrante questa guida: è troppo breve ed incompleta, e per questo non rende giustizia alla grande potenza del sistema.

Questa brevissima guida non è un manuale esaustivo su Unix, ed in effetti non è proprio un manuale su Unix. È una guida introduttiva. Su ogni argomento toccato dai capitoli di questo fascicolo sono stati scritti libri interi ed è a questi testi (qualcuno lo riporto tra le note bibliografiche) che vi consiglio di riferirvi per approfondire la conoscenza di Unix. Utilizzate questo fascicolo solo per avere una prima informazione sintetica su cosa vi si apre davanti accedendo ad una macchina Unix. Le informazioni riportate nella guida non sono errate (almeno questo è ciò che mi auguro!), ma sono profondamente incomplete. I comandi della shell Unix sono caratterizzati da una serie infinita di opzioni che ne modificano l'esecuzione e che li rendono veramente flessibili e potenti; ho riportato in queste pagine solo pochi comandi e di ognuno di questi ho elencato solo le opzioni principali. Sta a voi, alla vostra curiosità, alle vostre necessità, il compito di scoprire di volta in volta nuove varianti di uno stesso comando. In altre parole si può dire che in questa guida non viene spiegato in dettaglio come compiere determinate operazioni, ma piuttosto si è preferito puntare l'attenzione su quali operazioni è possibile compiere, rimandando alla documentazione del sistema per tutto ciò che riguarda i dettagli tecnici e sintattici. Consiglio di leggere questo fascicolo per intero e comunque nell'ordine in cui sono riportati i capitoli: non essendo un manuale di consultazione, ma una guida introduttiva, non avrebbe nessun senso cominciare direttamente da un capitolo diverso dal primo.

Nella prima edizione di questa guida (scritta più di dieci anni fa!), per ragioni di sintesi e di chiarezza spesso nella descrizione dei comandi e delle funzionalità avevo fatto dei paralleli con i comandi e le funzionalità del sistema operativo MS-DOS. Oggi quel sistema operativo non esiste più e dunque nella presente edizione ho rivisto questo approccio dal momento che i neofiti di oggi (è a loro che si rivolge questa guida), se anche conoscono il sistema operativo Windows, è molto probabile che non conoscano neanche uno dei comandi della shell (il cosiddetto "prompt dei comandi", nel gergo Windows) e quindi il parallelo non sarebbe di nessuna utilità.

Prima di concludere questa breve introduzione voglio raccomandarvi di sperimentare ogni cosa sulla vostra macchina, senza alcun timore di danneggiare i dati degli altri utenti del sistema. Unix dispone di numerosi meccanismi di sicurezza e quindi non vi sarà facile compromettere il buon funzionamento del sistema o danneggiare il lavoro dei vostri colleghi.

Ho cercato di porre la massima cura ed attenzione nella realizzazione di questo fascicolo. Nondimeno saranno sicuramente presenti numerosi refusi tipografici ed inesattezze sostanziali nel testo. Invito fin d'ora, chiunque riscontrasse errori di qualsiasi tipo, a segnalarmeli con un messaggio di posta elettronica agli indirizzi marco@aquilante.net e liverani@mat.uniroma3.it.

Convenzioni tipografiche

Nel comporre il testo di questo fascicolo sono state impiegate alcune convenzioni tipografiche. I caratteri typewriter sono stati utilizzati per indicare i comandi del sistema (ciò che si deve digitare). Negli esempi invece lo stesso carattere è stato utilizzato per rappresentare i messaggi visualizzati dal sistema; ciò che negli esempi si intende digitato dall'utente è stato scritto con il carattere typewriter corsivo. I singoli tasti che devono essere battuti per impostare determinati comandi sono rappresentati con una cornice:   Return  . Ho riportato delle note a margine delle pagine per consentire una identificazione più immediata degli argomenti trattati.

Le numerose figure che compaiono alla fine dei capitoli, rappresentano alcune workstation Unix ormai fuori produzione. Le immagini sono state selezionate sulla rete Internet nei siti web delle rispettive case costruttrici, o in gallerie di foto "d'epoca" pubblicate da qualche appassionato. Spero con questo di non aver violato alcun vincolo imposto dal copyright.

Premessa alla seconda edizione

Ho provato più volte a rimettere mano alla prima edizione di questa guida per integrarla, ampliarla e soprattutto per correggere gli errori che qualche lettore attento mi ha segnalato. Non si tratta di un compito facile, dal momento che ciò che avevo scritto dieci anni fa era un documento per certi versi un po' ingenuo, ma anche molto equilibrato nel bilanciare le informazioni presenti nei cinque capitoli di cui era costituito. La pigrizia e la paura di rompere questo equilibrio che molti avevano apprezzato mi ha indotto più volte a rimandare questa attività di revisione. Oggi finalmente ho trovato la strada per rielaborare ciò che avevo scritto e per produrre qualcosa che spero sia migliore.

Ho corretto tutti gli errori che mi sono stati segnalati ed ho aggiunto o solo ampliato alcune parti della guida. Sono molto grato a quanti mi hanno incoraggiato a diffondere questo lavoro che ha avuto un successo enorme e insperato. Alcuni miei ex-studenti mi hanno segnalato che questa guida è stata utilizzata in alcune occasioni perfino da grandi aziende di informatica e telecomunicazioni come supporto didattico nei corsi di formazione per i nuovi assunti. D'altra parte sono numerosi i siti web che hanno "linkato" l'indirizzo della pagina Internet su cui ho pubblicato questa guida, ed altrettanti quelli che hanno deciso di copiarla integralmente per proporla con un altro stile tipografico ai propri utenti e lettori. Tutto questo ovviamente mi fa molto piacere e dunque invito quanti decideranno di utilizzare la guida come supporto per corsi di istruzione e di formazione(1) a segnalarmelo con un messaggio di posta elettronica.

M.L.

Roma, Settembre 2005

NOTE:

1. La guida è gratuita e può essere liberamente riprodotta e distribuita purché questo venga fatto senza fini di lucro e rispettando il copyright dell'autore e la paternità dell'opera.

Home page

Indice

Introduzione

Organizzazione del sistema

Comandi fondamentali

Editing di file di testo

L'interfaccia grafica X Window

Alcuni strumenti per l'uso della rete Internet

Sintesi dei comandi principali

Elenco alfabetico delle sigle

Bibliografia

HOME

Valid HTML 4.01! Valid CSS!
Author: Marco Liverani - Last modified: Sunday November 20, 2011 - URI: http://www.aquilante.net/unix/1.shtml