|
ca131c71e8
|
Updated hello.c to print the program's PID. Add getPID syscall.
|
2021-12-08 18:48:24 +00:00 |
|
|
02e0bcd70e
|
Finalise mvoe to Ring 3, add separate kernel stacks for each process, correctly switch between those kernel stacks within context_switch, etc
|
2021-12-07 22:04:53 +00:00 |
|
|
cd56b924e1
|
Correctly mark 0x8a000 + 0x6000 as unavailable, mark the vm_bitmap area as unavailable. Fixed a few comments.
|
2021-12-07 22:04:21 +00:00 |
|
|
2ecc53ee91
|
Moved processes to be in ring 3
|
2021-12-02 19:36:52 +00:00 |
|
|
a9ec673b24
|
Implemented necessary changes for Process destruction. Processes clean up their memory when deleted.
|
2021-12-01 17:05:46 +00:00 |
|
|
b7566ef777
|
Fixed major bug in hashtable.h that caused the hashtable to not actually store any data
|
2021-12-01 17:05:17 +00:00 |
|
|
b879ae1e92
|
Updated world.c to now take user input and print it back to the user when they press enter
|
2021-11-29 10:11:46 +00:00 |
|
|
945bd8c2fa
|
Fixed bug in idt.cpp where context_switch would clobber eax
|
2021-11-29 09:15:23 +00:00 |
|
|
5d4454e57a
|
Remove debug code from terminal.cpp. Update kmain, update world.c, update process.cpp to construct the initial value of EBP correctly.
|
2021-11-27 15:56:35 +00:00 |
|
|
d6c1cc1869
|
Fix bug in terminal.cpp where it would use incorrect pointers in scroll_up, removed old debug code from kmain.cpp, kernel.cpp no longer appends itself to the process list, update process.cpp to take a filename when constructing a new process. Update idt.cpp to plug context_switch in to int 0x20 (IRQ0)
|
2021-11-27 13:11:44 +00:00 |
|
|
bfa648d96b
|
Moved syscall related code to common. Add hello.c and world.c in preparation for testing pre-emptive multitasking
|
2021-11-27 13:10:20 +00:00 |
|
|
c84a3ffdea
|
Add XnoeOS's first non-kernel program. Test systemcalls
|
2021-11-27 02:32:43 +00:00 |
|
|
0bb88e4da8
|
Add system calls, update keybaord, add Terminal* field to kernel. Update process.cpp to load a program called program.bin from disk rather than hardcoding data
|
2021-11-27 02:32:28 +00:00 |
|
|
15ca13a985
|
Update atapio.cpp to use new rather than dumb_alloc, add file_size
|
2021-11-27 02:31:23 +00:00 |
|
|
ed67adc9c9
|
Updated kernel to now have its stack past 0xc0000000. Implemented context switching.
|
2021-11-26 20:20:15 +00:00 |
|
|
2dd799b406
|
Preparations towards context switching
|
2021-11-21 16:56:50 +00:00 |
|
|
b79ae4ec95
|
Updated Hashtable to use xnoe::Maybe, fixed many bugs within hashtable, updated hash
|
2021-11-21 16:40:16 +00:00 |
|
|
f581e6b6fe
|
Completely overhauled how GDT is defined to make it much easier to add more entries to the GDT in the future
|
2021-11-21 16:39:31 +00:00 |
|
|
760069bbb9
|
Updated Makefile to allow debugging. Update gitignore.
|
2021-11-12 00:51:45 +00:00 |
|
|
bfa3f3030f
|
Initial work on dynamically creating Processes in preparation for implementing context switching
|
2021-11-12 00:30:10 +00:00 |
|
|
01fef9d947
|
Rename kernel.cpp to kmain.cpp, update Makefile and kernel.ld
|
2021-11-11 21:55:04 +00:00 |
|
|
0f5e080e15
|
Reorganised some code. Moved new/delete out of process
|
2021-11-11 21:52:51 +00:00 |
|
|
e06d98b22a
|
Add teminal. Update strings. Update screenstuff.
|
2021-11-11 20:47:08 +00:00 |
|
|
ea62dcddfa
|
Update README. Remove debug code.
|
2021-11-10 22:44:22 +00:00 |
|
|
c10c3690a5
|
A huge amount of changes and additions. Added xnoe::Maybe, fixed xnoe::linkedlist and xnoe::linkedlistelem, fixed bug in Allocator::deallocate, update Process::allocate, implement Process::deallocate, fix operator delete, add Global namespace and Global::allocator, update new, delete, new\[\] and delete\[\], add AllocTracker, etc. Allocations now work how I want them to :D
|
2021-11-10 18:31:00 +00:00 |
|
|
4a271865e0
|
Update data types. Update Makefile. Update kernel. Implement Process::allocate.
|
2021-10-28 14:14:36 +01:00 |
|
|
768ceddef0
|
Add hash. Add hashtable. Add linkedlist. Separate Process. Begin work on Process. Update memory. Update tuple. Update Makefile.
|
2021-10-27 23:21:37 +01:00 |
|
|
b4375d1269
|
Initial version of Allocator complete. Added new, delete, new\[\] and delete\[\]. Preparations for Process and Kernel made
|
2021-10-25 20:59:49 +01:00 |
|
|
e6e156e255
|
Implement Allocator. Add virtual page map. Fix PageMap class.
|
2021-10-25 16:29:53 +01:00 |
|
|
f2e09e98a7
|
Started work on Allocator class. Update PageMap
|
2021-10-25 01:13:29 +01:00 |
|
|
9c887a3a50
|
Began the process of moving XnoeOS to using more OOP constructs. Added PageDirectory class. Added PageTable class. Added tuple data type. Added beginnings of the skeleton for Allocator and Process.
|
2021-10-23 01:34:54 +01:00 |
|
|
2a68860bef
|
Made kernel C++ now
|
2021-10-21 23:19:36 +01:00 |
|
|
cd8bd42ebb
|
Kernel now handles page faults.
|
2021-10-21 22:06:27 +01:00 |
|
|
2dcf083763
|
Properly print out the e820 entry types. Make kernel_directory and kernel_page_tables available to all. Add a memory unmap function. Update Makefile.
|
2021-10-18 13:50:50 +01:00 |
|
|
b117dee07b
|
Hopefully fix compilation error encountered on Debian 10 GCC
|
2021-10-13 12:13:51 +01:00 |
|
|
f9d7581cec
|
Set C standard to gnu11
|
2021-10-13 12:01:57 +01:00 |
|
|
4a44a8030d
|
Hopefully fix compilation error encountered on Debian 10 GCC
|
2021-10-13 11:56:52 +01:00 |
|
|
74b7d7c58c
|
Added .editorconfig
|
2021-10-12 21:44:52 +01:00 |
|
|
f44d4ad768
|
Fixed bug in GDT length calculation in bootloader. Kernel now loads its own GDT so it doesn't clobber itself while touching memory. ATAPIO now loads its own copy of the boot sector so it isn't reliant on 0x7000 being mapped. Removed debug printf statements from a lot of places.
|
2021-10-12 21:41:31 +01:00 |
|
|
e2bb3ff634
|
The kernel is now actually useable with paging enabled.
|
2021-10-12 00:53:02 +01:00 |
|
|
1225529708
|
Fixed paging fully now. Kernel is loaded with virtual memory enabled. Just need to write an allocator and make kernel use virtual memory addresses for its stuff. Restructured codebase to be less messy. Updated Makefile to put binary files under build/ rather than in root directory
|
2021-10-11 20:47:04 +01:00 |
|
|
6328062d4f
|
Fixed structs for PDEs and PTEs, got Qemu now properly maps virtual addresses to physical addresses, still triple faults on but I'm getting closer to getting it fixed.
|
2021-10-11 14:02:04 +01:00 |
|
|
65b8e7773e
|
Added initial paging support.
|
2021-10-11 12:26:11 +01:00 |
|
|
e9f610d4aa
|
Memory bitmap generated
|
2021-10-10 20:19:09 +01:00 |
|
|
7469925ef4
|
Added e820 to boot.asm
|
2021-10-10 17:05:57 +01:00 |
|
|
010ea7eb1d
|
Fixed bug with capitalisation
|
2021-09-25 17:51:18 +01:00 |
|
|
c235befa43
|
Completely changed how XnoeOS boots, organised the code somewhat, renamed kernel32 to kernel, now uses the 9 sectors after the boot sector to store a 32 bit stage2 loader. No longer spends unnecessary time in real mode. Updated atapio to properly account for the reserved sector count.
|
2021-09-25 16:31:19 +01:00 |
|
|
d617de6a0c
|
Moved some files around in preparation for completely changing the way that booting works
|
2021-09-23 15:09:06 +01:00 |
|
|
2c4c76d1e7
|
Added filename decoding to strings
|
2021-09-07 10:46:09 +01:00 |
|
|
ec314d7b1b
|
We can now read from the disk in protected mode
|
2021-09-06 21:32:02 +01:00 |
|