Let’s build an operating system. By the end of the chapter, you’ll be running your own OS (or at least, a minimal subset of an OS). Not only that, but you would have compiled your own bootloader, kernel and the Rust language itself for your new operating system.
This chapter covers many features of Rust that are important for programming without an operating system. Accordingly, the chapter is important for programmers who work with Rust for embedded devices.
This section implements an operating system kernel. The kernel of an operating system performs several important roles, such as interacting with hardware, memory management and coordinating work. Typically work is coordinated through processes and threads. We won’t be able to cover much of that in this chapter. But we will get off the ground. We’ll fledge. So let’s call the system we’re building FledgeOS.
Creating an executable for an operating system that doesn’t exist yet is a complicated process. For instance, we need to compile the core Rust language for the OS from your current one. But, your current environment only understands your current environment. Let’s extend it.
Several tools are needed to help us out.
There are several components that you need to install and/or configure.