Սեղմիր շերտերի (layers) վրա՝ ներքին կառուցվածքի մանրամասները տեսնելու համար։
Applications & System Utilities
Memory Management | Interrupts Handler | Scheduler
CPU (x86_64/ARM) | MMU | APIC / PIC
Ընտրիր որևէ շերտ ձախ կողմից՝ CellKernel-ի ներքին մեխանիզմների տեխնիկական նկարագրությունը կարդալու համար։
Համակարգային լոգերի սիմուլյատոր։ Գեներացրու տարբեր իրավիճակներ (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.
Մուտքագրիր 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) | - | - |
#[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);
}
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