Commit Graph

30 Commits

Author SHA1 Message Date
cbc1752e73 Working on reorganizing kernel.c 2023-12-16 09:51:02 -06:00
df90bd7313 process struct now uses address_space struct 2023-11-09 23:00:12 -06:00
31f7eb34a6 Renamed some syscalls 2023-11-08 14:15:46 -06:00
a5ce86147d Created small static library to wrap system call ABI 2023-09-07 00:58:57 -05:00
29a528780b Added syscalls to map to particular physical address 2023-09-02 21:50:35 -05:00
75b7e08e96 Kernel page allocator and heap use new algorithms 2023-08-31 14:37:38 -05:00
a4e69e9e36 Kernel marks its own text segment as read-only 2023-03-03 04:53:25 -06:00
6af84b247f Page allocation uses new external library, libmalloc 2023-01-09 01:56:09 -06:00
c069866bc7 Buncha changes and fixes 2022-12-30 17:11:42 -06:00
166841da51 Added usermode interrupt handling 2022-12-21 11:37:13 -06:00
8b1d7cb085 Kernel initializes a stack for new processes 2022-08-23 13:13:46 -05:00
bacedbea86 Rewrote physical memory allocator
The physical memory allocator now uses a buddy allocator instead of a stack.

Also moved some of the platform-independent context code to kernel.c.
2022-08-23 13:00:26 -05:00
c36f65ce97 Various renaming and refactoring 2022-08-19 22:34:45 -05:00
0337fca749 Moved syscall IDs to separate header 2022-08-19 06:06:48 -05:00
164fb9fcae Added simple IPC syscalls 2022-08-19 03:56:53 -05:00
0ae4f7995d Added basic IPC syscalls 2022-08-17 02:47:41 -05:00
5b959c9763 Added queue structure 2022-08-15 20:20:31 -05:00
d84c9c86d0 Removed some unused code 2022-07-05 18:06:19 -05:00
d4b36a7c7d Return the previous process to queue after context switch 2022-07-05 15:18:51 -05:00
5c7d002bbf Moved PCB for each process to kernel heap 2022-07-03 13:17:06 -05:00
a52f06f81e Massive backlog of changes 2022-06-15 15:59:31 -05:00
c962a83ff0 WIP on kernel syscalls 2021-05-01 17:09:50 -05:00
a5e9d852ab Implemented do_syscall()
Wrote constructor for kernel state
Added syscall table
2021-04-19 06:54:34 -05:00
5efc389935 Finished basic task switching mechansim
PCB is local to a process's address space.
Context switches are written in assembly.
Moved x86 headers to include/x86
2021-04-19 03:40:33 -05:00
625bbb04a8 Debug message printed before loading task context 2021-04-18 02:10:33 -05:00
979344e942 next_process() checks if a next process exists
Panics if not
2021-04-17 06:30:00 -05:00
291ed65248 Fixed wrong pointer type in load_module()
Kernel passed a pointer to its own state to get_free_resource_slot(),
causing its state to be corrupted.
next_process() also now loads the address space of the next process before entering it.
2021-04-17 06:25:11 -05:00
2a5dcd4a0f Improved get_free_resource_slot()
Table now tries to expand itself when no available slots are left
2021-04-17 04:59:39 -05:00
b582c39ff8 Started work on process management 2021-04-17 01:00:28 -05:00
0b302c5759 Started main kernel functions 2021-04-12 01:43:47 -05:00