Docker run command now uses volumes to host rxinu source code on container
IDT now uses lazy_static ! instead of static mut, making the idt::init function more safe
GDT now uses spin::Once instead of static mut, making the gdt::init function safe
GDT now has User Code and User Data segments
Major refactoring of interrupts and memory modules to reduce code duplication between i686 and x86_64 targets
Modules that had too many 32/64 bit differences were converted into a directory with differences pooled into bits32 and bits64 modules.
Example: mapper.rs with many conditional compilation flags was converted into mapper/mod.rs with mapper/bits32.rs and mapper/bits64 modules.
type aliases were used liberally to abstract underlying structs
Example: pub type ExceptionStack = ExceptionStack32; in exception/bits32.rs vs pub type ExceptionStack = ExceptionStack64; in exception/bits64.rs
Mapper was converted to a trait. This was done to abstract the PageDirectory mapping code in mapper/bits32.rs from the PageMapLevel4 mapping code in mapper/bits64.rs
Note: This change will facilitate #28 because a separate PageMapLevel4 mapper can be implemented in mappers/bits32.rs
Resolves #18 and #19
Major Changes
rxinu
source code on containerlazy_static !
instead ofstatic mut
, making theidt::init
function more safespin::Once
instead ofstatic mut
, making thegdt::init
function safeinterrupts
andmemory
modules to reduce code duplication between i686 and x86_64 targetsbits32
andbits64
modules.mapper.rs
with many conditional compilation flags was converted intomapper/mod.rs
withmapper/bits32.rs
andmapper/bits64
modules.type
aliases were used liberally to abstract underlying structspub type ExceptionStack = ExceptionStack32;
inexception/bits32.rs
vspub type ExceptionStack = ExceptionStack64;
inexception/bits64.rs
Mapper
was converted to a trait. This was done to abstract thePageDirectory
mapping code inmapper/bits32.rs
from thePageMapLevel4
mapping code inmapper/bits64.rs
PageMapLevel4
mapper can be implemented inmappers/bits32.rs