Commit Graph

  • d41f4b5f05
    Update LICENSE main Gabriel 2025-03-20 19:54:03 +01:00
  • ed69833361 core+init+system: Add basic IPC Gabriel 2025-03-20 18:52:29 +01:00
  • e699eb4cfa system: Split heap blocks more or less equally if possible Gabriel 2025-03-07 20:08:56 +01:00
  • f41ad7e747 system+init+memory: Add basic IPC code Gabriel 2025-03-07 18:00:00 +01:00
  • f7ed375e8e system: Add a heap allocator for system processes Gabriel 2025-03-07 17:58:23 +01:00
  • 0bd80c93a2 system/x86_64: Add PAGE_SIZE to the vm file to be used by everyone Gabriel 2025-03-07 17:54:35 +01:00
  • 02762336a0 core+system: Add a "getAddressSpace()" system call Gabriel 2025-03-05 19:11:49 +01:00
  • b5327891d8 core+system+boot: Move all boot modules into the astryon/ subfolder and add that to .gitignore Gabriel 2025-02-24 21:48:28 +01:00
  • 6390785c4b system: Add a memory manager stub Gabriel 2025-02-24 19:19:09 +01:00
  • 23334004a5 init: Calculate the number of threads loaded Gabriel 2025-02-24 19:18:51 +01:00
  • 0b32214f0e core+system: Make the getPriority() and setPriority() syscalls accept a PID Gabriel 2025-02-24 19:18:24 +01:00
  • c5876768c5 core: Reserve kernel physical pages + provide our own stack Gabriel 2025-02-24 19:16:35 +01:00
  • d3231f1362 init: Use getThreadId() instead of relying on a fixed PID Gabriel 2025-02-22 23:01:48 +01:00
  • aad9b8119b system+init: Move userspace virtual memory code to the system library Gabriel 2025-02-22 23:01:32 +01:00
  • 55ddc468d5 core: Reserve multiboot tags and module memory + load all modules as independent threads instead of just init Gabriel 2025-02-22 23:00:53 +01:00
  • e52b0bcf77 core+system: Add a bunch of syscalls related to thread creation Gabriel 2025-02-22 22:58:56 +01:00
  • 30c0f23ff0 core: Allow for non-const pointers in findMultibootTags() Gabriel 2025-02-22 22:57:33 +01:00
  • 5dac18ad8b system: Fix syscall return value constraint Gabriel 2025-02-22 22:57:10 +01:00
  • 8fd1eac5a8 system: Add comments to indicate which syscalls need which tokens Gabriel 2025-02-22 20:13:17 +01:00
  • c24bc8ed27 core: Add "tokens" to determine what processes can call which syscalls Gabriel 2025-02-22 20:11:07 +01:00
  • 6fa70693a5 core: Remove excessive ELF debug printing Gabriel 2025-02-22 15:52:36 +01:00
  • 5f9514627b core+init: Instead of exporting an "arch" symbol for platform-specific code, use "usingnamespace". Gabriel 2025-02-22 15:48:41 +01:00
  • 6acf83692f core+init: Move syscall code from init to the system library + add a setEventQueue() syscall Gabriel 2025-02-22 15:41:11 +01:00
  • fb8de7b83b core: Add an "event queue" to threads using a ring buffer updated by the kernel Gabriel 2025-02-22 15:39:21 +01:00
  • 960699c984 core: Fix alignment in lookupThreadById() Gabriel 2025-02-22 15:38:23 +01:00
  • 4d8c3856d4 core+system: Add a new "system library" with a shared memory ring buffer implementation Gabriel 2025-02-22 15:37:22 +01:00
  • 76ad9a7926 readme: Correct link to easyboot's LICENSE file Gabriel 2025-02-21 20:35:32 +01:00
  • dcdca3522f Update README.md Gabriel 2025-02-21 19:49:03 +01:00
  • 9f91ade838 core: Separate thread.arch from other imports Gabriel 2025-02-21 19:44:54 +01:00
  • d858700da4 core: Add a struct named "platform.Registers" to cover different architectures Gabriel 2025-02-21 19:40:46 +01:00
  • 52cb29dbca core: Add documentation to all scheduler functions + global thread list Gabriel 2025-02-21 19:37:13 +01:00
  • 8156ff57fe core: Check the stack is in user memory before changing it to kernel space Gabriel 2025-02-21 18:47:24 +01:00
  • 785335bd9a core: Make thread.enterTask() automatically set the thread state to Running Gabriel 2025-02-21 18:40:29 +01:00
  • 14047e0c3c core: Change naming for virtual memory structures to reflect x86_64 terms Gabriel 2025-02-21 18:33:36 +01:00
  • 43bb21af0b init: Fix a few errors Gabriel 2025-02-20 23:01:56 +01:00
  • 930f69c498 core: Don't set the second thread argument to zero Gabriel 2025-02-20 23:01:28 +01:00
  • 240d9afe0e init: Add basic virtual memory code Gabriel 2025-02-20 18:05:11 +01:00
  • a8b206cac3 core: Add some annotations to managed thread variables Gabriel 2025-02-20 17:59:27 +01:00
  • 34255d6c68 core: Give init a pointer to its own page tables Gabriel 2025-02-20 17:57:50 +01:00
  • e9b2f5968a core/x86_64: Fix function naming style Gabriel 2025-02-20 17:55:56 +01:00
  • 08c1e0bca2 core: Make some functions in thread.zig private Gabriel 2025-02-18 20:10:14 +01:00
  • b87150a35f core: Add sleep support to the scheduler Gabriel 2025-02-18 20:06:40 +01:00
  • 8f6c952331 core: Set new threads' priority to 127 Gabriel 2025-02-18 19:30:46 +01:00
  • 9cbb043238 core/x86_64: Make in/out wrappers inline Gabriel 2025-02-17 23:04:58 +01:00
  • 13445bac1f core: Fix a small error in thread.zig Gabriel 2025-02-17 23:04:43 +01:00
  • 9c92b3de4b core: Add priority-based scheduling Gabriel 2025-02-17 20:15:30 +01:00
  • 6be2261519 core: Store the physical page directory alongside the virtual pointer to it Gabriel 2025-02-16 13:20:02 +01:00
  • 4e03fdca6a init: Add system call handling code Gabriel 2025-02-16 11:58:20 +01:00
  • 3ce8cfb726 core: Add memory and scheduler related system calls Gabriel 2025-02-16 11:58:12 +01:00
  • 671a9b5887 core: Add PIT timer code to preempt the scheduler Gabriel 2025-02-16 11:58:01 +01:00
  • a209ba7b99 core: Allocate a stack for each core's idle thread Gabriel 2025-02-16 11:57:27 +01:00
  • 4554bce8a8 core: Add thread states Gabriel 2025-02-16 11:57:04 +01:00
  • f87426753b core: Add global FrameAllocator with locking Gabriel 2025-02-16 11:56:14 +01:00
  • 14862ec271 core: Add spinlock code Gabriel 2025-02-16 11:52:45 +01:00
  • ea952efe8a core: Fix a few bugs in threading code Gabriel 2025-02-15 22:58:34 +01:00
  • 58481a76b1 Update README.md Gabriel 2025-02-15 22:55:13 +01:00
  • a76e94c517 core: Add a simple ELF loader Gabriel 2025-02-15 22:46:28 +01:00
  • ed324fcf9e core: Add basic threading code Gabriel 2025-02-15 22:45:32 +01:00
  • fa04363a51 core/x86_64: Set up a second stack in the TSS to handle system calls Gabriel 2025-02-15 22:40:48 +01:00
  • 56f2c018a7 core: Fix a couple of bugs in VMM and add a few utility functions Gabriel 2025-02-15 22:23:00 +01:00
  • f93158645b core/x86_64: Enable the NX bit before using it Gabriel 2025-02-15 22:22:04 +01:00
  • 36b9832053 core/x86_64: Add general protection fault handler Gabriel 2025-02-15 22:19:08 +01:00
  • 090e4148b8 core: Reserve physical page 0 Gabriel 2025-02-15 22:18:49 +01:00
  • 8bfc8a5781 core: Make findMultibootTags take a context argument Gabriel 2025-02-15 22:18:05 +01:00
  • adffd408bc core: Add a page fault handler Gabriel 2025-02-15 15:18:40 +01:00
  • 8d70a0f0a1 core: Enable interrupts in platformEndInit() Gabriel 2025-02-15 15:18:24 +01:00
  • 5d26b114a4 core: Add workaround for QEMU-specific triple-faults without KVM Gabriel 2025-02-15 15:16:50 +01:00
  • 13ec4bee87 Ready. Set. Go! Gabriel 2025-02-13 22:39:48 +01:00