Year: 2020

  • 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…

  • 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…

  • Pipes and process groups

    Source code for this tidbit is available at the Linux Tidbits repo here.

  • 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.…

  • 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…

  • io_uring By Example: An Article Series

    io_uring is a clever new, high-performance interface for asynchronous I/O for Linux without the drawbacks of the aio set of APIs. In this 3-part article series, we look at how to use io_uring to get the most common programming tasks done under Linux. We write a series of programs of increasing complexity to slowly but…

  • 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…

  • 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…

  • 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…