From f9be9904fc97c26a388a456f539ae6895f7af631 Mon Sep 17 00:00:00 2001 From: ale Date: Tue, 2 Dec 2025 00:03:46 +0100 Subject: [PATCH] gemini3-pro Signed-off-by: ale --- .cargo/config.toml | 5 ++ Makefile | 2 +- README.md | 5 +- build_and_test.sh | 22 ++++-- clippy.toml | 28 ++++---- iso/boot/grub/grub.cfg | 2 +- iso/boot/rust-kernel | Bin 5496 -> 0 bytes kernel/.cargo/config.toml | 3 +- kernel/Cargo.toml | 4 -- kernel/build.rs | 5 +- kernel/linker.ld | 1 + kernel/src/arch/x86_64/boot.s | 86 +++++++++++++--------- kernel/src/arch/x86_64/boot_entry.s | 44 ------------ kernel/src/arch/x86_64/context.rs | 106 +++++++++++++++++++++------- kernel/src/boot.rs | 35 ++++++--- kernel/src/boot.s | 41 ----------- kernel/src/enhanced_scheduler.rs | 8 ++- kernel/src/lib.rs | 10 ++- kernel/src/main.rs | 98 +++++++++---------------- kernel/src/memory/page.rs | 51 +++++++++---- kernel/src/multiboot.s | 16 ----- kernel/src/process.rs | 37 ++++++++++ kernel/src/scheduler.rs | 58 +++++++++------ kernel/src/time.rs | 33 ++++++++- kernel/src/timer.rs | 7 +- kernel/src/working_task.rs | 16 +++-- rust-kernel.iso | Bin 22337536 -> 0 bytes src/lib.rs | 8 +-- src/main.rs | 13 ++-- 29 files changed, 419 insertions(+), 325 deletions(-) delete mode 100755 iso/boot/rust-kernel delete mode 100644 kernel/src/arch/x86_64/boot_entry.s delete mode 100644 kernel/src/boot.s delete mode 100644 kernel/src/multiboot.s delete mode 100644 rust-kernel.iso diff --git a/.cargo/config.toml b/.cargo/config.toml index 233ff8a..edc59e4 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -3,6 +3,11 @@ target = "x86_64-unknown-none" [target.x86_64-unknown-none] runner = "qemu-system-x86_64 -kernel" +rustflags = [ + "-C", "relocation-model=static", + "-C", "link-arg=-Tkernel/linker.ld", + "-C", "link-arg=-no-pie" +] [unstable] build-std = ["core", "alloc"] diff --git a/Makefile b/Makefile index a485452..e397eb3 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ all: kernel modules drivers # Build the core kernel kernel: @echo "Building Rust kernel ($(ARCH), $(BUILD_TYPE))" - cd kernel && $(CARGO) build $(CARGO_FLAGS) --target x86_64-unknown-none -Z build-std=core,alloc + $(CARGO) build $(CARGO_FLAGS) --bin rust-kernel --target x86_64-unknown-none # Build kernel modules modules: $(RUST_MODULES) diff --git a/README.md b/README.md index a890a7b..09b08a5 100644 --- a/README.md +++ b/README.md @@ -315,8 +315,8 @@ perf counters # Show performance counters - **Memory Mapping**: Support for memory-mapped I/O and files ### Process & Task Management -- **Preemptive Scheduling**: Priority-based with round-robin -- **Context Switching**: Full CPU context preservation +- **Preemptive Scheduling**: Priority-based with round-robin and CFS (Completely Fair Scheduler) +- **Context Switching**: Full CPU context preservation including GPRs, segment registers, and control registers - **Kernel Threads**: Lightweight kernel task execution - **Process States**: Running, ready, waiting, zombie states @@ -360,6 +360,7 @@ perf counters # Show performance counters ### 📋 **Future Enhancements** - [ ] SMP (multi-processor) support +- [ ] ACPI (Advanced Configuration and Power Interface) support - [ ] Advanced file systems (ext2, FAT32) - [ ] Complete TCP/IP networking stack - [ ] Graphics and display support diff --git a/build_and_test.sh b/build_and_test.sh index 8202152..5169540 100755 --- a/build_and_test.sh +++ b/build_and_test.sh @@ -8,6 +8,9 @@ set -e # Exit on any error echo "=== Rust Kernel Build and Test Script ===" echo "Starting comprehensive build and validation..." +# Enable unstable features on stable compiler +export RUSTC_BOOTSTRAP=1 + # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' @@ -84,7 +87,7 @@ fi # Run Clippy lints (if available) print_status "Running Clippy lints..." if command -v cargo-clippy &> /dev/null; then - if RUSTFLAGS="-Awarnings" cargo clippy -- -D warnings > /tmp/clippy.log 2>&1; then + if cargo clippy -- -D warnings > /tmp/clippy.log 2>&1; then print_success "Clippy lints passed" else print_warning "Clippy found issues (continuing with build)" @@ -97,18 +100,18 @@ fi # Build in debug mode print_status "Building kernel in debug mode..." -run_with_status "RUSTFLAGS='-Awarnings' cargo check" "Debug build check" +run_with_status "cargo check" "Debug build check" print_success "Debug build completed successfully" # Build in release mode print_status "Building kernel in release mode..." -run_with_status "RUSTFLAGS='-Awarnings' cargo check --release" "Release build check" +run_with_status "cargo check --release" "Release build check" print_success "Release build completed successfully" # Build with make (if Makefile exists) if [ -f "Makefile" ]; then print_status "Building with Makefile..." - run_with_status "RUSTFLAGS='-Awarnings' make kernel" "Makefile build" + run_with_status "make kernel" "Makefile build" print_success "Makefile build completed successfully" else print_warning "Makefile not found, skipping make build" @@ -125,6 +128,15 @@ if [ -f "target/release/deps/kernel-"*.rlib ]; then print_status "Kernel library size: $KERNEL_SIZE" fi +# Create ISO +print_status "Creating bootable ISO..." +cp target/x86_64-unknown-none/release/rust-kernel iso/boot/rust-kernel +if grub-mkrescue -o rust-kernel.iso iso > /dev/null 2>&1; then + print_success "ISO created: rust-kernel.iso" +else + print_warning "Failed to create ISO (grub-mkrescue not found or failed)" +fi + # Create build report BUILD_REPORT="build_report.txt" print_status "Generating build report..." @@ -198,7 +210,7 @@ print_status "Test suites available: 15+ test categories" echo "" echo "To test the kernel:" -echo " 1. Boot in QEMU: qemu-system-x86_64 -kernel target/release/..." +echo " 1. Boot in QEMU: qemu-system-x86_64 -cdrom rust-kernel.iso" echo " 2. Use shell commands like: 'test run', 'sysinfo', 'health'" echo " 3. Monitor system status with: 'diag', 'perf', 'mem'" diff --git a/clippy.toml b/clippy.toml index ca4ea65..12135de 100644 --- a/clippy.toml +++ b/clippy.toml @@ -1,21 +1,21 @@ # Clippy configuration for kernel development -allow = [ - "clippy::missing_errors_doc", - "clippy::missing_panics_doc", - "clippy::module_name_repetitions", - "clippy::inline_always", - "clippy::must_use_candidate", - "clippy::cast_possible_truncation", - "clippy::cast_sign_loss", - "clippy::cast_possible_wrap", - "clippy::similar_names", - "clippy::too_many_lines", - "clippy::unused_self" -] +# allow = [ +# "clippy::missing_errors_doc", +# "clippy::missing_panics_doc", +# "clippy::module_name_repetitions", +# "clippy::inline_always", +# "clippy::must_use_candidate", +# "clippy::cast_possible_truncation", +# "clippy::cast_sign_loss", +# "clippy::cast_possible_wrap", +# "clippy::similar_names", +# "clippy::too_many_lines", +# "clippy::unused_self" +# ] # Kernel-specific thresholds cognitive-complexity-threshold = 30 too-many-arguments-threshold = 8 type-complexity-threshold = 250 -single-char-lifetime-names-threshold = 4 +# single-char-lifetime-names-threshold = 4 diff --git a/iso/boot/grub/grub.cfg b/iso/boot/grub/grub.cfg index e325b07..db9ac7b 100644 --- a/iso/boot/grub/grub.cfg +++ b/iso/boot/grub/grub.cfg @@ -2,6 +2,6 @@ set timeout=0 set default=0 menuentry "Rust Kernel" { - multiboot /boot/rust-kernel + multiboot2 /boot/rust-kernel boot } diff --git a/iso/boot/rust-kernel b/iso/boot/rust-kernel deleted file mode 100755 index 13573e8d8c81067c3a1929bcfb20f07560cf1737..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5496 zcmeHL-D(p-6rQBDRNISG5ky7yLLo&m+0ABuA|h!`#A0HgL~O5?&1N=<&F;!(Q_PjG zAov2lfZ(MM^W&%s5j!>EF|BV@0_z|=F6E}ocGPvvwSYMM&MZ^Pe=|I z9P40zy?#N~iOpl`WQ$x~#9k4u0{YQN@eF9hi#UvzC>4+jNCl(NZ?(is06(`gfyl4Y_h7LJ_-j6ogvnzU)J@haoNBjo=y@^Ic4!=6oraL?HW}};b<^S z#xtepnYLb4bwgDuYQ-q2W=XSmNoy3Iu=tVEYBe}dHEJovvNvSjNiid>y`hCM>ezmd-8@>d@IoHYedDguz zi2MdQ%AE5)r*{^=SUQK=`Ze3POWt5g zRnmUd>K^QOI$h^^bFa}nBn~7vEbJ4far|8fc(|I6}2!Qd2#7}@;ia~*tbQ PDP + movl $boot_pdp, %eax + orl $0b11, %eax # present + writable + movl %eax, boot_pml4 - # PD table entry - movl $boot_page_table, %eax - orl $0b11, %eax # present + writable - movl %eax, boot_page_directory_table + # Map PDP[0] -> PD + movl $boot_pd, %eax + orl $0b11, %eax # present + writable + movl %eax, boot_pdp - # Page table entries (identity map first 2MB) - movl $boot_page_table, %edi - movl $0, %ebx - movl $512, %ecx + # Map PD[0..511] -> 2MB Pages (Identity map 0-1GB) + movl $boot_pd, %edi + movl $0, %ebx # Physical address + movl $512, %ecx # 512 entries -.map_page_table: +.map_pd_loop: movl %ebx, %eax - shll $12, %eax # multiply by 4096 (page size) - orl $0b11, %eax # present + writable + orl $0b10000011, %eax # present + writable + huge (2MB) movl %eax, (%edi) - addl $8, %edi - incl %ebx - loop .map_page_table + addl $8, %edi # Next entry + addl $0x200000, %ebx # Next 2MB + loop .map_pd_loop ret @@ -228,6 +244,10 @@ print_string: ret no_multiboot: + # DEBUG: Print 'M' to serial port COM1 + mov $0x3f8, %dx + mov $'M', %al + out %al, %dx movl $no_multiboot_msg, %esi call print_string_32 jmp halt32 @@ -272,3 +292,5 @@ no_cpuid_msg: no_long_mode_msg: .asciz "ERROR: Long mode not supported" + + diff --git a/kernel/src/arch/x86_64/boot_entry.s b/kernel/src/arch/x86_64/boot_entry.s deleted file mode 100644 index 2e625dd..0000000 --- a/kernel/src/arch/x86_64/boot_entry.s +++ /dev/null @@ -1,44 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 -# Kernel entry point - multiboot compliant - -.section .multiboot -.align 4 - -# Multiboot header -multiboot_header: - .long 0x1BADB002 # Magic number - .long 0x00000003 # Flags (align modules on page boundaries + memory info) - .long -(0x1BADB002 + 0x00000003) # Checksum - -.section .bss -.align 16 -stack_bottom: - .skip 16384 # 16 KB stack -stack_top: - -.section .text -.global _start -.type _start, @function - -_start: - # Set up the stack - mov $stack_top, %esp - - # Reset EFLAGS - pushl $0 - popf - - # Push multiboot parameters - pushl %ebx # Multiboot info structure - pushl %eax # Multiboot magic number - - # Call the kernel main function - call kernel_main_multiboot - - # If kernel returns (shouldn't happen), hang - cli -hang: - hlt - jmp hang - -.size _start, . - _start diff --git a/kernel/src/arch/x86_64/context.rs b/kernel/src/arch/x86_64/context.rs index 826c1de..e598579 100644 --- a/kernel/src/arch/x86_64/context.rs +++ b/kernel/src/arch/x86_64/context.rs @@ -166,32 +166,88 @@ impl Context { /// Restore CPU context and switch to it pub unsafe fn restore(&self) -> ! { - // For now, implement a simplified version that doesn't cause register pressure - // TODO: Implement full context switching with proper register restoration - - // Restore page table - asm!("mov cr3, {}", in(reg) self.cr3); - - // Set up a minimal context switch by jumping to the target RIP - // This is a simplified version - a full implementation would restore all - // registers + // Restore context using the pointer to self (passed in rdi) asm!( - "mov rsp, {}", - "push {}", // CS for iretq - "push {}", // RIP for iretq - "pushfq", // Push current flags - "pop rax", - "or rax, 0x200", // Enable interrupts - "push rax", // RFLAGS for iretq - "push {}", // CS again - "push {}", // RIP again - "iretq", - in(reg) self.rsp, - in(reg) self.cs as u64, - in(reg) self.rip, - in(reg) self.cs as u64, - in(reg) self.rip, - options(noreturn) + // Restore CR3 (Page Table) + "mov rax, [rdi + 144]", + "mov cr3, rax", + + // Switch stack to the target stack + "mov rsp, [rdi + 56]", + + // Construct interrupt stack frame for iretq + // Stack layout: SS, RSP, RFLAGS, CS, RIP + + // SS + "movzx rax, word ptr [rdi + 162]", + "push rax", + + // RSP (target stack pointer) + "mov rax, [rdi + 56]", + "push rax", + + // RFLAGS + "mov rax, [rdi + 136]", + "push rax", + + // CS + "movzx rax, word ptr [rdi + 152]", + "push rax", + + // RIP + "mov rax, [rdi + 128]", + "push rax", + + // Push General Purpose Registers onto the new stack + // We push them in reverse order of popping + "push qword ptr [rdi + 0]", // rax + "push qword ptr [rdi + 8]", // rbx + "push qword ptr [rdi + 16]", // rcx + "push qword ptr [rdi + 24]", // rdx + "push qword ptr [rdi + 32]", // rsi + "push qword ptr [rdi + 40]", // rdi + "push qword ptr [rdi + 48]", // rbp + // rsp is handled by stack switch + "push qword ptr [rdi + 64]", // r8 + "push qword ptr [rdi + 72]", // r9 + "push qword ptr [rdi + 80]", // r10 + "push qword ptr [rdi + 88]", // r11 + "push qword ptr [rdi + 96]", // r12 + "push qword ptr [rdi + 104]", // r13 + "push qword ptr [rdi + 112]", // r14 + "push qword ptr [rdi + 120]", // r15 + + // Restore Segment Registers + "mov ax, [rdi + 154]", // ds + "mov ds, ax", + "mov ax, [rdi + 156]", // es + "mov es, ax", + "mov ax, [rdi + 158]", // fs + "mov fs, ax", + "mov ax, [rdi + 160]", // gs + "mov gs, ax", + + // Pop General Purpose Registers + "pop r15", + "pop r14", + "pop r13", + "pop r12", + "pop r11", + "pop r10", + "pop r9", + "pop r8", + "pop rbp", + "pop rdi", // This restores the target rdi + "pop rsi", + "pop rdx", + "pop rcx", + "pop rbx", + "pop rax", + + // Return from interrupt (restores RIP, CS, RFLAGS, RSP, SS) + "iretq", + in("rdi") self, + options(noreturn) ); } } diff --git a/kernel/src/boot.rs b/kernel/src/boot.rs index a761851..efc7917 100644 --- a/kernel/src/boot.rs +++ b/kernel/src/boot.rs @@ -74,7 +74,9 @@ pub fn get_boot_info() -> &'static BootInfo { /// Update boot information pub unsafe fn update_boot_info(f: F) -where F: FnOnce(&mut BootInfo) { +where + F: FnOnce(&mut BootInfo), +{ f(&mut BOOT_INFO); } @@ -114,7 +116,8 @@ pub mod multiboot { pub struct BootMemoryInfo { pub total_memory: u64, pub available_memory: u64, - pub memory_regions: alloc::vec::Vec, + pub memory_regions: [MemoryMapEntry; 32], + pub region_count: usize, } impl BootMemoryInfo { @@ -122,7 +125,13 @@ pub mod multiboot { Self { total_memory: 0, available_memory: 0, - memory_regions: alloc::vec::Vec::new(), + memory_regions: [MemoryMapEntry { + base_addr: 0, + length: 0, + type_: 0, + reserved: 0, + }; 32], + region_count: 0, } } @@ -131,17 +140,20 @@ pub mod multiboot { self.available_memory += entry.length; } self.total_memory += entry.length; - self.memory_regions.push(entry); + if self.region_count < 32 { + self.memory_regions[self.region_count] = entry; + self.region_count += 1; + } } } /// Parse multiboot2 information and initialize memory management pub fn init_memory_from_multiboot(multiboot_addr: usize) -> Result<()> { - info!("Parsing multiboot information at 0x{:x}", multiboot_addr); + crate::println!("Parsing multiboot information at 0x{:x}", multiboot_addr); let multiboot_info = unsafe { &*(multiboot_addr as *const MultibootInfo) }; - info!("Multiboot info size: {} bytes", multiboot_info.total_size); + crate::println!("Multiboot info size: {} bytes", multiboot_info.total_size); // Parse memory map from multiboot info let mut memory_info = BootMemoryInfo::new(); @@ -166,12 +178,13 @@ pub mod multiboot { } // Initialize page allocator with available memory - for region in &memory_info.memory_regions { + for i in 0..memory_info.region_count { + let region = &memory_info.memory_regions[i]; if region.type_ == memory_type::AVAILABLE { let start_pfn = region.base_addr / 4096; let end_pfn = (region.base_addr + region.length) / 4096; - info!( + crate::println!( "Adding memory region: 0x{:x}-0x{:x}", region.base_addr, region.base_addr + region.length @@ -185,9 +198,9 @@ pub mod multiboot { } } - info!("Memory initialization from multiboot completed"); - info!("Total memory: {} bytes", memory_info.total_memory); - info!("Available memory: {} bytes", memory_info.available_memory); + crate::println!("Memory initialization from multiboot completed"); + crate::println!("Total memory: {} bytes", memory_info.total_memory); + crate::println!("Available memory: {} bytes", memory_info.available_memory); Ok(()) } diff --git a/kernel/src/boot.s b/kernel/src/boot.s deleted file mode 100644 index b3e48d0..0000000 --- a/kernel/src/boot.s +++ /dev/null @@ -1,41 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0 -# Multiboot header and boot code - -.code32 - -.section .multiboot_header, "a" -.align 4 - -# Multiboot header -multiboot_header_start: - .long 0x1BADB002 # magic number (multiboot 1) - .long 0x00000000 # flags - .long -(0x1BADB002 + 0x00000000) # checksum (must sum to zero) -multiboot_header_end: - -.section .text -.global _start -.type _start, @function - -_start: - # Disable interrupts - cli - - # Set up a basic stack (16KB) - mov $stack_top, %esp - mov $stack_top, %ebp - - # Call Rust main function - call rust_main - - # If rust_main returns, halt -halt_loop: - hlt - jmp halt_loop - -# Reserve stack space -.section .bss -.align 16 -stack_bottom: - .skip 16384 # 16KB stack -stack_top: diff --git a/kernel/src/enhanced_scheduler.rs b/kernel/src/enhanced_scheduler.rs index abf9bc5..83a21ee 100644 --- a/kernel/src/enhanced_scheduler.rs +++ b/kernel/src/enhanced_scheduler.rs @@ -462,7 +462,9 @@ static ENHANCED_SCHEDULER: Spinlock> = Spinlock::new(N /// Helper to get scheduler reference safely fn with_scheduler(f: F) -> Option -where F: FnOnce(&mut EnhancedScheduler) -> T { +where + F: FnOnce(&mut EnhancedScheduler) -> T, +{ let mut scheduler_option = ENHANCED_SCHEDULER.lock(); if let Some(ref mut scheduler) = *scheduler_option { Some(f(scheduler)) @@ -473,7 +475,9 @@ where F: FnOnce(&mut EnhancedScheduler) -> T { /// Helper to get read-only scheduler reference safely fn with_scheduler_read(f: F) -> Option -where F: FnOnce(&EnhancedScheduler) -> T { +where + F: FnOnce(&EnhancedScheduler) -> T, +{ let scheduler_option = ENHANCED_SCHEDULER.lock(); if let Some(ref scheduler) = *scheduler_option { Some(f(scheduler)) diff --git a/kernel/src/lib.rs b/kernel/src/lib.rs index f3013fd..d72b399 100644 --- a/kernel/src/lib.rs +++ b/kernel/src/lib.rs @@ -18,6 +18,10 @@ extern crate alloc; +// Include boot assembly +// #[cfg(target_arch = "x86_64")] +// global_asm!(include_str!("arch/x86_64/boot.s"), options(att_syntax)); + pub mod arch; pub mod benchmark; // Performance benchmarking pub mod boot; @@ -94,7 +98,7 @@ pub extern "C" fn kernel_main() -> ! { #[no_mangle] pub extern "C" fn kernel_main_multiboot(multiboot_magic: u32, multiboot_addr: u32) -> ! { // Verify multiboot magic number - if multiboot_magic != 0x36d76289 { + if multiboot_magic != 0x36d76289 && multiboot_magic != 0x2BADB002 { panic!("Invalid multiboot magic: 0x{:x}", multiboot_magic); } @@ -113,8 +117,8 @@ fn early_kernel_init() { loop {} } - info!("Rust Kernel v{} starting...", VERSION); - info!("Early kernel initialization"); + crate::println!("Rust Kernel v{} starting...", VERSION); + crate::println!("Early kernel initialization"); } /// Initialize memory management using multiboot information diff --git a/kernel/src/main.rs b/kernel/src/main.rs index d00fb30..c99913b 100644 --- a/kernel/src/main.rs +++ b/kernel/src/main.rs @@ -5,83 +5,51 @@ #![no_std] #![no_main] +extern crate kernel; + +use core::arch::global_asm; + +// Include boot assembly +#[cfg(target_arch = "x86_64")] +global_asm!(include_str!("arch/x86_64/boot.s"), options(att_syntax)); + +use core::panic::PanicInfo; + /// Multiboot1 header - placed at the very beginning #[repr(C)] #[repr(packed)] struct MultibootHeader { - magic: u32, - flags: u32, - checksum: u32, + magic: u32, + flags: u32, + checksum: u32, } /// Multiboot header must be in the first 8KB and be 4-byte aligned -#[link_section = ".multiboot_header"] -#[no_mangle] -#[used] -static MULTIBOOT_HEADER: MultibootHeader = MultibootHeader { - magic: 0x1BADB002, - flags: 0x00000000, - checksum: 0u32.wrapping_sub(0x1BADB002u32.wrapping_add(0x00000000)), -}; +// #[link_section = ".multiboot_header"] +// #[no_mangle] +// #[used] +// static MULTIBOOT_HEADER: MultibootHeader = MultibootHeader { +// magic: 0x1BADB002, +// flags: 0x00000000, +// checksum: 0u32.wrapping_sub(0x1BADB002u32.wrapping_add(0x00000000)), +// }; /// Entry point called by boot.s assembly code +/// This is just a wrapper to ensure the kernel crate is linked #[no_mangle] pub extern "C" fn rust_main() -> ! { - kernel_main() + // This function shouldn't be called directly if boot.s calls kernel_main_multiboot + // But if it is called, we redirect to the kernel library + loop { + unsafe { + core::arch::asm!("hlt"); + } + } } -/// Main kernel function -fn kernel_main() -> ! { - // Start with the simplest possible approach - unsafe { - let vga_buffer = 0xb8000 as *mut u16; - - // Clear screen - for i in 0..80*25 { - *vga_buffer.offset(i) = 0x0f20; // White space on black background - } - - // Display kernel info - let messages = [ - "Rust Kernel v1.0 - Successfully Booted!", - "", - "Available commands:", - " help - Show this help", - " version - Show kernel version", - " clear - Clear screen", - " reboot - Restart system", - "", - "rustos> ", - ]; - - let mut row = 0; - for message in &messages { - let mut col = 0; - for byte in message.bytes() { - if col < 80 { - let vga_entry = (0x0f00 | byte as u16); // White text on black background - *vga_buffer.offset((row * 80 + col) as isize) = vga_entry; - col += 1; - } - } - row += 1; - } - } - - // Simple command loop (just display, no real interaction yet) - loop { - unsafe { - core::arch::asm!("hlt"); - } - } -} +// Panic handler is defined in the kernel library -/// Panic handler - required for no_std -#[panic_handler] -fn panic(_info: &core::panic::PanicInfo) -> ! { - loop { - unsafe { - core::arch::asm!("hlt"); - } - } +#[no_mangle] +pub extern "C" fn _start() -> ! { + loop {} } diff --git a/kernel/src/memory/page.rs b/kernel/src/memory/page.rs index ee1b0de..a2288d3 100644 --- a/kernel/src/memory/page.rs +++ b/kernel/src/memory/page.rs @@ -2,7 +2,6 @@ //! Page frame allocator -use alloc::collections::BTreeSet; use core::sync::atomic::{AtomicU32, Ordering}; use crate::error::{Error, Result}; @@ -98,34 +97,57 @@ pub static PAGE_ALLOCATOR: Spinlock = Spinlock::new(PageAllocator /// Page allocator implementation pub struct PageAllocator { - free_pages: BTreeSet, + free_list_head: Option, total_pages: usize, allocated_pages: usize, + free_count: usize, } impl PageAllocator { pub const fn new() -> Self { Self { - free_pages: BTreeSet::new(), + free_list_head: None, total_pages: 0, allocated_pages: 0, + free_count: 0, } } /// Add a range of pages to the free list pub fn add_free_range(&mut self, start: Pfn, count: usize) { for i in 0..count { - self.free_pages.insert(Pfn(start.0 + i)); + let pfn = Pfn(start.0 + i); + let phys_addr = PhysAddr(pfn.0 * 4096); + + // Store current head in the new page + // We can write to phys_addr because it's identity mapped + unsafe { + let ptr = phys_addr.0 as *mut u64; + *ptr = self.free_list_head.map(|a| a.0 as u64).unwrap_or(0); + } + + // Update head + self.free_list_head = Some(phys_addr); } self.total_pages += count; + self.free_count += count; } /// Allocate a single page fn alloc_page(&mut self) -> Result { - if let Some(pfn) = self.free_pages.iter().next().copied() { - self.free_pages.remove(&pfn); + if let Some(head_addr) = self.free_list_head { + // Read next ptr from head + let next_addr_u64 = unsafe { *(head_addr.0 as *const u64) }; + + self.free_list_head = if next_addr_u64 == 0 { + None + } else { + Some(PhysAddr(next_addr_u64 as usize)) + }; + self.allocated_pages += 1; - Ok(pfn) + self.free_count -= 1; + Ok(Pfn(head_addr.0 / 4096)) } else { Err(Error::OutOfMemory) } @@ -133,18 +155,19 @@ impl PageAllocator { /// Free a single page fn free_page(&mut self, pfn: Pfn) { - if self.free_pages.insert(pfn) { - self.allocated_pages -= 1; + let phys_addr = PhysAddr(pfn.0 * 4096); + unsafe { + let ptr = phys_addr.0 as *mut u64; + *ptr = self.free_list_head.map(|a| a.0 as u64).unwrap_or(0); } + self.free_list_head = Some(phys_addr); + self.allocated_pages -= 1; + self.free_count += 1; } /// Get statistics fn stats(&self) -> (usize, usize, usize) { - ( - self.total_pages, - self.allocated_pages, - self.free_pages.len(), - ) + (self.total_pages, self.allocated_pages, self.free_count) } } diff --git a/kernel/src/multiboot.s b/kernel/src/multiboot.s deleted file mode 100644 index 819e7b4..0000000 --- a/kernel/src/multiboot.s +++ /dev/null @@ -1,16 +0,0 @@ -.section .multiboot_header -.align 4 - -.long 0x1BADB002 /* magic */ -.long 0x00000000 /* flags */ -.long -(0x1BADB002 + 0x00000000) /* checksum */ - -.section .text -.global _start -_start: - /* Call Rust main function */ - call rust_main - - /* If rust_main returns, halt */ -1: hlt - jmp 1b diff --git a/kernel/src/process.rs b/kernel/src/process.rs index 93f415e..35c284e 100644 --- a/kernel/src/process.rs +++ b/kernel/src/process.rs @@ -251,6 +251,29 @@ impl ProcessTable { } None } + + pub fn find_two_threads_mut( + &mut self, + tid1: Tid, + tid2: Tid, + ) -> (Option<&mut Thread>, Option<&mut Thread>) { + if tid1 == tid2 { + let t = self.find_thread_mut(tid1); + return (t, None); + } + + // This is a bit inefficient but safe + // We can't easily return two mutable references to the same structure + // But since they are in different processes or different threads, they are distinct memory locations. + // We can use unsafe to cheat the borrow checker, knowing that tid1 != tid2. + + let ptr = self as *mut ProcessTable; + unsafe { + let t1 = (*ptr).find_thread_mut(tid1); + let t2 = (*ptr).find_thread_mut(tid2); + (t1, t2) + } + } } /// Allocate a new PID @@ -279,6 +302,20 @@ pub fn create_process(name: String, uid: Uid, gid: Gid) -> Result { Ok(pid) } +/// Add a thread to the kernel process (PID 0) +pub fn add_kernel_thread(tid: Tid, context: Context, stack_pointer: VirtAddr) -> Result<()> { + let mut table = PROCESS_TABLE.lock(); + if let Some(process) = table.get_process_mut(Pid(0)) { + let mut thread = Thread::new(tid, Pid(0), 0); + thread.context = context; + thread.stack_pointer = stack_pointer; + process.add_thread(thread); + Ok(()) + } else { + Err(Error::NotFound) + } +} + /// Get current process PID pub fn current_process_pid() -> Option { let table = PROCESS_TABLE.lock(); diff --git a/kernel/src/scheduler.rs b/kernel/src/scheduler.rs index 39ca736..a15de09 100644 --- a/kernel/src/scheduler.rs +++ b/kernel/src/scheduler.rs @@ -458,32 +458,39 @@ impl Scheduler { if let Some(current_tid) = self.current { if current_tid != tid { // Look up current and next threads - let process_table = PROCESS_TABLE.lock(); - if let (Some(current_thread), Some(next_thread)) = ( - process_table.find_thread(current_tid), - process_table.find_thread(tid), - ) { - // Update scheduler state - self.current = Some(tid); - self.nr_switches += 1; + // We need to use a scope to ensure the lock is dropped before switching + let (current_ctx_ptr, next_ctx_ptr) = { + let mut process_table = PROCESS_TABLE.lock(); - // Drop the lock before context switch to avoid deadlock - drop(process_table); + let (current_thread, next_thread) = process_table + .find_two_threads_mut(current_tid, tid); - // TODO: Implement actual context switch - // This would involve: - // 1. Saving current thread's context - // 2. Loading next thread's context - // 3. Switching page tables if different processes - // 4. Updating stack pointer and instruction pointer + let current_ptr = if let Some(t) = current_thread { + &mut t.context as *mut Context + } else { + return; // Current thread not found? + }; - crate::info!( - "Context switch from TID {} to TID {}", - current_tid.0, - tid.0 - ); - return; + let next_ptr = if let Some(t) = next_thread { + &t.context as *const Context + } else { + return; // Next thread not found + }; + + (current_ptr, next_ptr) + }; + + // Update scheduler state + self.current = Some(tid); + self.nr_switches += 1; + + // Perform the context switch + // SAFETY: We have valid pointers to the contexts and we've dropped the lock + unsafe { + switch_context(&mut *current_ctx_ptr, &*next_ctx_ptr); } + + return; } } @@ -654,3 +661,10 @@ pub fn scheduler_tick() { } } } + +/// Perform a manual context switch to a specific task +/// This is used by the enhanced scheduler to execute its scheduling decisions +pub fn context_switch_to(tid: Tid) { + let mut scheduler = SCHEDULER.lock(); + scheduler.switch_to(tid); +} diff --git a/kernel/src/time.rs b/kernel/src/time.rs index 685d083..151dd21 100644 --- a/kernel/src/time.rs +++ b/kernel/src/time.rs @@ -403,8 +403,37 @@ impl TimerWheel { } pub fn add_timer(&mut self, timer: HrTimer) { - // TODO: Add timer to appropriate level based on expiry time - let level = 0; // Simplified + let now_ns = get_time_ns(); + let expires_ns = timer.expires.to_ns(); + + // If already expired or expires very soon, put in level 0 + if expires_ns <= now_ns { + self.levels[0].push(timer); + return; + } + + let delta_ns = expires_ns - now_ns; + let delta_jiffies = delta_ns / NSEC_PER_JIFFY; + + // Determine level based on delta + // Level 0: Immediate to ~256ms + // Level 1: ~256ms to ~16s + // Level 2: ~16s to ~17m + // Level 3: ~17m to ~18h + // Level 4+: Far future + let level = if delta_jiffies < 256 { + 0 + } else if delta_jiffies < 256 * 64 { + 1 + } else if delta_jiffies < 256 * 64 * 64 { + 2 + } else if delta_jiffies < 256 * 64 * 64 * 64 { + 3 + } else { + 4 + }; + + let level = core::cmp::min(level, 7); self.levels[level].push(timer); } diff --git a/kernel/src/timer.rs b/kernel/src/timer.rs index 8e055b9..6f7e066 100644 --- a/kernel/src/timer.rs +++ b/kernel/src/timer.rs @@ -93,9 +93,10 @@ impl TimerState { let mut stats = self.stats.lock(); stats.context_switches += 1; - // TODO: Actual context switching would happen here - // This would involve saving current CPU state and - // restoring the state of the next task + // Perform actual context switch + // This will save current CPU state and restore the state of the next task + crate::scheduler::context_switch_to(next_tid); + crate::info!( "Context switch: {:?} -> {:?}", current_tid, diff --git a/kernel/src/working_task.rs b/kernel/src/working_task.rs index bc231f1..4d72da2 100644 --- a/kernel/src/working_task.rs +++ b/kernel/src/working_task.rs @@ -50,8 +50,8 @@ impl Task { function: TaskFunction, stack_size: usize, ) -> Result { - static NEXT_TID: AtomicU32 = AtomicU32::new(1); - let tid = Tid(NEXT_TID.fetch_add(1, Ordering::Relaxed)); + // Use process subsystem to allocate TID to ensure uniqueness + let tid = crate::process::allocate_tid(); // Allocate stack let stack_ptr = kmalloc::kmalloc(stack_size)?; @@ -156,10 +156,18 @@ impl TaskManager { function: TaskFunction, stack_size: usize, ) -> Result { - let task = Task::new_kernel_task(name, function, stack_size)?; + let task = Task::new_kernel_task(name.clone(), function, stack_size)?; let tid = task.tid; - self.tasks.lock().push(task); + // Add to local task list + self.tasks.lock().push(task.clone()); + + // Add to PROCESS_TABLE so the low-level scheduler can find it + crate::process::add_kernel_thread( + tid, + task.context, + crate::memory::VirtAddr::new(task.context.rsp as usize), + )?; // Add to enhanced scheduler crate::enhanced_scheduler::add_task( diff --git a/rust-kernel.iso b/rust-kernel.iso deleted file mode 100644 index 6ba27dd36daf0e0a2566211969b9bae69f61869c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22337536 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

I1A<|1s@u5Y8D-`4mW(@K9p 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�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 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0;r|6%W5;A}g~ z!f@}IGxwP@C*(%B9S$MJa1SAg0V9Nqh=_=Ym?9;R8wup*$;pM3(ts4LMT!)WQbeRk zk)}wMQfkpsi%Km;v=pf#Qkzn0DIy|&N-6%|cklhq{?_b$4l+AGv#`(3Z_YcD{q1kB z^{j7ww{;^xfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly 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

F5b~H^f}hbX)U=lBn2S^u36j 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