dic 202011
 

di
Frank Harris-Smith

Che cosa è esattamente il kernel Linux e cosa lo rende diverso rispetto, ad esempio Windows o al Mac X? Io non ho intenzione di andare troppo in profondità su questo perché, in tutta onestà, io non sono qualificato per discutere del kernel oltre le sue basi. Io ho intenzione di concentrarmi sugli aspetti hardware/software dell’interfaccia del kernel con i suoi pro e contro.

Come primo punto ho intenzione di chiarire è che Linux è un kernel, non un sistema operativo. GNU/Linux è il kernel Linux con l’aggiunta di software esterni come ad esempio un gestore di finestre come Gnome, utility, software per ufficio e altri componenti per rendere GNU/Linux un sistema operativo completo per far funzionare il vostro computer.


Generalmente io rispondo alla domanda “Cosa c’è installato sul tuo portatile” con il solo semplice generico “Linux”, perché di solito la persona vuole solo sapere perché non ha l’aspetto di Windows o un Macintosh. Dire qualcosa in più aggiungerebbe solo confusione.

Ma ora diamo uno sguardo ad alcuni kernel.
Ci sono tre tipi fondamentali di kernel: il microkernel, Il kernel monolitico e il kernel ibrido

Il microkernel è un kernel molto minimalista. Ha alcune funzioni incorporate, ovvero la gestione della memoria, il multitasking, e processo di inter-comunicazione, ma tutto il resto si svolge nello spazio utente. I driver per l’hardware, chiamato anche “Server”, sono nello spazio utente e sono interfacce tra il software e l’hardware, ma controllate dal kernel. Il microkernel ha il vantaggio di avere i driver di periferica e l’interfaccia software di sistema (Window Manager), al di fuori dello spazio del sistema nello spazio utente e quindi possono essere codificati in linguaggi più evoluti. Gli svantaggi includono la quantità extra di comunicazione tra processi necessari per controllare sia il software che l’hardware.

Linux è un kernel monolitico. Tutte le funzioni di base del microkernel più i driver per le periferiche sono presenti, scheduler, gestione memoria, file system e gli stack di rete sono presenti. Si tratta di una continuazione della tradizione Unix del kernel che contiene tutte le funzioni principali del sistema operativo e tutti i driver per le periferiche.

I kernel ibridi sono di solito i kernel commerciali. Windows e Macintosh OS X sono kernel ibridi. Il kernel ha la maggior parte delle funzioni come driver legacy o generici integrati nel kernel ed hanno la possibilità di aggiungere funzionalità con i driver in user space. Il kernel ibrido ha alcune caratteristiche sia del microkernel che il kernel monolitico.

Linux ha alcuni vantaggi e svantaggi. C’è sempre un compromesso perché alcune cose non sono compatibili. Come una profonda, scansione completa antivirus contro una scansione antivirus veloce.

Le installazioni Linux rispetto a Windows sono molto diverse rispetto ai driver. Il sistema operativo Microsoft richiede un driver video, il driver della scheda audio, un driver per la mia scheda di rete wireless e anche un paio di driver per la scheda madre. Linux richiede solo il driver video, non per visualizzare il display, ma per ottenere gli effetti di grafica 3D dalla scheda video proprietaria nVidia.

Ci sono oltre 6.800 moduli driver nel kernel di Linux 3.0. Eppure sta utilizzando meno del 50% dei 2 Gigabyte di Ram del mio portatile con 4 applicazioni aperte. Come può essere? I driver sono sia modulare che dinamici. Il driver non viene caricato se non ce n’è bisogno.

A differenza di Windows dove molti Driver e processi vengono caricati sia se necessario o meno.

Un esempio di modulo driver caricabile dinamicamente è ndiswrapper, che permette di usare un driver per Windows per una scheda di rete WiFi, ma non viene caricato in memoria a meno che non sia chiamato.

