Linux kernel hacking: real-time backup con i kernel tracepoints

I tracepoint (Documentation/trace/tracepoints.txt) sono degli hook “lightweight” che possono essere piazzati in determinati punti nel codice del kernel per registrare l’occorrenza di determinati eventi.

Un tracepoint definisce automaticamente la “probe function” che potrà essere piazzata in punti desiderati all’interno del codice del kernel (instrumentation).

Ogni volta che l’esecuzione passa da tali punti la “probe function” viene invocata e l’infrastruttura di tracing provvede a salvare il contesto dell’evento e le informazioni desiderate all’interno di un tracing buffer. Il tracing buffer sarà poi accessibile dallo userspace tramite il debugfs (/sys/kernel/debug/tracing/trace).

I kernel tracepoint sono utilizzati tipicamente come strumento di debug per tracciare in tempo reale l’occorrenza di particolari eventi, raccogliere statistiche, ecc.

In questo articolo vedremo un utilizzo dei tracepoint un po’ diverso dal solito e sfrutteremo la capacità di tracking in tempo reale e la leggerezza dell’infrastruttura dei tracepoint per realizzare un sistema di notifiche efficace e soprattutto a basso overhead.

[Read more…]

Linux kernel hacking: contenitori di processi/2

Nell’articolo precedente abbiamo analizzato i concetti base dei Linux cgroup. Abbiamo visto un esempio pratico di come lo scheduler CFS possa attuare una distribuzione equa della risorsa CPU tra i vari cgroup. Infine, abbiamo realizzato un cgroup subsystem molto semplice (il noop-cgroup), sfruttando solamente la funzionalità di raggruppamento dei processi.

In questa seconda parte analizzeremo più in dettaglio l’aspetto di programmazione in kernel space, realizzando un cgroup subsystem un po’ più avanzato, interfacciandoci anche con un’altra parte del kernel: le system call.

[Read more…]

Linux kernel hacking: contenitori di processi/1

Dalla versione 2.6.24, il kernel Linux mette a disposizione un framework denominato Control Groups (o cgroups) che permette di creare veri e propri contenitori di processi.

Ad ogni contenitore possono essere associate determinate configurazioni che permettono di definire ad esempio il tracciamento e/o il controllo sull’utilizzo di determinate risorse.

L’infrastruttura dei cgroup mette a disposizione solo le funzionalità di raggruppamento dei task, sono poi i vari cgroup subsystem che implementano le particolari politiche di controllo per ciascuna risorsa: come ad esempio la CPU, la banda di I/O, la memoria, i permessi di accesso a determinati device, eccetera.

[Read more…]

Linux Kernel Hacking: Un semplice filesystem

Il VFS (Virtual File System) è il layer di Linux per gestire i file system. Si tratta di uno dei componenti più importanti del kernel non solo perché permette l’organizzazione e la gestione dei dati sui nostri sistemi di storage ma anche perché è un modo molto comodo per far dialogare lo userspace con il kernel. Progetti importantissimi come SeLinux utilizzano un filesystem per la loro configurazione. In questo articolo vedremo come realizzare un semplice filesystem per l’organizzazione di dati su un dispositivo a blocchi.

[Read more…]

Possibile violazione della GPL da parte di Asus

Eee PcIl successo commerciale dell’Eee PC — l’ultraportatile economico prodotto da Asus che viene spesso confrontato con l’OLPC — potrebbe renderlo a breve il portatile Linux più venduto nel mondo industrializzato. La sua popolarità è fortemente apprezzata da parte della comunità del software libero, che cerca in ogni modo di promuovere e rendere più popolare Linux ed altri sistemi operativi Open Source. Nonostante ciò una possibile crisi è in vista, da quando Cliff Biffle, un programmatore Java, ha scoperto e discusso nel suo blog una possibile violazione della licenza GPL che definisce e tutela legalmente il codice di Linux.

[Read more…]

Al 90% dei professionisti IT non piace Vista

Windows VistaIn un recente sondaggio condotto da King Research per conto di Kace, che si occupa di prodotti per il System Management, il 90% dei 961 professionisti IT intervistati avrebbe diverse riserve circa la migrazione da Windows XP a Windows Vista. Più della metà di questi ha espresso la propria intenzione di non adottare affatto il nuovo sistema operativo di casa Microsoft, motivando la propria scelta con argomenti relativi alla stabilità, alle possibili incompatibilità con i programmi già in uso da parte delle aziende e agli elevati costi delle versioni Business, Enterprise e Ultimate.

[Read more…]