Commit graph

  • e2aad55a8a Only dump bootloader modules once. Drew Galbraith 2023-06-06 15:04:34 -07:00
  • a092a57483 Begin defining the process/thread api Drew Galbraith 2023-06-06 15:01:31 -07:00
  • e3661e7848 Add LICENSE and README Drew Galbraith 2023-05-31 00:03:44 -07:00
  • 69b5cd001f Add a skeleton framework for capabilities. Drew Galbraith 2023-05-30 23:55:42 -07:00
  • 09b8136ef9 Fix formatting on panic Drew Galbraith 2023-05-30 23:52:50 -07:00
  • 69c73a9386 Add a qemu mode that dumps interrupt info. Drew Galbraith 2023-05-30 23:22:52 -07:00
  • 9e3df0ccd0 Add pid/tid to all log messages Drew Galbraith 2023-05-30 23:22:29 -07:00
  • 2eefda6114 add a class to allocate and manage user space stacks Drew Galbraith 2023-05-30 22:35:57 -07:00
  • 1db93e5b12 Move PML4 initialization into the VirtualMemory class. Drew Galbraith 2023-05-30 21:39:19 -07:00
  • f22dd66c8d Manage KernelStacks separately rather than just allocing bytes. Drew Galbraith 2023-05-30 21:27:20 -07:00
  • 3c3341a90f Add a process spawn syscall and use it to start a proc. Drew Galbraith 2023-05-30 20:55:03 -07:00
  • 5bcf1f4e4a Add a second process to be loaded by the bootloader. Drew Galbraith 2023-05-30 20:54:37 -07:00
  • b9b45c5e45 Add the ability to copy memory to non resident process. Drew Galbraith 2023-05-30 01:27:47 -07:00
  • f6609983d2 Move away from using recursive mapping for page tables. Drew Galbraith 2023-05-30 01:06:01 -07:00
  • c6921b5459 Add validity check in shared ptr Drew Galbraith 2023-05-30 01:05:50 -07:00
  • de49dcc01a Move scheduler to new global class format. Drew Galbraith 2023-05-29 23:48:32 -07:00
  • 7fe6c24aa5 Add a ProcessManager class to store Process objects. Drew Galbraith 2023-05-29 23:35:44 -07:00
  • b58186265e Split Yield and Preempt into separate scheduling functions. Drew Galbraith 2023-05-29 23:09:39 -07:00
  • 3fee5ac9d7 Rework scheduler to store the current thread separately. Drew Galbraith 2023-05-29 22:54:22 -07:00
  • 656687b183 Schedule on PIC timer raise. Drew Galbraith 2023-05-29 22:32:50 -07:00
  • 496dfeaef9 Update the timer to a more reasonable time slice of 50ms Drew Galbraith 2023-05-29 22:17:56 -07:00
  • 9869d1022a Mask all interrupts on the master PIC except the timer. Drew Galbraith 2023-05-29 22:07:47 -07:00
  • a949055bce Flesh out the GP Fault hanlder slightly. Drew Galbraith 2023-05-29 22:01:06 -07:00
  • 629dca278b Enable the PIC and add a timer. Drew Galbraith 2023-05-29 21:52:01 -07:00
  • 80d2bf1aaa Move Processes and Threads to be stored in SharedPtr Drew Galbraith 2023-05-29 15:50:38 -07:00
  • 9f3ffbf5b4 Move Process to storing Threads in a linked list. Drew Galbraith 2023-05-29 15:08:02 -07:00
  • 5cab9f843e Move process list to a linked list. Drew Galbraith 2023-05-29 14:59:23 -07:00
  • 71196dc90f Move scheduler threads to a linked list implementation. Drew Galbraith 2023-05-29 14:32:49 -07:00
  • a06c9dced4 Add thread and process states. Drew Galbraith 2023-05-29 13:51:00 -07:00
  • 8d87791fa2 Differentiate syscall handler by number. Drew Galbraith 2023-05-29 13:06:43 -07:00
  • 6f5b65de30 Map user pages in the proper mode. Drew Galbraith 2023-05-29 13:02:13 -07:00
  • 7184f527a0 Jump to user mode. Drew Galbraith 2023-05-29 12:44:26 -07:00
  • aefb4f082b Add a kernel ELF module and load it in a new process. Drew Galbraith 2023-05-29 00:32:54 -07:00
  • f86bbe6ea9 Wireframe for syscalls in place Drew Galbraith 2023-05-18 16:03:09 -07:00
  • d3024211a7 Cycle through multiple tasks in multiple processes Drew Galbraith 2023-05-18 13:56:54 -07:00
  • 7a3b4d2d42 Add true page fault handler. Drew Galbraith 2023-05-18 13:56:09 -07:00
  • 0d275c72a1 Have processes enqueue their own threads Drew Galbraith 2023-05-18 13:28:22 -07:00
  • cb41953354 Scheduler with working threads. Drew Galbraith 2023-05-18 13:24:02 -07:00
  • 960cbf9519 Add Scheduler wireframe. Drew Galbraith 2023-05-18 12:43:53 -07:00
  • de2c96b848 Internal many paging_util functions. Drew Galbraith 2023-05-18 11:40:13 -07:00
  • fa2bb4df89 Added a PhysicalMemoryManager class. Drew Galbraith 2023-05-18 11:34:45 -07:00
  • 4380590af2 Add new and delete operator implementations to the kernel heap. Drew Galbraith 2023-05-18 11:29:44 -07:00
  • 2d719d0443 Add a bootstrap physical memory manager. Drew Galbraith 2023-05-18 11:00:05 -07:00
  • 747c2a4e17 Add a page fault handler Drew Galbraith 2023-05-18 10:43:45 -07:00
  • 0b7e667368 Add a basic kernel heap object. Drew Galbraith 2023-05-18 09:46:41 -07:00
  • 45b5817a36 Recursively map the PML4 Drew Galbraith 2023-05-18 01:18:51 -07:00
  • b3f8cb9003 Dump the memory map from limine. Drew Galbraith 2023-05-18 01:16:53 -07:00
  • 9fc1aa15ef Add an interrupt descriptor table. Drew Galbraith 2023-05-17 22:54:37 -07:00
  • 3e1a1f7485 Add a qemu debug option and gdb init file. Drew Galbraith 2023-05-17 22:46:19 -07:00
  • 03fe4d8c2e Load our own GDT. Drew Galbraith 2023-05-17 21:41:08 -07:00
  • 872e6f3392 Add a debug output utility. Drew Galbraith 2023-05-17 20:42:59 -07:00
  • c2af2eee97 Add compile_commands.json to .gitignore Drew Galbraith 2023-05-17 20:42:21 -07:00
  • 559d00e872 Add a clang format spec Drew Galbraith 2023-05-17 20:30:15 -07:00
  • 91b52f1872 Move IO Port Function to a separate file Drew Galbraith 2023-05-17 20:26:51 -07:00
  • a164d9d67c Boot directly into AcadiaOS Drew Galbraith 2023-05-17 20:26:20 -07:00
  • e9705f7579 Barebones Kernel Commit Drew Galbraith 2023-05-17 20:20:53 -07:00