docs: fix ASCII logo alignment in terminal window card and enhance Architecture Overview with topology matrix

This commit is contained in:
RarDog
2026-09-02 21:34:07 +03:00
parent 7cae3b55a6
commit 6842a93007
+91 -46
View File
@@ -2,23 +2,6 @@
<div align="center">
```text
___ root@opencoreC
/ \ -----------------
| (o) | ___ OS: opencoreC Microkernel x86_64
| | / \ Kernel: v0.1.0-release (Rust #![no_std])
\ ___ / | (o) | Uptime: 42 mins, 12 secs
\___/ Shell: osh (opencore shell 1.0)
[=== opencoreC ===] Display: 1280x800 @ 60Hz 32bpp (Linear FB)
x86_64 SMP DE / WM: LVGL v8.3 Windows/KDE Compositor
Ring 3 Userspace CPU: QEMU Virtual CPU (4 Cores SMP)
Fast-Path IPC Cap Memory: 38 MiB / 509 MiB (7%)
Network: Realtek RTL8139 (10.0.2.15)
ACPI: S5 Poweroff, Reset, MADT 4 Cores
Security: Ring 3 Signal Fault Isolation (SIGSEGV)
Entropy: Hardware RNG (RDRAND / TSC)
```
[![Architecture](https://img.shields.io/badge/Architecture-x86__64%20(Long%20Mode)-007acc?style=for-the-badge&logo=cpu)]()
[![Kernel](https://img.shields.io/badge/Kernel-Rust%20%23!%5Bno__std%5D-dea584?style=for-the-badge&logo=rust)]()
[![User Space](https://img.shields.io/badge/User%20Space-C%2B%2B20%20%26%20C11-00599c?style=for-the-badge&logo=c%2B%2B)]()
@@ -30,11 +13,38 @@
<p align="center">
<b>A state-of-the-art, capability-based microkernel operating system written in Rust and modern C++20.</b><br>
Designed from scratch for x86_64 long mode, featuring SMP multi-core affinity, an LVGL-powered desktop compositor, hardware ACPI power management, hardware random generation, and fault-tolerant process signal isolation.
Built from scratch for x86_64 long mode, featuring SMP multi-core affinity, an LVGL-powered desktop compositor, hardware ACPI power management, hardware random generation, and fault-tolerant process signal isolation.
</p>
</div>
```text
╭─────────────────────────────────────────────────────────────────────────────────────────────╮
│ ● ● ● root@opencoreC: ~ (osh) │
├─────────────────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ___ root@opencoreC │
│ / \ ----------------- │
│ | (o) | ___ OS: opencoreC Microkernel x86_64 │
│ | | / \ Kernel: v0.1.0-release (Rust #![no_std]) │
│ \ ___ / | (o) | Uptime: 42 mins, 12 secs │
│ \___/ Shell: osh (opencore shell 1.0) │
│ [=== opencoreC ===] Display: 1280x800 @ 60Hz 32bpp (Linear FB) │
│ x86_64 SMP DE / WM: LVGL v8.3 Windows/KDE Compositor │
│ Ring 3 Userspace CPU: QEMU Virtual CPU (4 Cores SMP) │
│ Fast-Path IPC Cap Memory: 38 MiB / 509 MiB (7%) │
│ Network: Realtek RTL8139 (10.0.2.15) │
│ ACPI: S5 Poweroff, Reset, MADT 4 Cores │
│ Security: Ring 3 Signal Fault Isolation (SIGSEGV) │
│ Entropy: Hardware RNG (RDRAND / TSC) │
│ │
│ ███ ███ ███ ███ ███ ███ ███ ███ │
│ │
│ ┌──(root@opencoreC)-[~] │
│ └─# fastfetch │
╰─────────────────────────────────────────────────────────────────────────────────────────────╯
```
---
## 🚀 Key Highlights & Subsystems
@@ -90,36 +100,71 @@
## 🏛️ Architecture Overview
The system strictly enforces **Principle of Least Privilege (PoLP)**: only memory translation and fast-path IPC primitives reside in Ring 0, while everything else executes in isolated Ring 3 address spaces.
### 🌐 Multi-Core Topology & Subsystem Isolation
```text
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ HARDWARE LAYER (x86_64 Long Mode) │
│ │
│ [CPU 0: Bootstrap] [CPU 1: AP 1] [CPU 2: AP 2] [CPU 3: AP 3] │
│ ├── PIT 8254 Timer └── Linear Framebuffer └── PS/2 Input Buffer ├── PCI RTL8139 │
│ ├── Local APIC/IOAPIC (1280x800@32bpp) (Keyboard + Mouse) └── 16550 UART │
│ └── ACPI PM / RNG │
└──────────────────────────────────────────────┬──────────────────────────────────────────────┘
│
Interrupts & MSRs
▼
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ RING 0: RUST MICROKERNEL (#![no_std]) │
│ │
│ ┌──────────────────────┐ ┌──────────────────────┐ ┌───────────────────────────────────┐ │
│ │ Memory Subsystem │ │ Multi-Core Scheduler │ │ Fast-Path Rendezvous IPC │ │
│ │ ├── 4-Level PML4 VMM│ │ ├── Core Affinity │ │ ├── Register Fast-Path (32B) │ │
│ │ └── Bitmap PFA │ │ └── Quantum Switch │ │ └── Capability Token Access │ │
│ └──────────────────────┘ └──────────────────────┘ └───────────────────────────────────┘ │
│ ┌──────────────────────┐ ┌──────────────────────┐ ┌───────────────────────────────────┐ │
│ │ Signal Interceptor │ │ Hardware ACPI Driver │ │ Hardware Entropy Generator │ │
│ │ ├── SIGSEGV / SIGILL│ │ ├── RSDP / MADT / S5│ │ ├── RDRAND / RDSEED │ │
│ │ └── Thread Recovery │ │ └── 8042 Power Reset│ │ └── High-Entropy PRNG Stirring │ │
│ └──────────────────────┘ └──────────────────────┘ └───────────────────────────────────┘ │
└──────────────────────────────────────────────┬──────────────────────────────────────────────┘
│
Isolated Page Tables (CR3)
▼
┌─────────────────────────────────────────────────────────────────────────────────────────────┐
│ RING 3: USERSPACE ECOSYSTEM │
│ │
│ [Core 1 Dedicated] [Core 2 Dedicated] [Core 3 Dedicated] [Core 3 Service] │
│ gui_server sh init_server / procmgr uart_driver │
│ ├── LVGL Compositor ├── osh Interactive ├── System Lifecycle └── 16550 Serial │
│ ├── Windows/KDE Shell ├── Fastfetch Engine ├── Process Spawner Rendezvous │
│ └── HW Mouse Cursor └── Command Suite └── Cap Table Registry Listen Loop │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
```
### ⚡ Detailed Component Communication
```mermaid
graph TD
subgraph Hardware [Physical & Virtual Hardware]
CPU["x86_64 SMP (4 Cores)"]
FB["Linear Framebuffer (1280x800@32bpp)"]
NIC["PCI Realtek RTL8139 Fast Ethernet"]
PS2["PS/2 Keyboard & Mouse"]
ACPI_HW["ACPI FADT / MADT / PM1a"]
RNG_HW["Hardware RNG (RDRAND/RDSEED)"]
end
sequenceDiagram
autonumber
actor User as PS/2 Mouse & Keyboard
participant IRQ as HW Interrupts (Core 0)
participant Kernel as Rust Microkernel (Ring 0)
participant GUI as gui_server (Core 1)
participant Shell as sh Terminal (Core 2)
participant Net as RTL8139 NIC (Core 3)
subgraph Ring0 [Rust Microkernel - Ring 0]
SCHED["SMP Scheduler (Core Affinity & Quantum)"]
VMM["4-Level Paging (PML4) & VMM"]
PFA["Physical Frame Allocator (Bitmap)"]
IPC["Fast-Path Rendezvous & Capability IPC"]
SIG["Signal Dispatcher (SIGSEGV/SIGILL/SIGFPE)"]
DMESG["Kernel Circular Log Ring Buffer"]
end
subgraph Ring3 [Isolated User Space - Ring 3]
GUI["gui_server (LVGL Desktop Compositor) [Core 1]"]
SH["sh (Interactive UNIX Terminal Shell) [Core 2]"]
INIT["init_server (System Root Server) [Core 3]"]
UART["uart_driver (16550 Serial Driver) [Core 3]"]
PROC["procmgr (Process & Server Manager) [Core 3]"]
end
Hardware <--> Ring0
Ring0 <--> Ring3
User->>IRQ: Mouse Move / Keypress Event
IRQ->>Kernel: Hardware Interrupt Vector 33 / 44
Kernel->>GUI: Syscall 21: SYS_MOUSE_GET (x, y, buttons)
GUI->>GUI: Direct Framebuffer Raster Blit (60 FPS)
User->>Shell: Keypress: "ping 10.0.2.2"
Shell->>Kernel: Syscall 1: SYS_IPC_CALL (RTL8139 Endpoint)
Kernel->>Net: Synchronous Rendezvous IPC (Op: TX_PACKET)
Net->>Kernel: Syscall 20: SYS_DMA_ALLOC (Physical Ring Buffer)
Net-->>User: ICMP Echo Reply Packet Received!
```
---