syscalln't 🚫

🤔 Cos’è una syscall, in pratica? Crediti immagine: Mike Norris via Pexels Ogni volta che il tuo programma legge un file, scrive su un socket o alloca memoria, a un certo punto deve chiedere al kernel di farlo per davvero. Quella richiesta è una syscall: il confine preciso e ben definito in cui il codice in userspace passa nel kernel. write(), read(), open(), mmap() non sono semplici funzioni di libreria, sono l’intero vocabolario che il tuo programma ha a disposizione per parlare con il mondo esterno. Tutto il resto — da fwrite a file.write() in Python fino a std::fs::File in Rust — non è altro che un wrapper attorno a questa manciata di punti di ingresso del kernel. ...

16 luglio 2026 Âˇ Andrea Manzini

Quanto codice stai testando? (4)

🧭 Dove eravamo rimasti Benvenuti al nuovo capitolo della nostra serie dedicata alla misurazione della copertura dei test per i programmi binari! Nella parte 1 abbiamo utilizzato il flag -cover integrato in Go: pulito e preciso, ma funziona solo se si possiede il codice sorgente e lo si può ricompilare. Nella parte 2 abbiamo usato valgrind e gdb per tracciare gzip senza toccarne il sorgente. Nella parte 3 abbiamo esplorato Intel PIN, un vero e proprio framework di strumentazione binaria dinamica: potente, ma dotato di un SDK C++ proprietario da circa 100 MB e limitato a x86_64. ...

13 maggio 2026 Âˇ Andrea Manzini

Automatizzare la clonazione dei job OpenQA con Python e YAML

🎉 Buon anno nuovo! Come sa chiunque lavori con openQA, si tratta di uno strumento estremamente potente per i test automatizzati. Tuttavia, a volte il flusso di lavoro necessario per riattivare i test a scopo di analisi può sembrare un po’… manuale. Di recente mi sono ritrovato in un ciclo ripetitivo durante il debug di scenari di test complessi. Il mio flusso di lavoro si presentava all’incirca così: Individuare l’URL di un job noto come “corretto”. Aprire un editor di appunti veloce. Comporre un lungo comando openqa-clone-job con una marea di parametri di override specifici (BUILD=0, branch Git personalizzati, esclusione di moduli specifici, ecc.). Eseguire il comando nel terminale e attendere l’output. Scansionare visivamente con fatica l’output del terminale per individuare gli URL dei nuovi job creati, selezionandoli con il mouse per copiarli. Incollarli in openqa-mon o in un file di testo per monitorarne l’avanzamento. Fino a questo momento ho utilizzato uno script Bash che in un certo senso mi aiutava, ma modificare array giganteschi di argomenti per ogni diverso scenario di debug era noioso e incline all’errore. ...

7 gennaio 2026 Âˇ Andrea Manzini

Dal mal di testa con QEMU alla modalitĂ  Headless

😸 TL;DR Essendo pigro, ho creato uno strumento per eseguire immagini qcow2 a mia comodità. Ora supporta x86_64, aarch64, s390x e ppc64le. Sentitevi liberi di usarlo se lo trovate utile! 📖 La storia Se avete mai digitato qemu-system-x86_64 nel vostro terminale, conoscete bene la sensazione. Una paura strisciante. Un sudore freddo. Il mal di testa da QEMU. È quella speciale emicrania riservata agli sviluppatori che sanno che passeranno i successivi dieci minuti a decifrare la cronologia della propria shell per ricordare quel flag magico per la rete. ...

28 settembre 2025 Âˇ Andrea Manzini

This site does not use cookies or collect any personal data. © 2026 Andrea Manzini.