<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>Linux Information Sheet: Caratteristiche di Linux</TITLE> <LINK HREF="INFO-SHEET-3.html" REL=next> <LINK HREF="INFO-SHEET-1.html" REL=previous> <LINK HREF="INFO-SHEET.html#toc2" REL=contents> </HEAD> <BODY> <A HREF="INFO-SHEET-3.html">Avanti</A> <A HREF="INFO-SHEET-1.html">Indietro</A> <A HREF="INFO-SHEET.html#toc2">Indice</A> <HR> <H2><A NAME="s2">2. Caratteristiche di Linux</A></H2> <P> <UL> <LI>Multitasking: più programmi funzionano contemporaneamente. </LI> <LI>Multiutenza: più utenti nella stessa macchina contemporaneamente (e <B>senza</B> licenze per coppie di utenti!). </LI> <LI>Multipiattaforma: funziona su varie CPU diverse, non solo Intel. </LI> <LI>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 <A HREF="http://cesdis.gsfc.nasa.gov/linux-web/beowulf/beowulf.html">http://cesdis.gsfc.nasa.gov/linux-web/beowulf/beowulf.html</A>) e il supercomputer basato su SPARC Fujitsu AP1000+. </LI> <LI>Multithreading: ha supporto nativo nel kernel per thread di controllo multipli e indipendenti all'interno dello stesso spazio di memoria del processo. </LI> <LI>Funziona in modalità protetta nel chip 386. </LI> <LI>Protezione della memoria tra processi, in modo che un programma non possa mandare in crash l'intero sistema. </LI> <LI>Caricamento degli eseguibili a richiesta: Linux legge dal disco solo le parti di un programma che sono realmente usate. </LI> <LI>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. </LI> <LI>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. </LI> <LI>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. </LI> <LI>Collegamento (link) dinamico delle librerie condivise (DLL), e naturalmente anche di quelle statiche. </LI> <LI>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. </LI> <LI>Compatibile a livello sorgente con POSIX, SYSV e BSD. </LI> <LI>Attraverso un modulo di emulazione conforme a iBCS2, compatibile a livello di binari con SCO, SVR3 e SVR4. </LI> <LI>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. </LI> <LI>Controllo POSIX dei processi. </LI> <LI>Pseudoterminali (pty). </LI> <LI>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. </LI> <LI>Supporto per molte tastiere nazionali o personalizzate, ed è abbastanza semplice aggiungerne dinamicamente una nuova. </LI> <LI>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. </LI> <LI>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. </LI> <LI>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. </LI> <LI>Filesystem speciale chiamato UMSDOS che permette di installare Linux su un filesystem DOS. </LI> <LI>Supporto in sola lettura di HPFS-2 per OS/2 2.1. </LI> <LI>Supporto per il filesystem HFS (Macintosh) disponibile separatamente come modulo. </LI> <LI>Filesystem per CD-ROM che legge tutti i formati standard di CD-ROM. </LI> <LI>Supporto di rete TCP/IP, compresi ftp, telnet, NFS, ecc. </LI> <LI>Server Appletalk. </LI> <LI>Client e server Netware. </LI> <LI>Client e server Lan Manager/Windows Native (SMB). </LI> <LI>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.</LI> </UL> <P> <P> <HR> <A HREF="INFO-SHEET-3.html">Avanti</A> <A HREF="INFO-SHEET-1.html">Indietro</A> <A HREF="INFO-SHEET.html#toc2">Indice</A> </BODY> </HTML>