
This tutorial provides a minimal solution for creating an operating system. Using elf is not mandatory, but simplifies things.īy now, you should have set up your cross-compiler for the proper ABI (as described above). This provides the same System V ABI interface, but for 64 bit. If you want a 64 bit kernel, you should set up aarch64-elf target instead. You will not be able to correctly compile your operating system without a cross-compiler. You have not yet modified your compiler to know about the existence of your operating system, so we use a generic target called arm-none-eabi, which provides you with a toolchain targeting the System V ABI. The first thing you should do is set up a GCC Cross-Compiler for arm-none-eabi. Windows users should be able to complete it from a MinGW or Cygwin environment.īuilding a Cross-Compiler Main article: GCC Cross-Compiler, Why do I need a Cross Compiler? This article assumes you are using a Unix-like operating system such as Linux which supports operating systems development well. This is a process known as cross-compiling and this makes the first step in operating systems development. Today, we simply need to set up a system that can compile your operating system from an existing operating system. This is a process known as bootstrapping or going self-hosted. Perhaps one day, your new operating system can be developed under itself. You are about to begin development of a new operating system.



