Created by
0.00 Star (0)
19 Hours
0 Lesson
$294.99
This course is the continuation of Part 2 Module 1, where we continued building the 32-bit PeachOS kernel, into a fully functioning 64-bit multitasking operating system. In Part 2 Module 2, we take the project to the next level by continuing the development from Module 1. By the end of this course you will have a fully functioning 64-bit operating system capable of GUI windows, task scheduling and more. Keep reading for the full details.
Part 2 - Module 2 (This Module)
Module 2 builds directly on the work from Module 1 and focuses on turning the kernel into a full graphical operating system with multitasking, drivers, and a rich user experience.
You will:
— Expose standard C library functions (fopen, fread, etc.) to userspace through isr80h.
— Build the complete windowing system, with support for fully interactive GUI elements.
— Implement an NVMe SSD driver, enabling high-speed reads from modern solid-state storage.
— Add full PCI/PCIe support, including bridges, making the kernel capable of scanning and interacting with a wide variety of devices.
— Building a disk streamer cache to speed up program loading by 10x to 20x.
— Access a GitHub repository of user programs that you can run directly on your OS. You’ll even be able to submit pull requests to share your own user-space programs with other students in the course.
By the end of this module, you’ll have created a multi-threaded, 64-bit, GUI operating system from scratch bootable on modern hardware and extensible enough to run real user applications.
A computer (Windows, macOS, or Linux) capable of running QEMU/VirtualBox/VMware
Basic knowledge of C programming (pointers, structs, functions)
Familiarity with x86 assembly language at a beginner level (recommended)
Understanding of basic computer architecture concepts (CPU, RAM, stack, registers)
A code editor or IDE of your choice (VS Code, CLion, Vim, etc.)
Willingness to use the terminal/command line for building and testing the OS
GCC or Clang toolchain installed (I’ll show you how to set it up)
(Optional but recommended) Completion of Part 1: Developing a Multitasking Kernel From Scratch a.k.a Kernel Development For Beginners Tutorial
Programmers who want to understand operating systems at a low level
Developers interested in kernel and OS design from scratch
Students of computer science, systems programming, or embedded systems
Hobbyists who enjoy building their own OS or experimenting with bare-metal programming
Engineers who want to learn modern 64-bit, UEFI-based booting and kernel development
Anyone curious about memory management, paging, and heap design in kernels
Developers who want hands-on experience with graphics, terminals, and GUI systems
Programmers looking to implement file systems, disk drivers, and PCI/NVMe support
Learners who enjoyed Part 1 (PeachOS) and want to continue into 64-bit multi-threaded kernels
Advanced C programmers seeking a real-world project that pushes their skills
Build a 64-bit multitasking kernel from scratch
Write a UEFI bootloader to boot on modern hardware
Switch the CPU into long mode (x86-64) and run your kernel there
Capture and use the UEFI framebuffer to draw pixels directly to the screen
Load and render images and fonts in your OS
Build a graphical terminal system capable of text rendering via pixels and fonts
Design a hierarchical graphics system supporting relative drawing and child graphics
Implement a dynamic multi-heap memory allocator using E820 memory regions
Create a memory defragmenter using paging to provide continuous virtual memory blocks
Extend the FAT16 filesystem to support multiple GPT partitions and virtual drives
Abstract and rewrite the disk system to support multi-partition mounting
Lay the groundwork for a full GUI windowing system with draggable, clickable elements
Prepare to add userspace stdio functions, PCI, and NVMe drivers in later modules
Introduction
1 Lessons
0H 4M
4m 20s
Filesystem And Memory Management
11 Lessons
2H 38M
Windowing System
8 Lessons
2H 14M
15m 31s
CPU
6 Lessons
0H 42M
3m 30s
Mouse and Graphics
18 Lessons
2H 49M
10m 19s
21m 54s
19m 34s
Windowing System - Stage two
27 Lessons
3H 59M
1m 46s
12m 28s
11m 13s
3m 38s
PCI And Implementation
6 Lessons
2H 6M
Disk Driver Improvements
8 Lessons
1H 14M
NVMe SSD Disk Driver
6 Lessons
1H 58M
23m 26s
Task sleeping and keyboard events
4 Lessons
0H 23M
Small optimizations
3 Lessons
0H 7M
Disk Streamer Cache
5 Lessons
0H 52M
Finishing up
3 Lessons
0H 36M
Dragon Zap Instructor
Daniel McCarthy is a seasoned software engineer, boasting an impressive career spanning over 14 years in the industry. Holding a Master's Degree in Advanced Computer Science from Cardiff Metropolitan University, his broad spectrum of experience encompasses everything from web development to complex compiler and interpreter development. Daniel has honed his skills in bootloader and kernel development. In testament to his proficiency in the field, he has designed two proprietary programming languages: Craft, a general-purpose language, and Marble, a web-focused language akin to PHP. Moreover, he has successfully developed compilers for the C programming language. A testament to his versatility, Daniel demonstrates proficiency in an extensive list of programming languages that includes C, C++, Java, x86 Assembly language, PIC assembly, SQL, PHP, HTML5, JavaScript, CSS, and of course, his own creations, Craft and Marble. His professional portfolio also includes the development of Linux kernel modules, a task he has executed with proficiency in a professional context. Currently, Daniel is channeling his wealth of experience and expertise into the education sector, with the aim of nurturing the next generation of professional software engineers.
$294.99
42% off
9 days and 14 hours at this price
Full Lifetime Access
30 Days Money Back Guarantee
Free Exercises File
Watch online or offline
Certificate of Completion
Metla Sudha Sekhar
Metla Sudha Sekhar
Ashraf S.A Almadhoun
Juan Galvan
Ashraf S.A Almadhoun