Commit Graph

71 Commits

Author SHA1 Message Date
xnoe fafae757e1 Miscellaneous changes and fixed (I think?) virtual 8086 mode 2025-01-08 18:46:58 +00:00
xnoe b00f6d6217 Added multiple threads per process 2022-06-18 17:45:16 +01:00
xnoe f3b1bfc5ef Added VFS, updated DevFS, Added SysFS 2022-06-18 15:41:32 +01:00
xnoe 437c78d374 Fixed sleep 2022-06-18 15:12:20 +01:00
xnoe fdb77277a7 Renamed Maybe to maybe. Moved tracking of filehandlers to be per-process rather than global. Various improvements to code. 2022-06-18 11:42:09 +01:00
xnoe da5fc52afe 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. 2022-05-16 09:57:09 +01:00
xnoe 6339b3e4bd Added spinlocks 2022-04-15 21:10:10 +01:00
xnoe dc2fe698a3 Added oneshot timer functionality. Added sleep function. Added proper tracking of physical pages allocated. Made the 0th page invalid. Fixed a 4KiB memory leak when destroying processes. Fixed scrolling colour in terminal.cpp 2022-04-15 16:15:51 +01:00
xnoe 0fc40ad5e4 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. 2022-04-12 03:42:13 +01:00
xnoe 8f4382793c Fixed spelling mistake 2022-04-09 00:31:08 +01:00
xnoe bb69d6b713 Update how syscalls accept arguments in registers, change how syscalls are defined in common.c and common.h 2022-04-08 18:00:56 +01:00
xnoe 7e5f20ef66 Added sleep syscall 2022-04-08 02:01:25 +01:00
xnoe c2f857fc88 Removed extra directories 2022-04-08 00:49:26 +01:00
xnoe edd6e82c2c Remove old boot_stage2 directory 2022-04-06 20:59:33 +01:00
xnoe a0d0454e32 Moved to a new Filesystem, ATA and FAT16 driver. 2022-04-06 14:46:47 +01:00
xnoe ed34174d68 Rename boot_stage2 to bootstage2 2022-03-04 20:25:17 +00:00
xnoe 232e333a62 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. 2022-02-20 11:30:39 +00:00
xnoe 5c05866d5d Added kill syscall 2022-02-14 14:37:48 +00:00
xnoe 2f2a7a3e45 Added file reading via filehandlers. Added support for directories. Processes are now created using filehandlers. 2022-01-19 16:51:37 +00:00
xnoe 2bbc81955d Updated program linker scripts to have link beginning at 0x20 rather than 0x8020. Program binary is now the first thing allocated. 2022-01-19 12:19:52 +00:00
xnoe 73c0fe429f Add ability for other processes to bind to eachother's stdin and stdout. Add PoC for this functionality 2022-01-17 19:43:13 +00:00
xnoe 55a5bea35a Update keyboard driver, add start of file handlers, stdio. 2022-01-13 13:36:24 +00:00
xnoe fc2c73225b Updated ISR code to properly handle interrupts with error codes. Fixed bug where page faults would clobber the kernel stack 2022-01-09 12:10:57 +00:00
xnoe 2825c1ff5e Move to own ISR solution rather than using GCC ISRs. Lots of changes to accomodate that. 2021-12-17 14:00:52 +00:00
xnoe aba8a0a8c9 Updated boot_stage2.ld 2021-12-17 14:00:17 +00:00
xnoe 57768784a6 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 locations 2021-12-08 18:49:25 +00:00
xnoe ca131c71e8 Updated hello.c to print the program's PID. Add getPID syscall. 2021-12-08 18:48:24 +00:00
xnoe 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
xnoe 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
xnoe 2ecc53ee91 Moved processes to be in ring 3 2021-12-02 19:36:52 +00:00
xnoe a9ec673b24 Implemented necessary changes for Process destruction. Processes clean up their memory when deleted. 2021-12-01 17:05:46 +00:00
xnoe 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
xnoe 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
xnoe 945bd8c2fa Fixed bug in idt.cpp where context_switch would clobber eax 2021-11-29 09:15:23 +00:00
xnoe 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
xnoe 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
xnoe 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
xnoe c84a3ffdea Add XnoeOS's first non-kernel program. Test systemcalls 2021-11-27 02:32:43 +00:00
xnoe 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
xnoe 15ca13a985 Update atapio.cpp to use new rather than dumb_alloc, add file_size 2021-11-27 02:31:23 +00:00
xnoe ed67adc9c9 Updated kernel to now have its stack past 0xc0000000. Implemented context switching. 2021-11-26 20:20:15 +00:00
xnoe 2dd799b406 Preparations towards context switching 2021-11-21 16:56:50 +00:00
xnoe b79ae4ec95 Updated Hashtable to use xnoe::Maybe, fixed many bugs within hashtable, updated hash 2021-11-21 16:40:16 +00:00
xnoe 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
xnoe 760069bbb9 Updated Makefile to allow debugging. Update gitignore. 2021-11-12 00:51:45 +00:00
xnoe bfa3f3030f Initial work on dynamically creating Processes in preparation for implementing context switching 2021-11-12 00:30:10 +00:00
xnoe 01fef9d947 Rename kernel.cpp to kmain.cpp, update Makefile and kernel.ld 2021-11-11 21:55:04 +00:00
xnoe 0f5e080e15 Reorganised some code. Moved new/delete out of process 2021-11-11 21:52:51 +00:00
xnoe e06d98b22a Add teminal. Update strings. Update screenstuff. 2021-11-11 20:47:08 +00:00
xnoe ea62dcddfa Update README. Remove debug code. 2021-11-10 22:44:22 +00:00