Master essential open-source Linux performance and debugging tools: strace, ltrace, perf, Valgrind, iostat, ss, and iperf3 with command workflows.
Explore guideLabs
Reproducible
engineering
experiments
Tested environments, procedures, expected output, and the evidence you need to repeat an experiment yourself with confidence.
Real systems. Real results.
Browse by category
Existing library
Continue exploring
Set up a TFTP server on Ubuntu using tftpd-hpa: learn configuration, permission fixes, ufw firewall setup, and U-Boot embedded kernel image transfers.
Explore guideSniff USB traffic on Linux using Wireshark and the usbmon kernel module: step-by-step setup, non-root udev permissions, and USB URB display filters.
Explore guideKernel modules are usually built out-of-tree, but for modules tightly coupled with kernel internals it's better to build them in-tree, as part of the kernel compilation itself, for header and config compatibility and automatic compilation during make . The example below uses linux-5.10/ as the so
Explore guideKeep shell scripts running after SSH disconnects using GNU Screen: master screen -S, detach (Ctrl+A d), reattach (-r), logging (-L), and nohup vs screen.
Explore guideLearn how to debug multi-file C applications using GDB: master gcc -g debug symbols, breakpoints by filename (break file.c:line), and stack frames.
Explore guideSet up Material 3 (Material Design) themes in Android: configure styles.xml, Theme.Material3.DayNight, color attributes, and dynamic colors.
Explore guideBuild interactive AlertDialog popups in Android with MaterialAlertDialogBuilder: single-choice radio lists, multi-choice checkboxes, and event listeners.
Explore guideUse grep , sed , and find to search and replace strings across a codebase instead of doing it manually. Step 1: Find a String with grep -r — recursive -n — shows line numbers -w — matches whole word -e — the pattern Step 2: Replace a String in One File with sed -i — edits in place s — subs
Explore guide