PDA

View Full Version : Linux: perplessità...


friwer
29-07-2005, 10:31
Recentemente (dall'intervento del ceo di netbsd) ho cominciato a farmi delle domande sulla reale condizione di questo SO...+ di un esperto del ramo è fermamente convinto che il kernel sviluppato da Torvalds & Co sia nulla di + che una buona tesi universitaria ma niente altro...
le mie attuali conoscenze mi impediscono di approfondire + di tanto la faccenda...cioè uso linux, ne compilo il kernel, ormai ne ho una discreta conoscenza pratica ma strutturalmente non posso farmi un'idea.
Chiedo allora agli utenti del forum + esperti ( e ce ne sono) di esprimersi su queste perplessità: linux è davvero "scritto bene"? è così stabile e sicuro o lo stiamo sopravvalutando ignorando valide alternative?
Per conto mio ho provato pc-bsd: è spettacolare...

ilsensine
29-07-2005, 12:36
Linux ha i suoi vizi e virtù; un tempo il codice non era il massimo della pulizia, ma dal 2.4 in poi e l'introduzione dell'osdl le cose sono decisamente cambiate.
Ora se vuoi un tuo pezzo di codice incluso nel kernel ti fanno anche la radiografia delle budella. I risultati ci sono stati.
è così stabile e sicuro o lo stiamo sopravvalutando ignorando valide alternative?
Mai ignorare le alternative. Anche se scegli di non adottarle, possono comunque insegnarti molto.
Per conto mio ho provato pc-bsd: è spettacolare...
Appunto.

NemesisQ3A
29-07-2005, 13:05
Sai, secondo me a volte occorre abbandonare la pura questione tecnica e vedere l'evoluzione nel suo complesso. La dimostrazione è che ancora oggi la comunità informatica si divide sull'annosa questione del macro/micro kernel... :rolleyes:
Quello che posso dirti io è che la scelta di un macrokernel rispetto ad un microkernel ha ragioni "sociali" fodamentali ed è base dello sviluppo e del successo di Linux, e che è assolutamente il miglior modo di sfruttare una "comunità open source" estremamente eterogenea (visto che un qualsiasi soggetto può lavorare a insiemi ristretti di funzionalità senza preoccuparsi eccessivamente del sistema nel suo complesso e la sua implementazione).
Alla fine quindi magari potrebbe anche non essere universalmente riconosciuto come il migliore, ma direi che è l'unico modo in cui poteva venire realizzato.
Poi figurati che linux all'inizio era solo un programma che scriveva AAAABBBBAAAABBBBAAAA su un monitor... :banned: , ma questa è un'altra storia ;)

RaouL_BennetH
29-07-2005, 13:18
Sai, secondo me a volte occorre abbandonare la pura questione tecnica e vedere l'evoluzione nel suo complesso. La dimostrazione è che ancora oggi la comunità informatica si divide sull'annosa questione del macro/micro kernel... :rolleyes:
Quello che posso dirti io è che la scelta di un microkernel rispetto ad un macrokernel ha ragioni "sociali" fodamentali ed è base dello sviluppo e del successo di Linux, e che è assolutamente il miglior modo di sfruttare una "comunità open source" estremamente eterogenea (visto che un qualsiasi soggetto può lavorare a insiemi ristretti di funzionalità senza preoccuparsi eccessivamente del sistema nel suo complesso).
Alla fine quindi magari potrebbe anche non essere universalmente riconosciuto come il migliore, ma direi che è l'unico modo in cui poteva venire realizzato.
Poi figurati che linux all'inizio era solo un programma che scriveva AAAABBBBAAAABBBBAAAA su un monitor... :banned: , ma questa è un'altra storia ;)


:mbe:

Forse sbaglio, ma non mi risulta affatto che il kernel linux sia un microkernel, anzi.

NemesisQ3A
29-07-2005, 13:23
:mbe:

Forse sbaglio, ma non mi risulta affatto che il kernel linux sia un microkernel, anzi.
lol, scusa, errata corrige, il caldo fiorentino di oggi mi sta uccidendo i neuroni uno per uno... :ops2: correggo il post e grazie ;)

