L’ affascinante storia della nascita di Linux

Tengo molto a mettervi a conoscenza degli aneddoti che sono alla base della nascita del migliore S.O. del pianeta: Linux.

Grazie alla splendida capacità oratoria del mio “collega mod” rosario (che ringrazio molto), sono lieto di esporvi qui, in estrema sintesi, la storia della nascita di Linux ed i capisaldi della sua filosofia.

Buona lettura:

“Sto ricompilando il system sulla mia gentoo ed ho molto tempo per cui provo a descrivere la storia in estrema sintesi di linux; nel forum ho visto molto interesse, curiosità, ma anche confusione.

La filosofia Linux è profondamente diversa da quella a cui siamo abituati. Intanto linux dovrebbe chiamarsi GNU/linux, e vedremo che non è una differenza solo semantica.
La leggenda dice che tutto nasce in un laboratorio del MIT, si usava unix e si era comprata una nuova stampante di rete posta in fondo ad un corridoio; la macchina aveva un imbarazzante problema, ogni tanto s’inceppava la carta, per cui tu credevi di aver stampato, andavi a prendere il documento e vedevi che era tutto fermo.

Un geniale programmatore del MIT pensò: nessun problema, che ci vuole a scrivere un programmino che si accorga del problema ed avverta tutti gli utenti collegati che la carta si è inceppata, in modo che uno degli utenti vada sbloccarla, liberando tutti?

Bisognava avere i sorgenti del driver per aggiungere una manciata di righe al codice, per cui si telefona al produttore e si chiede e quello ti risponde: mi dispiace ma il codice è segreto. Come mi hai venduto un pacco? Voglio migliorarlo e tu mi dici non si può, ho comprato la macchina, ma quello che ci posso fare lo decido tu. E’ pazzesco, pensa il geniale programmatore. E’ come comprare un’automobile, ma poter andare da Roma a Bologna, se vuoi andare a Milano devi chiedere il permesso e forse ti sarà dato.

Così il nostro programmatore si dimette dal MIT e pensa di costruire un sistema che permetta al suo possessore di farne ciò che vuole. Nascono le quattro libertà:

* Libertà di eseguire il programma, per qualsiasi scopo (libertà 0).
* Libertà di studiare come funziona il programma e adattarlo alle proprie necessità (libertà 1).
L’accesso al codice sorgente ne è un prerequisito.
* Libertà di ridistribuire copie in modo da aiutare il prossimo (libertà 2).
* Libertà di migliorare il programma e distribuirne pubblicamente i miglioramenti, in modo tale che tutta la comunità ne tragga beneficio (libertà 3).

L’accesso al codice sorgente ne è un prerequisito.
E’ nato il progetto GNU, così chiama il progetto il suo fondatore il geniale Richard Stallmann, GNU è il simpatico animale simile ad una mucca smile ma è anche acronimo ricorsivo per “GNU’s Not Unix”; (GNU Non è Unix) e si pronuncia “gh-nu“ (con la g dura).
Insomma si trattava di costruire un sistema che non fosse un marchio registrato, come unix, ma che facesse girare gli applicativi unix e/o funzionasse come unix. Naturalmente bisognava creare un editor per scrivere i programmi nasce EMACS, chiamarlo editor è un eufemismo fa tutto anche il caffè smile, poi occorreva un compilatore, nasce GCC, e poi un debugger GDB, tutto opera di Stallman sia in eterno ringraziato smile.

Intanto lo si arrichisce di programmi: una shell, anzi tante shell visto che sono libero di farmi la mia e modificare quelle che ci sono se non mi piacciono, e poi tutto.

Manca solo un kernel; Stallman aveva pensato ad un bel kernel HURD, ma per tanti motivi non è pronto. Per fortuna uno studente, Linus Torvalds, ne ha fatto uno: si chiama Linux. E’ nato per gioco ed in tanti hanno collaborato a renderlo più completo ed efficiente. E’ libero nel senso delle quattro libertà. Si adotta quello, a Stallman non piace lo voleva modulare, ma linux è pronto.

Si parte: è nato Linux o meglio GNU/Linux.

E partono le distribuzioni. Ognuno vuole il suo linux: io lo voglio pulito ed efficiente nasce Slackware, io lo voglio facile, efficiente per poterci lavorare in modo professionale ecco Red Hat, io lo voglio libero, senza pacchetti proprietari, efficiente, sicuro e solido ecco Debian, io lo voglio semplice con configurazioni grafiche ecco prima Mandrake o Suse, poi tutto.

In linux i programmi si compilano, ma è un pò scomodo ci vuole qualcosa di più semplice: ecco rpm (Red-Hat e derivate) o apt (Debian è derivate). Insomma una distribuzione linux è un kernel (propriamente linux)+la shell+ambiente grafico (ce ne è un milione)+script+utility grafiche+applicazioni varie.
Naturalmente ognuno si fa le sue e questo comporta una confusione infernale, perchè io posso prendere un programma, aggiungere funzioni in una libreria, che poi rilascio, ma che potrebbe essere incompatibile con quella che tu hai installato. Apt e Rpm tentano di “risolvere l’inferno delle dipendenze”.

