Raspberry Pi: Write Your Own Operating System Step by Step (Udemy.com)
Learn how to write a 64-bit operating system from scratch for raspberry pi 3 and 4
Created by: x-BIT Development
Last updated May 2026
What you will learn
- Be able to build a simple operating system for the ARM64 architecture.
- Understand the fundamentals of ARM64
- How to handle interrupts and exceptions in ARM64 mode
- How to write OS kernel with the assembly code and C code
- Be able to build a memory manager using ARM paging mechanism
- How to write timer handler for the process manager
- How to build a process manager to schedule processes and change them among different states (sleep, ready, killed)
- How to implement system call module to make user programs running in the system
- Write a simple console and interact with OS kernel using commands
- Be able to write a simple file system module which supports reading fat16 system.
How it compares
Against the other 1,182 rated Udemy courses in IT & Software on CourseDuck:
- Rating4.3 out of 5higher than 20% of them
- Reviews161#878 of 1,183 by number of reviews
- Length11.3 hourslonger than 75% of them
- Last updatedMay 2026more recently than 73% of them
Course Description
Welcome to Raspberry Pi: Write Your Own Operating System course.
This course teaches you how to build a simple operating system from scratch. It covers basics about the AArch64 architecture and low-level programming. In this course, we will take you through the process of building a small working system step by step.
The first part of the course teaches all you need to know (processor modes, paging, exceptions and interrupts handling, etc.) before you can build the kernel on the AArch64 architecture. In this part, we will see how to prepare for mode switching. We switch from EL2 to EL1 and then jump to EL0. Our kernel is running in 64-bit mode. We will see how to handle exceptions and interrupts, how to switch between kernel mode and user mode.
The second part of the course teaches you how to build kernel modules such as processes, memory management, interrupt handling, etc. In this part, we will see how to interact with the OS kernel using the console. After finishing this part, you should know how to write user programs and make them running in your own operating system.
In this course you will learn:
How to build a simple operating system for the AArch64 architecture.
How to handle interrupts and exceptions
How to write OS kernel with the assembly code and C code
Be able to write print function to print characters on the screen
Be able to build a memory manager using paging mechanism
How to write timer handler for the process manager
How to build a process manager to schedule processes and change them among different states (sleep, ready, killed)
How to implement system call module to make user programs running in the system
Write a UART driver
Write a simple console and interact with OS kernel using commands
Be able to write a simple file system module which supports reading fat16 system.
At the end of the course, you should be able to develop your own 64-bit operating system.
Instructor Details
- 4.3 Rating
161 Reviews
x-BIT Development
x-BIT Development was created to help anyone learn low-level programming and gain a better understanding of how things work.
We currently focus on making high quality courses on assembly languages, operating systems and more. Our goal is to teach programming in an easy and effective way, which helps students to get the most out of our courses.
More courses by x-BIT Development
Write Your Own Operating System From Scratch - Step by Step (2026)
4.4 (428 Reviews)
Provider: Udemy
Time: 10.1h
$64.99
ARM 64-bit Assembly Language with Raspberry Pi (2025)
4.4 (125 Reviews)
Provider: Udemy
Time: 7h
$69.99
More IT & Software courses
D3.js Data Visualization Fundamentals - Hands On (2026)
4.9 (3,917 Reviews)
Provider: Udemy
Time: 4.6h
$49.99
Hands-On Training: Streaming Data with Apache Kafka on Azure (2025)
4.9 (103 Reviews)
Provider: Udemy
Time: 3.7h
$10.99
Oracle Grid Infrastructure and RAC using Oracle Database 19c (2026)
4.8 (2,499 Reviews)
Provider: Udemy
Time: 8.7h
$19.99
PowerShell Scripting & Automation: The Complete Hands-On (2026)
4.8 (1,750 Reviews)
Provider: Udemy
Time: 9.6h
$11.99
AWS EC2 Crash Course + Load Balancing with Demos and PDFs (2025)
4.8 (866 Reviews)
Provider: Udemy
Time: 3.7h
$19.99
Reviews
By Vic Fer on 2/26/2025
Good and straightforward course, it presents only the required information from the datasheets and user manuals, focusing the lectures on the topic. It worths the value for money, and sincerely, overcome my expectations.
By Dayama Pradeep on 2/15/2025
The course is truly excellent and serves as a comprehensive starting point for anyone interested in learning how to write an operating system. It provides clear guidance and valuable insights, making it an ideal one-stop resource for beginners. Thank you, X-Bit Development, for creating such an informative and well-structured learning
By Mikael Glans on 8/5/2024
I had taken some courses on operating systems development before and read some books on the subject. In the earlier courses I read (one here on Udemy also) it was hard to follow the idéas and you just code along - without understanding. In this course, the instructor explains the general idéas and all course coding content follows a logical thread, so if you follow along carefully, here you actually will understand how the code works, and hence, also how a simple operating system works, from the inside. However, I suggest you read at least one theory book on operating systems first, - to have the whole picture theoretical insight, before you start this course. It is also good if you have pretty solid knowledge in assembler and C language also. After, this course, is a very good one, to put all the theory you learnt into practise.
By Chun-yien Chang on 4/8/2024
This course is somewhat unique on Udemy, which I love, but I do hope the creator can at least further update the content, including any mistakes, typos, and outdated parts.
By Sayed Hasan on 11/26/2023
Content is very good. Instructor moves at a brisk pace, without overly detail explanations, which is nice. The content will give you a chance to write a complete OS from start to finish. This will only serve as a starting point and provide a big pictuer view, which is really nice. The instructor has little bit of accent, which sometimes make it difficult to follow, but with English subtitle on, there is no issue. Great course, and thank you for developing it!
By Stefanos Bekiaris on 10/5/2022
Very detailed and good course, it needs a bit more assembly knowledge than I expected.
By Derek Schwalenberg on 6/4/2022
I'm a high-level programmer but this is my first shot at low-level programming. Very interesting so far.
By Justin Cheng on 5/6/2022
Challenging for people just learning about arm assembly, computer architecture and design. The instructor is extremely difficult to understand at times. This course essentially has you copying code. Decent introduction to bare metal programming where you use assembly and C to do low level configurations on system registers. However, not the best in my opinion. Definitely need a strong foundation regarding computer architecture, and you especially need understanding how the stack and memory works.
By Gaelan Anthony Sebastian D'costa on 3/7/2022
So far it's been understandable and clear, and I appreciate all the instructions for setting up one's environment. My big gripe is that the downloaded code is different in a few places than in the lectures, and comments in the code would have gone a long way to help retention and understanding
By Ankana Datta on 11/27/2021
Brilliant course !! for all System Software Engineers working on ARMv8 architecture.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 86 / 100








