Linux Information Sheet

Michael K. Johnson <johnsonm@redhat.com> v4.14, 1 settembre 1998 Questo documento fornisce semplici informazioni sul sistema operativo Linux, inclusa una introduzione a Linux, una lista di caratteristiche, requisiti hardware e risorse. Questo documento è stato tradotto da Giovanni Bortolozzo, <borto@pluto.linux.it> .

Indice

1 Introduzione a Linux 1 2 Caratteristiche di Linux 3 3 Requisiti hardware 5

3.1 Configurazione minima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 Configurazione usabile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.3 Hardware supportato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4 Un elenco incompleto di programmi portati su Linux e altro software 7 5 Chi usa Linux? 9 6 Procurarsi Linux 9

6.1 In FTP Anonimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 6.2 In CD-ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 6.3 Altri modi per procurarsi Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

7 Stato legale di Linux 10 8 Notizie su Linux 11 9 Il futuro 11 10 Questo documento 12 11 Questioni legali 12

1 Introduzione a Linux

Linux è una reimplementazione completamente gratuita delle specifiche POSIX, con estensioni SYSV e BSD (il che significa che sembra proprio come Unix, ma non è derivato dallo stesso codice di partenza), disponibile sia come codice sorgente sia in formato binario. Il suo copyright è posseduto da Linus Torvalds <torvalds@transmeta.com> e da altri collaboratori, ed è liberamente distribuibile nei termini della GNU General Public License (GPL). Una copia della GPL è inclusa nei sorgenti di Linux; è possibile ottenerne

una copia anche da ftp://prep.ai.mit.edu/pub/gnu/COPYING .

Linux, di per sè, è solo il kernel del sistema operativo, la parte che controlla l’hardware, gestisce i file, suddivide i processi e così via. Esistono diverse combinazioni di Linux con insiemi di utilità e applicazioni per formare un sistema operativo completo. Ognuna di queste combinazioni è detta una distribuzione di Linux. La parola Linux, sebbene in senso stretto si riferisca specificamente al kernel, è largamente e correttamente usata per riferirsi all’intero sistema operativo costruito attorno al kernel Linux. Per un elenco e una breve descrizione delle diverse distribuzioni, si veda http://sunsite.unc.edu/LDP/HOWTO/ Distribution-HOWTO.html . Nessuna di queste distribuzioni è il “Linux ufficiale”.

