feat: change font and release greate tty output

This commit is contained in:
Faynot
2026-06-26 22:07:16 +03:00
parent 3f87a93d52
commit b59779ca4a
13 changed files with 183 additions and 139 deletions

View File

@@ -1,12 +1,10 @@
use core::arch::global_asm;
use core::arch::asm;
use crate::mem::vmm::KERNEL_SPACE; // Оставили только один импорт
use crate::mem::vmm::KERNEL_SPACE;
use crate::mem::address::VirtAddr;
// Глобальная статическая таблица дескрипторов прерываний (IDT)
pub static mut IDT: crate::cpu::idt::InterruptDescriptorTable = crate::cpu::idt::InterruptDescriptorTable::new();
// Низкоуровневый ассемблерный трамплин (Context Save & Restore)
global_asm!(
".global page_fault_stub",
"page_fault_stub:",
@@ -80,10 +78,8 @@ pub extern "C" fn rust_page_fault_handler(error_code: u64) {
let present = (error_code & 0x1) != 0;
let virt_addr = VirtAddr(fault_addr);
// 1. Сначала применяем все отложенные отзывы прав из других Actor'ов (чтобы избежать Deadlock)
process_deferred_mmu_events();
// 2. Теперь захватываем VMM для обработки текущего сбоя
let mut vmm_guard = KERNEL_SPACE.lock();
if let Some(space) = vmm_guard.as_mut() {
@@ -91,11 +87,11 @@ pub extern "C" fn rust_page_fault_handler(error_code: u64) {
Ok(_) => return,
Err(e) => {
panic!(
"KERNEL PANIC: Необработанный сбой виртуальной памяти (Page Fault)!\n\
Адрес: {:#X}\n\
Режим: {}\n\
Присутствие: {}\n\
Причина VMM: {:?}",
"KERNEL PANIC: Unprocessed failure of virtual memory (Page Fault)!\n\
Address: {:#X}\n\
Mode: {}\n\
Presence: {}\n\
Cause VMM: {:?}",
fault_addr,
if write { "WRITE" } else { "READ" },
if present { "YES (Protection Violation)" } else { "NO (Not Present)" },
@@ -105,7 +101,7 @@ pub extern "C" fn rust_page_fault_handler(error_code: u64) {
}
} else {
panic!(
"KERNEL PANIC: Критический Page Fault до аллокации глобального KERNEL_SPACE!\n\
"KERNEL PANIC: Critical Page Fault before alocate global KERNEL_SPACE!\n\
Адрес сбоя: {:#X}",
fault_addr
);