Indice Guide: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
Riga 1: Riga 1:
==Contatti==
{{stub}}
== Introduzione ==
Le patch ''Con Kolivas'' (<tt>CK</tt>) per il [[kernel]] di linux sono una serie di patch che incrementano notevolmente le prestazioni desktop implementando uno scheduler innovativo (''staircase''), ottimizzando l'uso dello swap (''swap-prefetching'') e del sotto-sistema disco, e aggiungendo dei nuovi livelli di priorit� al di fuori di quelli tradizionalmente impostabili con <code>nice</code>.


: Antonio (The_Noise) Ingargiola
Con queste patch si ottiene un sistema desktop estremamente resposivo ed ottimizzato per l'uso interattivo.
: Indirizzo email: debian at fastwebnet dot it
: Indirizzo jabber: the_noise@jabber.linux.it


== Guide sul wiki ==
Se vi siete chiesti come mai Gentoo o Archlinux sono cos� veloci su desktop la risposta st� principalmente nell'inclusione delle patch <tt>CK</tt> nei loro kernel di default.
* http://guide.debianizzati.org/images/swirl.png [[Guida a Grub]]
* [[Usare Fotocamere Digitali]]
* [[Antispam in Evolution con Bogofilter]]
* [[Installare i driver eagle-adsl]]
* [[Modem adsl Telindus ND220]]
* [[Bash tips]]
* [[Debian Kernel Howto]]
* [[Note sull'installazione di Debian]]
* [[Esempio configurazione kernel]]
* [[Low-latency 2.6 kernel per applicazioni audio realtime]]
* [[Udev e Debian]] ''in collaborazione con [[Utente:Tindal|Tindal]]''
* [[Script: Confronto Configurazioni Kernel]]
* [[Damn Small Linux su chiavetta usb]]
* [[Gestire gli HD: stato di salute, badblocks e ripristino dati]]
* [[Gimp: rendere un logo trasparente]]
* [[Ekiga: installazione e configurazione]]
* [[Patch Con Kolivas: incrementare le prestazioni desktop]]


== Altri contributi minori ==
== Descrizione della patch ==
* [[Condividere la connessione a internet]]
* [[Colorare bash]]


== Pagine create come centri di raccolta collaborativa di informazioni ==
=== Staicase Scheduler ===
* [[Installare i driver eci-adsl]]
* [[Installare i driver unicorn (BeWAN)]]
* [[Modem adsl Aethra Starmodem]]


== Progetti di traduzione collaborativa ==
Le patch <tt>ck</tt> includono l'innovativo ''staircase scheduler''. Questo � uno schedule con una logica e una implementazione pi� semplice di quello usato attualmente nel kernel linux (''ingo scheduler'') che si presta ottimamente all'uso interattivo, senza penalizzare le prestazioni server. Attualmente � in discussione la possibile sostituzione dello scheduler di linux con lo staircase.
* [[Pagina di manuale di module-assistant]]


== Dove ho messo il naso? ==
Le uniche perplessit� sembrano essere sul fatto se lo ''staircase scheduler'' abbia prestazioni uguali allo scheduler attuale su sistemi multiprocessori (sui quali lo scheduler attuale � altamente ottimizzato).
* [[Speciale:Contributions/TheNoise|Lista modifiche su wiki]]


=== Swap prefetching ===
Altra patch inclusa la cos detta ''swap prefetching''. In pratica questa patch ottimizza l'uso dello swap precaricando delle pagine non appena della ram risulta disponibile (non quando le pagie sono richieste come sul [[kernel vanilla]]), e questo velocizza notevolmente il passaggio tra le grosse applicazioni se ad esempio se ne chiude una. Inoltre vengono tenute in swap anche pagine caricate in ram in modo da rendere immediato un successivo swap-out.


== Miei Link ==
Con questa patch l'utilizzo apparente dello swap sar� maggiore ma in realt� questo � dovuto alle ottimizzazioni fatte per incrementare di prestazioni.
=== Elettronica ===
* [http://qucs.sourceforge.net/index.html Quit Universal Circuit Simulator]
* [http://www.lis.inpg.fr/realise_au_lis/kicad/ Kicad]
* [http://www.geda.seul.org/ gEDA]
* [http://opencircuitdesign.com/ Open Circuit Design]
==== Microcontrollori ====
* [http://linuxgazette.net/issue79/sebastian.html Getting started with PIC 16F84 on GNU/Linux]
* [http://www.linuxfocus.org/Italiano/November2004/article352.shtml Programmazione dei microcontollori AVR con GCC, libc 1.0.4]
* [http://www.rentron.com/Myke4.htm Build Your Own Programmer for the PICMicro with the "ELCheapo"]
* [http://www.captain.at/electronic-index.php Captain Universe - Electronics]
* [http://www.avrfreaks.com/ www.avrfreaks.com]
* [http://www.bobblick.com/techref/projects/picprog/picprog.html Classic PIC Programmer]
* [http://ouwehand.net/~peter/lcd/lcd.shtml How to control a HD44780-based Character-LCD]


=== Nuove priorit: SCHED_ISO, SCHED_IDLE ===
Normalmente i processi in linux hanno priorit SCHED_NORMAL. I processi di questa classe possono avere un [[nice]] da 99 a -20 che indica la loro priorit all'interno della classe SCHED_NORMAL. Su linux sono presenti altre due classi di priorit:


=== Linux Audio ===
; SCHED_NORMAL: questa �, se non diversamente specificato, priorit� dei processi in linux. I processi di questa classe possono avere un [[nice]] da 99 (''minima'') a -20 (''massima'') che indica la loro priorit� all'interno della classe SCHED_NORMAL
==== Pagine introduttive ====
* [http://www.emillo.net/audio_midi Il mondo dell'audio e del MIDI in GNU/Linux]
* [http://ccrma.stanford.edu/planetccrma/software/ Planet CCRMA at home]: qui si trova una lista e una breve descrizione dei principali programmi audio per GNU/Linux.
* '''[http://linux-sound.org/ Sound & MIDI Software For Linux]''': La lista in assoluto pi� completa di tutto il software audio & midi per GNU/Linux, mantenuta dal mitico ''Dave Philips''.


==== Guide ====
; SCHED_BATCH : questa priorit� viene usata per processi non interattivi (batch). I processi di questa classe avranno priorit� inferiore a qualsiasi processo SCHED_NORMAL.
* [http://esaracco.free.fr/documentations/linuxaudio/linuxaudio/ How to create music with GNU/Linux]
* [http://www.helgo.net/gavel/linuxmusic/ Mathias Linux Music Page]


==== Sound Processing ====
; SCHED_FIFO: usata per processi realtime. Un processo SCHED_FIFO avr� priorit� superiore ad ogni altro processo (anche SCHED_NORMAL con nice -20). Normalmente processi con tali privileggi possono essere lanciati solo da root a meno di non usare [[Low-latency_2.6_kernel_per_applicazioni_audio_realtime#Modalit.C3.A0_realtime_e_realtime_scheduling|particolari tecniche]] per permettere anche a normali utenti di eseguire applicazioni realtime. I processi all'interno di questa classe possono avere una priorit� da 0 (''minima'') a 99 (''massima'').
* [http://www.crca.ucsd.edu/~msp/techniques/latest/book-html/ Theory and Techniques of Electronic Music]
* [http://www.faqs.org/docs/sp/ Introduction to Sound Processing]


==== Recording & Mastering ====
Le patch <tt>ck</tt> introducono due ulteriori livelli:
* [http://users.sarai.net/~ish/contents.html Audio Recording on Linux]
* [http://www.theprojectstudiohandbook.com/directory.htm The Project Studio Handbook]
* [http://jamin.sourceforge.net/en/tutorial.html Mastering with JAMin and Ardour]
* [http://jamin.sourceforge.net/en/loudness.html Mastering tips: Loudness]


==== Hardware Hacks ====
; SCHED_ISO : questa � la priorit� chiamata ''soft realtime''. Infatti i processi di questa classe avranno priorit� superiore ai processi SCHED_NORMAL ma non sono necessari i privileggi di root per eseguire programmi con questa priorit�. Potremmo impostare ad esempio il nostro player audio preferito su SCHED_ISO, e non importa quanto sia carico il sitema non avremo mai salti nell'audio.
* [http://www.djcj.org/LAU/quicktoots/toots/el-cheapo/ El-Cheapo Howto]
* [http://www.dplay.com/dv/balance/balance.html Balancing Act]


==== Kernel & Drivers ====
; SCHED_IDLE: questa classe di processi viene eseguita solo quando il processore � in IDLE. Potremo lanciare compilazioni di kernel, aggiornamenti di sitema, pesanti cron jobs usando questa priorit� e non noterermo il bench� minimo degrado delle prestazioni durante il nostro utilizzo interattivo.
* [http://people.redhat.com/mingo/realtime-preempt/ Realtime-Preemtion]: Patch per ottenere latenze inferiori al ms in GNU/Linux.
* [http://www.ubuntustudio.com/wiki/index.php/Breezy:Rlimits-Aware_PAM Rlimits-Aware_PAM]: nuovo semplice approccio per consentire agli utenti del gruppo audio di eseguire applicazioni realtime. Basta installare il pacchetto e potrete lanciare jack in modalit� realtime!
* [http://members.optusnet.com.au/ckolivas/kernel/ Kernel patch homepage of Con Kolivas]: homepage delle patch ck. Migliorano la responsivit� del sistema da molti punti di vista. Ad esempio potrete sottoporre il sitema a qualsiasi carico (aggiornamento distribuzione, compilazione kernel...) e non noterete mai nessun rallentamento nell'uso interattivo (questo dando la proirit� SCHED_IDLE ai processi pesanti di sfondo).
* [http://ck.kolivas.org/faqs/audio_hints Con Kolivas Audio Hints]: consigli del famoso kernel hacker per ottimizzare il sistema per scopi audio (soprattutto controller IDE e filesystem).
* [http://alsa.opensrc.org/AlsaOpensrcOrg Alsa Wiki]


==== Programmi Preferiti ====
Quando lanciamo un processo in linux questo sar� automaticamente SCHED_NORMAL. Per lanciare processi con altre classi di priorit� bisogna usare gli <tt>schedtools</tt>. E' presente il seguente repository per debian:
* [http://www.nongnu.org/om-synth/ Om Synth]
* [http://home.jps.net/~musound/whysynth.html WhySynth]
* [http://dssi.sourceforge.net/ DSSI]
* [http://www.ladspa.org/ LADSPA]
* [http://aqualung.sourceforge.net/ Aqualung]
* [http://freewheeling.sourceforge.net/ Freewheeling]
* [http://jackit.sourceforge.net/ Jack Audio Connection Kit]
* [http://ardour.org/ Ardour]
* [http://www.hydrogen-music.org/ Hydrogen]


deb http://users.tpg.com.au/sigm/debian sid main


----
''(anche se indicato per sid anche su etch funziona senza problemi)''
'''Sentiti libero di contribuire e ampliare i contenuto di questo wiki!'''
 
Ecco alcuni esempi:
 
schedtools -D -e apt-get dist-upgrade # aggiornare in modalit� SCHED_IDLE
 
schedtools -I -e xmms                # xmms in modalit� SCHED_ISO
 
schedtools -I $$                      # trasforma la shell corrente in SCHED_ISO
 
Per ulteriori informazioni rimando alla semplice e chiara pagina: <tt>man schedtools</tt>
 
== Installazione ==
 
Le patch <tt>ck</tt> possono essere scaricate da http://www.kernel.org:
 
* http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/
 
e si applicano al primo kernel vanilla stabile di ogni serie. Ad esmpio l'ultimo kernel stabile � attualmente il 2.6.16.4 ma le patch ck si applicano al kernel 2.6.16 in quanto includono anche le patch inserite dal 2.6.16 al 2.16.4. Attualmente l'ultimo patch set ck � il [http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/2.6.16/2.6.16-ck5/ 2.6.16-ck5], ed il file da scaricare e porre in <tt>/usr/src/</tt> � il seguente:
 
* [http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/2.6.16/2.6.16-ck5/patch-2.6.16-cks5.bz2 patch-2.6.16-cks5.bz2]
 
Una volta scompattati i sorgenti del kernel vanilla in <tt>/usr/src/</tt> si possono patchare con:
 
$ cd /usr/src/linux-2.6.XX/
$ bzcat ../patch-2.6.XX-ckY.bz2 | patch -p1
 
Per una questione di ordine conviene rinominare la directory dei sorgenti in modo da ripecchiare la patch usata:
$ cd /usr/src
$ mv linux-2.6.16 linux-2.6.16-ck5
 
E' consigliato usare un file di configurazione per il kernel vanilla e dare oldconfig:
 
$ cd linux-2.6.16-ck5
$ cp /boot/config-2.6.16-vanilla .
$ make oldconfig
 
A meno che non sappiate perfettamente cosa state facendo lasciate tutte le risposte di default alle domande fatte dell'oldconfig.
 
A questo punto � possibile compilare il kenrnel, ovviamente [[Debian Kernel Howto|alla debian-way]]. Usiamo la priorit� pi� bassa possibile, se siamo gi� su un kernel ck:
 
$ schedtools -D -e time fakeroot make-kpkg --append-to-version -desktop \
  --revision 0.1 kernel_image
 
In questo modo la compilazione non interferir� con il normale utlizzo interattivo del computer e avremo anche stampata la durata della compilazione con <code>time</code>.
== Links ==
* [http://members.optusnet.com.au/ckolivas/kernel/ Homepage delle patch Con Kolivas]
* [http://ck.kolivas.org/faqs/walkthrough.txt Quick walthrough on manually patching to -ck for beginners]
 
 
 
 
[[Categoria:Kernel]][[Categoria:Desktop]]