Releases: anton-mel/WeensyOS
Releases · anton-mel/WeensyOS
WeensyOS v.1.0 - Initial Release
WeensyOS in Rust v.1.0
WeensyOS is an experimental operating system written in Rust designed for x86-64 CPUs that provides easy memory display. This release includes core functionality based on the rust-osdev/bootloader, with plans to fully replaced it in the next release.
Physical Memory Display
- Memory Representation: Each character represents 4 KiB (4096 bytes) of memory, corresponding to one page. The total physical memory size is 2 MiB.
- Processes: Four processes (1 through 4) run concurrently, compiled from the same source code but using different memory regions.
- Memory Allocation: Processes use the
sys_page_alloc()
system call to allocate additional heap space, one page at a time, until no more memory is available. Each process's heap starts above its code and global data, extending to just below its stack. - Allocation Rates: The processes allocate memory at different rates:
- Process 1: Baseline rate.
- Process 2: Twice as fast as Process 1.
- Process 3: Three times faster than Process 1.
- Process 4: Four times faster than Process 1.
- Display: The physical memory display shows how quickly the heap space is allocated for each process with marching rows of numbers indicating allocation rates.
- Memory Allocation: Processes use the
Virtual Memory Display
- Display Cycling: The virtual memory display cycles through the address spaces of the four processes.
- Initially, all processes share the same address space.
- Unmapped Addresses: Blank spaces in the display indicate unmapped addresses. Accessing these addresses triggers a page fault.
- Address Identification: Each character in the virtual memory display represents the owner of the corresponding physical page.
- Identity Mapping: Initially, virtual addresses map directly to physical addresses (e.g.,
syscall_page_alloc()
demonstrates this mapping). - Access Indication: In the virtual memory display, characters in reverse video (inverted colors) signify that the corresponding address is accessible by an application process. Reverse video means the text and background colors are swapped.
- Initial Access: By default, any process can modify all physical memory, including kernel memory, indicating that memory isolation is not yet enforced.