Build a Graphical Operating System from Scratch
What you'll learn
- Operating System development from scratch
- Graphical Operating System
- Basic assembly programming
- Bootloader and kernel development
Requirements
- Basic C knowledge
- Some exposure to assembly language
Description
In this course, we will start from a blank file and end up with a toy Graphical operating system. The emphasis is on the word toy.
Our operating system is nowhere a competitor for windows, however, it is good enough for a proof of concept.
This will be a great addition to add to your CV to make you stand out from the crowd.
In this course you will:
- Build a simple toy Operating System that has Graphics support
- Implement mouse input: we will implement a simple mouse cursor.
- Implement keyboard input: we will implement support for the most popular keys.
- Implement a window system: we will implement a simple windowing system.
- Implement a simple task system: we will implement a very simple task system.
- Make a Bouncing Ball task: this will be the final lesson in which we make a Bouncing Ball task.
What is not covered in this course:
- Multithreading: This is an advanced topic and is not covered in this course. It is likely to be covered in future courses.
- Multiple processors support: This is an advanced topic and is not covered in this course. It is likely to be covered in future courses.
- File system: This is an advanced topic and is not covered in this course. It is likely to be covered in future courses.
- Sound system: This is an advanced topic and is not covered in this course. It is likely to be covered in future courses.
Who this course is for:
- Beginners
- Computer Scientists
- Programmers
Instructor
I am a Software Developer with huge interests in Artificial Intelligence and making things from scratch. In order to satisfy this, I have completed numerous courses on Coursera including the Deep Learning Specialisation.
I have also made neural networks, compilers, interpreters, Operating Systems, emulators and much more from scratch. I aim to convert this experience into high quality courses for like-minded people who have the desire to make things from scratch but do not know where to start.
Finally, the best way to learn is to make something from scratch, as you are explaining things to a machine that has no conception of what you are building.