Commit Graph

  • 38e26a9c12 Implement argument_ptr () syscall for handling process arguments master kamkow1 2026-01-30 14:05:47 +01:00
  • 124aa12f5b Redesign scheduling points kamkow1 2026-01-30 02:36:27 +01:00
  • d2f5c032d9 Fix TLS alignment issues, works on BOCHS now too! kamkow1 2026-01-29 18:18:24 +01:00
  • 73e42588fb Fix BOCHS clock kamkow1 2026-01-29 15:04:06 +01:00
  • e78bfb9984 Move suspension q code into proc/suspension_q.c kamkow1 2026-01-29 01:52:18 +01:00
  • d2a88b3641 Move suspension q's cleanup to proc/suspension_q.c kamkow1 2026-01-29 01:43:01 +01:00
  • fdda2e2df8 Unlock mutexes on process death kamkow1 2026-01-29 01:38:44 +01:00
  • 388418a718 Nice wrappers around process management kamkow1 2026-01-29 00:08:54 +01:00
  • 1c64d608bd Rename make/libc.mk -> make/libmsl.mk kamkow1 2026-01-28 23:57:28 +01:00
  • 3d23187acf Implement userspace TLS, remove RW Locks kamkow1 2026-01-28 23:52:48 +01:00
  • a3b62ebd3d Clean up AMD64 memory management code, remove dependency on pd.lock kamkow1 2026-01-27 19:03:03 +01:00
  • 8bda300f6a Fix sys_clone () wrong argument bug kamkow1 2026-01-27 18:05:02 +01:00
  • cf51600c6a Cleanup syscalls kamkow1 2026-01-27 17:34:43 +01:00
  • b388b30b24 Redesign userspace memory management kamkow1 2026-01-27 17:04:08 +01:00
  • 600886a7ee Organize resources into process groups kamkow1 2026-01-27 14:18:05 +01:00
  • 67b66f2b39 Implement proper mutex cleanup kamkow1 2026-01-25 23:10:12 +01:00
  • 18f791222e Remove dead process from it's suspension queues kamkow1 2026-01-25 22:39:29 +01:00
  • 5e16bb647c Multiple process suspension queues kamkow1 2026-01-25 22:10:04 +01:00
  • a68373e4ee Dynamically assign cpu upon mutex unlock kamkow1 2026-01-25 20:39:51 +01:00
  • 8650010992 Fix user CPU context saving kamkow1 2026-01-25 17:39:34 +01:00
  • 95f590fb3b multi-cpu scheduling WIP kamkow1 2026-01-25 15:54:00 +01:00
  • 7bb3b77ede Disable kernel preemption, fix requesting rescheduling kamkow1 2026-01-22 19:32:15 +01:00
  • c26fd3cb2b Fix scheduler locking hierarchy kamkow1 2026-01-22 15:59:29 +01:00
  • fea0999726 Fix scheduler starvation, use lists for scheduling kamkow1 2026-01-22 11:54:52 +01:00
  • 7eceecf6e3 Add mutex syscalls kamkow1 2026-01-20 22:18:43 +01:00
  • fff51321bc Redesign syscalls kamkow1 2026-01-20 20:46:34 +01:00
  • a29233f853 Rename proc_spawn_thread to proc_clone kamkow1 2026-01-19 22:01:44 +01:00
  • 38a43b59b0 Resolve strange IRQ issues which cause the scheduler to behave weirdly (IRQ mapping) kamkow1 2026-01-19 01:51:34 +01:00
  • ddafc4eb19 Rewrite resource subsystem kamkow1 2026-01-18 20:50:45 +01:00
  • 4f7077d458 Move mutex and mem create/cleanup functions into mutex.c and mem.c respectively kamkow1 2026-01-16 22:13:17 +01:00
  • 9a7dbf0594 Properly implement liballoc_free () kamkow1 2026-01-16 22:09:16 +01:00
  • ab8093cc6c CI install pymdown-extensions from pip kamkow1 2026-01-16 20:28:26 +01:00
  • ddbb66b5e4 Docs processes overview kamkow1 2026-01-16 20:26:23 +01:00
  • 11a1eb52aa Move status codes into a separate header kamkow1 2026-01-16 19:07:32 +01:00
  • a054257336 Port liballoc to userspace kamkow1 2026-01-16 18:50:40 +01:00
  • 9fc8521e63 sys_proc_mutex_unlock () automatically reschedule at the end kamkow1 2026-01-16 00:28:46 +01:00
  • 711da8aeab Implement proc_spawn_thread syscall, fix proc_resume and proc_suspend kamkow1 2026-01-16 00:26:37 +01:00
  • ebd9f0cac6 Let the user application decide upon the resource ID (RID) kamkow1 2026-01-14 23:19:39 +01:00
  • 7cd5623d36 Use reference counting to track filetime of process PD kamkow1 2026-01-14 23:11:06 +01:00
  • 270ff507d4 Implement lock IRQ nesting via stack variables/contexts kamkow1 2026-01-14 22:11:56 +01:00
  • 55166f9d5f syscall doesn't need RPL 3 bits on kernel code kamkow1 2026-01-14 21:21:20 +01:00
  • e5cc3a64d3 Fix syscall return value - preserve RAX register kamkow1 2026-01-14 20:58:00 +01:00
  • 2ab308d678 Drop m_ prefix from libmsl kamkow1 2026-01-14 20:56:09 +01:00
  • d1d772cb42 Fix user apps randomly crashing (APIC, GDT layout, syscall entry) kamkow1 2026-01-14 19:51:18 +01:00
  • 0d8f9e565f Fix missing CPU_REQUEST_SCHED IDT entry kamkow1 2026-01-11 12:07:17 +01:00
  • f80a26e5eb Load kernel CR3 kamkow1 2026-01-11 03:45:32 +01:00
  • 5bf10c1218 Extra compiler flags for AMD64 kamkow1 2026-01-11 03:42:15 +01:00
  • 41a458b925 Implement Mutexes and supporting syscalls, cleanup/optimize scheduler kamkow1 2026-01-10 00:12:42 +01:00
  • 6a474c21a0 Use RW spin locks kamkow1 2026-01-09 19:53:08 +01:00
  • a5283283f6 Hold proc->lock while killing the process kamkow1 2026-01-09 00:00:18 +01:00
  • 79768d94e6 Preserve syscall return value in RAX kamkow1 2026-01-08 23:06:32 +01:00
  • 0555ddd041 Clean up IOAPIC and LAPIC implementations kamkow1 2026-01-08 22:05:11 +01:00
  • ebb026b807 proc_cleanup_resources () drop instead of immediate removal kamkow1 2026-01-07 23:09:13 +01:00
  • d7b734306f Introduce concept of Process Resources (PR_MEM), implement necessary syscalls kamkow1 2026-01-07 22:47:30 +01:00
  • 28aef30f77 Implement proc_map () and proc_unmap () syscalls kamkow1 2026-01-06 23:32:11 +01:00
  • 9f107a1a5e Implement proc_unmap () kamkow1 2026-01-06 17:47:21 +01:00
  • e50f8940a9 Redesign linked list kamkow1 2026-01-06 16:38:42 +01:00
  • d09e4d97ad Fix missing headers, generate compile db with bear kamkow1 2026-01-06 03:08:13 +01:00
  • 7915986902 Remove Doxygen-style comments, change formatting to wrap comments kamkow1 2026-01-06 02:04:32 +01:00
  • 902682ac11 Remove doxygen infra kamkow1 2026-01-06 01:41:07 +01:00
  • 7747e5e0aa Docs update theme kamkow1 2026-01-06 01:37:51 +01:00
  • a8423fe657 Better proc_kill () and process cleanup kamkow1 2026-01-06 01:19:11 +01:00
  • 6538fd8023 Generate new PIDs for processes kamkow1 2026-01-05 20:24:26 +01:00
  • fcd5658a80 Use red-black trees to store process run queue and process list kamkow1 2026-01-05 18:30:58 +01:00
  • b1579e4ac1 Implement automatic paging table deallocation kamkow1 2026-01-04 21:26:11 +01:00
  • bba36ef057 Remove sign warning in comparison kamkow1 2026-01-04 01:45:56 +01:00
  • b5353cb600 Auxilary scripts for formatting all components kamkow1 2026-01-04 01:44:02 +01:00
  • e077d322f4 Rewrite init app in C, introduce MSL (MOP3 System Library) kamkow1 2026-01-04 01:11:31 +01:00
  • 2c954a9ca9 Fix return syscall result kamkow1 2026-01-03 15:06:36 +01:00
  • cf04e3db18 proc_quit () and proc_test () syscalls kamkow1 2026-01-03 12:21:56 +01:00
  • 124a7f7215 Docs add kernel build instructions kamkow1 2026-01-03 02:19:40 +01:00
  • e52268cd8e First Hello world syscall kamkow1 2026-01-03 02:04:09 +01:00
  • 1341dc00d9 make -B format_kernel kamkow1 2026-01-01 20:17:29 +01:00
  • 99bab4ceee Use generic spin () instead of amd64_spin () kamkow1 2026-01-01 20:16:40 +01:00
  • 121fb3b33c Move platform-specific code for process loading/init for AMD64 to amd64/ kamkow1 2026-01-01 20:08:37 +01:00
  • 5e6bdcc52d Handle swapgs in interrupts and scheduling kamkow1 2026-01-01 18:42:53 +01:00
  • 3bcbdb5ec4 Fix proc_kill () race, improve scheduler locking kamkow1 2026-01-01 16:59:04 +01:00
  • 7f53ede2ab CI docs use $REMOTE_IP kamkow1 2025-12-31 22:50:53 +01:00
  • f1e34b78cd CI docs chmod 777 on site build dir kamkow1 2025-12-31 22:40:28 +01:00
  • 97ad0b338c Fix CI docs build, install rsync kamkow1 2025-12-31 21:25:33 +01:00
  • 74c782d653 mkdir docs/kernel/doxygen kamkow1 2025-12-31 21:21:02 +01:00
  • 949f9c5293 Add docs gitea workflow kamkow1 2025-12-31 20:57:09 +01:00
  • a6c3f4cf87 Move kernel doxygen stuff to kernel/ kamkow1 2025-12-30 17:04:05 +01:00
  • 34f1e0ba30 Document amd64 platform-specific code kamkow1 2025-12-30 16:50:15 +01:00
  • 4f4f5c3d2f Move doxygen-awesome-darkmode-toggle.js to doxytheme/ kamkow1 2025-12-30 01:52:45 +01:00
  • d861ab56c4 Remove pre-SMP TSS code kamkow1 2025-12-30 01:50:47 +01:00
  • b279774bd6 Generated docs using doxygen and mkdocs kamkow1 2025-12-30 01:47:29 +01:00
  • fa7998c323 Run first app from ramdisk! kamkow1 2025-12-29 23:54:21 +01:00
  • c16170e4c2 SMP and timer interrupts kamkow1 2025-12-23 19:50:37 +01:00
  • 259aa732c8 Use separate IST stack for IRQs and cpu exceptions kamkow1 2025-12-22 22:19:01 +01:00
  • 1fd6f4890d Generic sleep_micro() function kamkow1 2025-12-22 21:14:58 +01:00
  • 849df9c27d Fix HPET unaligned read/writes on bochs kamkow1 2025-12-22 21:06:48 +01:00
  • 69feceaaae clang-format set column width to 100 chars kamkow1 2025-12-22 19:38:32 +01:00
  • 7b33d0757a APIC, HPET, virtual memory kamkow1 2025-12-22 19:36:43 +01:00
  • 741d0fb9b0 clang-format alignment rules kamkow1 2025-12-21 23:10:21 +01:00
  • c85cbd0c01 Use prettier #defines for attributes kamkow1 2025-12-21 23:03:56 +01:00
  • b2d8294b12 Use clang-format kamkow1 2025-12-21 22:53:25 +01:00
  • 8794a61073 Integrate uACPI kamkow1 2025-12-21 22:24:23 +01:00
  • c3123192d8 Interrupt handling/cpu exceptions kamkow1 2025-12-21 11:55:49 +01:00
  • 84c600b903 Add limine as raw source kamkow1 2025-12-17 22:45:17 +01:00