# How to make an Operating System

## How to make an Operating System

- [Introduction](https://samypesse.gitbook.io/how-to-create-an-operating-system/master.md)
- [Introduction about the x86 architecture and about our OS](https://samypesse.gitbook.io/how-to-create-an-operating-system/chapter-1.md)
- [Setup the development environment](https://samypesse.gitbook.io/how-to-create-an-operating-system/chapter-2.md)
- [First boot with GRUB](https://samypesse.gitbook.io/how-to-create-an-operating-system/chapter-3.md)
- [Backbone of the OS and C++ runtime](https://samypesse.gitbook.io/how-to-create-an-operating-system/chapter-4.md)
- [Base classes for managing x86 architecture](https://samypesse.gitbook.io/how-to-create-an-operating-system/chapter-5.md)
- [GDT](https://samypesse.gitbook.io/how-to-create-an-operating-system/chapter-6.md)
- [IDT and interrupts](https://samypesse.gitbook.io/how-to-create-an-operating-system/chapter-7.md)
- [Theory: physical and virtual memory](https://samypesse.gitbook.io/how-to-create-an-operating-system/chapter-8.md)
- [Memory management: physical and virtual](https://samypesse.gitbook.io/how-to-create-an-operating-system/chapter9.md)
- [Process management and multitasking](https://samypesse.gitbook.io/how-to-create-an-operating-system/process-management-and-multitasking.md)
- [External program execution: ELF files](https://samypesse.gitbook.io/how-to-create-an-operating-system/external-program-execution-elf-files.md)
- [Userland and syscalls](https://samypesse.gitbook.io/how-to-create-an-operating-system/userland-and-syscalls.md)
- [Modular drivers](https://samypesse.gitbook.io/how-to-create-an-operating-system/modular-drivers.md)
- [Some basics modules: console, keyboard](https://samypesse.gitbook.io/how-to-create-an-operating-system/some-basics-modules-console-keyboard.md)
- [IDE Hard disks](https://samypesse.gitbook.io/how-to-create-an-operating-system/ide-hard-disks.md)
- [DOS Partitions](https://samypesse.gitbook.io/how-to-create-an-operating-system/dos-partitions.md)
- [EXT2 read-only filesystems](https://samypesse.gitbook.io/how-to-create-an-operating-system/ext2-read-only-filesystems.md)
- [Standard C library (libC)](https://samypesse.gitbook.io/how-to-create-an-operating-system/standard-c-library-libc.md)
- [UNIX basic tools: sh, cat](https://samypesse.gitbook.io/how-to-create-an-operating-system/unix-basic-tools-sh-cat.md)
- [Lua interpreter](https://samypesse.gitbook.io/how-to-create-an-operating-system/lua-interpreter.md)