P.S. ovviamente quello di linux è un MACROKERNEL... :muro:

Gica78R
29-07-2005, 13:41
Quindi secondo voi il modello a kernel monolitico e' piu' semplice da mantenere, aggiornare, sviluppare a piu' (tante) mani? Avrei detto il contrario :wtf: ma per ora non ho mai visto come e' progettato/realizzato un microkernel... e cmq non ci capirei niente. Qualcuno di voi ha mai avuto a che fare con Minix? Che ne pensate? Se non sbaglio, Linux e' nato quando Torvalds ha iniziato a modificare Minix per aggiungergli la funzione di emulazione di terminale, ma a un certo punto si e' accorto di aver riscritto quasi tutto il sistema, quindi ha provveduto ad eliminare il codice Minix originale da quello che aveva fatto. Il resto lo conosciamo... :)

friwer
29-07-2005, 13:48
Sai, secondo me a volte occorre abbandonare la pura questione tecnica e vedere l'evoluzione nel suo complesso.
ok, questo è in parte vero....ma credo che alla fine un codice "sporco" sia molto più esposto a falle...

NemesisQ3A
29-07-2005, 13:55
ok, questo è in parte vero....ma credo che alla fine un codice "sporco" sia molto più esposto a falle...

:mbe: ma cosa intendi con sporco? lol, ma allora secondo questa equazione un programma come internet explorer ha bisogno di 1000 litri di candeggina, vista l'ampia gamma di "falle" via via dimostrate.

ilsensine
29-07-2005, 13:59
:mbe: ma cosa intendi con sporco? lol, ma allora secondo questa equazione un programma come internet explorer ha bisogno di 1000 litri di candeggina, vista l'ampia gamma di "falle" via via dimostrate.
Se il codice è "pulito" puoi correggere bug gravi con poco sforzo.
Se il codice è una porcheria e devi correggere una banalità, prepara una confezione di aspirine per il mal di testa :D

NemesisQ3A
29-07-2005, 14:02
Se il codice è "pulito" puoi correggere bug gravi con poco sforzo.
Se il codice è una porcheria e devi correggere una banalità, prepara una confezione di aspirine per il mal di testa :D
Bè se per pulizia intendiamo "la capacità con cui è stato elaborato il sorgente inclusi commenti e rientri" allora possiamo eprimerci solamente sul lavoro di Torvalds, visto che credo nessuno di noi ha mai visto un sorgente microsoft... oppure si? Se qualcuno ne ha visto mai uno, anche vecchio lo reputa "pulito"? :rolleyes:

ilsensine
29-07-2005, 14:05
Bè se per pulizia intendiamo "la capacità con cui è stato elaborato il sorgente inclusi commenti e rientri" allora possiamo eprimerci solamente sul lavoro di Torvalds, visto che credo nessuno di noi ha mai visto un sorgente microsoft... oppure si? Se qualcuno ne ha visto mai uno, anche vecchio lo reputa "pulito"? :rolleyes:
Mah quelli che hanno "spulciato illegalmente" tra i vecchi codici "leaked" della Microsoft (non fate questa cosa, neanche per curiosità), non hanno detto che era scritto male...altro non so dire...

NemesisQ3A
29-07-2005, 14:08
Bene, allora vuol dire che non possiamo intraprendere un'analisi della pulizia del codice... quindi riporterei l'attenzione sulle funzionalità/velocità/stabiltà del sistema ;)

friwer
29-07-2005, 16:06
cosa c'entra MS e il suo codice sorgente? :D
io mi riferivo al mondo *NIX, + precisamente all'opensource *NIX...e al modo di apportare modifiche al codice

eclissi83
29-07-2005, 22:23
vi riporto l'esperienza di un amico che usa sia linux che freebsd ed è anche un discreto programmatore. Questo mio amico afferma che il codice del kernel di freebsd sembra scritto da alieni (nel senso buono), mentre quello linux è più confuso. infatti, ha scritto una patch per un driver realtek (mi sembra) solo per freebsd perchè non sapeva dove mettere mano per capire come funzionava l'interfaccia al kernel linux...

