C CourseDen

Developing a Multithreaded Kernel From Scratch!

Build a multitasking operating system and kernel with an interactive shell! osdev

4.6 (1670 ratings) | 29h 31m | All Levels | en | Last updated Sep 2026

Created by Daniel McCarthy

About this course

Build a multitasking operating system and kernel with an interactive shell! osdev

Course content

8 chapters · 243 lessons · 29h 31m total
Udemy - Developing a Multithreaded Kernel From Scratch! 2024-11 1 lessons

Readme

File

01. Introduction 1 lessons

1. Introduction

Video

02. Setup And A Brief Explanation Of Kernel Development 3 lessons

1. What Is Memory

Video

2. The Boot Process

Video

3. Installing What We Need For Real Mode Development

Video

03. Real Mode Development 12 lessons

1. Hello World Bootloader

Video

1. Hello World Bootloader Commit

File

2. Understanding Real Mode

Video

3. Segmentation Memory Model

Video

4. Improving Our Bootloader

Video

5. Preparing our bootloader to be booted on real hardware

Video

6. Writing our bootloader to a USB stick

Video

7. Booting the bootloader

Video

8. The Interrupt Vector Table Explained

Video

9. Implementing our own interrupts in real mode

Video

10. Disk Access And How It Works

Video

11. Reading from the hard disk

Video

04. Protected Mode Development 201 lessons

1. What is Protected Mode

Video

2. Source code

File

2. Switching To Protected Mode

Video

3. Restructuring Our Project

Video

4. Enabling the A20 line

Video

4. Source Code

File

5. Creating a Cross Compiler So We Can Code In C

Video

6. Loading our 32 bit kernel into memory and working with debugging symbols

Video

6. Source Code

File

7. Cleaning our object files

Video

7. Source Code

File

8. Dealing With Alignment Issues

Video

8. Source Code

File

9. C Code In Protected Mode

Video

9. Source Code

File

10. Text Mode Explained

Video

11. Source Code

File

11. Writing To The Screen, Hello World Tutorial

Video

12. Interrupt Descriptor Table Explained

Video

13. Implementing The Interrupt Descriptor Table

Video

13. Source Code

File

14. Implementing In and Out Functions

Video

14. Source Code

File

15. Programmable Interrupt Controller Explained

Video

15. Source Code

File

16. Programmable Interrupt Controller Implementation

Video

16. Source Code

File

17. Understanding The Heap And Memory Allocation

Video

18. Implementing Our Heap

Video

18. Source Code

File

19. Creating the enable interrupts function

Video

19. Source Code

File

20. Understanding Paging

Video

21. Implementing Paging

Video

21. Source Code

File

22. Modifying the page table

Video

22. Source Code

File

23. Preparing To Read From The Hard Disk

Video

24. Reading from the disk in C with the ATA controller

Video

24. Source Code

File

25. Improving Our Disk Driver

Video

25. Source Code

File

26. What is a filesystem

Video

27. Creating a path parser

Video

27. Source Code

File

28. Creating a disk stream

Video

28. Source Code

File

29. File Allocation Table Explained

Video

30. Source Code

File

30. Starting To Create our FAT File system

Video

31. Understanding the VFS(Virtual File System) Layer

Video

32. Implementing our virtual filesystem core functionality

Video

32. Source Code

File

33. implementing FAT16 filesystem driver core functionality

Video

33. Source Code

File

34. Implementing FAT16 Structures

Video

34. Source Code

File

35. Implementing The FAT16 Resolver Function

Video

35. Source Code

File

36. Implementing the VFS fopen function

Video

36. Source Code

File

37. Implementing FAT16 fopen function

Video

37. Source Code

File

38. Implementing the VFS fread function

Video

38. Source Code

File

39. Implementing FAT16 fread functionality

Video

39. Source Code

File

40. Implementing the VFS fseek functionality

Video

40. Source Code

File

41. Implementing the FAT16 fseek functionality

Video

41. Source Code

File

42. Implementing the fstat VFS functionality

Video

42. Source Code

File

43. Implementing the FAT16 fstat function

Video

43. Source Code

File

44. Implementing the VFS fclose functionality

Video

44. Source Code

File

45. Implementing the FAT16 fclose functionality

Video

45. Source Code

File

46. Implementing a kernel panic

Video

46. Source Code

File

47. Understanding User Land

Video

48. Changing our kernel segment and data descriptors to be written in C

Video

48. Source Code

File

49. Implementing The TSS(Task Switch Segment)

Video

49. Source Code

File

50. Implementing Task Foundations

Video

50. Source Code

File

51. Implementing Process Foundations Part 1

Video

51. Source Code

File

52. Implementing Process Foundations Part 2

Video

52. Source Code

File

53. Packing the GDT

Video

53. Source Code

File

54. Implementing User Land Functionality

Video

54. Source Code

File

55. Creating our first user process application

Video

55. Source Code

File

56. Executing the process and dropping into user land privileges

Video

56. Source Code

File