Linux con i suoi 6.800 driver funziona in maniera rapida e pulita
Windows e Mac OS X hanno il vantaggio della flessibilità hardware. Un nuovo pezzo di hardware arriva sul mercato ed è utilizzabile immediatamente una volta che si installa il driver che si trova nella scatola. Nuovi hardware di rete possono anche includere un protocollo di rete precedentemente non disponibile, come il protocollo WiFi 802.11.


Gli svantaggi di Windows e Mac OS X sono sulle prestazioni a causa del flusso di informazioni e di controllo più complesso tra le applicazioni software e l’hardware più la mancanza di sicurezza di tutte queste porte potenzialmente aperte. Linux, con la sua struttura monolitica, ha bisogno di meno messaggistica di “pulizia” in quanto la maggior parte dei compiti vengono svolti nel sistema interno al kernel in modo da risparmiare tempo, non ha bisogno di richiamare funzioni in user space per fare le cose.

La mia preferenza personale, poichè io di solito uso l’hardware un po’ più vecchio, è Linux perché TUTTI i driver per il mio IBM ThinkPad T42 sono presenti nel kernel. La performance anche di un distribuzione GNU/Linux abbastanza pesante come Ubuntu 11,10 “Unity” è accettabile anche su un computer portatile a singolo core.

Windows, invece, è per il gioco. Il mio computer per i giochi con Windows Vista può facilmente utilizzare i più recenti controller di gioco ed in più ha il vantaggio di avere una più ampia selezione di giochi recenti. Non ho mai navigato in Internet con Vista. per questo c’è l’altro lato della medaglia del mio sistema dual boot che gira GNU/Linux (Ubuntu) che uso per tutte le altre funzioni oltre al giocare.

Ma ci sono soluzioni alternative per sopperire agli svantaggi sia per Linux che per Windows. Con Linux si possono fare nuovi trucchi con gli script, con cui anche un utente causale di Linux come me può far funzionare il nuovo hardware e per Windows i driver e processi non necessari possono essere spenti manualmente o utilizzando un programma come GameBooster, con cui si decide quanto vicino alla base si vuole tirare giù il proprio Windows, come processi in esecuzione.

Spero essere stato utile con questo articolo e non aver divagato troppo. Prima di scrivere questo articolo sapevo che Linux era chiamato un kernel, ma non sapevo molto di più. Ora, dopo le ricerche che ho fatto, ho una profonda comprensione ed apprezzamento di questa cosa Linux che io uso per ore e ore ogni giorno.

Popular Posts:

flattr this!

  5 Responses to “Linux kernel VS Kernel Commerciali”

  1. As others have pointed out, the headline of this article is erroneous. The Linux Kernel is highly commercial. I suspect what you meant to say was “The Linux Kernel vs Proprietary kernels”, which has an altogether different meaning.

    Free Software is very often commercial; if it wasn’t then it wouldn’t be nearly as useful.

  2. It would be nice, prior to talking about something, to get information about that subject. Mac OS X (the x means ten, not x.. Steve said that!) has an ibrid kernel which was made open source, like linux. Yeah, it was published under a different license. Closer to bsd style, which is better than gpl (depends on pov).
    You can download osx kernel, yes you can!

    Mac OS X is not slower than linux, you should try the os before telling stories you cant prove. OSX is faster than linux, yeap. On a mac you can install bsd ports (darwin ports), on linux you cant do that. There is also a project, OpenDarwin if im not wrong, which is an “osx” os, based on the XNU kernel+X windows.

    Read more, then talk.

    Cheers and save the planet.

    • You’ve got to be kidding. OS X is much more slower than Linux and it’s one of the slowest kernels! Nobody serious is using it. Linux is used in the most demanding environments while OS X is only used on desktop where performance isn’t the most important. Phoronix made many comparisons and OS X looses with Linux every time. It’s only better in graphic when slow Intel cards are used.

  3. I think you do not really know what you are talking about Frank…

  4. Linux community would sure do everything just to pull Linux up. Oh well, I am with Linux though for me, its vintage still I trust it much to switch to others.

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>