feat: Application manager (#8)

* feat: map text area to kernel memory space, first application_manager
implementation

* feat: start application via application_manager

* feat: terminal, start app by ID

* feat: support CLI args, by applying System V ABI concepts

* refactor: rename terminal to console. Minor cleanup

* docs: README.md
This commit is contained in:
Alexander Neuhäuser
2026-03-27 15:15:49 +01:00
committed by GitHub
parent f33100d36b
commit e712593dae
17 changed files with 357 additions and 91 deletions

View File

@@ -29,7 +29,7 @@ fn test_heap_allocation() {
assert_eq!(actual_alloc_size % MIN_BLOCK_SIZE, 0);
// Verify section is occupied
assert!((*malloc_header).free == false);
assert!(!(*malloc_header).free);
// Verify next header has been created
let next = (*malloc_header).next.unwrap();
@@ -55,7 +55,7 @@ fn test_full_heap() {
let malloc = heap.malloc(malloc_size).unwrap();
let malloc_header = Heap::get_header_ref_from_data_pointer(malloc);
unsafe {
assert_eq!((*malloc_header).free, false);
assert!(!(*malloc_header).free);
assert!((*malloc_header).next.is_none());
}
@@ -79,7 +79,7 @@ fn test_freeing_root() {
let malloc = heap.malloc(malloc_size).unwrap();
let malloc_header = Heap::get_header_ref_from_data_pointer(malloc);
unsafe {
assert_eq!((*malloc_header).free, false);
assert!(!(*malloc_header).free);
assert!((*malloc_header).size >= malloc_size);
assert!((*root_header).next.is_some());

View File

@@ -5,11 +5,12 @@ use core::prelude::rust_2024::derive;
#[derive(Debug)]
pub enum NovaError {
General(&'static str),
Mailbox,
HeapFull,
EmptyHeapSegmentNotAllowed,
Misalignment,
InvalidGranularity,
Paging,
Paging(&'static str),
OutOfMeomory,
}