per quello che riguarda le mie impressioni devo dire che i sistemi bsd sono ottimi, soprattutto freebsd. attualmente continuo a privilegiare i sistemi gnu/linux, mi piacciono di più...

SilverXXX
29-07-2005, 23:17
Da quel po che so di teoria, in generale un microkernel viene considerato migliore rispetto a un macrokernel, ma spiegarne gli effetti approfonditamente richiede tempo e conoscenze informatiche avanzate (anche le mie non sono molto avanzate, e non penso di aver afferrato bene il tutto :( ).
Cmq prima dei problemi del kernel ne vengono altri di ben maggiori dal punto di vista generale del so (e che probabilmente sono irrisolvibili)

photoneit
29-07-2005, 23:23
Aldila' delle considerazioni puramente tecniche nel privilegiare un SO o l'altro, e qui non
ho molto da dire, c'è poi l'aspetto idealistico per il quale condividendo in pieno la GPL
userei Linux anche se fosse una carriola senza ruota :O
Ho detto la mia
buona notte :O

dobro
29-07-2005, 23:39
c'è poi l'aspetto idealistico per il quale condividendo in pieno la GPL
userei Linux anche se fosse una carriola senza ruota :O
Ho detto la mia
buona notte :O

sicuramente ... sono un niubbo e una delle cose che mi ha affascianto maggiormente fin da subito del mondo GNU/linux è tutto il movimento che c'è intorno ... la comunità ,la filosofia di fondo .... sono cose che secondo me vanno anche oltre l'informatica ... :)

jappilas
30-07-2005, 00:16
c'è poi l'aspetto idealistico per il quale condividendo in pieno la GPL
userei Linux anche se fosse una carriola senza ruota :O
Ho detto la mia
buona notte :O
giusto per la cronaca, anche Reactos e Syllable (per citarne alcuni) sono sotto licenza gpl... ;)
in generale un microkernel viene considerato migliore rispetto a un macrokernel, ma spiegarne gli effetti approfonditamente richiede tempo e conoscenze informatiche avanzate (anche le mie non sono molto avanzate, e non penso di aver afferrato bene il tutto ).
non è poi così complesso... per farsi un' idea , considera "cosa" fa un kernel al livello più interno (corrispondente al tipo di astrazioni implementate da un microkernel puro): process scheduling, gestione di interrupt e i/o di basso livello, a volte anche la gestione del paging in memoria virtuale non rientra nel kernel: affidare compiti a sottosistemi esterni rende il sistema nel complesso da un lato più robusto (in teoria essi possono essere arrestati e/o riavviati a runtime e un eventuale crash di un servizio ha effetti meno dannosi) dall' altro più complesso (lo scambio di dati tra i sosttosistemi, che diventano equivalenti a tanti "server", in esecuzione concorrente, richiede un sistema di IPC e il suo uso estensivo) e un po' meno performante (aumenta l' incidenza dei context switch e dell' overhead da interprocess communication)
per ovviare a quest' ultimo effetto, è emersa la tendenza verso kernel ibridi ( incentrati su un microkernel, a cui un certo numero di componenti - filesystem, networking, ... - vanno a "far compagnia" in kernel space, ma che non per questo possono dirsi monolitici, in quanto tra le parti persiste la separazione logica ) : NT 4+, il kernel di BeOS, quello di OS X (xnu), in questo senso sono degli ibridi ...
e quelli della famiglia L4 (Hazelnut e Pistachio) dell' università di Dresda, gli ultimi microkernel puri ...lo stiamo sopravvalutando ignorando valide alternative?

almeno fino a poco tempo fa, ne ero convinto anch'io ....

NemesisQ3A
30-07-2005, 00:50
almeno fino a poco tempo fa, ne ero convinto anch'io ....

cosa ti ha fatto cambiare idea?

SilverXXX
30-07-2005, 06:55
@ jappilas: detto in due parole è così, ma si sta semplificando molto. Ma rende l'idea :D

Magari prima o poi farrano uscire anche hurd..... :rolleyes:

