Using signalfd and pidfd to make signals less painful under Linux

Anyone introduced to Unix programming gets to marvel at the clever construct of signals. In the life-cycle of a process, fortune and misfortune are present in good measure. Signals allow the operating system to tell the process about the occurrence of various events like the execution of illegal CPU instructions, a user typing and thus… Continue reading Using signalfd and pidfd to make signals less painful under Linux

Getting a PDF version of the POSIX standard document

As of writing this article, the latest POSIX standard was published in 2018. However, the confusion starts with the name itself. First off, let’s examine the many names that POSIX has. Let’s first look at what Wikipedia has to say on the subject: IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008) – IEEE Standard for… Continue reading Getting a PDF version of the POSIX standard document

Installing Neovim on NetBSD

I have a certain Vim setup with Neovim being my choice of Vim. I’ve been playing around with NetBSD recently, but I did not find a stable package available for Neovim in the official package repositories. When I went about building it however, I faced a couple of challenges. I thought it might be a… Continue reading Installing Neovim on NetBSD

Containers the hard way: Gocker: A mini Docker written in Go

They are popular and they are misunderstood. Containers have become the default way applications are packaged and run on servers, initially popularized by Docker. Now, Docker itself is misunderstood. It is the name of a company and a command (a suite of commands, rather) that allow you to manage containers (create, run, delete, network) easily.… Continue reading Containers the hard way: Gocker: A mini Docker written in Go

What kind of traffic does Hacker News generate?

Every single post on this blog you’re now reading has done well on Hacker News. This generates a lot of back-links and also results in a lively discussion on the comments section from where I’ve learned a lot. Knowing that there is an audience for the stuff you write is a great feeling. One question… Continue reading What kind of traffic does Hacker News generate?

io_uring By Example: Part 3 – A Web Server with io_uring

This article is a part of a series on io_uring Series introduction Part 1: Introduction to io_uring. In this article we create cat_uring based on the raw io_uring interface and cat_liburing, built on the higher level liburing. Part 2: Queuing multiple operations: We develop a file copying program, cp_liburing leveraging multiple requests with io_uring. Part… Continue reading io_uring By Example: Part 3 – A Web Server with io_uring

io_uring By Example: Part 2 – Queuing multiple requests

This article is a part of a series on io_uring Series introduction Part 1: Introduction to io_uring. In this article we create cat_uring based on the raw io_uring interface and cat_liburing, built on the higher level liburing. Part 2: This article. Part 3: A web server written using io_uring. In part 1, we saw how… Continue reading io_uring By Example: Part 2 – Queuing multiple requests

io_uring by example: Part 1 – Introduction

This article is a part of a series on io_uring Series introduction Part 1: This article. Part 2: Queuing multiple operations: We develop a file copying program, cp_liburing leveraging multiple requests with io_uring. Part 3: A web server written using io_uring. Introduction Come to think about it, I/O, along with compute are the only two… Continue reading io_uring by example: Part 1 – Introduction