Sinkingpoint

Void Subject Matter Expert

Is there a space for Serverless applications in the Open Source world?

I’m procrastinating writing my Monitorama talk, so here’s something that I’ve been thinking about for a while: Is there a space for Serverless applications in the Open Source world? We’ve built up a huge ecosystem of tooling to help us run serverless applications. We have platforms, we have observability, we even have databases, kv stores, queues, and everything else that we could possibly want to deploy an application. So why are there no open source serverless applications?...

April 23, 2024 · 3 min

Let's build an OS: WTF is /etc/gshadow

Every now and then on my OS journey I find weird things. Today is one of those days. When implementing my login system, I was looking at the standard login files - /etc/group, /etc/passwd, and /etc/shadow. Those are all well known and normal, right? Well imagine my surprise when a file I’ve never heard of popped up: /etc/gshadow. For the uninitiated, on Linux you have a set of groups that your user is a member....

March 23, 2024 · 2 min

Let's build an OS: crypt(3) is a bit weird

Let’s go on an adventure. I’ve learnt a lot more Rust over the last year, and I want to get back into writing properly, so my plan is to write a Linux Operating System. While writing it, I’ll be taking notes in my repo - https://github.com/sinkingpoint/qos/tree/main/notes . And every now and then formalising them into more structured blog posts over here, once I’ve learnt enough to make something interesting. Recently, I went about implementing a login system for our operating system....

March 23, 2024 · 9 min

Rabbithole: Shell Pipelines

In prepping for the next part of my OS journey (writing an init system!), I found a need to add pipelining to my shell. This entry is a quick jaunt into how that works. All the code we break down here can be found here. What actually is a pipe? Before we talk about a pipeline, it’s useful to know what a pipe is. Fundementally, a pipe is two File Descriptors (read: files, yes it’s a bit more complicated but bear with me), where what is written to one end of the pipe is readable in the other....

February 27, 2024 · 8 min

Let's build an OS: Mounting a disk

Let’s go on an adventure. I’ve learnt a lot more Rust over the last year, and I want to get back into writing properly, so my plan is to write a Linux Operating System. While writing it, I’ll be taking notes in my repo - https://github.com/sinkingpoint/qos/tree/main/notes . And every now and then formalising them into more structured blog posts over here, once I’ve learnt enough to make something interesting. I had intended this entry to be a simple one....

February 12, 2024 · 7 min

Let's build an OS: A basic shell

Let’s go on an adventure. I’ve learnt a lot more Rust over the last year, and I want to get back into writing properly, so my plan is to write a Linux Operating System. While writing it, I’ll be taking notes in my repo - https://github.com/sinkingpoint/qos/tree/main/notes . And every now and then formalising them into more structured blog posts over here, once I’ve learnt enough to make something interesting. I love a good shell....

January 22, 2024 · 26 min

Rabbithole: A weird CPIO discrepancy

We learnt previously that an initramfs in Linux is a “CPIO archive”, so I set out to write something that can read and write them, in order to learn more about the format. What I found was an interesting discrepancy between how GNU cpio and the Linux Kernel parse CPIO files. It seems pretty innocuous, but I thought I’d document it for posterity. The CPIO header CPIO is an exceedingly simple format....

December 28, 2023 · 3 min

Let's build an OS: Booting Something

Let’s go on an adventure. I’ve learnt a lot more Rust over the last year, and I want to get back into writing properly, so my plan is to write a Linux Operating System. While writing it, I’ll be taking notes in my repo - https://github.com/sinkingpoint/qos/tree/main/notes . And every now and then formalising them into more structured blog posts over here, once I’ve learnt enough to make something interesting. Welcome to the first of such formalisations: Getting something booting....

December 26, 2023 · 13 min

A look at RISON: Kibana's weird URL encoding

If you’ve used the ELK stack, you’ve probably had the joy of trying to share a Kibana URL with someone. If you were naive enough to just copy the link from your browser (rather than creating a shortlink), you’re faced with something that looks like this monstrosity: https://kibana/app/discover#/?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))&_a=(columns:!(_source),filters:!(),index:ea073d70-8ed6-11ea-88e9-39648e0749be,interval:auto,query:(language:lucene,query:'machine:%20164%20AND%20service:%20fun-times'),sort:!()) Discover is right Kibana URL, although we may have a bit of trepidation over what we’ve just discovered, because what are those ?...

July 12, 2023 · 5 min

Runbooks and Dashboards: Scrapbooking for Engineers

It seems like every company these days has two things they turn to when first hitting an incident. a) Is there an Alert Reference / Runbook / Whatever (the actual term depends on who you talk to), and b) Is there a dashboard that can tell me exactly what’s wrong. In this post, I’m going to cover why these tools are not only unhelpful, but are actively harmful to your incident response....

July 18, 2022 · 7 min