Gica78R
30-07-2005, 10:36
Da una discussione sul forum di ioprogrammo:

http://forum.ioprogrammo.it/thread.php?threadid=6199&boardid=31&styleid=1&sid=a8d180ecc0dcb1ef91a0ef9d1b747032

quoto un post abbastanza interessante in merito alla qualita' dei S.O e alle differenze di prestazioni ed affidabilita' tra microkernel e kernel monolitico...

Osservazione

Esisteranno sicuramente tantissime altre persone molto più capaci di produrre S.O. più efficienti, stabili e sicuri di Linux. Purtroppo, se non ce lo fanno sapere loro, difficilmente potremo saperlo noi...

Risposta


Fortunatamente alcuni di noi sono nella condizione di saperlo. Esistono sistemi commerciali enormemente migliori di linux, sia dal punto di vista architetturale che prestazionale, come esistono eccellenti microkernel che non hanno vita propria a livello commerciale ma sono embedded in hardware decisamente esotico, con prestazioni ed affidabilità sbalorditive, secondo metriche sperimentali assolute e ripetibili.

La differenza, semmai, è tra lavorare nell'ombra facendo il proprio dovere in silenzio, con molto coscenzioso understatement, capacità di stare al proprio posto e profondo rispetto per l'organizzazione nella quale si opera, oppure cercare la fama, il palcoscenico ed i riflettori "just for fun" e con incessanti richiami alle viscere ed al "sociale". In fondo succede anche in altri settori, per esempio ci sono medici e missionari che stanno sempre in TV, altri che stanno solo in prima linea da decenni nei posti più osceni, senza che abbiate mai visto neppure una loro fotografia. Questo però non implica che i primi siano più bravi degli altri, o viceversa.

A qualcuno piace fare la primadonna, ad altri no, ma questo non consente di trarre deduzioni fondate sulle competenze individuali, soprattutto nel variegato mondo dei practitioners. Ovviamente l'informatico che troverà una dimostrazione di P=NP o anche solo della congettura di Sophie Germain per velocizzare PRIMES-AKS avrà - volente o nolente, purché pubblichi - fama imperitura ed un posto garantito nei libri di storia, ma qui voliamo molto più bassi e parliamo semplicemente di gente che scrive dei programmi per l'hic et nunc. Programmi e sistemi che tra vent'anni saranno presumibilmente polvere sulle copertine dei libri di storia industriale, contrariamente alle faticosissime ma durature conquiste concettuali di Knuth, Turing o Chaitin.

E' sufficiente comunque essere a conoscenza di due nudi fatti, assoluti e definitivi, per evitare macroscopici errori di giudizio:

1) Centrali nucleari ed energetiche in genere, impianti petrolchimici, sistemi di controllo del traffico aereo, satellitare, navale, missioni spaziali manned ed unmanned, automotive, sistemi d'arma... sono tutti affidati unicamente a sistemi microkernel hard realtime, non certo a linux. Conviene domandarsi seriamente il perché di questo dato di fatto oggettivo ed incontrovertibile.

2) QNX è IL microkernel commerciale di riferimento, nato nel 1981, circa 4 anni prima che alla Carnegie Mellon si mettesero a raccogliere il sapere dell'epoca in Mach. QNX Neutrino ha prestazioni, predicibilità, stabilità ed affidabilità in grado di polverizzare all'istante qualsiasi incarnazione di linux: documentarsi e misurare per credere. Neutrino ha un footprint di 64 kiB, per la cronaca, e scala dal singolo processore al grid di cluster senza cambiare una virgola. E' totalmente Posix-compliant, ed in soldoni può fare anche tutto ciò che fa un normale unix server o desktop, annoiandosi peraltro parecchio nelle pause.

Questo chiude definitivamente la questione. La qualità assoluta di un SO non si misura certo con la sua diffusione o con l'aura di santità popolarmente attribuita al patron del progetto.

