|
2 | 2 |
|
3 | 3 | ## High-Level Components |
4 | 4 |
|
5 | | -``` |
6 | | -┌─────────────────────────────────────────────────────────────┐ |
7 | | -│ Boot Loader │ |
8 | | -│ (GRUB → kernel.asm) │ |
9 | | -└──────────────────────────┬──────────────────────────────────┘ |
10 | | - │ |
11 | | -┌──────────────────────────▼──────────────────────────────────┐ |
12 | | -│ Kernel │ |
13 | | -│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │ |
14 | | -│ │ Scheduler │ │ Memory Mgmt│ │ Interrupt Handling │ │ |
15 | | -│ │ (Isolate) │ │ (def/GC) │ │ (IDT, PIC, APIC) │ │ |
16 | | -│ └─────────────┘ └─────────────┘ └─────────────────────┘ │ |
17 | | -└──────────────────────────┬──────────────────────────────────┘ |
18 | | - │ |
19 | | -┌──────────────────────────▼──────────────────────────────────┐ |
20 | | -│ VmImpl (JVM) │ |
21 | | -│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │ |
22 | | -│ │ Classloader│ │ JIT Compiler│ │ VM Magic / Unsafe │ │ |
23 | | -│ │ (Plugin) │ │ (L1a/L1b/L2)│ │ (VMMagic annos) │ │ |
24 | | -│ └─────────────┘ └─────────────┘ └─────────────────────┘ │ |
25 | | -└──────────────────────────┬──────────────────────────────────┘ |
26 | | - │ |
27 | | -┌──────────────────────────▼──────────────────────────────────┐ |
28 | | -│ Plugin System │ |
29 | | -│ PluginDescriptor → PluginManager → Extension Points │ |
30 | | -└──────────────────────────┬──────────────────────────────────┘ |
31 | | - │ |
32 | | - ┌──────────────────┼──────────────────┐ |
33 | | - ▼ ▼ ▼ |
34 | | -┌───────────────┐ ┌───────────────┐ ┌───────────────┐ |
35 | | -│ Core Services│ │ Drivers │ │ Filesystems │ |
36 | | -│ (Naming, │ │ (PCI, USB, │ │ (Ext2, FAT, │ |
37 | | -│ Security, │ │ IDE, Net, │ │ ISO9660, │ |
38 | | -│ Logging) │ │ Video) │ │ NFS, NTFS) │ |
39 | | -└───────────────┘ └───────────────┘ └───────────────┘ |
40 | | - │ │ │ |
41 | | - ▼ ▼ ▼ |
42 | | -┌───────────────┐ ┌───────────────┐ ┌───────────────┐ |
43 | | -│ Network Stack│ │ Shell │ │ GUI/AWT │ |
44 | | -│ (IPv4, TCP, │ │ (Commands, │ │ (Video, │ |
45 | | -│ UDP, DNS) │ │ Aliases, │ │ Input, │ |
46 | | -│ │ │ Plugins) │ │ Thinlet) │ |
47 | | -└───────────────┘ └───────────────┘ └───────────────┘ |
| 5 | +```mermaid |
| 6 | +graph TD |
| 7 | + subgraph Boot ("Boot") |
| 8 | + BL["Boot Loader (GRUB → kernel.asm)"] |
| 9 | + end |
| 10 | + subgraph Kernel ("Kernel") |
| 11 | + direction TB |
| 12 | + KSched["Scheduler (Isolate)"] |
| 13 | + KMem["Memory Mgmt (def/GC)"] |
| 14 | + KIntr["Interrupt Handling (IDT, PIC, APIC)"] |
| 15 | + KSched --> KMem --> KIntr |
| 16 | + end |
| 17 | + subgraph VM ("VmImpl (JVM)") |
| 18 | + VMLoader["Classloader (Plugin)"] |
| 19 | + VMJIT["JIT Compiler (L1a/L1b/L2)"] |
| 20 | + VMSafe["VM Magic / Unsafe (VMMagic annos)"] |
| 21 | + end |
| 22 | + PS["Plugin System<br/>PluginDescriptor → PluginManager → Extension Points"] |
| 23 | + CS["Core Services<br/>Naming, Security, Logging"] |
| 24 | + DRV["Drivers<br/>PCI, USB, IDE, Net, Video"] |
| 25 | + FS["Filesystems<br/>Ext2, FAT, ISO9660, NFS, NTFS"] |
| 26 | + NS["Network Stack<br/>IPv4, TCP, UDP, DNS"] |
| 27 | + SH["Shell<br/>Commands, Aliases, Plugins"] |
| 28 | + GUI["GUI / AWT<br/>Video, Input, Thinlet"] |
| 29 | +
|
| 30 | + BL --> Kernel |
| 31 | + Kernel --> VM |
| 32 | + VM --> PS |
| 33 | + PS ==> CS |
| 34 | + PS ==> DRV |
| 35 | + PS ==> FS |
| 36 | + CS --> NS |
| 37 | + CS --> SH |
| 38 | + CS --> GUI |
| 39 | +
|
| 40 | + linkStyle 0 stroke:#999 |
| 41 | + classDef box fill:#f4f4f4,stroke:#999,stroke-width:1px |
| 42 | + class BL,KSched,KMem,KIntr,VMLoader,VMJIT,VMSafe,PS,CS,DRV,FS,NS,SH,GUI box |
48 | 43 | ``` |
49 | 44 |
|
50 | 45 | ## Key Design Principles |
|
0 commit comments