diff --git a/14-checkpoint/README.md b/14-checkpoint/README.md new file mode 100644 index 0000000..f3fe653 --- /dev/null +++ b/14-checkpoint/README.md @@ -0,0 +1,42 @@ +*Concepts you may want to Google beforehand: monolithic kernel, microkernel* +**Goal: Pause and organize our code a little bit** + +Maybe you didn't realize it, but you already have your own kernel +running! + +However, it does very little, just print an 'X'. Now is the time to stop for +a moment and organize the code into folders, create a scalable Makefile for future code, +and think on a strategy. + +Take a look at the new folder structure. Most of the files have been symlinked +from previous lessons, so if we have to change them at some point, it will be +a better idea to remove the symlink and create a new file. + + +Strategy +-------- + +We will want to do many things with our OS: + +- Handle screen output and keyboard input, for starters +- A tiny, basic `libc` +- Memory management +- Interrupt handling +- Write a filesystem to store files +- Create a very simple shell +- Maybe we will write a simple text editor +- Multiple processes and scheduling + +Probably we will go through them in that order, however it's soon to tell. + +If we feel brave enough: + +- A BASIC interpreter, like in the 70s! +- A GUI +- Networking + + +You may notice that, since this is a tutorial, we haven't yet discussed which kind +of kernel we will write. It will probably be a monolithic one since they are easier +to design and implement, and after all this is our first OS. Maybe in the future +we'll add a lesson "15-b" with a microkernel design. Who knows.