Milioni di persone mangiano ogni giorno nei fastfood e negli autogrill, ma questo non implica che vi si servano cibi raffinatissimi o di qualità eccelsa. D'altro canto, la FIAT vende milioni di automobili all'anno, la Ferrari solo poche decine. Qualcuno si sente di sostenere che la qualità motoristica, telaistica, prestazionale e di affidabilità della prima Casa automobilistica sia proporzionalmente maggiore rispetto a quella della seconda, anche solo limitandosi al rapporto prezzo/prestazioni ?

QNX è la Ferrari dei SO, e VMS la Rolls Royce: poi ci sono anche bolidi a ruote scoperte, volendo. Chi desidera un bel maggiolone per poterselo taroccare a piacimento, montare il doppio tubo cromato sovradimensionato sul finale della marmitta e appiccicare su retro la scritta iridescente "turbo", si accomodi pure dal più vicino concessionario di casa Wolkswagen/Torvalds. In fondo, sarà sempre meglio della Duna Panorama full optional offerta da FIAT/Microsoft.

Come giustamente sottolinei, caro John, quella tra i SO più alla moda è solo una guerra tra poveri, su una architettura povera e raffazzonata come x86. Oggettivamente non è difficile produrre un qualsiasi accrocco migliore dei SO microsoft, essendo la casa di Redmond un campione assoluto di cialtroneria e mancanza di qualità. Ma la qualità assoluta è un'altra cosa, ed esistono delle metriche ingegneristiche assai precise in merito. Metriche e metodologie che si studiano su libri di carta, acquistabili in qualsiasi libreria e consultabili nelle pubbliche biblioteche di tutto l'Occidente civilizzato e di parecchie ex-colonie africane ed asiatiche, non negli howto.

Questa visione sbilanciata ed erronea della qualità, del progresso e del software engineering è uno dei grandiosi risultati a cui porta la confusione velleitaria tra la "conoscenza" di un banale PC e di un mucchietto di sorgenti, e la Conoscenza informatica in senso lato. Così si crea solo disordine e confusione inseminando false certezze, non si aiuta certo il "progresso".
"Things can be stated simply, but no simpler than that", diceva un signore ebreo nato ad Ulm che non ha mai scritto una riga di C in vita sua, ma ha cambiato la storia della scienza e dell'umanità scrivendo qualche libro letto da pochissimi, pieno di formule purtroppo incomprensibili alle massaie di Voghera come anche alla stragrande maggioranza degli "hacker" o presunti tali.

ilsensine
30-07-2005, 13:51
Fortunatamente alcuni di noi sono nella condizione di saperlo. Esistono sistemi commerciali enormemente migliori di linux, sia dal punto di vista architetturale che prestazionale, come esistono eccellenti microkernel che non hanno vita propria a livello commerciale ma sono embedded in hardware decisamente esotico, con prestazioni ed affidabilità sbalorditive, secondo metriche sperimentali assolute e ripetibili.

Quell'intervento omette (scientemente o meno) un banalissimo dettaglio fondamentale: linux è un sistema operativo general purpose!!! _Certo_ che ci sono campi dove i sistemi hard realtime sono da preferire (e ti garantisco che molti sistemi commerciali spacciati per "hard realtime" non lo sono); ma sono essi in grado di girare da dispositivi piccoli come pacchetti di sigarette a bestie grandi come una stanza? Su "n" architetture diverse, per "n" grande? In maniera pressocché _identica_?

