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