JOS - PC Bootstrap

Starting from a high-level overview of JOS lab, we now dig into JOS in this post. We follow Lab 1 of JOS loosely, with our main goal to explore the PC start up process up until the kernel is loaded.

JOS - Compile and Link

JOS contains two binaries, the bootloader and the kernel. We had a high level overview of JOS’s Makefile and now explore in more details how each binary is compiled, and how they are linked together in an image that can be loaded onto a disk.

Scripting with GDB

A lesser known but nevertheless powerful feature of GDB is its support for macro scripting. This expands on GDB’s capability for customizing the debugger, automating project based setups, setting up advance conditions and routines and more.

CPU Modes and Physical Address

Operating System design relies heavily on CPU architecture, so it is important to understand what type of features does a CPU offer. This post discusses different operating modes of Intel x86 CPUs and what a physical address means for a CPU.

Notes on GNU Make

GNU Make is a tool to manage build systems. It binds targets to some dependencies and a set of commands.