Il fatto che linux, oltre ad avere una scalabilità senza pari (sia verso l'alto sia verso il _basso_), comincia a farsi largo anche in situazioni reltime, a quanto pare alcuni non riescono ad accettarlo. _Non_è_ un s/o hard realtime, ma in quante situazioni è richiesto un "realtime" rigido come quello richiesto in una centrale nucleare?
Esistono soluzioni basate su linux, volte al mondo realtime (non è il linux che vi scaricate da kernel.org), che in _molte_ situazioni vanno bene e non fanno rimpiangere _affatto_ altre soluzioni; in più, linux contiene al suo interno una _enorme_ mole di driver, in grado di adattarsi a tipologie _vastissime_ di hw. Tutto lì, a vostra disposizione; potete usarlo così com'è o modificarlo se vi piace.
E no, linux fa "pena" perché sul taldeitali hw "decisamente esotico", che deve pilotare un missile o una centrale nucleare, il sistema operativo xyz gli da una pista. Bel confronto, complimenti.

E non raccolgo le infelici allusioni sul fatto che chi lavora per linux lo fa per farsi bello con gli altri e avere fama.

QNX è la Ferrari dei SO
http://punto-informatico.it/p.asp?i=49110&r=PI :cool:

jappilas
30-07-2005, 13:54
cosa ti ha fatto cambiare idea?
più che cambiare idea, mi sono rassegnato alla prospettiva che le valide alternative (o soluzioni specifiche per ambiti alternativi, cioè diversi, rispetto al classico server), se esistono, scompariranno , con le loro peculiarità degne di nota tutt' al più assimilate dal pinguino... :fagiano:

Gica78R
30-07-2005, 17:27
http://punto-informatico.it/p.asp?i=49110&r=PI :cool:
Avevo sentito una cosa simile, ma riguardava la Sauber:
http://www.supercomputingonline.com/print.php?sid=7695

Cmq ho riportato il pensiero dell'utente del succitato forum perche' lo ritenevo pertinente al tema kernel-monolitico -- microkernel che si stava discutendo qui, e perche' il tizio che ha detto quelle cose mi sembrava abbastanza preparato in materia... Questo non vuol dire che condivido quanto ha espresso :)

Gica

SilverXXX
30-07-2005, 17:35
Ricordarsi cmq che una licenza qnx per scopo commerciale sono quei 4000 euro....

ilsensine
30-07-2005, 17:38
Avevo sentito una cosa simile, ma riguardava la Sauber:
http://www.supercomputingonline.com/print.php?sid=7695
Oh non lo sapevo :D
Comunque la mia era solo una "controbattuta" alla sua battuta su QNX e Ferrari ;)

Cmq ho riportato il pensiero dell'utente del succitato forum perche' lo ritenevo pertinente al tema kernel-monolitico -- microkernel che si stava discutendo qui, e perche' il tizio che ha detto quelle cose mi sembrava abbastanza preparato in materia...
mmm non saprei. Quel ragazzo alludeva esplicitamente ai sistemi realtime, che "tecnicamente" possono essere sia micro che macrokernel, sia "cold iron"...

nb se qualcuno è interessato all'argomento, che io seguo come "osservatore esterno", legga questa discussione:
http://marc.theaimsgroup.com/?l=linux-kernel&m=111819790919644&w=2

cdimauro
01-08-2005, 11:18
Bè se per pulizia intendiamo "la capacità con cui è stato elaborato il sorgente inclusi commenti e rientri" allora possiamo eprimerci solamente sul lavoro di Torvalds, visto che credo nessuno di noi ha mai visto un sorgente microsoft... oppure si? Se qualcuno ne ha visto mai uno, anche vecchio lo reputa "pulito"? :rolleyes:
Ho visto soltanto un sorgente di una parte di Windows 2000: posso dirti che il codice era molto "pulito e ordinato", con uno stile ben definito / omogeneo, e parecchi commenti.

Gica78R
01-08-2005, 18:35
Una domandina lievemente off topic, ma non troppo (sempre di kernel si parla :) ): ho scaricato il kernel Linux versione 1.0, tanto per vedere come e' fatto dentro, ma non trovo la funzione main() :eek: Sapreste dirmi in quale file la posso trovare? O non c'e' proprio? (ho cercato pure con grep) :(
Se non dovesse esserci, la cosa non andrebbe contro la "legge fondamentale di nostro signore il linguaggio C", o sbaglio? :confused:

Grazie

ilsensine
01-08-2005, 20:06
ho scaricato il kernel Linux versione 1.0, tanto per vedere come e' fatto dentro, ma non trovo la funzione main() :eek:
LOL :D

Se guardi bene, non ci sono neanche malloc e printf :D

Gica78R
01-08-2005, 21:21
LOL :D

Se guardi bene, non ci sono neanche malloc e printf :D
:sob: :eh:

digieffe
03-08-2005, 15:30
lieve OT (forse)
grazie a GNU/Linux e comunque all'opensource (si nota che sto diventanto un pò fanatico :D ) sto studiando un pò di SO.

