The Linux kernel ftrace

šŸ‘£ Intro Tracing tools are pretty popular in the Unix/Linux ecosystem; for example in the userspace we have ltrace to trace library calls of the programs and strace to dive in deeper and inspect syscall usage. One of the many features that Linux kernel offers since 2008 (then evolved) is ftrace that allows many different kind of tracing at runtime. While not as flexible as eBPF technology, it can be helpful in some occasion and doesn’t require a full fledged programming language. ...

October 1, 2024 Ā· Andrea Manzini

Playing with Linux kernel capabilities

šŸ” Intro As an experienced sysadmin, you might be familiar with the traditional ā€œall-or-nothingā€ approach: if a shell or process is running with UID==0, it can do almost everything on a system; while a plain user process is restricted by some means: tipically it can’t open RAW sockets, can’t bind ā€œprivilegedā€ ports under 1024, can’t change a file ownership and so on. Linux capabilities is a feature, gradually introduced starting from kernel 2.2, that permits a more fine-grained control over privileged operations, breaking the traditional binary root/non-root distinction. Just as by using sudo we can run specific commands as another user (even root), without permanently becoming that user, by using capabilities, we can grant a program only certain privileges without having to run it as root. ...

August 2, 2024 Ā· Andrea Manzini

SEGFAULT: Debugging a crashing application

šŸ™€ Something breaks If you use linux running some applications you could have seen sometimes a similar error message: [1] 24975 segmentation fault (core dumped) what’s meaning and how it can be useful ? Let’s dig it out. 🧪 Lab Setup To make a proper case study, we need a crashing program. Of course they are very rare nowadays 😁 so we just create a new one ourself, showing off our worst C coding bad skills and practices. ...

April 5, 2024 Ā· Andrea Manzini

First steps with Linux Test Project

šŸ•µļø Intro The Linux Test Project is a joint project started years ago by SGI, OSDL and Bull developed and now maintained by IBM, Cisco, Fujitsu, SUSE, Red Hat, Oracle and many others. The project goal is to deliver tests to the open source community that validate the reliability, robustness, and stability of Linux. In these days I’m having a journey on the project so with this article I want to show step by step how to setup the project, how tests are actually written and give you a quick and dirty guide to write your first one. ...

February 10, 2024 Ā· Andrea Manzini