Skip to content

Commit

Permalink
stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
Kudzu authored and Kudzu committed Jun 9, 2016
1 parent a1577cc commit 1fc8f61
Showing 1 changed file with 47 additions and 4 deletions.
51 changes: 47 additions & 4 deletions Docs/Kernel/Memory.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,60 @@
# Layout

```
F..F
Stack
Currently only one stack as we don't have threads yet. Stack resides at top of RAM and grows down.
In future each process will have its own stack in DATA. And Stack master section will be eliminated.
....
Data
-Heap
Global heap for all processes since compiler enforces references.
Text
Syslinux Boot Code
Cosmos Boot Code
Kernel
Apps (Monolithic currently)
All sections are fixed in size and are stacked.
-Syslinux Boot Code
-Cosmos Boot Code
-Kernel
-Apps (Monolithic currently, will move to DATA later)
-Legacy GDT
-IDT
-Page Tables
0..0
```

```
MM API
-Allocate new item
-Add/remove ref
-Lock/unlock an item
-Force a compact
Implicit
-Get pointer
Internal
-Compact
-Relocate items
Properties
-Ref count
-Lock status
-Size
Handles
-Use indirect pointers via a lookup table. Handle is ptr to table. Global table to save space.
-No way to compact tables?
-use linked list of tables to allow some compaction?
-Allocate tables to processes so they will go away 100% when process goes way since its not fully shrinkable.
-Keep in data space in future?
-Small tables increase compaction opportunities
-Points to actual data
-Properties are before pointer
-In atomic ops (IL emit groups) - pointer can be grabbed and stored
```

# OLD BELOW THIS POINT

Expand Down

0 comments on commit 1fc8f61

Please sign in to comment.