After a bit of an unexpected break, I have been able to get back to my operating systems study. So, let’s take a look at some of the key ideas in chapter 2 of the xv6 book! Operating System Organization Link to heading In the introduction to the chapter, the authors claim: [A]n operating system must fulfill three requirements: multiplexing, isolation, and interaction. Multiplexing refers to multiple programs being able to run on the computer, ideally without any one program hogging time or ...| Nick Chandler
I’ve recently started an effort to learn more about operating systems, particularly Unix-like systems. Modern operating systems offer a lot of incredible capabilities for application programmers, and they can even provide unique ways of delivering applications. For example, containers are largely possible because of Linux capabilities such as namespaces and cgroups. However, I would like to spend some time digging into the foundations of operating systems so that I have a better framework w...| Nick Chandler
As a software engineer, have you ever faced a complex project where every task seems to depend on another? My team at HashiCorp ran into just that — and found a method that helped us tackle those interdependencies in a way that lets us make smooth progress. Here’s how the Mikado Method improved our workflow. The Challenge Link to heading About a year ago, my team at HashiCorp tried something new. Our small team was beginning development on a new capability that would require changes to se...| Nick Chandler
In the previous post, I described why I’m writing a small Unix shell, which I’m calling wishr, along with a bit of an overview of how I plan to approach the project. I’m excited to get started on the shell, itself, but it’s important to get a new repo set up for success. So, in this post, I’ll go through the initial repository setup I’ve gone with. If you’d like to look at the specific git commit, here it is! In future changes, I plan to open up PRs and then share links to them ...| Nick Chandler
This is the first post in a series where I plan to document my experience writing a small Unix shell in Rust called wishr. In this post, I’ll describe why I’m starting this project and how I plan to proceed through it. Why write a shell? Link to heading First off, to be clear, I have no intention to make a production quality shell: Bash, Z Shell, fish, and the like, can all breathe a sigh of relief here! 😄 This is a learning experience for me, and I want to document the process so that...| Nick Chandler
Hello! 👋 My name is Nick, and I’m a software engineer in Indiana (in the United States). I focus on backend, behind-the-scenes, software; if I am making a UI, it is probably a CLI. 😄 I enjoy learning about computer systems and software, and on this site, I hope to post occasionally about interesting things I learn as well as personal projects I work on.| Nick Chandler
Nick Chandler's website| Nick Chandler
Replacing xv6's round robin scheduler with a stride scheduler to explore proportional-share scheduling and kernel design.| Nick Chandler