Paragonando i kernel Mach+Hurd e Linux mi è sorto un dubbio:
posto che il microkernel Mach provvede all'esecuzione dei serventi (kernel) Hurd, quindi questi ultimi sono interrompibili in esecuzione ossia sono in multi threading tra di loro e di conseguenza possono essere eseguiti su cpu/core differenti contemporaneamente ......
Il "mega" monolitico Linux (eventualmente nella versione smp) viene eseguito da un sola cpu/core provvedendo che le ulteriori cpu/core eseguano solo applicativi o può essere esso stesso eseguito da più core contemporaneamente :confused:

ciao

ilsensine
03-08-2005, 15:47
Il "mega" monolitico Linux (eventualmente nella versione smp) viene eseguito da un sola cpu/core provvedendo che le ulteriori cpu/core eseguano solo applicativi o può essere esso stesso eseguito da più core contemporaneamente :confused:

Il kernel di per se non è un processo in esecuzione. E' una sorta di grossa libreria, che è lì a servire le richieste dei programmi (tramite le syscall) e a gestire gli irq. Per svolgere il suo lavoro si avvale dell'ausilio di altri task, i kernel thread, che puoi pensare simili ai processi utente (in esecuzione esclusivamente in ring0), anche se in realtà hanno qualche differenza.
Ovviamente i processi utente e i kernel thread possono bilanciarsi tra più processori/core (e anche "migrare" tra essi, in funzione del carico). Anche la gestione degli irq viene bilanciata tra più processori.

digieffe
03-08-2005, 21:17
ok, siamo alle solite (chiedo sempre info su link ecc. :( )

Ho cercato su google, nel forum ed hem..... preso in prestito alcuni ebook ;) , ma.....

ma non ho trovato in nessuno di questi uno modo rapido per capire (intuire) la struttura del kernel di linux :cry:

in genere siamo sulle diverse centinaia di pagine...... io non devo fare mica lo sviluppatore di kernel (hacker) !!!

vorrei semplicemente capirne in modo sommario il funzionamento: diciamo una trentina di pagine ricche di schemi con descrizioni ??? solo per capire quali sono gli elementi (sched, ipc, vmm, vfs, net; userspace, kernelspace, paging, cache, buffercache, sharedmemory ....) e quali relazioni ci sono tra gli stessi. Diciamo "Kernel For Dummies" :fagiano: ammesso che non esista sul serio.

Da evidenziare che non conosco assolutamente la documentazione delle distribuzioni.

grazie

ilsensine
04-08-2005, 07:51
Qualche tempo fa, qualcuno ha fatto una descrizione del kernel linux tramite UML:
http://marc.theaimsgroup.com/?l=linux-kernel&m=111879581805378&w=2
Non ho letto questa documentazione in quanto richiede un plugin proprietario; forse può tornarti utile.

digieffe
04-08-2005, 19:44
ti ringrazio per la segnalazione :) .

l'unica cosa che serve per vederlo è un plug-in adobe per la grafica vettoriale nel browser.

Gli ho dato una buona occhiata............ va ben oltre queli che sono i miei obiettivi......... ma mi sento di consigliarlo vivamente a chi avesse intenzione di sviluppare software attinente il kernel ;) ....... ricorda vagamente strumenti C.A.S.E di reverse engeneering fornendo un sistema di navigazione nel codice con il quale è molto facile orientarsi pur avendo poche conoscenze......... :eek:

Tanner
25-08-2005, 16:10
Rimane il fatto che ancora oggi si deve capire se microkernel sia meglio o meno del monolitico. Qualcuno ancora ride in faccia a chi propone nuovi kernel micro con api in c++ (uno di questi è lo stesso Torvalds), peccato però che ci siano degli esempi di OS micro talmente ben fatti da far impallidire Linux.

Ora, o è questione di tempo, o di mercato.
Forse il problema più grosso sarà far migrare tutto il software ormai già disponibile per Linux su un'altro OS.

