Nathan Giddings
|
41bf710cbc
|
Merge pull request #10 from ngiddings/pre-alpha
Pre alpha
|
2022-08-23 13:15:35 -05: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 |
|
|
|
54e2beefc1
|
Fixed warning in syscall.c
Cast NULL to 'unsigned long' to get rid of compiler warning.
|
2022-08-23 12:58:28 -05:00 |
|
|
|
2f7d39e679
|
Improved error handling in queue.c
|
2022-08-23 12:56:45 -05:00 |
|
|
|
9c37167c5e
|
Changed #include guards in physaddr.h, added now error codes
|
2022-08-23 12:55:39 -05:00 |
|
|
|
f76b8cab43
|
Changed #include guards in physaddr.h
|
2022-08-23 12:55:07 -05:00 |
|
|
|
2cc9c6942e
|
Fixed call to __builtin_clz()
ilog2() erroneously called __builtin_clzl() instead of __builtin_clz()
|
2022-08-23 08:46:34 -05:00 |
|
|
|
b8cec93721
|
Put 'math.c' into Makefile.am
|
2022-08-23 08:42:59 -05:00 |
|
|
|
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 |
|
Nathan Giddings
|
e4caef6d72
|
Merge pull request #9 from ngiddings/pre-alpha
Pre alpha
|
2022-08-19 03:57:21 -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 |
|