mirror of
https://github.com/cfenollosa/os-tutorial.git
synced 2024-10-27 20:34:19 +00:00
updated readme
This commit is contained in:
parent
cdddc184b2
commit
f67abb437d
40
README.md
40
README.md
@ -1,9 +1,9 @@
|
||||
os-tutorial
|
||||
===========
|
||||
|
||||
How to create an OS from scratch
|
||||
How to create an OS from scratch!
|
||||
|
||||
I have always wanted to learn how to make an OS from scratch. In college they taught us
|
||||
I have always wanted to learn how to make an OS from scratch. In college I was taught
|
||||
how to implement advanced features (pagination, semaphores, memory management, etc)
|
||||
but:
|
||||
|
||||
@ -14,40 +14,34 @@ Inspired by [this document](http://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/l
|
||||
and the [OSDev wiki](http://wiki.osdev.org/), I'll try to make short step-by-step READMEs and
|
||||
code samples for anybody to follow.
|
||||
|
||||
**The tutorial will be updated about every week, at the same pace that I learn the concepts**
|
||||
|
||||
I will not explain the theory. Google is your friend.
|
||||
Theory is already covered by thousands of PDFs from Universities
|
||||
and the Wikipedia. The material assumes that you are comfortable
|
||||
with low level computing.
|
||||
Features
|
||||
--------
|
||||
|
||||
This course is a code tutorial, not a real CS lecture.
|
||||
To make up for the lack of theory, the "lessons" are tiny
|
||||
and may take 5-15 minutes to complete. Each new concept
|
||||
is presented on a new lecture.
|
||||
- This course is a code tutorial aimed at people who are comfortable with low level computing.
|
||||
- There is little theory. Yes, this is a feature. Google is your theory lecturer.
|
||||
- The lessons are tiny and may take 5-15 minutes to complete. This is the only way to learn. Grabbing a whole
|
||||
OS, even if small like Minix or TempleOS, is too overwhelming.
|
||||
- New lessons will be added about every week, at the same pace that I learn the concept
|
||||
|
||||
|
||||
How to use this tutorial
|
||||
------------------------
|
||||
|
||||
First, go through every folder in order. They build on previous code, so if
|
||||
1. Start with the first folder and go down in order. They build on previous code, so if
|
||||
you jump right to folder 08, you may find a lot of stuff which is not related
|
||||
to what folder 08 is about.
|
||||
|
||||
To see the increments between "lessons", do a diff between folders.
|
||||
|
||||
Each lesson README starts with the concepts you should be familiar with
|
||||
2. Read each README first. Especially the first line, which details the concepts you should be familiar with
|
||||
before reading the code.
|
||||
|
||||
Second, for each folder, read the README. It is **very concise**. The only theory
|
||||
is the required to understand the code.
|
||||
Then, look at the code examples. You can try to write them by
|
||||
yourself on a different folder, modify them slightly and play a bit with the
|
||||
code, you know, the usual.
|
||||
3. Read the README. It is **very concise**. The only theory is the required to understand the code and there
|
||||
are tips on what to look at when you open the code file(s)
|
||||
|
||||
4. Look at the code examples. Some times you may be able to write them yourself just from the hints on the README.
|
||||
|
||||
5. Experiment with them and try to break things. Try to change pointers and registers and see what happens. You know, the usual.
|
||||
|
||||
Finally, the code files provided in each folder are the final result. If
|
||||
you want to learn quickly (though not as thoroughly), just read the
|
||||
provided code files.
|
||||
|
||||
TL;DR: First read the README on each folder, then decide if you will
|
||||
implement it yourself or just read the provided code files.
|
||||
|
Loading…
Reference in New Issue
Block a user