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…]

Il MacHeist 3 Bundle va a ruba

Espresso, parte del MacHeist 3 BundleMacHeist.com è un sito che organizza la vendita di una serie di applicazioni (un bundle) per Mac OS X. Arrivati alla terza edizione, gli organizzatori di questa iniziativa hanno deciso di fare le cose in grande.

Per cominciare l’annuncio è stato fatto per video tramite una diretta web da parte di tre nomi piuttosto noti nel mondo del social media: Chris Pirillo, Veronica Belmont e Lisa Bettany. Dopo aver sfruttato la popolarità di questi, il team di MacHeist ha anche usato al meglio Twitter per raggiungere un grande seguito con inviti e incentivi ad inviare messaggi riguardanti l’offerta. Nel giro di poche ore, nonostante il sito fosse sottocarico e fosse da poco passata la mezzanotte in America, il contatore nel sito indicava già migliaia di vendite.

[Read more…]

Il debutto di Firefox 3

Dopo oltre un anno e mezzo dall’uscita di Firefox 2
arriva Firefox 3 che promette migliorie sostanziali
nella gestione della memoria utilizzata, nella velocità di esecuzione e nell’usabilità generale
grazie ad una miriade di nuove funzionalità presenti. Cominciamo a
fare conoscenza con alcune di queste “nuove” caratteristiche.

[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…]

Apple rilascia Mac OS X 10.5.2

Dopo alcuni mesi di attesa, Apple ha finalmente rilasciato un aggiornamento sostanziale per il proprio sistema operativo Mac OS X Leopard. L’aggiornamento (dalle dimensioni superiori ai 300 MB) è disponibile da un paio di giorni e apporterebbe diversi miglioramenti alla stabilità di Leopard. In un certo senso può essere considerato l’equivalente nel mondo Apple del Service Pack 1 per Windows Vista. Infatti, anche se Leopard è senza dubbio un grande passo avanti rispetto alla versione precedente di Mac OS X (Tiger), le lamentele circa la stabilità e l’affidabilità del sistema non sono certo mancate.

[Read more…]

Quel disastro chiamato Qtrax

In una notizia precedente abbiamo parlato del lancio da parte di Qtrax. Stando all’annuncio fatto a Cannes, Qtrax avrebbe permesso il download di più di 25 milioni di canzoni a partire dalla mezzanotte del 28 Gennaio. La realtà dei fatti è stata ben differente.

[Read more…]

Qtrax: l’incubo di Steve Jobs?

QtraxTra meno di mezz’ora Qtrax.com lancerà la beta del proprio software peer-to-peer per la condivisione di file musicali. L’evento è piuttosto significativo perché, per la prima volta nella storia della musica online, 25 milioni di canzoni saranno scaricabili gratuitamente e legalmente. Dopo alcuni anni di trattative, l’azienda Qtrax è infatti riuscita ad accaparrarsi un accordo con le quattro major discografiche: Sony&BMG, Universal, Warner ed Emi. Si tratta di una win-win situation, dove gli artisti e le loro case discografiche vengono pagati tramite la pubblicità generata dal sito e mostrata quando si ascolta una canzone, mentre gli utenti possono finalmente ottenere musica gratuitamente e senza il timore di ripercussioni legali.

[Read more…]

Il Macworld Expo 2008 in tempo reale

Questo post è stato aggiornato per tutta la durata del Macworld Expo 2008 per garantire aggiornamenti in tempo reale ai lettori di Stacktrace.it. A cura di Antonio Cangiano e Giovanni Intini.

17:50: Tra dieci minuti circa parte il Macworld Expo 2008. Il sito Apple.com ha già chiuso da alcune ore il suo negozio online, come di consuetudine prima dei grandi annunci. L’homepage mostra la frase There is something in the air (letteralmente, c’è qualcosa nell’aria) quasi a garantire l’annuncio del nuovo modello Apple MacBook Air di cui tanto si è vociferato negli ultimi giorni.

18:00: Si parte! :) Migliaia di persone iniziano a sedersi.

[Read more…]