21509be9bc
Added 'math.c' for optimized math and bit operations
2022-08-23 08:41:53 -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
Nathan Giddings
9c82a39097
Merge pull request #8 from ngiddings/master
...
Merge latest work
2022-08-17 18:25:25 -05:00
0ae4f7995d
Added basic IPC syscalls
2022-08-17 02:47:41 -05:00
bfb56fcbb3
Added functions to portably manipulate process context
2022-08-17 01:41:59 -05:00
bbf2325a60
Added constructor to queue
2022-08-17 01:41:19 -05:00
5b959c9763
Added queue structure
2022-08-15 20:20:31 -05:00
bdb0b753a3
Fixed multiple definition error
2022-07-23 04:03:00 -05:00
03968c33eb
Redefined message struct
2022-07-23 02:22:18 -05:00
d84c9c86d0
Removed some unused code
2022-07-05 18:06:19 -05:00
958b717751
Fixed state save after process preemption
2022-07-05 15:19:20 -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
e3026b2601
Removed unneeded #include from elf.h
2022-06-15 16:07:01 -05:00
38d9ee4737
Removed unneeded #include from heap.h
2022-06-15 16:05:40 -05:00
Nathan Giddings
da04d019c6
Merge pull request #7 from ngiddings/pre-alpha
...
Latest development on pre-alpha
2022-06-15 16:03: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
7caf49065d
page stack constructor takes stack base as argument
...
initialize() calls new constructors and fills in syscall table
2021-04-19 06:58:02 -05:00
8605f08405
Changed DPL of syscall interrupt to 3
2021-04-19 06:57:05 -05:00
a68503538b
putc() advances lines when screen is full
2021-04-19 06:56:49 -05:00
c5ca5e82a7
Added more status codes
2021-04-19 06:56:12 -05:00
7300b9ecd6
Fixed broken ELF loader
...
Only binaries less than a page long would load correctly.
2021-04-19 06:56:03 -05:00
470e39e8e8
Added support for page types in mmgr
2021-04-19 06:55:27 -05:00
a5e9d852ab
Implemented do_syscall()
...
Wrote constructor for kernel state
Added syscall table
2021-04-19 06:54:34 -05:00
755f2a3d69
Wrote syscall interrupt handler in assembly
2021-04-19 06:53:39 -05:00
0af53bcfc8
Moved config.h to include/
2021-04-19 06:52:02 -05:00
6df3f203b8
Added source file for syscalls
2021-04-19 06:51:48 -05:00
Nathan Giddings
6b73aff3d0
Merge pull request #6 from ngiddings/pre-alpha
...
Pre alpha
2021-04-19 03:42:05 -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
086dfe546a
GRUB config file loads modules at boot
2021-04-18 08:00:56 -05:00
40da57e233
APIC enabled after running kernel state constructors
2021-04-18 02:10:56 -05:00
625bbb04a8
Debug message printed before loading task context
2021-04-18 02:10:33 -05:00
c39cbb79cd
Task contexts now load segment registers correctly
...
Interrupt enable bit set in saved EFLAGS register
2021-04-18 02:10:03 -05:00
1171aa2ca3
Spurious interrupt vector set to 0xFF
2021-04-18 02:07:45 -05:00
0b84658a61
TSS is created and TR loaded in initialize_gdt()
2021-04-18 02:07:00 -05:00
979344e942
next_process() checks if a next process exists
...
Panics if not
2021-04-17 06:30:00 -05:00
b615a8d286
More process in initialize()
...
Function now constructs kernel state and enters a process
2021-04-17 06:27:55 -05:00
461194fdfd
Fixed initialize_context()
...
Function did not take 'popal' instruction into account when initializing stack
2021-04-17 06:26:56 -05:00
a68a4dff11
Added new 'null pointer' status code
2021-04-17 06:26:03 -05:00
7dd19d0c2a
Added constructors for heap and resource table
2021-04-17 06:25:46 -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
a28e586139
Fixed missing return in free_page()
...
Method would report "out of memory" when that was not the case
2021-04-17 04:58:02 -05:00
7c0c5cd8ce
Fixed calculation of kernel binary size in initialize()
2021-04-17 04:57:12 -05:00
55c5db056e
Fixed crash in initialize_context()
...
Function tried to dereference a physical address, causing page fault
2021-04-17 04:56:22 -05:00
5c4a756176
Fixed fatal error while loading modules
...
strcpy() was called with a char instead of a char*, obviously causing a crash
2021-04-17 04:24:23 -05:00
Nathan Giddings
d0f9d026cc
Merge pull request #5 from ngiddings/pre-alpha
...
Pre alpha
2021-04-17 03:46:34 -05:00