Nel frattempo, vi invito a leggere i topic su QNX, e BeOS -> Haiku. (quest'ultimo il mio pupillo, orientato al desktop e con ottime capacità di home office, videogaming, netsurfing)

digieffe
25-08-2005, 17:19
Rimane il fatto che ancora oggi si deve capire se microkernel sia meglio o meno del monolitico. Qualcuno ancora ride in faccia a chi propone nuovi kernel micro con api in c++ (uno di questi è lo stesso Torvalds), peccato però che ci siano degli esempi di OS micro talmente ben fatti da far impallidire Linux.

Ora, o è questione di tempo, o di mercato.
Forse il problema più grosso sarà far migrare tutto il software ormai già disponibile per Linux su un'altro OS.

Nel frattempo, vi invito a leggere i topic su QNX, e BeOS -> Haiku. (quest'ultimo il mio pupillo, orientato al desktop e con ottime capacità di home office, videogaming, netsurfing)
Dopo aver un pò approfondito l'argomento ho tratto le seguenti (semplici) deduzioni generiche:

Filosofiche:
- I kernel monolitici sono peggiori da quasi tutti i punti di vista rispetto ai microkernel.

Pratiche:
- Dato che nell'implementazione del kernel monolitico di linux si ricorre a tutta una serie di tecniche evolute non si rileva tanta differenza.
- Dato che per problemi di complessità nei microkernel vengono utilizzate tutta una serie di tecniche di involuzione non si rielva tanta differenza.

Più semplicemente Linux è ha tecnologia vecchia e matura ma evoluta al massimo, gli attuali microkernel hanno una tecnologia moderna ma non perfettamente matura e per questo motivo non sono sfruttati al massimo.
Poi ci sono i problemi architetturali dell'x86 che impiega non poco tempo a fare cambio di ring (questo penalizza i Microkernel)

Nella mia semplicità (ignoranza) spero di essere stato chiaro

ciao :)

Gica78R
25-08-2005, 18:51
Dopo aver un pò approfondito l'argomento ho tratto le seguenti (semplici) deduzioni generiche:

Filosofiche:
- I kernel monolitici sono peggiori da quasi tutti i punti di vista rispetto ai microkernel.

Pratiche:
- Dato che nell'implementazione del kernel monolitico di linux si ricorre a tutta una serie di tecniche evolute non si rileva tanta differenza.
- Dato che per problemi di complessità nei microkernel vengono utilizzate tutta una serie di tecniche di involuzione non si rielva tanta differenza.

Più semplicemente Linux è ha tecnologia vecchia e matura ma evoluta al massimo, gli attuali microkernel hanno una tecnologia moderna ma non perfettamente matura e per questo motivo non sono sfruttati al massimo.
Poi ci sono i problemi architetturali dell'x86 che impiega non poco tempo a fare cambio di ring (questo penalizza i Microkernel)

Nella mia semplicità (ignoranza) spero di essere stato chiaro

ciao :)
Ciao!

Siccome la cosa mi interessa parecchio, e il mio libro di Sistemi Operativi dell' universita' lascia molto a desiderare, mi suggeriresti un po' di materiale su cui studiare? Gia' quello che hai avuto modo di leggere tu dovrebbe bastarmi... (e anche avanzare :D ).

Grazie :)

digieffe
25-08-2005, 21:34
Ciao!

Siccome la cosa mi interessa parecchio, e il mio libro di Sistemi Operativi dell' universita' lascia molto a desiderare, mi suggeriresti un po' di materiale su cui studiare? Gia' quello che hai avuto modo di leggere tu dovrebbe bastarmi... (e anche avanzare :D ).

Grazie :)Ciao
Allora tutto ciò che ho imparato lo fatto tramite internet......
un pdf di qua una guida di la ............. non saprei ritrovare le fonti (anche perchè ho accumulato un pò di materiale)
ora li ho raccolti in una cartella (piu o meno ordinata) ma ammesso che ti seleziono il materiale come te lo invio?
Hai una email di medie dimensioni? mi mandi l'indirizzo in privato?

Se ti serve ho raccolto anche materiale sui virtualizzatori di sistema operativo.

Attendo. Ciao :)