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?...
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....
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....
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....
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....
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....
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....
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....
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 ?...
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....