Have you ever wanted to build your own operating system, but didn't know where to begin? Then this book is for you! In this book, the author explains everything you need to know from getting and installing the necessary tools to writing, compiling, deploying, and testing your very own operating system. By the time you are done you will have an operating system to call your own. And, don't worry about destroying your existing hardware and software environment as everything in this book is written with the intention of running in a virtualized environment. However, should you choose to do so, the author also explains how to deploy and test your new OS on bare-metal hardware as well.
The first few chapters give a brief overview of how modern day computers work. In these chapters you will (re)learn everything from memory allocation, stacks, and bootloaders to low-level machine code and programming languages. After that, you will jump into downloading and installing the tools you will use for building your very own operating system. Here you will learn how to develop a bootloader and kernel just like modern day computers rely on for operating. The last few chapters will explain how to deploy and test your operating system as well as how to expand your OS to do more and even how to cross-compile your shiny new operating system for other devices such as the Raspberry Pi.
To give an idea of what you can find in this book, below is the Table of Contents.
0x01 OS Basics
0x02 Intro to Machine Code
0x03 Intro to the Assembly Programming Language
0x04 Into to the C Programming Language
0x05 Getting Started
- Installing VirtualBox
- Installing Linux
- Installing GNOME
- Preparing CentOS and the VM
- Troubleshooting VirtualBox Guest Additions
- Preparing the Development Environment
0x06 Bootstrapping with the Bootloader
- Creating the Entry Point
- GNU GRUB
- Compiling the Entry Point
0x07 Welcome to the Kernel
0x08 Putting it all Together
0x09 Testing Your Operating System
0x0A Starting Your Architecture Library
- Expanding the Console
0x0B Expanding Your OS
0x0C Cross-Compiling for Other Architectures
- Create a Custom Cross-Compiler
- Porting for the Raspberry Pi
- Testing on Physical Hardware
Conclusion
Acknowledgements
Appendix
Index
The first few chapters give a brief overview of how modern day computers work. In these chapters you will (re)learn everything from memory allocation, stacks, and bootloaders to low-level machine code and programming languages. After that, you will jump into downloading and installing the tools you will use for building your very own operating system. Here you will learn how to develop a bootloader and kernel just like modern day computers rely on for operating. The last few chapters will explain how to deploy and test your operating system as well as how to expand your OS to do more and even how to cross-compile your shiny new operating system for other devices such as the Raspberry Pi.
To give an idea of what you can find in this book, below is the Table of Contents.
0x01 OS Basics
0x02 Intro to Machine Code
0x03 Intro to the Assembly Programming Language
0x04 Into to the C Programming Language
0x05 Getting Started
- Installing VirtualBox
- Installing Linux
- Installing GNOME
- Preparing CentOS and the VM
- Troubleshooting VirtualBox Guest Additions
- Preparing the Development Environment
0x06 Bootstrapping with the Bootloader
- Creating the Entry Point
- GNU GRUB
- Compiling the Entry Point
0x07 Welcome to the Kernel
0x08 Putting it all Together
0x09 Testing Your Operating System
0x0A Starting Your Architecture Library
- Expanding the Console
0x0B Expanding Your OS
0x0C Cross-Compiling for Other Architectures
- Create a Custom Cross-Compiler
- Porting for the Raspberry Pi
- Testing on Physical Hardware
Conclusion
Acknowledgements
Appendix
Index