212 Commits

Author SHA1 Message Date
8fac92474a Update readme for publishing 2019-06-30 09:38:57 +02:00
f78cb6fbe9 DOC - CH10 More WIP 2018-09-11 14:36:24 +02:00
6749a63145 DOC - CH10 WIP 2018-03-29 19:36:33 +02:00
7648358078 A bit of ACPI code cleanup 2018-03-29 19:36:33 +02:00
9d9515c399 Read and save data from MADT 2018-03-29 19:36:33 +02:00
f0e6a35941 Find and read ACPI tables 2018-03-29 19:36:33 +02:00
20ae7d56b3 TODO - Distribute those changes earlier 2018-03-29 19:36:33 +02:00
80aad418fc Cleanup and commenting 2018-03-29 19:36:33 +02:00
cce444f546 Reference cpu specific information via gs segment 2018-03-29 19:36:33 +02:00
01ff25eefb Collect cpu specific information at one place 2018-03-29 19:36:33 +02:00
18481604f9 Chapter 13: Process Memory Management - NOTHING 2018-03-29 19:36:33 +02:00
4c4e7136cc Handle pagefaults caused by running of the stack 2018-03-29 19:36:33 +02:00
28c82567a0 Process page fault handler 2018-03-29 19:36:33 +02:00
4ecec1eec6 Stupidly simple process memory manager with brk() 2018-03-29 19:36:33 +02:00
19d58ec71d Functions for copying stuff between kernel and user space 2018-03-29 19:36:33 +02:00
ace36fe919 Chapter 12: User Mode 2018-03-29 19:36:33 +02:00
42baf14321 A bit of cleanup 2018-03-29 19:36:33 +02:00
68ec6fa575 Running in user mode 2018-03-29 19:36:32 +02:00
6c078289f9 Load TSS 2018-03-29 19:36:32 +02:00
132645c0e6 Reload GDT from c 2018-03-29 19:36:32 +02:00
04f2123499 Move BootGDT definition to C 2018-03-29 19:36:32 +02:00
3508b182b7 Chapter 11: Processes 2018-03-29 19:36:32 +02:00
e868b83f50 At this point the threads are really processes... 2018-03-29 19:36:32 +02:00
6523b10984 Threads have isolated memory spaces 2018-03-29 19:36:32 +02:00
2d0f539e23 Create and load new page directories 2018-03-29 19:36:32 +02:00
d483d8f39e Global variables are overwritten... let's fix that 2018-03-29 19:36:32 +02:00
2de7e537ea Chapter 10: Threading 2018-03-29 19:36:32 +02:00
a39fdcf3ce Adding a scheduler function and cleanup 2018-03-29 19:36:32 +02:00
b5f5a40fbc Further queue improvements 2018-03-21 23:12:43 +01:00
e5da45df2f Queue improvements 2018-03-21 23:12:43 +01:00
8af18644a3 Interface cleanup 2018-03-21 23:12:43 +01:00
024d772be8 Queues using some macro magic 2018-03-21 23:12:43 +01:00
fd0ca6f617 Rename some stuff - cleanup 2018-03-21 23:12:43 +01:00
13946b1758 Pass around tcbs instead of thread stacks 2018-03-21 23:12:43 +01:00
1fca5af522 Change interface for getting and setting current thread 2018-03-21 23:12:43 +01:00
c26434f814 Some threading code cleanup 2018-03-21 23:12:43 +01:00
251b5f71c9 Simple scheduler 2018-03-21 23:12:43 +01:00
1e2f81a5d8 Very simple threading and context switching. 2018-03-21 23:12:43 +01:00
63ae2a0b9d Chapter 9: Memory Management - COMPLETE 2018-03-21 23:12:43 +01:00
fc6c7f3bc7 VMM -- Interface cleanup 2018-03-21 09:21:40 +01:00
4011b5f12f VMM -- Use a simple uint64 for page table entries 2018-03-20 15:41:27 +01:00
cb09833ebc VMM -- Know what? Let's ignore huge pages for simplicity 2018-03-20 14:11:22 +01:00
ae2de799f3 VMM -- Various cleanup 2018-03-20 14:11:22 +01:00
e86857dca4 PMM -- simplification of code 2018-03-20 14:11:22 +01:00
9bc1abceff VMM -- Touch and set page in one operation 2018-03-20 14:11:22 +01:00
df0df93da7 Don't put multiboot data in page stack 2018-03-20 14:11:22 +01:00
36c517dd82 Use a direct address for P4 rather than a pointer 2018-03-20 14:11:22 +01:00
8711fee390 Interface cleanup 2018-03-20 14:11:22 +01:00
9a479b1132 Add a PAGE_GLOBAL flag for kernel pages 2018-03-20 14:11:22 +01:00
470eb5e9f9 Also map non-free memory areas into kernel space 2018-03-20 14:11:22 +01:00