d6ba336b83
Add a libcxx with a new operator
dcc05f2741
Add a libc skeleton with a primitive malloc.
eb04242a59
Add a debug mode for the KernelHeap.
40b21d9c75
[Mammoth] Add Channel object for simple IPC messages
65439c163a
Compile sys libraries without exceptions.
3243b6024b
Update init bg script to inclue AR
a5c4d40575
Refactor error types and error reporting
81b925eea0
Add a basic IPC setup with Channel Object.
b79ec07636
Return Z_OK on all syscall paths
55340e2917
Make Capability RefCounted
6c10c57bfa
Mass rename memory object variables.
a8a4f8d9ab
Add checks to mammoth thread lib
e246f28d9c
Get the second process elf from a MemoryObject instead of hardcoding.
eb454300e6
Move elf loader into the init loader in the kernel
23895b5c6c
Spawn Processes using memory primitives rather than and elf loader.
b06c76e477
Create a MemoryObject class and use it to load programs.
1fda0f3fae
Move VirtualMemory to AddressSpace Object
b5ad454ad1
Move Process & Thread to the object folder.
4e278a4664
Make a KernelObject base class for all Capabilities.
d358c1d672
Move process be to RefCounted
2e1357255c
Create a RefCounted type and use it for Thread.
d9b17d96d7
Cleanup Thread constructor
174d4b10fb
Move threading calls into a basic user space library.
b0c2a6732b
Always create threads in CREATED state.
ef8eb5d993
Add a threading syscall API.
e2aad55a8a
Only dump bootloader modules once.
a092a57483
Begin defining the process/thread api
69b5cd001f
Add a skeleton framework for capabilities.
09b8136ef9
Fix formatting on panic
69c73a9386
Add a qemu mode that dumps interrupt info.
9e3df0ccd0
Add pid/tid to all log messages
2eefda6114
add a class to allocate and manage user space stacks
1db93e5b12
Move PML4 initialization into the VirtualMemory class.
f22dd66c8d
Manage KernelStacks separately rather than just allocing bytes.
3c3341a90f
Add a process spawn syscall and use it to start a proc.
5bcf1f4e4a
Add a second process to be loaded by the bootloader.
b9b45c5e45
Add the ability to copy memory to non resident process.
f6609983d2
Move away from using recursive mapping for page tables.
c6921b5459
Add validity check in shared ptr
de49dcc01a
Move scheduler to new global class format.
7fe6c24aa5
Add a ProcessManager class to store Process objects.
b58186265e
Split Yield and Preempt into separate scheduling functions.
3fee5ac9d7
Rework scheduler to store the current thread separately.
656687b183
Schedule on PIC timer raise.
496dfeaef9
Update the timer to a more reasonable time slice of 50ms
9869d1022a
Mask all interrupts on the master PIC except the timer.
80d2bf1aaa
Move Processes and Threads to be stored in SharedPtr
9f3ffbf5b4
Move Process to storing Threads in a linked list.
5cab9f843e
Move process list to a linked list.
71196dc90f
Move scheduler threads to a linked list implementation.
8d87791fa2
Differentiate syscall handler by number.
6f5b65de30
Map user pages in the proper mode.
7184f527a0
Jump to user mode.
aefb4f082b
Add a kernel ELF module and load it in a new process.
f86bbe6ea9
Wireframe for syscalls in place
d3024211a7
Cycle through multiple tasks in multiple processes
7a3b4d2d42
Add true page fault handler.
0d275c72a1
Have processes enqueue their own threads
cb41953354
Scheduler with working threads.
960cbf9519
Add Scheduler wireframe.
de2c96b848
Internal many paging_util functions.
fa2bb4df89
Added a PhysicalMemoryManager class.
4380590af2
Add new and delete operator implementations to the kernel heap.