CellKernel Low-Level Architecture

Սեղմիր շերտերի (layers) վրա՝ ներքին կառուցվածքի մանրամասները տեսնելու համար։

User Space (Ring 3)

Applications & System Utilities

System Calls (INT 0x80 / `syscall`)

CellKernel Core (Ring 0)

Memory Management | Interrupts Handler | Scheduler

Hardware Abstraction Layer (HAL)

Hardware Layer

CPU (x86_64/ARM) | MMU | APIC / PIC

Ճարտարապետության Մոնիտոր

Ընտրիր որևէ շերտ ձախ կողմից՝ CellKernel-ի ներքին մեխանիզմների տեխնիկական նկարագրությունը կարդալու համար։

CellKernel Live Log Monitor

Համակարգային լոգերի սիմուլյատոր։ Գեներացրու տարբեր իրավիճակներ (IRQ հարցումներ, Memory Allocation կամ կրիտիկական Panic)։

[0.000000] Booting AweOS CellKernel via Multiboot2...

[0.002015] CPU0: Intel(R) Core(TM) / AMD x86_64 Architecture detected.

[0.005120] MMU: Paging initialized. CR3 register loaded with Page Directory Base.

[0.008440] IDT: Interrupt Descriptor Table loaded. 256 vectors operational.

Virtual Address Translation Tool (MMU)

Մուտքագրիր 32-բիթանոց հեդսադեցիմալ (Hex) վիրտուալ հասցե՝ տեսնելու, թե ինչպես է CellKernel-ի MMU-ն այն բաժանում Page Directory, Page Table և Byte Offset-ի (4KB էջերի դեպքում)։

Բաղադրիչ Բինար (Binary) Բիթեր Ինդեքս (Dec)
Page Directory Index (Bits 22-31) - -
Page Table Index (Bits 12-21) - -
Page Offset (Bits 0-11) - -

Low-Level Code Snippets & IDT Setup

Rust: Handling Interrupts (IDT Entry)

#[no_mangle]
pub extern "x86-interrupt" fn keyboard_interrupt_handler(
    _stack_frame: InterruptStackFrame
) {
    let mut port = Port::new(0x60); // Read scan code
    let scancode: u8 = unsafe { port.read() };
    
    CellKernel::Interrupts::pic_signal_end(IRQ_KEYBOARD);
}

Assembly: Context Switching (`switch.asm`)

global context_switch
context_switch:
    mov [rdi + 0], rsp    ; Save old stack pointer
    mov rsp, [rsi + 0]    ; Load new stack pointer
    push rbp
    popf                  ; Restore flags register
    ret