View Full Version : Il kernel è diventato "bloated and huge"
bicchiere
22-09-2009, 19:16
Parola di Linus Torvalds
http://www.h-online.com/open/Linux-Bloated-and-Huge-says-Linus--/news/114289
maurinO_o
22-09-2009, 19:33
tencs for te info.
Pensavo la stessa cosa alcuni giorni fa vedendo il ritorno di col kolivas.
Un kernel gonfio (300 mega di sorgenti) e lento, per far funzionare pochissime periferiche del mio pc.
Un kernele da ripensare nella forma della sua distribuzione.
Bull's eye
23-09-2009, 14:53
alla fine il problema è sempre quello, o un kernel obeso per poter supportare il più svariato hardware out of the box e senza sbattimenti, oppure un kernel slim, ma anche per installare la scheda video deve essere ricompilato e modificato...:D
non ci dobbiamo dimenticare che il kernel linux è un kernel monolitico, a differenza di windows e mac os che sono entrambi ibridi. Per non parlare del kernel di BeOs che è formato da microkernel.
L'unica cosa da poter fare per non far continuare ad appesantire, secondo me, installare un kernel base, con un set ristretto di driver compatibili per tutte l'hw e successivamente la possibilità di integrare, molto semplicemente i driver necessari al nostro sistema. Poco distante da quello che si fa ora in windows con l'installazione dei driver...
perdonatemi se ho scritto delle inesattezze
il kernel di linux mica è monolitico, difatti lo script di avvio esegue sempre il modprobe delle periferiche non incluse...:confused: :confused:
se non erro linux non è ne monolitico ne modulare, è a seconda di come viene compilato.. almeno questi sono i miei ricordi di genkern:mbe:
quello che si deve fare è portare avanti diversi set di kernel, a seconda del tipo di hardware da voler supportare. al momento dell'installazione basta scegliere quello idoneo, una ricompilata e tutto fila. non credo che ad utenti "medi" serva il supporto ad hardware di 15-20 anni fa..
maurinO_o
23-09-2009, 19:24
Il kernel linux è monolitico.
Io separerei lato server/desktop e ci lavorerei in maniera differente (e non chiedetemi come :D ), però le parole di kolivas mi fanno sempre pensare
che si potrebbe avere meglio e di più.
@Bull's eye: quello di un set di base per far funzionare il pc non è male, ma anche avere 60 mega di moduli in /lib non è che sia un gran danno.
Se ne serve uno, viene caricato, se non serve, sta lì.
Non mi piace l'idea di linux/desktop e poi lo stesso kernel è pensato per far funzionare server, cellulari, treni, aerei, macchinetta del caffè ecc.
Comunque, le mie bestemmie più grandi vanno ancora ad xorg :O
Bull's eye
23-09-2009, 20:29
Comunque, le mie bestemmie più grandi vanno ancora ad xorg :O
come non quotare... :cry:
cmq da poco esperto del mondo linux, mi sembra che la maggior parte di perdita di elaborazione è data dai troppi layer software sovrapposti...
bicchiere
25-09-2009, 10:34
Arrivato l'articolo di Hardware Upgrade!
http://www.hwupgrade.it/news/software/il-kernel-linux-ingrassato-troppo_30220.html
zephyr83
25-09-2009, 19:42
bhe adesso nn è che bisogna pensare che il kernel linux faccia schifo! Torvalds cn i suoi soliti modi diplomatici :sofico: ha detto che il kernel si sta ingrassando troppo e si sta facendo la "fine" di windows!
ma nn mi sembra così critica la situazione, inoltre il kernel si può sempre ricompilare. Io vedo linux sempre più su dispositivi embedded o smartphone (andoird, maemo, WebOs, LiMo, e ce ne sn tanti altri).
Se poi ubuntu è più pesante di altre distribuzioni forse la colpa è di ubuntu nn del kernel!
Che si possa sempre fare meglio nn c'è dubbio e la "denuncia" di Torvalds servirà proprio a incentivare a fare meglio!!!
E' normale che se crescono le funzionalità il kernel si ingrandisca...
Era impensabile tenere le stesse dimensioni di 15 anni fa facendo le stesse cose di oggi.
Spero che questo farà ragionare un po' chi ha sempre criticato Windows a priori.
Edit: posto un pezzo dell'intervento di Torvalds ->
Asked if the bloat was acceptable, Torvalds said "No, I'm not saying that. Acceptable and avoidable are two different things. It's unacceptable but it's also probably unavoidable".
In pratica dice che nn è accettabile ma che al tempo stesso è inevitabile.
zephyr83
25-09-2009, 21:14
E' normale che se crescono le funzionalità il kernel si ingrandisca...
Era impensabile tenere le stesse dimensioni di 15 anni fa facendo le stesse cose di oggi.
Spero che questo farà ragionare un po' chi ha sempre criticato Windows a priori.
Edit: posto un pezzo dell'intervento di Torvalds ->
In pratica dice che nn è accettabile ma che al tempo stesso è inevitabile.
nn è che si critica windows a priori cmq sul kernel si può dire poco visto che nessuno (a parte chi ci lavora) può sapere esattamente com'è è fatto e se il codice è ben scritto oppure s potrebbe fare meglio! Però quando tirano fuori un gestore di finestre come quello di Vista che fa solo sprecare ram come puoi nn criticarlo :sofico:
Io cmq cn linux il kernel posso ricompilarlo, cn windows no! :stordita:
nn è che si critica windows a priori cmq sul kernel si può dire poco visto che nessuno (a parte chi ci lavora) può sapere esattamente com'è è fatto e se il codice è ben scritto oppure s potrebbe fare meglio! Però quando tirano fuori un gestore di finestre come quello di Vista che fa solo sprecare ram come puoi nn criticarlo :sofico:
Io cmq cn linux il kernel posso ricompilarlo, cn windows no! :stordita:
Se parli del fatto che venga gestita male con il WDDM 1.0 posso darti ragione, ma il WDDM 1.1 ha introdotto dei miglioramenti in tal senso.
Basta sapere che c'è sempre spazio per migliorare, del resto se hanno rilasciato 30 versioni ufficiali del kernel 2.6 ci sarà un motivo.
vediamo se si aprirà da qua a medio termine una porticina a linux 3
...ma lo vedo lontaaaaaaaano!
zephyr83
25-09-2009, 22:47
Se parli del fatto che venga gestita male con il WDDM 1.0 posso darti ragione, ma il WDDM 1.1 ha introdotto dei miglioramenti in tal senso.
Basta sapere che c'è sempre spazio per migliorare, del resto se hanno rilasciato 30 versioni ufficiali del kernel 2.6 ci sarà un motivo.
infatti cn seve hanno risolto!! ma vista rimane un animale fagocita ram ed è una cosa oggettiva :D inutile stare a difenderlo (come fanno in molti) e a trovare scuse sull'hardware nn adeguato e amenità varie! è normale criticare un sistema operativo se ha dei "problemi". I crash di windows 95 nn erano fantasia! Windows ME è stato una catastrofe e nn è durato niente. Con Vista dopo 7 anni da xp potevano fare meglio, c'è voluto Seven. Internet explorer 6 è durato per anni ed era una schifezza schifezza. nn è che si critica windows e microsoft per partito preso (bhe qualcuno lo fa di sicuro).
Il problema nn è tanto nell'aggiungere cose nuove per supportare il maggior hardware possibile e tante funzioni, ma come si fanno le cose!
Anche se linux sta ingrassando nn mi sembra così grave la situazione, tutt'altro :stordita:
infatti cn seve hanno risolto!! ma vista rimane un animale fagocita ram ed è una cosa oggettiva :D inutile stare a difenderlo (come fanno in molti) e a trovare scuse sull'hardware nn adeguato e amenità varie! è normale criticare un sistema operativo se ha dei "problemi". I crash di windows 95 nn erano fantasia! Windows ME è stato una catastrofe e nn è durato niente. Con Vista dopo 7 anni da xp potevano fare meglio, c'è voluto Seven. Internet explorer 6 è durato per anni ed era una schifezza schifezza. nn è che si critica windows e microsoft per partito preso (bhe qualcuno lo fa di sicuro).
Il problema nn è tanto nell'aggiungere cose nuove per supportare il maggior hardware possibile e tante funzioni, ma come si fanno le cose!
Anche se linux sta ingrassando nn mi sembra così grave la situazione, tutt'altro :stordita:
A parte che porteranno il WDDM 1.1 su Vista, cmq non ho mai avuto problemi con DWM, specialmente con ATi. I drivers nVidia all'uscita di Vista sono stati causa di oltre il 70% dei crash.
Vista ha avuto un parto travagliato, doveva nascere nel 2004 (a 3 anni da XP) ma diversi problemi tecnici e nel team di sviluppo lo hanno fatto posticipare a inizio 2007.
Comunque tornando a parlare del kernel, torvalds mi pare abbia detto che passerà diverso tempo prima di vedere un kernel 2.8...
zephyr83
25-09-2009, 23:13
A parte che porteranno il WDDM 1.1 su Vista, cmq non ho mai avuto problemi con DWM, specialmente con ATi. I drivers nVidia all'uscita di Vista sono stati causa di oltre il 70% dei crash.
Vista ha avuto un parto travagliato, doveva nascere nel 2004 (a 3 anni da XP) ma diversi problemi tecnici e nel team di sviluppo lo hanno fatto posticipare a inizio 2007.
Comunque tornando a parlare del kernel, torvalds mi pare abbia detto che passerà diverso tempo prima di vedere un kernel 2.8...
Cn il WDDM 1.1 ci sn meno pericoli di crash del sistema e si spreca meno memoria
http://www.appuntidigitali.it/4385/windows-7-sara-migliore-di-vista/
Un altro elemento sul quale i programmatori Microsoft hanno posto particolare attenzione è l’occupazione della memoria dovuta all’interfaccia grafica. Windows Vista ha introdotto il Desktop Window Manager (DWM), la componente responsabile del disegno del desktop. Grazie a questa è stato possibile accelerare in hardware la gestione delle finestre dell’interfaccia grafica, funzionalità che ha reso possibili gli effetti di trasparenza e opacità tipiche del tema Windows Aero.
Ciò che tuttavia Windows Vista non può fare è accelerare in hardware il rendering dell’interfaccia grafica delle singole finestre, perché queste il più delle volte sono disegnate attraverso le GDI, API che, come abbiamo visto in precedenza, sono gestite interamente dalla CPU. Quando un’applicazione disegna la propria interfaccia grafica attraverso le GDI, la CPU esegue tutte le operazioni sulla memoria RAM di sistema.
Trattandosi di informazioni che devono essere utilizzate dalla scheda video per il rendering dell’interfaccia, una copia di questi dati viene copiata anche nella memoria video. Il risultato è che per ogni finestra visualizzata sul monitor, Windows Vista ne conserva una copia in memoria RAM ed una copia nella memoria della scheda video, comportando un impatto sull’occupazione complessiva della memoria che può diventare rilevante se il monitor ha una risoluzione elevata e/o se il computer è dotato di più monitor.
La soluzione a questo spreco di memoria è stata implementata in Windows 7 con l’ausilio di un nuovo driver model per le schede video: il Windows Display Driver 1.1 (WDDM 1.1). Rispetto alla versione 1.0 presente in Windows Vista, questo driver model accelera in hardware tutte le più comuni operazioni delle GDI, riuscendo quindi a scrivere direttamente nella memoria della scheda video, senza richiedere la copia delle stesse informazioni nella memoria RAM di sistema.
Alcuni test condotti internamente da Microsoft dimostrano che contrariamente al comportamento che si ottiene con la versione 1.0, il WDDM 1.1 mantiene costante l’occupazione della memoria di sistema all’aumentare del numero di finestre aperte.
E poi c'era chi sosteneva che vista nn sprecava inutilmente RAM!! :fagiano: Puoi avere anche un super kernel ma se poi tiri fuori una cacata del genere che fagocita risorse nn si va da nessuna parte! Linux è solo il kernel e attorno ci puoi mettere quello che vuoi! Windows è "bello e pronto" e ci puoi fare poco, se c'è qualcosa che nn va di "contorno" si da la "colpa" a tutto il sistema operativo!
maurinO_o
26-09-2009, 00:52
@WarDuck: se sei venuto qui a criticare il kernel linux ci può anche stare, se devi parlare delle meraviglie di 7 e WDDCSNDF hai sbagliato sezione.
Ogni volta che viene fuori un "problema" su linux, tutti i fanboy m$ invadono i forum con la punta del pene bagnata.
@zephyr83: complimenti anche a te: non perdi occasioni per fare confronti con vista e nutrire utenti che qui non avrebbero motivo di starci :rolleyes:
zephyr83
26-09-2009, 00:54
@WarDuck: se sei venuto qui a criticare il kernel linux ci può anche stare, se devi parlare delle meraviglie di 7 e WDDCSNDF hai sbagliato sezione.
Ogni volta che viene fuori un "problema" su linux, tutti i fanboy m$ invadono i forum con la punta del pene bagnata.
@zephyr83: complimenti anche a te: non perdi occasioni per fare confronti con vista e nutrire utenti che qui non avrebbero motivo di starci :rolleyes:
eh ma mica l'ho tirato fuori io windows! :fagiano: L'ha tirato fuori Torvalds :stordita:
maurinO_o
26-09-2009, 01:19
eh ma mica l'ho tirato fuori io windows! :fagiano: L'ha tirato fuori Torvalds :stordita:
Da linuxiani possiamo parlare dei problemi di linux nella sezione linux. ¹Torvalds, da programmatore può parlare di tutto, ma non qui :O
¹Perché quella sera invece di sparare minçhi¹²³ non se ne andato a pubbliche mogli? :rolleyes:
Cn il WDDM 1.1 ci sn meno pericoli di crash del sistema e si spreca meno memoria
http://www.appuntidigitali.it/4385/windows-7-sara-migliore-di-vista/
E poi c'era chi sosteneva che vista nn sprecava inutilmente RAM!! :fagiano: Puoi avere anche un super kernel ma se poi tiri fuori una cacata del genere che fagocita risorse nn si va da nessuna parte! Linux è solo il kernel e attorno ci puoi mettere quello che vuoi! Windows è "bello e pronto" e ci puoi fare poco, se c'è qualcosa che nn va di "contorno" si da la "colpa" a tutto il sistema operativo!
Guarda che qui nessuno sta sostenendo il contrario, il WDDM 1.1 è migliore dell'1.0, lo spreco di ram a cui ci si riferisce è quello relativo alla memoria della scheda video, non a quella di sistema.
Ad ogni modo stavamo parlando del kernel... e ho specificato come c'è un motivo tecnico se il kernel di Linux si sta ingrandendo, e la stessa cosa vale con il kernel di Windows che è sempre stato considerato grosso (e c'è un motivo a questo).
@WarDuck: se sei venuto qui a criticare il kernel linux ci può anche stare, se devi parlare delle meraviglie di 7 e WDDCSNDF hai sbagliato sezione.
Ogni volta che viene fuori un "problema" su linux, tutti i fanboy m$ invadono i forum con la punta del pene bagnata.
@zephyr83: complimenti anche a te: non perdi occasioni per fare confronti con vista e nutrire utenti che qui non avrebbero motivo di starci :rolleyes:
Vedi quello che mi fa incazzare è proprio questo, vi considerate una elite e nessuno può criticare nulla, sia mai :rolleyes: .
Evidentemente cmq non hai letto molto bene la mia firma, io uso i due sistemi indistintamente.
Chi ha cominciato a parlare del WDDM non sono certo io :).
Io non sono affatto critico nei riguardi del kernel di Linux, anzi è l'unica cosa che ritengo degna di esistere nei sistemi GNU/Linux :D .
Torvalds ha affermato che il kernel di Linux si sta ingrandendo, cosa inaccettabile ma al tempo stesso inevitabile. Parliamo di questo.
Poi non è detto che sia un male, i kernel monolitici hanno questa caratteristica e tra l'altro sono più efficienti rispetto ad una architettura micro-kernel pura.
D'altro canto i kernel micro hanno altri vantaggi notevoli, l'ingegneria è sempre fatta di compromessi, non esiste qualcosa di migliore in assoluto...
maurinO_o
26-09-2009, 14:17
@WarDuck: Mi pare cosa buona, sana e giusta criticare.
Vedi quello che mi fa incazzare è proprio questo, vi considerate una elite e nessuno può criticare nulla,
Stai sfondando una porta aperta.
Sono 4 mesi che mi lamento in tutti i forum che firefox3 ha tanto di quel cemento che si potrebbe ricostruire ground zero :rolleyes:
jappilas
26-09-2009, 15:49
Torvalds ha affermato che il kernel di Linux si sta ingrandendo, cosa inaccettabile ma al tempo stesso inevitabile. Parliamo di questo.
soprattutto, come in effetti ribadito anche nel thread in News, si sta ingrandendo per quanto riguarda il numero di righe di codice della code base, non dell' immagine del kernel caricata in memoria (quello è possibile, ma dipende da molti altri fattori al di là del discorso in questione) -
soprattutto, il finnico ammette come tale aumento, conseguenza del voler supportare nativamente quanto più hardware possibile, quante più architetture e piattaforme possibile, e implementare quante più funzionalità possibile, per coprire quanti più casi possibile (dall' embedded al cluster), abbia portato con sè una via via minore qualità del codice (anche visto e considerato quanto stretti siano i tempi tra una release e la successiva e e d' altra parte quanto consistenti siano le modifiche, a volte dedicate a nuove feature che hanno bisogno di più release successive per maturare e stabilizzarsi - vedi CFS ) e, direi, una progressiva perdita di "focus"...
Poi non è detto che sia un male, i kernel monolitici hanno questa caratteristica
non i kernel monolitici tutti...
solo quei sistemi che col tempo perdono di vista l' obiettivo per cui sono nati nel tentativo di fare "tutto" e dominare in qualunque mercato (senza però essere superiori sotto il profilo del design, alle soluzioni specifiche già presenti e dominanti in quel mercato), i cui sviluppatori considerano il "design", la strutturazione, una perdita di tempo (o peggio) e non vogliono prendere in considerazione l' idea di disacoppiare e manutenere separatamente parti invarianti e parti hw dependent del kernel
per dire, i vari BSD ancora impiegano kernel monolitici ancorchè modulari, Solaris un kernel ibrido, eppure in nessun caso ho mai letto allusioni a un eccessivo bloat e a codice scadente e poco manutenibile (eppure freeBSD dovrebbe avere problemi molto più gravi, giacchè la sua code base non si limita al solo kernel - di suo non certo piccolo, visto che alcune piattaforme diverse e un certo numero di periferiche lo supporta anch' esso - ma include i port dell' intera userspace, rilasciata di pari passo)
e tra l'altro sono più efficienti rispetto ad una architettura micro-kernel pura.
mi scuso in anticipo per la mia pignoleria, ma qui occorre mettere un bel DIPENDE...
dipende se si sta valutando il throughput, le latenze delle system call o le latenze delle transazioni client server, o le latenze degli interrupt (per dire, molti microkernel e alcuni kernel ibridi sono completamente preemptable, un kernel monolitico difficilmente è preemptable);
dipende se si sta paragonando un macrokernel generico o ibrido, ben progettato, ad un microkernel inefficiente
dipende dall' implementazione dei meccanismi di ipc (in primis, essendo la cosa più importante per un microkernel, quindi per un paragone - anche perchè un microkernel potrebbe perdere nei confronti di un ipotetico kernel ibrido che pur riducendo i context switch impieghi gli stessi o equivalenti meccanismi di ipc e i/o. ma non perdere contro un kernel monolitico inadeguato...) e degli algoritmi usati nel kernel in genere
poi dipende da "cosa" fa il kernel monolitico per servire una system call (ad esempio se ricevutala non può fare altro finchè non la ha servita accedendo all' hw e restitutndo all' applicazione il risultato voluto, o se piuttosto la converte nella sequenza di operazioni equivalenti, accodate ed eseguite poi -magari in base alla priorità del processo sorgente, da uno o più worker thread interni al kernel ), da quanti livelli logici sono coinvolti, da quanto sono convoluti i code path attraversati...
D'altro canto i kernel micro hanno altri vantaggi notevoli
indubbi vantaggi sono maggiore semplicità, eleganza sia concettuale sia pratica, robustezza e resilienza;
lo svantaggio è una penalità prestazionale (mitigabile e non sempre percepibile, comunque presente per via della necessità di round trip e context switch aggiuntivi) e, lasciando fuori componenti comunque necessarie all' esecuzione dei programmi applicativi e non implementabili come libreria (quali gestione della memoria virtuale, dei device context, dell' IO, del file system con relativi permessi sui file), l' incapacità di supportare i processi applicativi senza una serie di processi ausiliari
è comunque interessante notare che la maggiore eleganza di un microkernel, e il fatto di essere preemptable in partenza, rende più facile costruire un kernel ibrido che a sua volta sia efficiente, reattivo, predisposto per workload real time e magari mantenga alcune caratteristiche del microkernel come la possibilità di paginare parti del kernel stesso (questo è in effetti che si intende quando si dice che "NT è un kernel ibrido basato su un microkernel"), di quanto non lo sia realizzare un microkernel efficiente partendo da un kernel monolitico classico ( giacchè un buon microkernel è frutto di studio approfondito sui singoli aspetti del kernel, non della semplice eliminazione di features da linux - sviluppando un kernel in questo modo è certo poi avere il pretesto per affermare che i microkernel "fanno schifo"...)
l'ingegneria è sempre fatta di compromessi, non esiste qualcosa di migliore in assoluto...
ci sono sistemi che eccellono in una particolare situazione, altri che con impegno di risorse vengono adattati a una varietà di possibili situazioni, altri flessibili abbastanza per operare (senza modifiche, quindi adattandosi) in una varietà di situazioni - e come un certo ex utente del forum ora al lavoro in crytek :D diceva sempre, per ogni lavoro lo strumento più adatto, per ogni situazione il sistema che meglio rende in quella situazione...
ora, linux rientra nella seconda categoria di cui sopra, dal momento che il suo essere general purpose è in effetti fatto di versioni e branch specifici per use case specifici (realizzate grazie alla manodopera inesauribile su cui il kernel può contare come progetto e alla quantità di attori in gioco come mercato ed ecosistema) piuttosto che alla possibilità del sistema di scalare mantenendo però un' unica immagine binaria (cosa che solaris ad esempio, farebbe senza problemi)
il punto è: dovesse in futuro ripiegarsi su sè stesso e, magari in conseguenza delle parole del finnico, sfoltirsi di parti meno vitali (a livello di code base E bacino di contributor) per focalizzarsi su certi use case e non su altri, e (cercare di) privilegiare la qualità del codice a discapito del supporto per certo hw, quanti continuerebbero a seguirlo incondizionatamente e quanti si rivolgerebbero ad altro?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.