Renamed Maybe to maybe. Moved tracking of filehandlers to be per-process rather than global. Various improvements to code.Xnoe2022-06-18 11:42:09 +01:00
Updated the KernelInformationStruct, added BGA (Bochs Graphics Extensions) mode termimal, added new system calls to get terminal width. Updated world.bin to calculate sizes. Fixed a bug where GetExhaustive would crash when given a completely null path. Started work on V86 for VBE support.Xnoe2022-05-16 09:57:09 +01:00
Add system calls for more file system related functionality. Add ls command to world.c. Remove and reorganise certain source code files. Update terminal to no longer have two copies of ANSI escape code handling between write and printf. Massively simplify my printf function. Combine io and ioports.Xnoe2022-04-12 03:42:13 +01:00
Added VGA Mode Terminal. Updated context_switch and isr.S.base to perform the actual context switch during catchall_return. Program the PIT properly. Implemented timed events. Updated process.cpp. Added a font. Fixed bug in CircularRWBuffer.
core
Xnoe2022-02-20 11:30:39 +00:00
Updated program linker scripts to have link beginning at 0x20 rather than 0x8020. Program binary is now the first thing allocated.Xnoe2022-01-19 12:19:52 +00:00
Updated ISR code to properly handle interrupts with error codes. Fixed bug where page faults would clobber the kernel stackXnoe2022-01-09 12:10:57 +00:00
Fixed context_switch's handling of the processes linked list, update idt.cpp to add getPID syscall, update memory.cpp to fix but where find_next_available_from would incorrectly return invalid memory locationsXnoe2021-12-08 18:49:25 +00:00
Finalise mvoe to Ring 3, add separate kernel stacks for each process, correctly switch between those kernel stacks within context_switch, etcXnoe2021-12-07 22:04:53 +00:00
Remove debug code from terminal.cpp. Update kmain, update world.c, update process.cpp to construct the initial value of EBP correctly.Xnoe2021-11-27 15:56:35 +00:00
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)Xnoe2021-11-27 13:11:44 +00:00
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 dataXnoe2021-11-27 02:32:28 +00:00
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 :DXnoe2021-11-10 18:31:00 +00:00
Add hash. Add hashtable. Add linkedlist. Separate Process. Begin work on Process. Update memory. Update tuple. Update Makefile.Xnoe2021-10-27 23:21:37 +01:00
Initial version of Allocator complete. Added new, delete, new\[\] and delete\[\]. Preparations for Process and Kernel madeXnoe2021-10-25 20:59:49 +01:00
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.Xnoe2021-10-23 01:34:54 +01:00
Properly print out the e820 entry types. Make kernel_directory and kernel_page_tables available to all. Add a memory unmap function. Update Makefile.Xnoe2021-10-18 13:50:50 +01:00
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.Xnoe2021-10-12 21:41:31 +01:00
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 directoryXnoe2021-10-11 20:47:04 +01:00
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.Xnoe2021-10-11 14:02:04 +01:00
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.Xnoe2021-09-25 16:31:19 +01:00
Set BPB data from the BIOS, properly support loading data from sectors >63, calculate CHS addressing properly. Calculate certain important values rather than harcoding them.Xnoe2021-09-06 15:35:37 +01:00
Added non_moving_put, fixed bug with int_to_ functions that would cause them to not properly convert "0" to a string. Added character printing to printfXnoe2021-09-02 20:58:34 +01:00
Linker script now makes use of kernel32_strap.asm in order to ensure that we enter the correct position in kernel32.bin, updated kernel32.ld, Makefile, etc accordingly. Added types.h for convenience.Xnoe2021-09-02 12:46:14 +01:00
kernel32.bin is now written in C, make necessary modifications to Makefile, .gitignore, boot32.asm, etc to get this workingXnoe2021-08-31 22:50:10 +01:00
Updated kernel and programs so that the segment in which programs are loaded and executed from is no longer fixed and is specified by the kernelXnoe2021-08-31 12:15:23 +01:00