View Full Version : Linux kernel Real Time
Emalele1688
28-05-2010, 19:34
Salve a tutti!!
Ho sentito che esiste la possibilità di migliorare l'esecuzione di applicazioni multimediali usando un kernel Real Time....
Chi mi sa spiegare con precisione cosa consiste ciò?? E' davvero un vantaggio??
Io sono patito di programmazione grafica 3D real time, sotto linux(che ormai ho sostituito a Windows) uso OpenGL, e da quello che ho capito sarebbe ottimo per me, e per fare questo genere di cose....
Mister24
28-05-2010, 19:45
Il kernel realtime è il solito linux che viene compilato settando alcune opzioni che cambiano lo scheduler dei processi per rendere il sistema operativo più reattivo.
Non so che distro usi, su mandriva cerca il pacchetto kernel-rt, immagino che anche nelle altre distro ci sia.
kernelex
28-05-2010, 19:52
ti dico quel poco che so :O anzi, no :O
leggi qui:
http://www.archlinux.it/forum/viewtopic.php?id=6592
per esperienza: lo usavo per fare fansub, dove l'audio viene richiamato di continuo fra un timing e l'altro, e le prestazione di quel kernel, sotto questo punto di vista erano notevoli!
su arch, dopo il kernel 2.6.32 non ho più notato differenza, tanto che adesso uso solo quello di default.
3D e relatime? bho! trova un repo e provalo di persona.
Emalele1688
28-05-2010, 20:10
Uso Ubuntu come Distro... In effetti dovrei solo provarla per dirlo, ma noto che su Synaptic l'ultima versione è la 2.6.31.10; Provo ad installarla e vedo come va!!
Ma sfrutta davvero il 100x100 dell'Hardware del proprio PC cosi come dicono???
zephyr83
28-05-2010, 20:14
Per un hard real time se nn sbaglio c'è qualche distro linux studiata ad hoc per questo scopo! I vari "kernel" già pronti di alcune distro solo solo dei "soft" real time
Chiancheri
28-05-2010, 20:54
Salve a tutti!!
Ho sentito che esiste la possibilità di migliorare l'esecuzione di applicazioni multimediali usando un kernel Real Time....
Chi mi sa spiegare con precisione cosa consiste ciò?? E' davvero un vantaggio??
Io sono patito di programmazione grafica 3D real time, sotto linux(che ormai ho sostituito a Windows) uso OpenGL, e da quello che ho capito sarebbe ottimo per me, e per fare questo genere di cose....
prova tu stesso:
sudo apt-get install linux-rt
(oppure cerca kernel-rt su software center)
ti aggiungerà una voce al boot con il kernel rt. potrai decidere tu se e quando avviare ubuntu col kernel rt o con quello standard
Emalele1688
28-05-2010, 21:02
Si esiste Ubuntu Studio da quello che so... Ma a me non serve una distro per usare applicazioni da studio di registrazione o cinematografia .... Alla fine ciò che serve a me e ciò che potrebbe servire anche ad un videogiocatore (in ambiente Linux chiaramente) ...
Vorrei vedere se ce qualcosa per sfruttare al meglio l'Hardware, soprattutto quello video, per fare Rendering 3D Real Time.
Tutti parlano di Mac, Mac qua e Mac la, ma io penso che Linux in termine di prestazioni sia molto più performante di un Mac, e sicuramente molto più di un Winzoz... O mi sbaglio??
Comunque proverò di persona il Kernel Real Time, vedrò in che modo sfrutta il mio Hardware e vi farò sapere.....
Mister24
29-05-2010, 08:40
Ma sfrutta davvero il 100x100 dell'Hardware del proprio PC cosi come dicono???
Questa frase non ha alcun senso, il kernel deve supportare le varie periferiche del PC e metterle a disposizione degli utenti.
La versione realtime semplicemente cambia lo scheduler dei processi.
Detto in modo semplice: linux come tutti gli altri è multithread, lo scheduler si occupa di assegnare il processore ad uno di questi. Ogni quanto cambia? Nel kernel realtime il tempo assegnato ad ogni processo è minore quindi si ottiene una maggiore reattività.
Emalele1688
29-05-2010, 11:38
Capito... Quella frase l'avevo letta su un forum... Comunque l'ho installato, e non l'ho ancora testato perché mi da problemi con il driver video... Appena lo risolvo lancio un'applicazione OpenGL che ho scritto che implementa la fisica con OpenCL e vediamo se i risultati (in termini di FPS) cambiano...
Ma secondo me non è un gran che confrontato con il kernel 2.6.32 generico...
Chiancheri
29-05-2010, 13:27
Capito... Quella frase l'avevo letta su un forum... Comunque l'ho installato, e non l'ho ancora testato perché mi da problemi con il driver video... Appena lo risolvo lancio un'applicazione OpenGL che ho scritto che implementa la fisica con OpenCL e vediamo se i risultati (in termini di FPS) cambiano...
Ma secondo me non è un gran che confrontato con il kernel 2.6.32 generico...
ehm.. ho dimenticato di dirti una cosa.... cioè che non riesco ad usare i driver nvidia closed CONTEMPORANEAMENTE sia sul rt che sul normale. per averli sull'rt disinstallali dal kernel normale e poi installali sul kernel rt (almeno così io avevo risolto tempo fa, ma considera che ho usato il kernel rt, giusto un paio di volte).
cmq se lo testi per bene sono curiosissimo di sapere se ci sono davvero dei guadagni prestazionali nelle applicazioni multimediali (e magari anche sui giochi).
postate qui la vostra opinione sul comportamento del kernel rt
pabloski
29-05-2010, 17:12
Capito... Quella frase l'avevo letta su un forum... Comunque l'ho installato, e non l'ho ancora testato perché mi da problemi con il driver video... Appena lo risolvo lancio un'applicazione OpenGL che ho scritto che implementa la fisica con OpenCL e vediamo se i risultati (in termini di FPS) cambiano...
Ma secondo me non è un gran che confrontato con il kernel 2.6.32 generico...
quella frase è imprecisa ma non falsa....mi spiego....
linux è noto per essere opensource, quindi a codice aperto, per cui se vuoi puoi compilare tutti i programmi da sorgenti ( gentoo fa così )....questo significa che puoi ottimizzare l'intero sistema per il computer su cui girerà, quindi sfrutterà tutte le istruzioni che il processore mette a disposizione, velocizzando l'esecuzione di alcune attività
l'altra questione è relativa agli algoritmi, molto affinati in linux, discreti in altri sistemi mainstream....
tali algoritmi determinano una differenza in termini di efficienza ( cioè quanto tempo di cpu sfrutto per fare cose utili invece che svolgere attività di sistema )....un banale esempio è il context switch ( il passaggio da un processo all'altro in un sistema multitask )....ogni sistema operativo richiede un certo tempo per seguire lo switch e linux è noto per essere migliori degli altri due sistemi mainstream....ci sono OS tipo L4, QNX o Haiku che ridicolizzano anche Linux in questo campo
ad ogni modo linux rispetto a macos e windows si comporta meglio
quindi più efficienza, miglior throughput, sfruttamento integrale dell'ISA del processore....è questo che si intende quando si dice che linux sfrutta al 100% il processore
ovviamente non sarà mai il 100% perchè nessuno sano di mente ricompila tutti i programmi da zero ( ok, voi gentooiani sia superfighi :D ) e nessun algoritmo è perfetto per cui si può sempre migliorare
Emalele1688
29-05-2010, 18:08
Si, ricompilarsi ogni sorgente di ogni programma da zero ottimizzandolo per il proprio sistema sembra un po esagerato, magari si può fare con i programmi più importanti e che l'utente usa di più..
Ho sentito dire che il Kernel Linux stesso può essere ottimizzato per il proprio sistema, ma è una cosa fattibile?? E che conoscenze di programmazione richiederebbe una cosa del genere??
Comunque domani testerò il Kernel Real Time 2.6.31.10 (Ultima versione RT che ho trovato) con alcuni Benchmark (che ancora devo capire quali), un'applicazione OpenGL e qualche videogioco stressante, così da capire se fa al caso mio...
Posterò i risultati ....
pabloski
29-05-2010, 18:28
Ho sentito dire che il Kernel Linux stesso può essere ottimizzato per il proprio sistema, ma è una cosa fattibile?? E che conoscenze di programmazione richiederebbe una cosa del genere??
il kernel in genere è il pezzo di linux più ricompilato in assoluto....
riguardo le conoscenze, è importante conoscere il proprio hardware perchè nella configurazione del kernel puoi aggiungere/togliere driver e componenti importanti che potrebbero impedire l'avvio del sistema
in generale non è una cosa proibitiva e si può guadagnare parecchio se lo si configura a dovere
Comunque domani testerò il Kernel Real Time 2.6.31.10 (Ultima versione RT che ho trovato) con alcuni Benchmark (che ancora devo capire quali), un'applicazione OpenGL e qualche videogioco stressante, così da capire se fa al caso mio...
Posterò i risultati ....
la più completa è questa http://www.phoronix-test-suite.com/
jeremy.83
31-05-2010, 11:47
ehm.. ho dimenticato di dirti una cosa.... cioè che non riesco ad usare i driver nvidia closed CONTEMPORANEAMENTE sia sul rt che sul normale. per averli sull'rt disinstallali dal kernel normale e poi installali sul kernel rt (almeno così io avevo risolto tempo fa, ma considera che ho usato il kernel rt, giusto un paio di volte).
A me i driver nvidia funzionano su entrambi i kernel. Mi sa che nel tuo caso c'era un problema dentro dkms (mi pare si chiami così l'accrocchio per i driver video su più kernel)
All'utente consiglio di usare la versione pacchettizzata della tua distro, in questo caso Ubuntu, che va benissimo, io la uso molto spesso quando mi vien voglia di suonare.
Emalele1688
31-05-2010, 14:11
Devo risolvere un problema con Phoronix test suite per fare un Benchmark completo.. Appena ho tutti i risultati lo posto e dico la mia..
Comunque che cosa è un dkms ??
Si, ricompilarsi ogni sorgente di ogni programma da zero ottimizzandolo per il proprio sistema sembra un po esagerato, magari si può fare con i programmi più importanti e che l'utente usa di più..
vuoi rendere il software più performante?
in ordine di efficienza:
1 - scrivi meglio il codice
2 - ricompila con le ottimizzazioni che - nel tuo caso specifico - rendono meglio.
Ho sentito dire che il Kernel Linux stesso può essere ottimizzato per il proprio sistema, ma è una cosa fattibile?? E che conoscenze di programmazione richiederebbe una cosa del genere??
puoi iniziare ricompilando il kernel. Prima scegli solo quello che ti serve (lo scremi del supporto delle cose che non ti servono), e poi lo ricompili con un po' di ottimizzazioni per il tuo sistema. Se conosci il tuo hardware parti dalla configurazione che hai e difficilmente fai grossi danni.
Quanto sopra per la performance. Ma se vuoi migliorare altre cose (reattività, throughput, ecc ec - dipende da cosa ti serve) devi quasi sicuramente intervenire sugli scheduler. Devi sapere cosa stai facendo.
Con un kernel RT migliori la reattività del sistema (abbassi la latenza) e generalmente il throughput è peggiore di quello ottenibile con uno scheduler "da server".
Se vuoi migliorare la performance di un renderer ricompila con ottimizzazioni.
Se vuoi migliorare i fps quasi sicuramente risolvi cambiando scheda grafica (escludendo problemi di driver e di maturazione degli stessi).
Se vuoi massimizzare il carico di lavoro sul computer metti un kernel NON RT.
Se lavori su audio a livello professionale e devi applicare effetti audio istantaneamente (con una latenza di pochissimi millisecondi) la via maestra è usare un kernel RT.
Se vuoi migliorare la reattività del desktop probabilmente è il caso di andare con qualcosa che gli assomigli.
Se vuoi che le applicazioni si carichino istantaneamente metti il sistema in ram.
Te lo dico perchè mi pare che tu non abbia ben chiaro cosa voglia migliorare....
Emalele1688
02-06-2010, 11:54
A me personalmente interessava solo capire di cosa si trattava il Kernel real-time, e quindi di provarlo perché inizialmente mi sembrava qualcosa che potesse ottimizzare i miei progetti..
Ma provandolo ho notato solo leggeri peggioramenti sulle applicazioni OpenGL (con il Kernel rt 2.6.31) rispetto al generico 2.6.32.
Forse ciò che fa al caso mio è ottimizzarmi il Kernel generico secondo il mio hardware..
Alla fine quello che cerco io è un sistema stabile, affidabile, e che mi sprema l'Hardware al massimo visto che per quest'ultimo spendo molti soldini...
pabloski
02-06-2010, 12:14
A me personalmente interessava solo capire di cosa si trattava il Kernel real-time, e quindi di provarlo perché inizialmente mi sembrava qualcosa che potesse ottimizzare i miei progetti..
Ma provandolo ho notato solo leggeri peggioramenti sulle applicazioni OpenGL (con il Kernel rt 2.6.31) rispetto al generico 2.6.32.
Forse ciò che fa al caso mio è ottimizzarmi il Kernel generico secondo il mio hardware..
Alla fine quello che cerco io è un sistema stabile, affidabile, e che mi sprema l'Hardware al massimo visto che per quest'ultimo spendo molti soldini...
se ti interessa quel tipo di ottimizzazioni dovresti puntare al kernel zen http://zen-kernel.org/
tieni presente che alcune patch zen sono già presenti nei kernel di varie distribuzioni ma ovviamente alcune che potrebbe servirti non ci sono, per cui vale sempre la pena usare qualcuna di quelle patch
Emalele1688
02-06-2010, 16:48
Kernel zen?? non lo conoscevo... ma quanti tipi di Kernel esistono il Linux ?? (Sempre oltre al generic, server e real time)
mccarver
02-06-2010, 17:05
Kernel zen?? non lo conoscevo... ma quanti tipi di Kernel esistono il Linux ?? (Sempre oltre al generic, server e real time)
Uno solo, il kernel Linux appunto. Ma chiunque può prelevarlo, modificarlo a piacimento e distribuirlo, proprio come nel caso di questi kernel "Zen".
Chiancheri
02-06-2010, 17:19
molto interessante questo kernel zen.
2 domande:
1) ho visto sul sito che c'è una versione ottimizzata per schede nvidia... qualcuno l'ha provata!? integra i driver neauveau o quelli closed?
2) dove posso trovare una guida per installarli su ubuntu lucid? c'è qualche deb e/o repository? google mi restituisce guide un pò vecchie e di nuovo non trova molto.. Il progetto è abbastanza attivo?
pabloski
02-06-2010, 17:22
Kernel zen?? non lo conoscevo... ma quanti tipi di Kernel esistono il Linux ?? (Sempre oltre al generic, server e real time)
zen è in realtà un set di patch che introduce scheduler particolari ( tipo il bfs di Kolivas ), driver, dsdt, ecc... tutta roba che non è stata accettata nel main tree
Emalele1688
04-06-2010, 23:09
Ho visto che zen principalmente si tratta di patch per il Kernel, voglio approfondire l'argomento testandolo, sperando solo di trovare una delle nuove versioni del Kernel...
Xemertix
05-06-2010, 01:16
Da quando ho compilato il kernel zen,partendo da una configurazione base kernel seed di gentoo,la sensazione di reattività è percettibilmente aumentata (a parte rallentamenti quando parte della swap è occupata e c'è attivita sull'hd) tanto che non uso più il kernel vanilla;sto aspettando che venga portato lo scheduler BFQ http://groups.google.com/group/zen_kernel/browse_thread/thread/7c19fc133cdb666a# ,attualmente uso il deadline.
C'è qualche differenza per quanto riguarda la reattività tra il kernel-zen e il kernel-rt?
http://www.slacky.eu/forum/viewtopic.php?p=277960
http://www.slacky.eu/forum/viewtopic.php?f=2&t=30453
Ps.se ci fossero tutti i programmi userei Qnx che provai tempo fa su un pentium2 o 3,anche se lo riuscii a far bloccare più o meno :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.