Skip to content

Commit e211436

Browse files
committed
Cleanup README.md
1 parent 114d503 commit e211436

File tree

3 files changed

+80
-68
lines changed

3 files changed

+80
-68
lines changed

README.md

Lines changed: 22 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Active and planned work is tracked in [notes.md](notes.md)
77
For current specs see
88

99
- [memory.md](memory.md)
10-
- ~~[boot_stages.md](boot_stages.md)~~
10+
- [boot.md](boot.md)
1111
- ~~[filesystem.md](filesystem.md)~~
1212

1313
## Goals
@@ -18,6 +18,21 @@ The OS will be finished when all of the following are implemented.
1818
2. Compiler for at least Assembly or C
1919
3. Playable Minecraft Clone
2020

21+
The following lists show the planned development stages and planned tasks to
22+
achieve these goals.
23+
24+
### Near Near Term
25+
26+
- [x] Read extended kernel form floppy
27+
- [x] Switch to protected mode
28+
- [x] some stdio.h
29+
- [x] printf
30+
- [x] some string.h
31+
- [x] keyboard driver
32+
- [x] ata driver
33+
- [x] terminal with command parsing
34+
- [x] circular buffer + tests (builtin, needs separating)
35+
2136
### Near Term
2237

2338
- [ ] Kernel stats (stats command returns # disk io, keys, mounts, etc.)
@@ -45,6 +60,9 @@ The OS will be finished when all of the following are implemented.
4560

4661
### Long Term
4762

63+
These tasks will be broken down further after completion of Near Term, when
64+
there is a better foundation and design to work with.
65+
4866
- [ ] Switch to 2d graphics mode
4967
- [x] Virtual memory pages / memory paging
5068
- [ ] Memory permissions (eg. stack can't exec, code can't write)
@@ -57,73 +75,13 @@ The OS will be finished when all of the following are implemented.
5775

5876
### Long Long Term
5977

78+
These tasks will be broken down further after completion of Long Term, when
79+
there is enough support for their development.
80+
6081
- [ ] Graphics card driver (pseudo opengl)
6182
- [ ] Threading / multi-process
6283
- [ ] (Maybe) Multiboot or GRUB?
6384

64-
## Completed
65-
66-
- Read extended kernel form floppy
67-
- Switch to protected mode
68-
- some stdio.h
69-
- printf
70-
- some string.h
71-
- keyboard driver
72-
- ata driver
73-
- terminal with command parsing
74-
- circular buffer + tests (builtin, needs separating)
75-
76-
## Boot Stages
77-
78-
This describes the planned stages and steps, it does not represent the current
79-
implementation or progress.
80-
81-
### BIOS
82-
83-
1. Load boot sector into memory at 0x7c00
84-
85-
### Stage 1
86-
87-
1. Store boot drive id
88-
2. Setup stage 1 stack at 0x06fff
89-
3. Read memory map to 0x500
90-
4. Read stage 2 from boot drive
91-
5. Setup GDT
92-
7. Switch to protected mode
93-
94-
### Stage 2
95-
96-
1. ~~Move boot parameters out of first page~~
97-
1. ~~Set first page to throw error on access to 0~~
98-
2. Setup ISR and IDT
99-
4. Setup Memory Allocator
100-
1. Physical Memory
101-
2. Virtual Memory (paging)
102-
5. Enable Paging
103-
6. Load VGA driver
104-
1. Clear screen
105-
2. Print hello
106-
8. Load ATA driver
107-
1. Mount fs
108-
2. Read kernel into page directory
109-
9. Start kernel
110-
111-
### Stage 3 - OS
112-
113-
1. Load drivers
114-
1. VGA / 2d graphics
115-
2. Keyboard
116-
3. Disk
117-
4. Filesystem
118-
5. etc.
119-
2. Mount os drive / partition? (does this happen in stage 2?)
120-
3. Setup kernel service calls
121-
4. Begin user space applications loop
122-
1. Create page directory
123-
2. Load elf binary
124-
3. Switch to Ring 3
125-
5. Shell
126-
12785
## Setup
12886

12987
```sh

boot.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Boot Stages
2+
3+
This describes the planned stages and steps, it does not represent the current
4+
implementation or progress.
5+
6+
## BIOS
7+
8+
1. Load boot sector into memory at 0x7c00
9+
10+
## Stage 1
11+
12+
1. Store boot drive id
13+
2. Setup stage 1 stack at 0x06fff
14+
3. Read memory map to 0x500
15+
4. Read stage 2 from boot drive
16+
5. Setup GDT
17+
7. Switch to protected mode
18+
19+
## Stage 2
20+
21+
1. ~~Move boot parameters out of first page~~
22+
1. ~~Set first page to throw error on access to 0~~
23+
2. Setup ISR and IDT
24+
4. Setup Memory Allocator
25+
1. Physical Memory
26+
2. Virtual Memory (paging)
27+
5. Enable Paging
28+
6. Load VGA driver
29+
1. Clear screen
30+
2. Print hello
31+
8. Load ATA driver
32+
1. Mount fs
33+
2. Read kernel into page directory
34+
9. Start kernel
35+
36+
## Stage 3 - OS
37+
38+
1. Load drivers
39+
1. VGA / 2d graphics
40+
2. Keyboard
41+
3. Disk
42+
4. Filesystem
43+
5. etc.
44+
2. Mount os drive / partition? (does this happen in stage 2?)
45+
3. Setup kernel service calls
46+
4. Begin user space applications loop
47+
1. Create page directory
48+
2. Load elf binary
49+
3. Switch to Ring 3
50+
5. Shell

notes.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,14 @@ checked off. Use the task template bellow for larger tasks that need some design
55
work or require additional information. Those can be moved under the Completed
66
section once they are finished.
77

8-
- [ ] Add design doc for boot stages and move out of readme
9-
- [ ] Clean up goals in readme
10-
- [ ] Remove completed section (make checked boxes in list)
11-
- [ ] Cleanup Goals term lists
8+
- [ ] Documentation
9+
- [x] Add design doc for boot stages and move out of readme
10+
- [ ] Update boot stages to be more accurate
11+
- [ ] Filesystem documentation
12+
- [ ] Move doc files under design folder
13+
- [ ] Clean up goals in readme
14+
- [ ] Remove completed section (make checked boxes in list)
15+
- [ ] Cleanup Goals term lists
1216
- [ ] mmu
1317
- [ ] free interior pages when malloc free's entire virtual page
1418
- [ ] tar

0 commit comments

Comments
 (0)