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
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
c5ca5e82a7
Added more status codes
2021-04-19 06:56:12 -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
6df3f203b8
Added source file for syscalls
2021-04-19 06:51:48 -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
c39cbb79cd
Task contexts now load segment registers correctly
...
Interrupt enable bit set in saved EFLAGS register
2021-04-18 02:10:03 -05:00
b615a8d286
More process in initialize()
...
Function now constructs kernel state and enters a process
2021-04-17 06:27:55 -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
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
961139df9e
Improved kernel memory usage
...
Moved base linear address to 0xFF800000
Kernel only reserves the page frames it actually needs
Memory for multiboot2 headers is freed
Video memory and APIC registers are dynamically mapped into linear addresses
2021-04-17 03:45:45 -05:00
b141582f40
Added very simple kernel memory allocator
2021-04-17 01:18:14 -05:00
b582c39ff8
Started work on process management
2021-04-17 01:00:28 -05:00
4bbe63819a
Added page_table firld to process_t
2021-04-17 00:58:10 -05:00
cb6d2681ef
Started code to manage kernel resource table
2021-04-17 00:57:37 -05:00
9630d0a396
Added load_program() function
...
Builds program image from ELF file in memory
Fixed multiple definition error caused by constant in elf.h:
moved contant to elf.c
2021-04-17 00:56:44 -05:00
2d6fa0d163
Added functions to create and load process contexts
2021-04-17 00:55:05 -05:00
fdcdb9acab
Updated virtual memory manager
...
Added page flags
Added function current_address_space()
Fixed create_address_space()
Renamed some fields in page_table_entry_t to fit naming scheme
2021-04-17 00:52:16 -05:00
48c042ca5f
Added declaration for panic() function
2021-04-14 03:39:07 -05:00
e9ffd9d85c
Fixed incorrect memory type enum
2021-04-13 00:20:19 -05:00
d415fb232e
Added missing stdint.h include to physaddr.h
2021-04-12 01:49:45 -05:00
0b302c5759
Started main kernel functions
2021-04-12 01:43:47 -05:00
ca0d09d9b5
Removed load_elf_executable() declaration
2021-04-12 01:43:14 -05:00
b3b2921b7e
Renamed tty.h to stdio.h
...
Added puts() declaration
2021-04-12 01:41:52 -05:00
1f7ef81149
Renamed module_t::string to module_t::str
2021-04-12 01:22:31 -05:00
74fe6e1a58
Moved ELF structures to C header
2021-04-12 01:21:59 -05:00
e235e9bad2
Moved memory type enum to memorymap.h
...
Deleted memorytype.h
2021-04-12 01:21:18 -05:00
558874b5ed
Added stdarg include to tty.h
2021-04-12 00:59:14 -05:00
7888c9df30
Added header for module struct
2021-04-12 00:34:43 -05:00
41d21bd636
Added function to construct page stack from membory map
2021-04-12 00:09:23 -05:00
259aa3fabc
Rewrote x86 initialize program in C
2021-04-11 17:20:57 -05:00
e16cbd4ec9
Added C header for memory type enum, removed C++
2021-04-11 17:04:18 -05:00
7fc6c40c54
Wrote memory map in C, removed C++ code
2021-04-11 04:04:09 -05:00
68166e58ca
Implemented C x86 paging, removed C++ code
2021-04-10 20:43:01 -05:00
6a4f777340
Created string.h header; moved code to string.c
2021-04-10 20:15:23 -05:00
a57d841085
Implemented priority queue in C; removed C++ heap
2021-04-10 19:42:16 -05:00
93d8c06d2f
Added out of bounds status enum
2021-04-10 19:41:17 -05:00
7c3a40bc47
Added declaration for page count function
2021-04-10 19:15:59 -05:00
6ee078e6fe
Added C header for page table management
2021-04-10 19:15:37 -05:00
8210d25c93
Added a C header for a page allocator.
2021-04-10 17:57:10 -05:00
505213b7dc
Started writing C headers
2021-04-10 17:37:05 -05:00