Skip to content
Daniel McCarthy edited this page Aug 4, 2023 · 2 revisions

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.

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!

Clone this wiki locally