Linux non è di pubblico dominio, non è nemmeno “shareware”. È un software “libero”, comunemente chiamato freeware o Open Source Software[tm] (si veda http://www.opensource.org ), e si possono distribuire o venderne copie, ma si devono includerne i sorgenti o renderli disponibili nello stesso modo con il quale si distribuiscono o si vendono gli eseguibili. Se si distribuisce una qualsiasi modifica, si è obbligati per legge a distribuire i sorgenti di queste modifiche. Si veda la GNU General Public License per i dettagli.

Linux è ancora libero, come nella versione 2.0, e continuerà a esserlo. La natura del copyright GNU, a cui Linux è soggetto, renderebbe illegale il fatto che non sia più libero. Notare che: la parte ‘libera’ implica l’accesso ai sorgenti indipendentemente dall’aspetto monetario; è perfettamente legale far pagare denaro per la distribuzione di Linux, a patto che venga distribuito anche il codice sorgente. Questa è una generalizzazione; per aspetti più accurati, leggere la GPL.

Linux gira su macchine 386/486/Pentium con bus ISA, EISA, PCI e VLB. MCA (bus della IBM) non è attualmente ben supportato, sebbene nella nuova versione in fase di sviluppo, la 2.1.x, il supporto sia stato inserito. Se siete interessati, guardate http://glycerine.itsmm.uni.edu/mca .

È in corso il port per diverse piattaforme Motorola 680x0 (attualmente usate in alcuni Amiga, Atari e macchine VME), che ora funziona abbastanza bene. Richiede un 68020 con MMU, un 68030, un 68040 o un 68060 e richiede anche l’FPU. Per ora il supporto di rete e X non funzionano. Si veda news:comp.os.

linux.m68k .

Linux funziona bene sulle CPU Alpha della DEC, supportando attualmente le piattaforme “Jensen”, “NoName”, “Cabriolet”, “Universal Desktop Box” (meglio conosciuta come Multia). Per altre informazioni, si veda

http://www.azstarnet.com/~axplinux/FAQ.html .

Linux funziona bene su Sun SPARC e viene utilizzato già su molte macchine sun4c, sun4m e sun4u, mentre il supporto per sun4 è in fase di sviluppo. Red Hat Linux è (alla scrittura di questo testo) la sola distribuzione

disponibile per SPARC; si veda http://www.redhat.com/support/docs/rhl-sparc/ .

Linux è in attiva fase di port per architetture PowerPC, incluse le macchine PowerMac (Nubus e PCI),

Motorola, IBM e Be. Si veda http://www.cs.nmt.edu/~linuxppc/ e http://www.linuxppc.org/ .
Port su altre macchine, tra cui MIPS (si veda http://linus.linux.sgi.com e http://lena.fnet.fr/

) e ARM, sono in corso e stanno mostrando dei progressi. Non trattenete il fiato, ma se siete interessati e capaci di contribuire, potete trovare facilmente altri sviluppatori che vorrebbero lavorare con voi.

Linux non è più considerato in beta test da quando è stata rilasciata la versione 1.0 il 14 marzo 1994. C’erano ancora bug nel sistema, e nuovi bug salteranno fuori e saranno risolti col passare del tempo. Siccome Linux segue il “modello a sviluppo aperto”, tutte le nuove versioni sono rilasciate al pubblico anche se non sono considerate “prodotti di qualità”. Comunque, per aiutare la gente a capire se sta prelevando una versione stabile o no, è stato adottato il seguente schema: le versioni n.x.y, dove x è un numero pari, sono le versioni stabili, e come vengono risolti bug viene incrementato y. Così dalla versione 1.2.2 alla 1.2.3 ci fu la correzione di alcuni bug e non l’aggiunta di nuove caratteristiche. Le versioni n.x.y, dove x è un numero dispari, sono di qualità beta per soli sviluppatori, e possono quindi essere instabili e cadere (crash), ma hanno nuove caratteristiche aggiuntive. Non appena il kernel attualmente in sviluppo diviene stabile, verrà “congelato” in uno nuovo kernel “stabile”, e lo sviluppo continuerà con una nuova versione del kernel. Si noti che la maggior parte dei rilasci del kernel Linux, beta o meno, sono relativamente robuste; in questo contesto “stabile” significa che “cambia lentamente” oltre a “robusto”.

La versione stabile attuale è la 2.0.35 (questa continua a cambiare a mano a mano che vengono aggiunti nuovi supporti hardware e corretti bug), ed è partito lo sviluppo dei kernel sperimentali 2.1.x. I sorgenti del kernel Linux contengono un file, Documentation/Changes, che spiega i cambiamenti di cui si deve essere consci quando si aggiorna la versione del kernel. Comunque, la stragrande maggioranza degli utenti di Linux semplicemente aggiornano periodicamente la loro distribuzione per avere una nuova versione del kernel.

Molte versioni di Linux, beta o no, sono abbastanza stabili e si possono usare se fanno quel che vi serve. Un sito ha utilizzato un computer con la versione 0.97p1 (rilasciata nell’estate del 1992) per più di 136 giorni senza nessun errore o crash (e avrebbe funzionato ancora più a lungo se un operatore sbadato non avesse erroneamente staccato la spina dell’alimentatore principale...) Altri hanno segnalato uptime di oltre un anno. Un sito ha ancora un computer che usa Linux 0.99p15 da oltre 600 giorni.

Una cosa da considerare è che Linux è sviluppato usando un modello aperto e distribuito, invece di un modello chiuso e centralizzato come molto altro software. Questo significa che la versione di sviluppo corrente è sempre pubblica (con un ritardo di una o due settimane) in modo che tutti possano usarla. Il risultato è che ogni volta una versione con nuove funzionalità viene rilasciata, quasi sempre contiene bug, ma con il rapido sviluppo esistente i bug sono trovati e corretti velocemente, spesso in ore, in quanto molta gente lavora per risolverli.

Diversamente, il modello chiuso e centralizzato significa che una sola persona o un gruppo lavora al progetto, e solo loro rilasciano il software quando ritengono che funzioni bene. Spesso questo porta a un lungo intervallo tra le release, una lunga attesa per risolvere i bug e uno sviluppo lento. Certamente l’ultima release pubblica di tale software è, a volte, di qualità superiore, ma la velocità di sviluppo è generalmente molto inferiore.

Per una discussione su questi due modelli, si legga “The Cathedral and the Bazaar” a http://sagan.

earthspace.net/~esr/writings/cathedral-bazaar/ di Eric Raymond.

Al 1 settembre 1998, la versione stabile corrente di Linux è 2.0.35, e quella in fase di sviluppo è 2.1.119.

2 Caratteristiche di Linux

• Multitasking: più programmi funzionano contemporaneamente.

• Multiutenza: più utenti nella stessa macchina contemporaneamente (e senza licenze per coppie di utenti!).

• Multipiattaforma: funziona su varie CPU diverse, non solo Intel.

• Multiprocessore: il supporto per SMP è disponibile su piattaforme Intel e SPARC (ed è in sviluppo il supporto su altre piattaforme), e Linux viene usato in diverse applicazioni MP loosely-coupled, tra cui

     i sistemi Beowulf (si veda http://cesdis.gsfc.nasa.gov/linux-web/beowulf/beowulf.html ) e il

supercomputer basato su SPARC Fujitsu AP1000+.

• Multithreading: ha supporto nativo nel kernel per thread di controllo multipli e indipendenti all’interno dello stesso spazio di memoria del processo.

• Funziona in modalità protetta nel chip 386.

• Protezione della memoria tra processi, in modo che un programma non possa mandare in crash l’intero sistema.

• Caricamento degli eseguibili a richiesta: Linux legge dal disco solo le parti di un programma che sono realmente usate.

• Condivisione pagine copy-on-write tra processi. Questo significa che più processi possono usare la stessa memoria per funzionare. Quando uno tenta di scrivere in quella zona di memoria, quella pagina (un pezzo di memoria da 4Kb) è copiata in un altro posto. Copy-on-write ha due vantaggi: incrementa la velocità e diminuisce l’uso di memoria.

• Memoria virtuale con paginazione (non fa lo swap di interi processi) su disco: in una partizione separata o in un file del filesystem o in entrambi, con la possibilità di aggiungere nuove aree durante il normale funzionamento (sono chiamate aree di swap). Un massimo di 16 di queste aree di swap da 128 Mb (2GB nei kernel recenti) possono essere usate contemporaneamente, per un totale teorico di 2 Gb di spazio di swap disponibile. È semplice aumentarlo, se necessario, cambiando poche linee di codice sorgente.

• Memoria unificata per programmi utente e cache del disco, in modo che tutta la memoria possa essere usata per la cache e la cache possa essere ridotta quando funzionano programmi di grandi dimensioni.

• Collegamento (link) dinamico delle librerie condivise (DLL), e naturalmente anche di quelle statiche.

• Può creare core per l’analisi post-mortem dei processi, permettendo l’uso di un debugger su un programma non solo mentre sta funzionando, ma anche dopo che è terminato in malo modo.

• Compatibile a livello sorgente con POSIX, SYSV e BSD.

• Attraverso un modulo di emulazione conforme a iBCS2, compatibile a livello di binari con SCO, SVR3 e SVR4.

• Il codice sorgente è disponibile in toto, compreso quello dell’intero kernel, dei driver, degli strumenti di sviluppo e dei programmi utente e tutti questi sono pure distribuibili liberamente. Diversi programmi commerciali vengono forniti per Linux senza i sorgenti ma tutto quello che è nato libero, compreso l’intero sistema operativo di base, è tuttora libero.

• Controllo POSIX dei processi.

• Pseudoterminali (pty).

• Emulazione 387 nel kernel in modo che i programmi non abbiano bisogno di una propria emulazione del coprocessore matematico. Qualsiasi computer che usa Linux appare possedere un coprocessore matematico. Naturalmente, se il proprio computer contiene già una FPU, verrà usata questa invece di emularla, e si può anche compilare il proprio kernel togliendo l’emulazione matematica per guadagnare un po’ di memoria.

• Supporto per molte tastiere nazionali o personalizzate, ed è abbastanza semplice aggiungerne dinamicamente una nuova.

• console virtuali multiple: più sessioni in console con login indipendente ed è possibile passare da una all’altra premendo una combinazione di tasti (indipendente dall’hardware video). Sono allocate dinamicamente; se ne possono usare fino a 64.

• Supporto per parecchi filesystem comuni: tra cui minix, Xenix, e tutti i comuni filesystem System V, ed un proprio filesystem avanzato che offre filesystem fino a 4 TB, e nomi lunghi fino a 256 caratteri.

• Accesso trasparente alle partizioni MS-DOS (o alle partizioni FAT di OS/2) tramite un filesystem speciale: non è necessario alcun comando speciale per usare una partizione MS-DOS, appare come un normale filesystem Unix (tranne che per quelle simpatiche restrizioni sui nomi dei file, permessi altro). Le partizioni compresse di MS-DOS 6 attualmente non funzionano a meno che non si applichi una patch (dmsdosfs). Il supporto per VFAT (WNT, Windows 95) e FAT-32 è disponibile in Linux 2.0.

• Filesystem speciale chiamato UMSDOS che permette di installare Linux su un filesystem DOS.

• Supporto in sola lettura di HPFS-2 per OS/2 2.1.

• Supporto per il filesystem HFS (Macintosh) disponibile separatamente come modulo.

• Filesystem per CD-ROM che legge tutti i formati standard di CD-ROM.

• Supporto di rete TCP/IP, compresi ftp, telnet, NFS, ecc.

• Server Appletalk.

• Client e server Netware.

• Client e server Lan Manager/Windows Native (SMB).

• Molti protocolli di rete: i protocolli di base disponibili nel l’ultimo kernel in sviluppo includono TCP, IPv4, IPv6, AX.25, X.25, IPX, DDP (Appletalk), Netrom, e altri. I protocolli di rete stabili compresi nei kernel stabili attualmente sono TCP, IPv4, IPX, DDP e AX.25.

3 Requisiti hardware

3.1 Configurazione minima

Quella che segue probabilmente è la più piccola configurazione possibile che permette di far funzionare Linux: 386SX/16, 1 MB di RAM, un floppy da 1.44 MB o 1.2 MB, una qualsiasi delle schede video supportate (+ ovviamente tastiera, monitor e così via). Questa dovrebbe permettere di avviare Linux e di provare se funziona o meno nella macchina, ma non si sarà in grado di fare niente altro di utile. Si veda http:

//rsphy1.anu.edu.au/~gpg109/mem.html

per altre configurazioni minime di Linux.

Per poter fare qualcosa, sarà necessario un po’ di spazio su un disco fisso, da 5 a 10 MB dovrebbero essere sufficienti per un’installazione proprio minima (con solo i comandi più importanti e forse una o due piccole applicazioni, come una programma di terminale). Questa è ancora una installazione molto ma molto limitata e molto scomoda a meno che le proprie applicazioni non siano proprio limitate. Generalmente non è raccomandata per farci niente se non un po’ di test di funzionamento, e naturalmente per essere in grado di vantarsi del fatto che le risorse richieste sono veramente minime.

3.2 Configurazione usabile

Se si ha intenzione di usare programmi intensi a livello computazionale, come gcc, X e TeX probabilmente si avrà bisogno di un processore più veloce di un 386SX/16, sebbene anche questo potrebbe essere sufficiente se si ha pazienza.

In pratica, si avrà bisogno di almeno 4 MB di RAM se non si usa X, e di 8 MB se lo si usa. Inoltre, se si vogliono avere più utenti in contemporanea, o eseguire contemporaneamente più programmi grossi (compilazioni, per esempio), si avrà bisogno di più di 4 MB di memoria. Funzionerà comunque anche con meno memoria ma userà la memoria virtuale (usando il disco fisso come una memoria lenta) ma sarà così lento da essere inutilizzabile. Se si usano più programmi contemporaneamente, 16 MB riduranno considerevolmente le operazioni di swap. Se non si vuole fare swap in maniera apprezzabile durante il normale carico, 32 MB probabilmente saranno sufficienti. Se si usano assieme molte applicazioni che usano intensamente la memoria, saranno necessari 64 MB per evitare un sacco di swap. Naturalmente se si usano applicazioni fameliche in termini di memoria, bisognerà aggiungerne.

Lo spazio su disco di cui si ha bisogno dipende da quale software si vuole installare. L’insieme normale di utility Unix, shell e programmi di amministrazione dovrebbero stare abbondantemente in meno di 10 MB, con un po’ di spazio libero per i file degli utenti. Per un sistema più completo, si prenda Red Hat, Debian, o un’altra distribuzione e si faccia conto che saranno necessari dai 60 ai 600 MB, a seconda di cosa si sceglie di installare e di quale distribuzione si prende. Si aggiunga lo spazio che si vuole riservare per i file degli utenti a questi totali. Con i prezzi correnti dei dischi fissi, se si sta per comperare una nuova macchina, non ha senso comperare un disco fisso troppo piccolo. Se ne prenda almeno uno da 2 GB, preferibilmente 4 GB o più, e si vedrà che non andrà sprecato. Linux gestisce tranquillamente dischi fissi molto grandi come i recenti e popolari dischi IDE da 11 GB e SCSI da 18 GB.

Si aggiunga più memoria, più spazio su disco, un processore più veloce e altro a seconda delle proprie necessità, desideri e disponibilità economiche. In generale, una grossa differenza tra Linux e DOS è che in Linux l’aggiunta di memoria fa una grande differenza, mentre in DOS memoria in più non fa poi molta differenza. Naturalmente ciò ha a che fare con il limite dei 640KB, che sotto Linux non esiste.

3.3 Hardware supportato

CPU Qualsiasi cosa in grado di eseguire programmi in modalità 386 protetta. Tutti i modelli di 386, 486, Pentium, Pentium Pro, Pentium II e cloni di questi chip dovrebbero andar bene (i 286 e inferiori potrebbero un giorno essere supportati da un kernel più piccolo detto ELKS (Embeddable Linux Kernel Subset), ma non ci si aspetti le stesse caratteristiche). Una versione per CPU 680x0 (con x = 2 con MMU esterna, 3, 4 e 6) che funziona su Amiga e Atari può essere reperita a tsx-11.mit.edu nella directory 680x0. Sono supportate molte macchine DEC Alpha, SPARC, e PowerPC. Sono in lavorazione anche i port su architetture ARM, StrongARM, e MIPS. Maggiori dettagli sono reperibili da qualche altra parte.

Architetture Bus PCI, ISA, EISA e VLB. Il supporto per MCA (la maggior parte dei PS/2 true blue) è incompleto ma sta migliorando (si veda sopra). I local bus (VLB e PCI) funzionano. Linux è molto più esigente sull’hardware rispetto a DOS, Windows e in pratica molti altri sistemi operativi. Ciò significa che alcuni componenti hardware, che potrebbe funzionare se usati con altri sistemi operativi meno esigenti, potrebbero dare problemi quando usati con Linux. Linux è un eccellente tester della memoria...

RAM Fino a 1 GB su Intel; di più su piattaforme a 64-bit. Alcuni (tra cui Linus) hanno notato che aggiungere RAM senza allo stesso tempo aggiungere anche cache ha estremamente rallentato le loro macchine, quindi se si aggiunge RAM e si trova che la propria macchina sia più lenta, si provi ad aggiungere ancora cache. Alcune macchine possono fare il cache solo di una certa parte della memoria indipendentemente da quanta RAM è installata (64 MB è la dimensione di cui i chipset più popolari possono fare la cache). Oltre i 64 MB sarà necessario un parametro al boot con kernel 2.0.35 e precendenti, in quanto il BIOS non può riportare più di 64 MB. I recenti kernel 2.1.x e successivi sono in grado di rilevare tutta la memoria di un sistema.

Dispositivi di immagazzinamento dati Sono supportati i drive AT generici (controller di HD EIDE, IDE e a 16 bit con MFM, RLL o ESDI), così come lo sono i dischi fissi e i CD-ROM SCSI con un adattatore SCSI tra quelli supportati. Sono supportati anche i controller generici XT (controller a 8 bit con MFM o RLL). Adattatori SCSI supportati: Advansys, Adaptec 1542, 1522, 1740, e le serie 27xx e 29xx (con alcune eccezioni), Buslogic MultiMaster e Flashpoint, controller basati su NCR53c8xx, controller DPT, controller Qlogic ISP e FAS, Seagate ST-01 and ST-02, la serie Future Domain TMC-88x (o qualsiasi scheda basata sul chip TMC950) e TMC1660/1680, Ultrastor 14F, 24F and 34F, Western Digital wd7000 ed altri. Sono anche supportati i nastri SCSI, QIC-02 e alcuni QIC-80. A parte i cdrom IDE e SCSI, sono supportati anche parecchi dispositivi CD-ROM proprietari, tra cui Matsushita/Panasonic, Mitsumi, Sony, Soundblaster, Toshiba, ATAPI (EIDE), SCSI e altri. Per i modelli esatti si veda l’Hardware compatibility HOW-TO. N.B. Questi elenchi sono incompleti, e lo saranno sempre. Chi vende le distribuzioni mantiene generalmente una lista molto più aggiornata.

Video In modo testo funzionano le VGA, EGA, CGA o Hercules (e compatibili). Per la grafica e X, c’è il supporto (almeno) per VGA normale, alcune schede SVGA (molte delle schede basate su chipset Tseng, Paradise, e alcuni Trident), S3, 8514/A, ATI, Matrox ed Hercules (Linux usa il server X XFree86, il quale determina quali schede sono supportate. Una lista completa dei chipset supportati avrebbe occupato molto più di una pagina. Si veda http://www.XFree86.org/ )

Rete Il supporto Ethernet comprende 3COM 503/509/579/589/595/905 (le 501/505/507 sono supportate ma non raccomandate), AT&T GIS (neé NCR) WaveLAN, molte schede basate su WD8390 e su WD80x3, NE1000/2000 e cloni, AC3200, Apricot 82596, AT1700, ATP, DE425/434/435/500, D-Link DE-600/620, DEPCA, DE100/101, DE200/201/202 Turbo, DE210, DE422, Cabletron E2100 (non raccomandata), Intel EtherExpress (non raccomandata), EtherExpress Pro, EtherExpress 100, DEC EtherWORKS 3, HP LAN, HP PCLAN/plus, molte schede basate su AMD LANCE, NI5210, ni6510, SMC Ultra, DEC 21040 (tulip), Zenith Z-Note ethernet. Tutte le schede Zircom e tutte le Cabletron diverse dalla E2100 non sono supportate, a causa nel rifiuto dei costruttori di fornire gratuitamente informazioni per programmarle. Il supporto FDDI attualmente comprende le schede DEFxx della DEC. Il supporto di rete Point-to-Point comprende PPP, SLIP, CSLIP e PLIP. Il supporto per il PPP è disponibile sia per dispositivi asincroni standard come i modem, sia per connessioni sincrone come ISDN. È disponibile un supporto limitato per il Token Ring.

Seriali Molte schede basate su UART 16450 e 16550, tra cui AST Fourport, Usenet Serial Card II e altre. Le schede intelligenti supportate comprendono la serie Cyclom della Cyclades (supportata dal costruttore), la serie Rocketport della Comtrol (supportata dal costruttore), Stallion (la maggior parte delle schede; supportate dal costruttore) e Digi (alcune schede; supportate dal costruttore). È supportato anche un po’ di hardware per ISDN, frame relay e leased line.

Altro hardware SoundBlaster, ProAudio Spectrum 16, Gravis Ultrasound, molte altre schede audio, molti (tutti?) tipi di bus mouse (Microsoft, Logitech, PS/2), ecc.

4 Un elenco incompleto di programmi portati su Linux e altro software

Sono stati portati su Linux la maggior parte degli strumenti e dei programmi Unix, tra cui praticamente tutto il software della GNU e molti client per X da varie fonti. Attualmente, il port è più difficile a dirsi che a farsi, in quanto molti programmi si compilano direttamente senza modifiche, o solo con modifiche minime, in quanto Linux segue abbastanza fedelmente le direttive POSIX. Non ci sono mai abbastanza applicazioni per un qualsiasi sistema operativo, ma Linux sta guadagnando sia in applicazioni per utenti finali che per server. Si contatti il produttore della propria applicazione Unix commerciale preferita e gli si chieda se ne hanno prodotto una versione per Linux.

Ecco una lista incompleta di software che sicuramente funziona sotto Linux:

Comandi Unix basilari:

ls, tr, sed, awk e cosi via (se ne pensi uno, e probabilmente Linux ce l’ha).

Strumenti di sviluppo:

gcc, gdb, make, bison, flex, perl, rcs, cvs, prof.

Linguaggi e ambienti:

C, C++, Objective C, Java, Modula-3, Modula-2, Oberon, Ada95, Pascal, Fortran, ML, scheme, Tcl/tk, Perl, Python, Common Lisp e molti altri.

Ambienti grafici:

GNOME e KDE (desktop), X11R6 (XFree86 3.x), X11R5 (XFree86 2.x), MGR.

Editor:

GNU Emacs, XEmacs, MicroEmacs, jove, ez, epoch, elvis (GNU vi), vim, vile, joe, pico, jed e altri.

Shell:

bash (POSIX sh compatibile), zsh (compresa la modalità di compatibilità ksh) pdksh, tcsh, csh, rc, es, ash (shell praticamente sh compatibile usata come /bin/sh da BSD) e molte altre.

Telecomunicazione:

PPP, UUCP, SLIP, CSLIP, insieme completo di strumenti di comunicazione TCP/IP, kermit, szrz, minicom, pcomm, xcomm, term (esegue più shell, redireziona l’attività di rete e permette l’uso di applicazioni X remote, il tutto su una singola linea modem), Seyon (programma di comunicazione per X-Window molto popolare) e sono disponibili diversi pacchetti per fax e voice-mail (usando ZyXEL e altri modem). Naturalmente, sono supportati i login remoti via seriale e via rete.

News e mail:

C-news, innd, trn, nn, tin, smail, elm, mh, exmh, pine, mutt, ecc.

Elaborazione testi:

TeX, groff, doc, ez, LyX, Lout, Linuxdoc-SGML e altri.

Giochi:

Nethack, diversi Mud e giochi per X e moltissimi altri. Se se ne cerca uno, si veda tra tutti i giochi disponibili a tsx-11 e sunsite.

Tutti questi programmi (e questi non sono neanche un centesimo di quanto è disponibile) sono disponibili gratuitamente. Inizia a diventare largamente disponibile anche moltissimo software commerciale; si chieda ai produttori del proprio software commerciale preferito se supportano Linux.

5 Chi usa Linux?

Linux è disponibile liberamente e a nessuno viene richiesto di registrare le proprie copie a una qualsiasi autorità centrale, perciò è difficile sapere quanta gente usa Linux. Diverse aziende vivono solo vendendo e fornendo supporto per Linux e i newsgroup su Linux sono tra i più letti in Internet, quindi il numero di utenti probabilmente va espresso in milioni, ma una stima veritiera è difficile da fare. La miglior ricerca di mercato attuale indica fra i 7.5 e gli 11 milioni di utenti.

Comunque, un’anima coraggiosa, Harald T. Alvestrand Harald.T.Alvestrand@uninett.no , ha deciso di provare a contare gli utenti di Linux nel modo più difficile: uno a uno. Se si vuole essere annoverati fra gli utenti di Linux, allora si usi il form disponibile a http://counter.li.org/ . In alternativa, si può spedire un messaggio a linux-counter@uninett.no con uno dei seguenti subject: ‘I use Linux at home’ (uso Linux a casa), ‘I use Linux at work’ (uso Linux al lavoro), o ‘I use Linux at home and at work’ (uso Linux a casa e al lavoro). Saranno accettate anche registrazioni tramite terzi; si chieda ad Harald per i dettagli.

Harald pubblica mensilmente i suoi conteggi in news:comp.os.linux.misc ; sono disponibili anche presso

http://counter.li.org/ .

6 Procurarsi Linux

6.1 In FTP Anonimo

Per documentazione su Linux liberamente distribuibile, si veda il sito del Linux Documentation Project a

ftp://sunsite.unc.edu/pub/Linux/docs/LDP/ e
http://sunsite.unc.edu/LDP/

Si rimanga sintonizzati sul newsgroup

news:comp.os.linux.announce per ulteriori sviluppi.

Almeno i seguenti siti per ftp anonimo rendono disponibile Linux.

     Nome                           Indirizzo Numerico  Directory Linux
     =============================  ==================  ===============
     tsx-11.mit.edu                 18.172.1.2          /pub/linux
     sunsite.unc.edu                152.2.22.81         /pub/Linux
     ftp.funet.fi                   128.214.248.6       /pub/Linux
     net.tamu.edu                   128.194.177.1       /pub/linux
     ftp.mcc.ac.uk                  130.88.203.12       /pub/linux
     src.doc.ic.ac.uk               146.169.2.1         /packages/linux
     fgb1.fgb.mw.tu-muenchen.de     129.187.200.1       /pub/linux
     ftp.informatik.tu-muenchen.de  131.159.0.110       /pub/comp/os/linux
     ftp.dfv.rwth-aachen.de         137.226.4.111       /pub/linux
     ftp.informatik.rwth-aachen.de  137.226.225.3       /pub/Linux
     ftp.Germany.EU.net             192.76.144.75       /pub/os/Linux
     ftp.lip6.fr                    132.227.77.2        /pub/linux
     ftp.uu.net                     137.39.1.9          /systems/unix/linux
     wuarchive.wustl.edu            128.252.135.4       mirrors/linux
     ftp.win.tue.nl                 131.155.70.100      /pub/linux
     ftp.stack.urc.tue.nl           131.155.2.71        /pub/linux
     srawgw.sra.co.jp               133.137.4.3         /pub/os/linux
     cair.kaist.ac.kr                                   /pub/Linux
     ftp.denet.dk                   129.142.6.74        /pub/OS/linux

     NCTUCCCA.edu.tw                140.111.1.10        /Operating-Systems/Linux
     nic.switch.ch                  130.59.1.40         /mirror/linux
     sunsite.cnlab-switch.ch        193.5.24.1          /mirror/linux
     cnuce_arch.cnr.it              131.114.1.10        /pub/Linux
     ftp.monash.edu.au              130.194.11.8        /pub/linux
     ftp.dstc.edu.au                130.102.181.31      /pub/linux
     ftp.sydutech.usyd.edu.au       129.78.192.2        /pub/linux

tsx-11.mit.edu e fgb1.fgb.mw.tu-muenchen.de sono i siti ufficiali del GCC per Linux. Alcuni siti fanno il mirror di altri siti. Si invita a usare il sito a voi più vicino (in senso di rete) ogni qualvolta ciò sia possibile.

Almeno sunsite.unc.edu e ftp.informatik.tu-muenchen.de offrono servizi di ftpmail. Si invii un messaggio a ftpmail@sunsite.unc.edu o ftp@informatik.tu-muenchen.de per ottenere un aiuto.

Se ci si è persi, si veda http://sunsite.unc.edu/LDP/HOWTO/Distribution-HOWTO.html , dove sono

elencate diverse distribuzioni. Red Hat Linux e Debian sembrano al momento essere le distribuzioni più popolari, almeno negli USA.

6.2 In CD-ROM

La maggior parte della gente ormai installa Linux da CD-ROM. Le distribuzioni hanno ormai raggiunto centinaia di MB di software per Linux, e scaricarsele con un modem a 28.8 o una connesione ISDN richiede un sacco di tempo.

Ci sono essenzialmente due modi per comperare una distribuzione Linux su CD-ROM: come parte di un archivio di siti FTP o direttamente dal produttore. Se si compra un archivio, spesso di avranno diverse distribuzioni tra cui scegliere, ma solitamente non è incluso il supporto. Quando si compra una distribuzione direttamente dal produttore, tipicamente si riceve solo una distribuzione, ma solitamente si riceve anche qualche forma di supporto, tipicamente supporto sull’installazione.

6.3 Altri modi per procurarsi Linux

Ci sono molte BBS che hanno file su Linux. Un elenco di queste viene inviato di tanto in tanto in comp.os.linux.announce. Si chieda ad amici e a gruppi di utenti, o si ordini una delle distribuzioni commerciali. Una lista di queste è contenuta nel Linux Distribution HOWTO, disponibile a

http://sunsite.unc.edu/LDP/HOWTO/Distribution-HOWTO.html , e postato regolarmente nel newsgroup
news:comp.os.linux.announce .

7 Stato legale di Linux

Sebbene Linux sia fornito con i sorgenti completi, è un software soggetto a copyright, non di pubblico dominio. Comunque è disponibile gratuitamente nei termini della GNU General Public License, anche detta “copyleft”. Si veda la GPL per maggiori informazioni. Ognuno dei programmi che girano sotto Linux ha il proprio copyright, sebbene molti di questi usino la GPL. X usa il copyright MIT X, e alcune utility sono sotto il copyright BSD. In qualsiasi caso, tutto il software nei siti FTP è liberamente distribuibile (altrimenti non dovrebbe essere là).

8 Notizie su Linux

Circa quattro anni fa, è stata avviata una rivista mensile chiamata Linux Journal. Include articoli per qualsiasi livello di conoscenza, e vuole essere d’aiuto a tutti gli utenti di Linux. Un anno di abbonamento costa $22 per gli USA, $27 per Canada e Messico, e $32 per il resto del mondo, pagabili in valuta statunitense. Le richieste di abbonamento possono essere spedite via email a subs@ssc.com, oppure via fax allo +1-206-782-7191, o tramite telefono allo +1-206-782-7733, oppure spedite a Linux Journal, PO Box 85867, Seattle, WA 98145-1867 USA. SSC mette a disposizione una chiave per criptare le proprie mail in modo da proteggere il proprio numero di carta di credito; si faccia finger info@ssc.com per avere la chiave.

Esistono diversi gruppi Usenet per discussioni su Linux, oltre a diverse mailing list. Si vedano le Linux FAQ per maggiori infomazioni sulle mailing list (si dovrebbe essere in grado di trovare le FAQ sia nei newsgroup sia nei siti FTP).

Il newsgroup news:comp.os.linux.announce è un newsgroup moderato per gli annunci su Linux (nuovi programmi, correzioni di bug, ecc).

Il newsgroup news:comp.os.linux.answers è un newsgroup moderato nel quale vengono inviate le Linux FAQ, i documenti HOWTO e altra documentazione.

Il newsgroup news:comp.os.linux.admin è un newsgroup non moderato per la discussione dell’amministrazione di sistemi Linux.

Il newsgroup news:comp.os.linux.development.system è un newsgroup non moderato specifico per le discussioni sullo sviluppo del kernel di Linux. Le sole questioni sullo sviluppo di applicazioni che dovrebbero essere ivi discusse sono quelle intimamente associate con il kernel. Tutte le altre questioni sullo sviluppo sono probabilmente questioni generiche di sviluppo in Unix e dovrebbero invece essere dirette al gruppo comp.unix, a meno che non siano questioni su applicazioni veramente specifiche per Linux, nel qual caso dovrebbero essere dirette a comp.os.linux.development.apps.

Il newsgroup news:comp.os.linux.development.apps è un newsgroup non moderato specifico per le discussioni sullo sviluppo di applicazioni connesse con Linux. Non è per le discussioni su dove trovare applicazioni per Linux e nemmeno un forum di discussione su quali applicazioni piacerebbe vi fossero per Linux.

Il newsgroup news:comp.os.linux.hardware è per le domande specifiche sull’hardware per Linux.

Il newsgroup news:comp.os.linux.networking è specifico per lo sviluppo del supporto di rete in Linux e sulla sua configurazione.

Il newsgroup news:comp.os.linux.x è specifico per le questioni sull’X Window in Linux.

Il newsgroup news:comp.os.linux.misc è il rimpiazzo di comp.os.linux, ed è pensato per qualsiasi discussione che non appartenga a qualche altro newsgroup.

In generale, non si faccia il post multiplo (“crosspost”) su più newsgroup di Linux. Il solo crosspost che è appropriato è un post occasionale tra un gruppo non moderato e comp.os.linux.announce. Lo scopo della divisione del vecchio gruppo comp.os.linux in molti gruppi è stato quello di ridurre il traffico in ognuno di essi. Chi non segue questa regola verrà brutalmente ripreso senza nessuna scusante...

Linux è nel Web all’URL http://sunsite.unc.edu/LDP/

9 Il futuro

Dopo il rilascio di Linux 1.0, il lavoro si è concentrato su diversi miglioramenti. Linux 1.2 comprendeva incrementi nella velocità di accesso al disco, miglioramenti alle TTY, alla memoria virtuale, supporto per diverse piattaforme, quote su disco e molto altro. Linux 2.0, l’attuale versione stabile, ha ancora altri miglioramenti e nuove caratteristiche, tra cui incremento delle prestazioni, diversi nuovi protocolli di rete, una delle più veloci implementazioni di TCP/IP al mondo, e molto, molto altro. Prestazioni ancora migliori, ulteriori protocolli di rete e più driver di dispositivi saranno disponibili con Linux 2.2.

Anche se sono state scritte più di 3/4 milioni di righe di codice nel kernel, c’è ancora un sacco di codice da scrivere, e ancora altra documentazione. Si invita a sottoscrivere la mailing list linux-doc@vger.rutgers.edu se si vuole contribuire alla documentazione. Si invii una mail a majordomo@vger.rutgers.edu contenente una unica riga con la parola “help” nel corpo nel messaggio (NON come subject).

10 Questo documento

Questo documento è mantenuto da Michael K. Johnson <johnsonm@redhat.com>. Si inviino a me le mail con qualsiasi commento, anche se piccolo. Non posso fare un buon lavoro di manutenzione di questo documento senza il vostro aiuto. Una copia più o meno aggiornata di questo documento può sempre essere trovata a

http://sunsite.unc.edu/LDP/

Prima traduzione di Michele Dalla Silvestra, <dalla@pluto.linux.it>. Aggiornamento e traduzioni successive a cura di Giovanni Bortolozzo, <borto@pluto.linux.it>. La versione più aggiornata di questa traduzione può

sempre essere trovata a http://www.pluto.linux.it/ildp/ .

11 Questioni legali

I marchi sono registrati dai rispettivi possessori. Non si da alcuna garanzia sulle informazioni contenute in questo documento. L’uso e la distribuzione sono a proprio rischio. Il contenuto di questo documento è di dominio pubblico ma, se lo si usa, si invita a essere corretti e a citarlo fra le proprie fonti.