Per qualcuno tutto è troppo confuso, ma per me è libertà, la libertà di scegliere quello che faccio e monto sul mio computer. In realtà come vedete non è scritto da nessuna parte la parola gratuito, posso vendere quello che voglio a patto di rispettare le 4 libertà, cioè chi compra ha il codice sorgente e ci può fare quello che vuole.

“Free as in freedom not as in free beer”. Da li nasce un mondo.”

Commovente vero? Sono curioso di sapere voi che ne pensate 😀

Per chi volesse entrare a far parte della discussione, ecco il link del topic dove rosario ci ha incantati con questa sua eccellente esposizione.

Attendo commenti, da Linuxiani e non 😉

Saluti

Doktor

Tag: , , , , , , , , , , , , , , ,

11 Risposte to “L’ affascinante storia della nascita di Linux”

  1. captainsonic Says:

    Linux il migliore sistema operativo del pianeta??! o_O

    Ti racconto un’altra storia, questa però è un pò più vecchiotta della tua.
    Negli anni 70 l’interesse per Unix inizia a propagarsi fra le varie università e i centri di ricerca di informatica statunitensi.
    Dopo un pò di anni dalla scrittura di Unix, Ken Thompson, co-autore di Unix, decide di tornare all’Università di Berkeley, in California. Ai tempi sul codice sorgente non vi erano restrizioni, tutto era liberamente consultabile e modificabile e Ken Thompson insegna il codice del kernel di Unix riga per riga, siamo nel 1975.

    Nel 1977 lo studente Bill Joy, subito dopo la laurea a Berkeley, assembla una sua versione modificata di Unix su un nastro per PDP-11, nasce così la distribuzione BSD.

    BSD viene venduta al costo del media (il nastro) sotto la licenza che oggi viene chiamata “licenza BSD”.
    Questa nuova distribuzione di Unix desta subito molto interesse, in particolare con la terza versione 3BSD, la DARPA (madre di ARPAnet, precursore di quello che oggi noi chiamiamo internet) decide di fondare un gruppo di ricerca BSD denominato CSRG, che nel 1980 rilascia 4BSD.

    Nel 1983 si giunge alla versione 4.2BSD che vede la collaborazione di alcuni guru dell’informatica fra cui anche gente del MIT. Dopo questa versione Bill Joy decide che è tempo di fare sul serio e si unisce ad altri 3 studenti dell’università di Stanford per fondare una delle più grandi compagnie di informatica di tutti i tempi, quella che oggi tutti noi conosciamo come “la mamma di Java”: Sun Microsystems.
    Alla leadership del sistema BSD succede quindi Marshall Kirk McKusick, padre e leader attuale di FreeBSD. Nello stesso anno Richard Stallman annuncia il sistema GNU, che fino a oggi (dopo ben 25 anni) non è stato ancora completato nel suo progetto originale.

    BSD acquista sempre più popolarità fra le distribuzioni Unix e viene portato sull’architettura Intel 80386, nasce così 386BSD. Allo stesso tempo nasce BSD/386 (BSD/OS) implementazione proprietaria a nome della BSDi.

    Nel 1991 AT&T ha dei problemi con l’antitrust e cita in giudizio BSDi e Berkeley per problemi di licenza. Lo sviluppo di BSD viene congelato, il sistema GNU manca ancora di un kernel, ed è qui che Linus Torvalds prende la palla al balzo e si butta nella scrittura di Linux.
    Non essendoci altri sistemi liberi, molti developer si uniscono alla scrittura di Linux.
    Nonostante Linux fosse un sistema nuovo, venne subito criticato per la sua struttura monolitica considerata ormai obsoleta:
    http://groups.google.com/group/comp.os.minix/browse_thread/thread/c25870d7a41696d2/f447530d082cd95d?tvc=2&pli=1

    Lo stesso Linus Torvalds ammette che se BSD non avesse subito questo stallo per due anni, non si sarebbe mai cimentato nella scrittura di un kernel:
    http://gondwanaland.com/meta/history/interview.html

    Ma torniamo a BSD, nel frattempo Berkeley si accorge che System V (lo Unix AT&T) include codice BSD già da diverse release e nel 1993 Berkeley vince la causa contro AT&T. BSD viene finalmente liberato del codice di AT&T (4.4BSDlite) e diventa a tutti gli effetti indipendente, ma l’attenzione di gran parte degli sviluppatori è concentrata ormai su GNU/Linux.
    I diritti di AT&T vengono infine acquisiti da Novell, la casa che distribuisce SUSE Linux.

    386BSD subisce infine due fork: FreeBSD e NetBSD.
    NetBSD viene poi forkato nel 1995 in OpenBSD.

    BSDi viene assorbita nel 2000 dalla Walnut Creek che nel 2001 viene venduta Wind River Systems e diventa iXsystems, la casa che finanzia PC-BSD.

    Nel 2003 FreeBSD viene forkato in DragonFlyBSD, che abbandona la struttura a kernel monolitico dei sistemi BSD e adotta una più moderna struttura a kernel ibrido come Windows e Mac OS X.

    Nasce nel 2006 PC-BSD, distribuzione desktop di FreeBSD con un sistema di pacchettizzazione moderno (PBI) paragonabile a quello di Windows e Mac OS X, in cui si fa uso di un installer (Avanti->Avanti->…->Fine) e le librerie vengono usate in locale (ogni programma possiede le sue librerie) in modo da evitare problemi di dipendenze, cosa molto fastidiosa all’utente desktop medio.

    Grazie al suo contributo alla ricerca nel campo dell’informatica, Berkeley vanta partnership con le più grandi aziende di informatica della storia: Google, Intel, Microsoft, Sun Microsystems, e Yahoo!.

    Ad oggi FreeBSD è famoso per avere fortemente contribuito allo sviluppo di uno dei più avanzati sistemi operativi: Mac OS X della Apple, inoltre è conosciuto come uno dei più stabili sistemi operativi nella storia:
    http://uptime.netcraft.com/up/today/top.avg.html

  2. doktor Says:

    Bella storia, ma non capisco dove tu voglia andare a parare :/
    Che MAC OS X e BSD siano ottimi sistemi è innegabile, ma a Linux non puoi dire nulla, sempre IMHO ovviamente, anche se ritengo ci siano evidenze oggettive che propendano a favore di ciò che sostengo. Vuol dire che è finalmente giunto il momento di provare una BSD 🙂
    Mi piacerebbe sapere più nel dettaglio quello che pensi e/o vuoi dire.
    Ciao ciao.
    Doktor

  3. captainsonic Says:

    Il concetto è semplice: dalla storia che hai esposto sopra sembrerebbe che l’Open Source e la libertà del software si debbano a GNU/Linux, quando invece non è così.

    Inoltre le miriadi di distro che ci sono in giro, così come i vari desktop etc.. non sono sinonimo di libertà, ma di puro caos.

    Invece di reinventare continuamente la ruota, se ci si concentrasse su un unico sistema GNU/Linux, tutti gli sforzi dei developer sarebbero più concentrati e verrebbe fuori un sistema operativo di qualità nettamente migliore, purtroppo però per GNU/Linux non esiste una sistema ufficiale a cui Stallman e Torvalds lavorano (il fatto che Stallman non digerisca nè Torvalds nè Linux dovrebbe suggerirti qualcosa).

    I sistemi BSD al contrario non sono “distribuzioni”, ma veri e propri sistemi operativi differenti, ci sono infatti nette differenze fra di loro, soprattutto lato kernel.
    Ogni sistema è stato creato con uno scopo ben preciso in mente:
    FreeBSD per le performance
    NetBSD per il porting (lo puoi installare pure su un tostapane)
    OpenBSD per la sicurezza
    DragonFly BSD per il clustering

    PC-BSD invece, è una distribuzione di FreeBSD pensata per l’utente desktop, ma al contrario delle distro Linux, i miglioramenti lato desktop vengono curati dal team di PC-BSD, mentre le migliorie lato sistema (kernel, lib, driver, etc..). vengono gestite dal team di sviluppo di FreeBSD, questa è cooperazione, non caos.

    Fra i vari developer dei sistemi BSD c’è molta cooperazione e rispetto, si tende sempre a contribuire per gli altri sistemi, fra i developer delle distro Linux invece ci si vede come rivali o addirittura nemici da abbattere (prendi ad esempio i “debianisti” che screditano gli utenti di tutte le altre distribuzioni), tutt’altro che etica e principi open source.

  4. doktor Says:

    Guarda, io sono un utente Linux da poco (6-7 mesi) e non ho mai utilizzato finora una distro BSD, per cui non posso ribattere “storicamente” a quanto tu sostieni, ma posso comunque dire la mia da fiero fruitore del pinguino e cioè che per me avere la posssibilità di scegliere tra tantissime distro differenti è sinonimo di assoluta libertà e non di caos, anzi.
    Anche con Linux hai a disposizione distro orientate più verso una cosa piuttosto che verso un’altra, sta a te scegliere quella più vicina ai tuoi bisogni ed alle tue esigenze.
    Nella mia seppur breve esperienza con questo OS non mi è mai successo di sentire, vedere o leggere di persone fruitrici di una distro Linux che ne criticassero un’altra, mai!!!
    Anzi, ho visto piuttosto il contrario, e cioè utenti Debian che suggerivano Puppy o Slackware ad utenti che esponevano come richiesta il suggerimento di una distro più orientata ai loro bisogni, e viceversa per utenti Fedora o Red Hat o Flux Flux o ArchLinux ecc. ecc.
    Io questa sorta di ostilità interna tra utenti/sviluppatori GNU/Linux di cui tu professi l’esistenza non l’ho mai vista, e parlo sinceramente.
    Ti ripeto, non so dirti in verità se “storicamente” la filosofia Open e tutto ciò che la circonda sia effettivamente merito di BSD o meno, nemmeno mi interessa più di tanto, quello che è sicuro è che Linux la mantiene viva e la diffonde come niente e nessun altro. 🙂
    Pensa soltanto alle infinite community che sottendono Linux. Io non credo che siano paragonabili (nè come numero nè come disponibilità) a BSD così come a qualsiasi altro sistema operativo di questo pianeta.
    Magari mi sbaglio, ma da quello che vedo mi sembra proprio essere così.

    Comunque, mi stai facendo venir voglia di installare una BSD, dammi qualche link da dove possa scaricarne una se ti va, così magari mi convinci 😉

    Ciao e alla prossima.
    Doktor

  5. captainsonic Says:

    Se inizierai a buttarti seriamente nel mondo Linux dopo un po’ ne vedrai delle belle, non so se sei mai stato a un Linux Day, dove solitamente compare il “linuxaro”, una categoria di individuo molto pericoloso, tanto per farti un’idea:
    http://blogs.dotnethell.it/windowsvista/Il-Linux-Day-e-Windows-Vista__8004.aspx

    Comunque la mia critica non era certo per cercare di convincerti a usare sistemi BSD, che ognuno usi il sistema che gli fa piu’ comodo. La mia era solo per mettere in luce un lato della storia dell’open source molto importante ma che rimane spesso nell’ombra, così come vengono messi nell’ombra i difetti di Linux che all’inizio puo’ apparire come un sistema perfetto, quando ne è ben lontano in realtà, e te lo dice un utente linux di vecchia data.

    Ecco un sito di critiche su Linux:
    http://www.whylinuxsucks.org/

    Tornando al discorso delle distribuzioni:
    http://lwn.net/Distributions/
    conta ad oggi qualcosa come 556 DISTRIBUZIONI!!!
    cioè non so se ti rendi conto un sistema operativo in 556 differenti versioni non si era mai visto…. o_O
    e lwn.net non tiene comunque conto di progetti piu’ recenti (ma altrettanto inutili) come Siderus, Linux Tiger, Zebuntu, etc… pensa che fra una distro e l’altra possono cambiare tante cose ma spessp cambia anche solo il tema grafico.
    Vedi l’appena nata Zebuntu che non e’ altro che una Xubuntu con il tema di BeOS (Xubuntu e’ a sua volta una Ubuntu con il desktop manager Xfce).

    Come dicevo sopra, le BSD sono:
    Performance : FreeBSD
    Porting : NetBSD
    Sicurezza : OpenBSD
    Clustering : DragonFly BSD
    Desktop : PC-BSD

    non ti resta che scegliere.

    Se non stai scrivendo da un tostapane, da un router, o da un sistema distribuito e sei un utente desktop come il 95% delle utenze 😛
    http://www.pcbsd.org
    faccio una critica anche a PC-BSD a che ci sono: il sistema e’ abbastanza innovativo, permette di installare software in stile Windows (AVANTI->AVANTI->FINE) grazie a una tecnologia chiamata PBI e non rischia di incorrere in problemi di dipendenze (le lib vengono installate in locale), permette inoltre di eseguire direttamente i binari di Windows (i file .exe) e quelli di Linux, ma alla versione attuale (7.0.1) non tutti i pacchetti sono aggiornati (roba come Microsoft Word Viewer che puo’ tornare sempre utile), inoltre KDE 4.1.2 per quanto mi riguarda non possiede ancora la stabilita’ che un utente dovrebbe aspettarsi….si spera per la 4.2 in previsione per il mese prossimo 😦

    In bocca al lupo e buon divertimento 😉

  6. rosario Says:

    Non era mia intenziano sostenere che la libertà del software sia solo linux, ovviamente bsd può legittimamante rivendicare il suo ruolo in questa storia. Semplicemente raccontavo una storia, una tra le mille. Però alcune tue accuse sono un pò ingiuste: 1)accusi il kernel linux di inefficienza perchè monolitico, ma anche quelli bsd lo sono
    http://it.wikipedia.org/wiki/Kernel#Kernel_monolitici_e_microkernel_a_confronto
    Mach (Mac OSX) fa eccezione ma non è un vero microkernel.
    La superiorità di un modello rispetto all’altro è molto controversa.
    HURD il kernel di stallman è previsto micro, ma ancora è in fase test.
    2) Denunci l’eccessivo numero di distribuzioni linux come un caos e forse lo è, ma io lo preferisco all’omogeneità bsd (riconosco che è una preferenza ed un parere personale)
    Ti cito
    “Invece di reinventare continuamente la ruota, se ci si concentrasse su un unico sistema GNU/Linux, tutti gli sforzi dei developer sarebbero più concentrati e verrebbe fuori un sistema operativo di qualità nettamente migliore, purtroppo però per GNU/Linux non esiste una sistema ufficiale a cui Stallman e Torvalds lavorano (il fatto che Stallman non digerisca nè Torvalds nè Linux dovrebbe suggerirti qualcosa).”
    Forse con qualcuno al comando si creerebbe un sistema perfetto (santo graal dell’informatica) ma perchè qualcuno deve proibirmi di farmi il mio sistema? Le libertà di Stallman sono libertà dell’utente e del software BSD,almeno in parte le rispetta, ed allora in nome di cosa si ritiene di poter limitare la possibilità di costruire una distribuzione? anche se concordo con te che molte sono inutili.
    Se la direzione unitaria e controllata dall’alto (la cattedrale) fosse preferibile dal punto di vista tecnologico, allora il sistema operativo perfetto esisterebbe, sarebbe Microsoft. Preferisco poter vedere ubuntu e slackware e gentoo e debian etc..etc.. E’ vero che la storia dell’open source è anche una storia di “holy war”, in fondo è una storia di personaggi di forte carattere, e a volte abbastanza, stravaganti, ma questo significa poco, a volte litigare per ciò che ti appassiona è divertente. Mi mette i brividi qualche volte imaginare un regime in cui tutti fanno quello che gli dicono di fare, si chiama fascismo no… Meglio il casino. Ti garantisco che i debianisti lavorarno bene con ubuntu su molti punti, sono che ognuno sviluppa come gli pare.
    Ma io non ho voglia di litigare su bsd. Avevo scritto quel messaggio per passare il tempo e perchè molti giovani non avevano idea di cosa fosse linux e qualche giorno dopo, visto l’interesse, ne ho scritto un altro che cominciava così
    Il mondo linux si divide presto.
    “L’università di Berkeley aveva creto BSD, un sistema diverso, ma “uguale” a linux, ovvero unix-like, è da questo che deriva MacOsX. Diverse le implementazioni e in parte anche le filosofie, ma uguali gli intenti, un bel sistema unix-like non proprietario, ma quella di BSD è un’altra storia affascinante, ma abbastanza distante da quello che linux è diventato “popolarizzandosi”. BSD e l’università di Berkeley ottengono finanziamenti dal DARPA e creano Internet, implementando il tcp/ip.”
    Era la seconda puntata e vedeva gli scontri stallman-torvalds, la posizione raymond e qualcos altro. Avevo intenzione di scrivere una terza puntata con la storia unix e bsd, ma l’interesse era minore, e non ha mai visto la luce. Io non riesco a considerare bsd e gnu/linux come due storie, ma come un’unica storia
    Mi dispiace per il tuo Windows Vista Beta Tester, ma forse andare al linux day con tutto quel ciarpame addosso non era un’idea brillante, ma il desiderio di provocare cosa che è puntualmente vvenuta e qualcuno c’è cascato. Per me poteva girare quanto voleva vestito come gli pareva, ma tu pensi che tutti i sostenitori del free software, almeno linux, siano dei fanatici? Ci sono anche fanatici BSD che insultano tutti gli altri, le holy war fanno parte della storia dell’informatica.
    Per un confronto sereno tra free bsd e linux
    http://www.freesoftwaremagazine.com/articles/comparing_linux_and_freebsd?page=0%2C0
    E’ in inglese e mi piace il sottotitolo
    The real winner is the community

  7. captainsonic Says:

    Ciao rosario, rispondo ai vari punti ma a scansione di equivoci ci tengo a precisare che quello che ho scritto finora non era per generare flame ma solo per sottolineare punti che sono solitamente poco conosciuti e ignorati sebbene altrettanto importanti:

    1) come puoi leggere dalla storia che ho esposto sopra, BSD ha origini molto “vecchie”, l’originale kernel di BSD UNIX e’ nato in un’era in cui non c’erano alternative al monolitico. Mach e’ nato successivamente proprio per soppiantare il kernel BSD con la nuova struttura a microkernel, ma per vari motivi non e’ poi stato incluso nei fork che sono seguiti.

    Il problema del microkernel e’ che tende a perdere in performance e non e’ di facile scrittura, il problema del monolitico invece e’ che risulta facilmente soggetto a crash perche’ gran parte del codice gira in kernel space. Ma ecco che nasce il kernel ibrido che possiede i vantaggi di entrambi: buone performance, stabilita’ e scalabilita’, inoltre il supporto SMP (multi-core) risulta piu’ semplificato e snello (con un microkernel in ambienti MP basta una semplice chiamata a fork(), con i kernel monolitici invece si hanno non poche difficolta’ in questo settore che e’ ormai diventato uno standard sulle nuove CPU).

    La critica al modello monolitico di Linux fu dovuta principalmente al fatto che Linux e’ nato gia’ in un’epoca dove si sarebbe potuto scegliere un altro tipo di struttura del kernel, che poteva essere se non microkernel come Hurd, almeno a struttura ibrida come hanno fatto Mac OS X e Windows NT, il problema sta semplicemente nel fatto che una volta iniziata la scrittura di un kernel non risulta affatto semplice riadattare il kernel a nuove strutture, si dovrebbe ricorrere a una vera e propria riscrittura.

    Il piu’ recente DragonFly BSD e’ infatti a kernel ibrido, inoltre il kernel di Darwin (sottosistema BSD di Mac OS X) non e’ Mach ma XNU, che e’ basato su Mach e sul kernel di FreeBSD e risulta anch’esso ibrido, ti posto l’output di kextstat dal mio Macbook (equivale a un lsmod di Linux):

    [black-pearl:~] Sonic% kextstat
    Index Refs Address Size Wired Name (Version)
    1 1 0x0 0x0 0x0 com.apple.kernel (9.5.0)
    2 49 0x0 0x0 0x0 com.apple.kpi.bsd (9.5.0)
    3 3 0x0 0x0 0x0 com.apple.kpi.dsep (9.5.0)
    4 69 0x0 0x0 0x0 com.apple.kpi.iokit (9.5.0)
    5 71 0x0 0x0 0x0 com.apple.kpi.libkern (9.5.0)
    6 65 0x0 0x0 0x0 com.apple.kpi.mach (9.5.0)
    7 32 0x0 0x0 0x0 com.apple.kpi.unsupported (9.5.0)
    8 1 0x0 0x0 0x0 com.apple.iokit.IONVRAMFamily (9.5.0)
    9 1 0x0 0x0 0x0 com.apple.driver.AppleNMI (9.5.0)
    10 1 0x0 0x0 0x0 com.apple.iokit.IOSystemManagementFamily (9.5.0)
    11 1 0x0 0x0 0x0 com.apple.iokit.ApplePlatformFamily (9.5.0)
    12 27 0x0 0x0 0x0 com.apple.kernel.6.0 (7.9.9)
    13 1 0x0 0x0 0x0 com.apple.kernel.bsd (7.9.9)
    14 1 0x0 0x0 0x0 com.apple.kernel.iokit (7.9.9)
    15 1 0x0 0x0 0x0 com.apple.kernel.libkern (7.9.9)
    16 1 0x0 0x0 0x0 com.apple.kernel.mach (7.9.9)
    17 17 0x5cd000 0x10000 0xf000 com.apple.iokit.IOPCIFamily (2.4.1)
    18 11 0x635000 0x4000 0x3000 com.apple.iokit.IOACPIFamily (1.2.0)
    19 3 0x85e000 0x3d000 0x3c000 com.apple.driver.AppleACPIPlatform (1.2.1)
    20 0 0x5c8000 0x5000 0x4000 com.apple.BootCache (30.1)
    21 7 0x761000 0x39000 0x38000 com.apple.iokit.IOHIDFamily (1.5.3)
    22 9 0x7de000 0x18000 0x17000 com.apple.iokit.IOStorageFamily (1.5.2)
    23 0 0x8ef000 0x10000 0xf000 com.apple.driver.DiskImages (192.1)
    24 0 0xbb5000 0x1a000 0x19000 com.apple.driver.AppleIntelCPUPowerManagement (9.39.2)
    ……

    come vedi le voci da 1 a 16 sono tutte caricate allo stesso indirizzo 0x0, che e’ l’indirizzo in cui risiede il kernel. Come vedi le componenti sono poche, siamo in kernel space: abbiamo il kernel XNU, la componente BSD (POSIX, permessi utente, network stack, NFS, VFS, IPC, …), dsep (Darwin Security Extension Project), iokit (framework per i driver), la componente Mach (thread, processi, multitasking preemptive, gestione della memoria virtuale, etc..) e via dicendo, queste formano la parte statica o “monolitica” del kernel. L’esecuzione di queste parti risulta molto veloce perche’ non ci sono salti fra kernelspace e userspace fra le chiamate, ma un eventuale errore in una di queste parti di codice risulta in un kernel panic con conseguente blocco immediato del sistema.
    Le parti restanti dalla 17 in poi sono estensioni del kernel e sono caricate in userland, se va in crash una di queste componenti, il kernel non ne risente e il sistema rimane in piedi.

    2)
    Quoto:
    “Forse con qualcuno al comando si creerebbe un sistema perfetto (santo graal dell’informatica) ma perchè qualcuno deve proibirmi di farmi il mio sistema? Le libertà di Stallman sono libertà dell’utente e del software BSD,almeno in parte le rispetta, ed allora in nome di cosa si ritiene di poter limitare la possibilità di costruire una distribuzione? anche se concordo con te che molte sono inutili.”

    Ma nel mondo BSD non c’e’ alcuna limitazione di creare distribuzioni, anzi BSD e’ storicamente molto piu’ libero di Linux (leggi la licenza BSD e’ piu’ libera della GPL) perche’ permette anche l’inclusione di codice in licenze proprietarie, vedi il caso di Apple con Mac OS X, Nokia e anche lo stesso Linux. Su BSD al contrario non possono prelevare codice da Linux poiche’ altrimenti sarebbero costretti a rilasciare l’intero sorgente sotto licenza GPL e non BSD.

    Tornando al discorso sulle distribuzioni, avevo fatto prima l’esempio delle distro di FreeBSD citando PC-BSD, ma ce ne sono anche altre, c’e’ ad esempio DesktopBSD che ha gli stessi goal di PC-BSD ma presenta meno innovazioni ed e’ destinata a utenti un po’ piu’ esperti, magari provenienti da Linux, la stessa Debian include il kernel di alcuni sistemi BSD (vedi Debian GNU/kFreeBSD o GNU/NetBSD), poi ci sono FreeSBIE per LiveCD, NanoBSD per installazioni su penne USB, SD, etc… in tutto circa una dozzina di distro:
    http://www.freebsdwiki.net/index.php/FreeBSD-Distros

    Come vedi nessuno chiude le porte a nessuno, ma il punto focale e’ che esiste comunque un punto di riferimento centrale per gli utenti e per lo sviluppo che e’ il sistema operativo ufficiale: FreeBSD.

    Quoto:
    “Se la direzione unitaria e controllata dall’alto (la cattedrale) fosse preferibile dal punto di vista tecnologico, allora il sistema operativo perfetto esisterebbe, sarebbe Microsoft.”

    No, allora…intanto anche in Linux c’e’ una direzione unitaria e controllata dall’alto che si chiama Linus Torvalds. Torvalds ha potere decisionale sul kernel e sulle direzioni che si devono seguire per lo sviluppo, decide quale codice includere nelle successive release e quale scartare, se pero’ una soluzione a Linus non piace, anche se buona viene scartata (ed e’ gia’ capitato un po’ di volte, prendi il caso di kgdb il kernel debugger adottato finalmente in Linux 2.6.26-rc1 dopo anni di battaglia fra Torvalds e i developer). Viene poi pubblicato il cosiddetto “kernel vanilla” su kernel.org che le varie distribuzioni si occupano di includere nella propria distro, pacchettizzare per gli update, patchare, etc…
    Per quanto riguarda FreeBSD al contrario la direzione non e’ “unitaria”, il tutto viene diretto da un gruppo di 9 membri detto “Core Team” che viene eletto ogni 2 anni circa, questi sono anche vecchi committers esperti e hanno il flag di scrittura al repository cvs dove vengono effettuati i cambiamenti nel codice di FreeBSD, ovviamente se qualche membro risulta essere non prolifico per il sistema, non viene piu’ rieletto.

    Quoto:
    “Ma io non ho voglia di litigare su bsd. Avevo scritto quel messaggio per passare il tempo e perchè molti giovani non avevano idea di cosa fosse linux e qualche giorno dopo, visto l’interesse, ne ho scritto un altro che cominciava così..”

    Ma non stiamo litigando, e’ solo una discussione pacifica ^_^
    Comunque mi sono iscritto anche io al forum, ho appena preso un Eee PC 701 per codare e fare un po’ di esperimenti con eeebsd, atheros e madwifi, sappi quindi che ci sara’ un utente in piu’ a cui interessano questi discorsi, anche se probabilmente essendo un fanatico dei BSD potrei risultare un po’ indigesto a qualche linuxaro…spero di no comunque 😛

    Quoto:
    “Per un confronto sereno tra free bsd e linux
    http://www.freesoftwaremagazine.com/articles/comparing_linux_and_freebsd?page=0%2C0
    E’ in inglese e mi piace il sottotitolo
    The real winner is the community”

    Beh e’ quasi una sorta di guida all’uso per utenti Linux e comunque presenta un po’ di incorrettezze, come ad esempio procfs che esiste da tempo immemore su FreeBSD:
    http://www.FreeBSD.org/cgi/man.cgi?query=procfs&apropos=0&sektion=0&manpath=FreeBSD+7.0-RELEASE&format=html

    Per il resto confronta le analogie a livello utente ma vengono completamente ignorate le tecnologie adottate come l’approccio al kernel userland (jails in BSD, UML in Linux), la compatibilita’ con i Linux binaries…insomma ci sono molte differenze a basso livello interessanti da analizzare e molti problemi su GNU/Linux derivati dalla GPL che non sto qui a spiegarti altrimenti non chiudo piu’, probabilmente un giorno scrivero’ qualcosa al riguardo sul mio blog.

    Do comunque ragione all’articolo in questione invece per quanto riguardo il lato usabilita’: Linux e’ superiore riguardo il multimedia, c’e’ ad esempio ALSA che ha una buona tecnologia per il suono, e quindi risulta piu’ usabile lato desktop, sui sistemi BSD ci sono altre priorita’ di sviluppo, che li rendono piu’ adatti per girare sui server, non a caso FreeBSD e’ uno dei sistemi storicamente piu’ stabili e risulta attualmente al primo posto nella lista dei server con maggiore uptime:
    http://uptime.netcraft.com/up/today/top.avg.html

    comunque finalmente grazie a distribuzioni come PC-BSD che lo rendono facilmente usabile lato desktop, si sta gia’ muovendo qualcosa anche in questo ambito, chi vivra’ vedra’…

  8. captainsonic Says:

    PS: oops colpa dell’orario, c’e’ una piccola svista nel mio precedente post. Non ho incollato l’ultima parte dell’output di kextstat, ma volevo dimostrare che nello spazio di indirizzamento del kernel gira solo una piccola parte: le voci in questione erano 108, quindi in totale 16 in kernel land e 92 in userland

  9. rosario Says:

    Innanzitutto permettimi di complimentarmi per l’acquisto del piccolo asus e di darti
    il benvenuto nel forum di eeepc.it. Lungi dal risultare indigesto per il tuo essere “bsd-tifoso” sarai prezioso se vorrai scrivere qualcosa sulle tue esperienze con eeebsd ed ancor meglio per atheros e wifi. Il forum, come avrai potuto veder da te, è “abitato” da molti utenti windows e quelli linux sono quanto di più laico possibile, molti si sono avvicinati a linux con l’acquisto dell’eee, per cui nessun timore e scrivi presto. Qualcuno ha pensato a bsd per il piccolo
    http://forum.eeepc.it/viewtopic.php?id=3776
    Ma l’esperienza non è molta per cui benvenuto è poco, credo sarai atteso 🙂
    Per il resto nessuna polemica, solo una sana discussione sulle cose che ci interessano. Chiarito il punto, giù botte 🙂
    Linux nasce obsoleto?
    Secondo Tanenbaum, come hai ricordato, si. Tu dici BSD è vero che è monolitico, ma è più vecchio, al tempo in cui nasce linux si sapeva che il microkernel è meglio e poteva essere provato. Non è esattamente così. Linus nel thread che riporti chiarisce

    “True, linux is monolithic, and I agree that microkernels are nicer. With a less argumentative subject, I’d probably have agreed with most of what you said. From a theoretical (and aesthetical) standpoint linux looses.
    If the GNU kernel had been ready last spring, I’d not have bothered to even start my project: the fact is that it wasn’t and still isn’t. Linux wins heavily on points of being available now.”

    Cioè fatelo sto benedetto microkernel ed io lo userò, per ora Linux c’è e quindi va bene lui. Poi è storia che il meglio che sia uscito è un ibrido quasi 20 anno dopo. Certo so che esiste ad es. QNX che è un signor kernel per sistemi embedded. ma ancora attendiamo HURD. Se avessimo atteso un kernel non monolitico non avremmo avuto uno unix libero sino a DragonFly. Per fortuna non è andata così.

    “viewpoint may be largely unrelated to its usefulness. Many if not most of the software we use is probably obsolete according to the latest design criteria. Most users could probably care less if the internals of the operating system they use is obsolete. They are rightly more interested in its performance and capabilities at the user level.
    I would generally agree that microkernels are probably the wave of the future. However, it is in my opinion easier to implement a monolithic kernel. It is also easier for it to turn into a mess in a hurry as it is modified.”

    Chi parla? E’ Ken Thompson, uno dei creatori di Unix e di Plan9 che conosci vero 🙂
    E dice che il microkernel è probabilmente il futuro, ma che un monolitico è più semplice da preparare in fretta. Toh dice anche che la maggior parte della gente si preoccupa poco che l’interno del loro computer sia obsoleto ed è più interessata alle performance e possibilità al livello utente. Giusto, ho un kernel monolitico e che mi frega, funziona, non so nemmeno che è un kernel monolitico. Uso linux da anni e di kernel panic, dopo aver installato, non ne ho visto nemmeno uno, in windows NT (microkernel) qualcuno 🙂 (ok è il sistema grafico, può darsi ma l’ho visto).
    Dopo di che come dice Linus il microkernel è nicer.
    Io ho invece un timore il fatto che HURD ritardi, che BSD e MAC abbiano optato per sistemi ibridi, mi fa pensare che i problemi di sviluppo di micro siano molto più consistenti di quello che non si pensasse (ma confesso che non ho le competenze tecniche par addentrarmi in un analisi del codice dei kernel che consideriamo) così come non ho le competenze per un analisi del MACOSX
    Per il resto siamo d’accordo sia GNU/Linux che BSD sono libere, ambedue seguono uno sviluppo open source, le differenze sono la GPL, quando vuoi ne parliamo. Tu dici che è un bene che ci sia un sistema di riferimento come è FreeBSD, io penso che il fatto che GNU/linux non sia un sistema operativo, ma un accozzaglia di cose sia uno dei suoi punti di forza. Guarda per esempio me, parto con Mandrake, passo a Debian, poi a Slackware e finisco a Gentoo (mi piace il portage, piccola perversione BSD :)). Queste distribuzioni si assomigliano tanto poco che l’uso di ognuna è una piacevole scoperta e non cambiano solo per il windows manager. Son passato dall’una all’altra per trovare cose che quelle precedenti non avevano, era il bisogno a spingermi. Per me la regola “se non si è rotto non cambiarlo” e KISS è vangelo.
    Infine scoperto che usi un MAC credo ci separi effettivamente proprio la GPL, non userei mai un sistema non open quandanche fosse figo come un Macintosh. Temo di dare ragione a Stallman “meglio un pessimo software open, che uno eccezionale proprietario” sempre sperando abbiano ragione Raymond e Torvalds “un software open è migliore”. Non volermene per qualche punta polemica e pensa che non solo mi sei simpatico e rispetto la tua competenza, ma sei anche causa di grande ansietà per mia figlia: da quando ho letto il tuo hack su inferno DS, il suo nintendo corre gravissimi rischi e mia moglie non capisce perchè voglio mi regali un giocattolo per natale 🙂
    Spero si possa continuare a discutere di questi argomenti al bar su eeepc.it e di leggere qualcosa di tuo su eeebsd

  10. doktor Says:

    Ragazzi, volevo farvi i complimenti, siete entrambi mostruosi 🙂
    Dire che fate paura è riduttivo.
    Di nuovo complimenti e grazie davvero per arricchire con queste splendide storie oltre che le pagine del mio blog, anche la mia cultura e la mia curiosità!
    Saluti e continuate così 😉
    Doktor
    -The real winner is the community- 😉

  11. Crazy47 Says:

    The article pretty clearly states that they are working on proof of concept examples, but I think it’s understandable that they would share that information with the vendors prior to releasing it to the general public. ,

Lascia un commento