57. Changing the paging functionality

Video

57. Source Code

File

58. Talking with the kernel from userland

Video

59. Creating the interrupt 0x80 for user process to kernel communication

Video

59. Source Code

File

60. Creating the ability to create and execute kernel commands

Video

60. Source Code

File

61. Creating our first kernel command

Video

61. Source Code

File

62. Calling our kernel command

Video

62. Source Code

File

63. Copying strings from the tasks process

Video

63. Source Code

File

63. Source Code Minor Change

File

64. Reading the task's stack

Video

64. Source Code

File

65. Creating the print command in the kernel

Video

65. Source Code

File

66. Understanding keyboard access in protected mode

Video

67. Creating the virtual keyboard layer

Video

67. Source Code

File

68. Creating the PS2 port keyboard driver part 1

Video

68. Source Code

File

69. Improving our interrupt descriptor table design

Video

69. Source Code

File

70. Creating a cleaner way to create interrupt handlers in the interrupt descriptor

Video

70. Source Code

File

71. Changing The Current Process

Video

71. Source Code

File

72. Creating the PS2 port keyboard driver part 2

Video

72. Source Code

File

73. Getting a key from the keyboard buffer in user land

Video

73. Source Code

File

74. Creating a putchar command that writes one character to the terminal

Video

74. Source Code

File

75. Implementing backspace in the terminal

Video

75. Source Code

File

76. Revising our stream reader

Video

76. Source Code

File

77. Elf Files Explained

Video

78. Implementing The Elf Loader - Part 1

Video

78. Source Code

File

79. Implementing The Elf Loader - Part 2

Video

79. Source Code

File

80. Implementing The Elf Loader - Part 3

Video

80. Source Code

File

81. Implementing The Elf Loader - Part 4

Video

81. Source Code

File

82. Implementing The Elf Loader - Part 5

Video

82. Source Code

File

83. Implementing The Elf Loader - Part 6

Video

83. Source Code

File

84. Source Code

File

84. Writing User Programs In C

Video

85. Implementing system print in stdlib

Video

85. Source Code

File

85. Source Code - Revised (Use this one)

File

86. Implementing system get key in stdlib

Video

86. Source Code

File

87. Implementing Malloc In Our stdlib

Video

87. Source Code

File

88. Implementing Free In Our stdlib

Video

88. Source Code

File

89. Changing the way we map virtual pages for the process

Video

89. Source Code

File

90. Implementing itoa function

Video

90. Source Code

File

91. Implementing the putchar function

Video

91. Source Code

File

92. Implementing the printf function

Video

92. Source Code

File

93. Implementing the ability to read lines

Video

93. Source Code

File

94. Creating a shell

Video

94. Source Code

File

95. Loading other programs from our shell

Video

95. Source Code

File

96. Creating some important stdlib functions

Video

96. Source Code

File

97. Memory Mapping malloc in stdlib

Video

97. Source Code

File

98. Memory Unmapping free In stdlib

Video

98. Source Code

File

99. Process arguments - Part 1

Video

99. Source Code

File

100. Process Arguments - Part 2

Video

100. Source Code

File

101. Process Arguments - Part 3

Video

101. Source Code

File

102. Implementing A 'System' Command

Video

102. Source Code

File

103. Implementing program termination

Video

103. Source Code

File

104. Handling program crashes

Video

104. Source Code

File

105. Creating an exit command

Video

105. Source Code

File

106. Handling caps lock, upper case and lower case letters

Video

106. Source Code

File

107. Running multiple tasks at the same time multi-tasking

Video

107. Source Code

File

05. Optional 14 lessons

1. README

File

2. Changing our fat16_new_fat_item_for_directory_item function

Video

3. Changing our fat16_open function

Video

3. Source Code

File

4. Changing our fat16_get_root_directory function

Video

4. Source Code

File

5. Changing our process_load_binary function

Video

5. Source Code

File

6. Improvements to our fat16_to_proper_string function

Video

6. Source Code

File

7. Changing our restore_general_purpose_registers function

Video

7. Source Code

File

8. Final Kernel Improvements

Video

8. Source Code

File

06. Assembly Language Catchup 9 lessons

1. Assembly Catchup!

File

2. What is assembly language

Video

3. Emu8086 Download

File

3. Installing the emulator

Video

4. Hello World In Assembly

Video

5. Transistors And Logic Gates Understanding The Processor

Video

6. Registers in the 8086

Video

7. Segmentation Memory Model Explained

Video

8. The Stack, Subroutines And Endiness Explained

Video

07. Conclusion 2 lessons

1. Bonus Lecture

Video

1. Kernel Development Books

File

D

Instructor

Daniel McCarthy

Featured course instructor on CourseDen. Follow the source link above to see more of their work.

Developing a Multithreaded Kernel From Scratch!
Free
Start learning

No account needed — jump straight in.

This course includes:

  • 29h 31m of on-demand video
  • 243 lessons
  • en language
  • Access on mobile and TV
  • Certificate of completion
Free Start learning