|
2. CARATTERISTICHE TECNICHE
Le caratteristiche di questo sistema operativo lo rendono adatto ad
impieghi di ogni genere (vedi paragrafo - CHI USA LINUX?). Ecco
comunque una lista delle principali caratteristiche di Linux (tratta
dal Linux Information sheet
http://sunsite.unc.edu/pub/Linux/
docs/HOWTO/INFO-SHEET
-multitasking: puo' eseguire piu' programmi nello
stesso momento
-multiuser: supporta piu' utenti sulla stessa macchina (senza
richiedere licenze
aggiuntive!)
-multiplatform: e' in grado di girare su differenti piattaforme (non
solo INTEL ma anche Digital Alpha, PowerPC, Sun SPARC, Macintosh e
MIPS)
-gira in modalita' protetta su processori 386 o superiori
- prevede funzioni di protezione della memoria tra processi in maniera
tale da non consentire ad un solo programma di mandare in crash
l'intero sistema
- shared copy-on-write pages among executables. Cio' significa che
processi multipli possono utilizzare la stessa memoria per girare.
Quando uno di questi cerca di scrivere nella parte di memoria
condivisa, quella pagina (4KB di memoria) viene copiata da qualche
altra parte. Copy-on-write ha due vantaggi: maggiori prestazioni e
riduzione del consumo di memoria.
- gestione della memoria virtuale attraverso la paginazione (senza
cioe' dover scaricare l'intero processo) sul disco: su una partizione
separata, su un file all'interno del filesystem, o entrambi, con la
possibilita' di aggiungere al volo - qualora ce ne fosse bisogno -
ulteriori aree di swap (senza dover riavviare la macchina o
interrompere il processo).
Un totale di 16 aree di swap da 128MB possono essere utilizzate
contemporaneamente per un
teorico ammontare di 2 GB di spazio di swap
utilizzabile.
- un pool di memoria unificato per i programmi e la memoria cache, in
maniera tale che tutta la memoria libera possa essere utilizzata come
cache, e tuttavia la cache possa essere ridotta qualora ci sia bisogno
di lanciare un grosso programma.
- possiede librerie statiche e dinamiche (Dynamic Link Libraries -
DLL)
- esegue il core dump
consentendo un analisi dopo il crash. In questo modo e'possibile utilizzare
un debugger non solo quando un programma sta girando, ma anche dopo che e'
andato in crash
- compatibile con
POSIX, System V e BSD a livello di sorgente
- compatibile con SCO,
SVR3, SVR4 a livello di eseguibili grazie all'adozione di un emulatore
iBSC2-compatibile.
- completa
disponibilita' dei sorgenti, compreso l'intero kernel e tutti i driver, gli strumenti
di sviluppo e tutti i programmi utente; inoltre e' tutto liberamente
distribuibile
- e' anno-2000
compatibile
- POSIX job control
- dispone di
pseudoterminali (pty's)
- emulatore 387 a
livello di kernel in maniera tal che nessun programma abbia bisogno del proprio
emulatore... Ogni computer che utilizza Linux appare come se possedesse un
coprocessore
matematico. Ovviamente se il vostro computer possiede
gia' una FPU, e' possibile rimuovere l'emulatore dal kernel guadagnando
alcuni Kb di memoria.
- supporto per
diverse tastiere internazionali (tra cui quella Italiana) ed e' possibile caricare e
scaricare i driver al volo.
- consol virtuali
multiple: e' possibile effettuare diversi login indipendenti dalla stessa
postazione e passare da una all'altra con una semplice
combinazione di tasti
(spesso ALT-F1 - ALT-F2...). E' possibile avere fino a 64 sessioni
parallele, contemporanee e indipendenti.
- supporto nativo per
molteplici filesystem: minix-1, Xenix System V, MS-DOS, HPFS (OS/2 2.x), VFAT
(Windows 95), NT, HFS (Apple Mac), FFS (Amiga),CD-ROM, NFS...
- filesystem
proprietario che supporta partizioni fino a 4TB e nomi lunghi fino a 255 caratteri
- networking TCP/IP
nativo (comprendente ftp, telnet, NFS, etc.)
- puo' agire da
server per reti AppleTalk
- puo' agire da
server per reti Microsoft (emulando
LanManager, NT...) e da client (WfWg, W95, NT)
- puo' agire da
client o server in una rete Novell
Netware
- puo' lavorare in
clustering
- e molto altro
ancora...
2.1 Come si rapporta
Linux agli altri sistemi
operativi?
Linux si basa sullo
standard POSIX per i sistemi operativi che e' stato derivato
originariamente dalle funzionalita' del mondo UNIX. UNIX e'
compatibile
con Linux a livello
di chiamate di sistema, il che
significa che la maggior parte dei programmi scritti per altre
versioni di UNIX o per Linux possono
|
essere compilate e funzionare anche sugli altri sistemi con poche o
spesso nessuna modifica.
Generalmente Linux gira molto piu' velocemente delle altre versioni di UNIX
sullo stesso hardware. E UNIX presenta l'inconveniente di non essere gratuito.
Nei paragrafi che
seguono cerchero' di mostrare i punti forti e quelli deboli(?) di Linux
paragonandone le caratteristiche con quelle dei principali sistemi operativi. Il mio
intento e' quello di fare un confronto obbiettivo... tuttavia devo
ammettere di essere un fan di Linux... ;)
Invito quindi
chiunque abbia serie argomentazioni da portare in difesa di un sistema operativo (o
correzioni su quanto da me scritto) ad inviarmele: prometto che saranno inserite!
Nota: nelle
valutazioni che seguono ho considerato parte dei vari sistemi operativi tutto cio'
che e' scaricabile GRATUITAMENTE. Eventuali resource KIT disponibili a
pagamento non sono stati presi in considerazione.
2.1.1 Linux vs.
MS-DOS
Le similitudini tra
Linux e MS-DOS si limitano al fatto che entrambi hanno un file system
gerarchico. Ma MS-DOS gira solo su processori x86 non e' multi-user ne' multitasking (per
non parlare del multithreading) e non e' gratuito. Inoltre MS-DOS e' in
grado di interagire pochissimo con altri sistemi operativi, ha grossi limiti per
quanto riguarda la gestione della memoria, non comprende programmi che
consentano il networking, ne' utility per lo sviluppo (quali compilatori e
debugger) e nessuna delle altre utility distribuite con Linux (quali ad esempio una
GUI).
Ad ulteriore
vantaggio di Linux non si dimentichi che Linux e' in grado di leggere nativamente
una partizione DOS e di eseguire diversi programmi DOS (grazie al programma
DOSEMU). A vantaggio del DOS, va invece detto che richiede meno memoria
per girare (gli bastano 640K mentre Linux vuole almeno 1MB) e funziona anche
su processori 286 e inferiori.
2.1.2 Linux vs.
MS-Windows 3.x
Microsoft Windows
offre alcune delle capacita' grafiche di Linux e comprende alcune funzionalita'
di networking, ma conserva tutti gli svantaggi di MS_DOS specialmente quelli
relativi alla gestione di memoria. Inoltre ha dei notevoli problemi di sicurezza
e affidabilita' per non parlare del costo da sostenere per l'acquisto
dell'ambiente operativo e di tutti gli applicativi di cui si ha bisogno. Per finire
ricordo che si tratta di un ambiente monoutente e che e' sbagliato
considerarlo un sistema operativo in quanto si basa ancora sul DOS (pur riuscendo a
bypassarne alcune limitazioni). Grazie all'impiego di
emulatori (ampiamente disponibili: Wine, WABI, Twillow) Linux e' in grado di
eseguire molti programmi sviluppati per Win 3.x.
2.1.3 Linux vs.
Windows NT
La superiorita' di
Linux rispetto a NT per quanto riguarda la migliore capacita' di
multitasking/multithreading, la migliore gestione della memoria, la migliore gestione
e sicurezza del filesystem sono ampiamente dimostrate. Linux offre una
maggior possibilita' di configurazione e consente la fusione di due sistemi in uno
o la clonazione di una macchina con poco sforzo. Linux offre inoltre
migliori capacita' di networking, una GUI piu' versatile e potente e
necessita di minori requisiti minimi in termini di risorse hardware.
Windows NT e'
disponibile SOLO su Digital Alpha, e processori X86. Windows NT e' sul
mercato da poco tempo (che significa che e' stato dedicato molto meno tempo per
scoprire la presenza di bug e risolverli), e il prezzo del solo sistema
operativo e' piuttosto elevato. Un confronto molto
completo e preciso tra Linux e NT e' disponibile presso
http://www.jimmo.com/Debate/intro.html
Un altro confronto
(interessante) tra NT4 e Unix (con riferimenti anche a Linux) e' disponibile
presso: http://www.kirch.net/unix-nt.html
Perfino il Gartner
Group afferma la superiorita' di Unix nei confronti di NT definendo Unix piu'
scalabile, flessibile, robusto e maturo. Afferma, inoltre che gia' il 14% delle
aziende ha iniziato ad usare Linux:
http://www.gartner.com/public/static/
datapro/industry/indnews6.html
Se siete interessati
ad un'analisi comparata dei costi all'interno di un azienda con diversi
client e server leggete: http://www.cyber.com.au/misc/frsbiz/
nt_linux.htm
Altre informazioni su
come sostituire NT con Linux sono disponibili presso:
http://citv.unl.edu/linux/
LinuxPresentation.html
Per finire un analisi
sulla architettura a 64-bit, SMP, Cluster, etc. in cui si confrontano
molte versioni di UNIX (purtroppo non Linux) e NT4 e' disponibile
presso:
http://www.unix.digital.com/unix/v4/
dhbrown/AIX43.htm
2.1.4 Linux vs. Apple
Macintosh
Il sistema operativo
di Apple per i Macintosh funziona SOLO sui Mac. Inoltre soffre della mancanza
di strumenti di sviluppo, di scarsa interoperabilita' con altri sistemi
operativi, di un multitasking primitivo, assenza di multi-threading, problemi
di sicurezza e affidabilita'. Si tratta inoltre di un sistema operativo
monoutente.
In realta' le ultime
versioni del System (8.5.x) hanno risolto molti dei problemi aumentando
le capacita' di multitasking e l'affidabilita' dell'intero
sistema. Anche le capacita' di
networking dei Mac sono migliorate, rendendo questa piattaforma una buona
workstation per grafica e DTP.
Tuttavia proprio per
ovviare alle limitazioni del proprio sistema operativo la Apple ha avviato due
progetti legati a tecnologie Un*x: Rapsody e MkLinux.
Rapsody
- in cui
molti componenti sono derivati da FreeBSD
- e' destinato a diventare il
successore del System 8.5.x
MkLinux e' un porting
di Linux su piattaforma PowerMac a cui Apple stessa ha contribuito
attivamente. NOTA: Esiste un
emulatore per Linux (Executor - un prodotto commerciale) che consente di eseguire
applicativi Mac anche su quella piattaforma.
|