mirror of
https://github.com/cfenollosa/os-tutorial.git
synced 2024-10-27 20:34:19 +00:00
skeleton for lesson 14
This commit is contained in:
parent
9ebbabef39
commit
f1fa21aa63
42
14-checkpoint/README.md
Normal file
42
14-checkpoint/README.md
Normal file
@ -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.
|
Loading…
Reference in New Issue
Block a user