/PeachOS

Simple kernel designed for a online course

Primary LanguageCGNU General Public License v2.0GPL-2.0

Developing a Multithreaded Kernel from Scratch

Welcome to our comprehensive kernel development course, meticulously designed for learners who are interested in creating a multitasking operating system and kernel from the ground up. This course assumes no previous experience in kernel programming, ensuring a complete understanding of concepts starting from the basics. This is the code repository you will build from scratch when learning kernel development in our kernel course.

Get the Course

About this Course

The course is divided into several main sections:

  • Real Mode Development
  • Protected Mode Development
  • Assembly Language Bonus

Each section offers a unique perspective on kernel development and is designed to build your skills incrementally.

Real Mode Development

This is your introduction to kernel development, here we cover:

  • The boot process and how memory works
  • Writing a boot loader in assembly language
  • Working with interrupts in real mode
  • Reading a sector (512 bytes) from the hard disk

Protected Mode Development

Delve deep into the creation of a 32-bit multi-tasking kernel featuring:

  • FAT16 filesystem implementation
  • Memory management and virtualization techniques
  • Keyboard driver implementation
  • ELF file loader creation
  • Design of a virtual filesystem layer (inspired by Linux kernel)
  • Process and task functionality

Assembly Language Bonus

If you struggle with assembly language, this bonus section aims to bring your skills up to speed.

Instructor

This course is taught by an experienced instructor who has developed Linux kernel modules professionally.

Prerequisites

  • Understanding of the C programming language
  • Understanding of Assembly Language

Who is this course for?

This course is ideal for individuals interested in developing a kernel from scratch.

What you'll learn

By the end of the course, you will acquire skills in:

  • Creating a kernel from scratch
  • Developing a multi-tasking kernel
  • Handling problematic programs in your operating system
  • Understanding how memory works in computers
  • Differentiating between kernel land, user land, and the protection rings
  • Learning kernel design patterns used by Linux
  • Understanding and implementing virtual memory
  • Developing processes and tasks in the kernel
  • Loading ELF files
  • Debugging disassembled machine code
  • Debugging your kernel in an emulator with GDB

Ready to begin your kernel development journey? Enroll in the course now with a special discount!