Writing Your First Kernel Module (2019)
Kernel modules are code components that can be loaded and unloaded by the kernel when required. They are used to extend the functionality…
Topics /
The most popular blog posts about systems & performance on Hacker News. 553 posts.
Kernel modules are code components that can be loaded and unloaded by the kernel when required. They are used to extend the functionality…
IBM announced IBM z/OS V2.5, the next-generation operating system (OS) for IBM Z, designed to accelerate client adoption of hybrid cloud and AI and drive application modernization projects.
Once I finished writing ec2-boot-bench, the natural next step was to run some tests — in particular, to see how FreeBSD compared to other operating systems used in EC2. I used the c5.xlarge instance type and tested FreeBSD releases since 11.1-RELEASE (the first FreeBSD release which can run on the c5.xlarge instance…
Types of register explained, and which are available to pass arguments of different types. Call by value and call by reference distinguished.
Slitter is Backtrace’s deliberately middle-of-the-road thread-caching slab allocator, with explicit allocation class tags (rather than derived from the object’s size class). It’s mostly written in Rust, and we use it in our C backend server. Slitter’s design is about as standard as it gets: we hope to dedicate the…
Since the launch of Chrome in 2008, speed has been one of the 4 core principles that shape the work we do to deliver a highly performant br...
I have recently published a blog post that, as I had expected (actually, hoped for, as that would attract people to contribute to the “study”), generated quite some polemic on the Internet!
BUILDING FOR HUMANITY
Syslog. You’ve probably heard about that, especially if you are into monitoring or security. Syslog is perceived to be the common, unified way that systems can send logs to otherContinue reading
Latches and barriers are coordination types that enable some threads to wait until a counter becomes zero. You can use a std::latch only once, but you can use a std::barrier more than once. Today, I have a closer look at latches.
Since the Raspberry Pi was introduced, hundreds of clones have adopted the Pi's form factor (from the diminutive Zero to the 'full size' model B). Often they have better hardware specs, and yet they remain a more obscure also-ran in that generation of Single Board Computer (SBC). So when I saw Radxa's CM3 and Pine64's…
Measuring the energy consumption of software is far from being a trivial task. This article provides essential details about energy consumption tools, their...
How this memory leak probably occurs, which apps it affects, and what you can do to avoid it completely.
The Apple M1 available in the MacBook Air, MacBook Pro 13", and Mac Mini has been the focus of a ton of benchmarking writeups and blog posts about the new chip. The performance overall, and especially performance/watt, that Apple has achieved with the chip is very impressive. As a ray tracing person, what caught my…
I wanted to share a story of a segmentation fault I helped track down this weekend. I thought the final root cause of the segfault was interesting because of how unrelated it was to the code I was trying to debug.
And why you should too!
I've noticed more than once that some programmers are confused about the direction in which the stack grows on x86, and what "top of the stack" and "bottom of the stack" mean. It appears that this confusion is caused by a basic mismatch in the way people are used to thinking about stacks, and in the way the stack on…
mostly 1990s PC gaming
The last time I wrote about the timezone database on this blog, the database was under threat from a lawsuit. Fortunately that lawsuit w...
A couple of weeks ago I found a really good deal on a Socket AM4 motherboard that supports the newest AMD Ryzen CPUs. The motherboard is an ASRock A520M/ac . It’s a very basic motherboard which doesn’t appear to be sold by any of the usual retailers anymore, but I couldn’t pass up on the deal, especially with the…
I’ve spent too many hours repeatedly trying to find this information on the Web. Time to write it down.
People appear to enjoy the blog posts about me porting different compilers to OpenBSD . What I would like to do for the next couple of posts beginning with this one is to take a step back and de-complexify these programs. Both the D compiler and the GNU Modula-2 compiler are highly complex pieces of software. But at…
After spending some weeks playing with Rust, I felt ready to test my skills and try some programming challenges in the [Advent Of Code](https://adventofcode.com/). My approach to tackle some of those challenges was to solve them using Javascript (I use it in my day to day) first and then port the code to Rust. While…
polkit is a system service installed by default on many Linux distributions. It’s used by systemd, so any Linux distribution that uses systemd also uses polkit.