37 Commits

Author SHA1 Message Date
2f2a7a3e45
Added file reading via filehandlers. Added support for directories. Processes are now created using filehandlers. 2022-01-19 16:51:37 +00:00
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
55a5bea35a
Update keyboard driver, add start of file handlers, stdio. 2022-01-13 13:36:24 +00:00
3d3b4fe884
Improved Makefile 2021-12-17 13:59:50 +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
c84a3ffdea
Add XnoeOS's first non-kernel program. Test systemcalls 2021-11-27 02:32:43 +00:00
2dd799b406
Preparations towards context switching 2021-11-21 16:56:50 +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
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
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
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
f9d7581cec
Set C standard to gnu11 2021-10-13 12:01:57 +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
65b8e7773e Added initial paging support. 2021-10-11 12:26:11 +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
ec314d7b1b
We can now read from the disk in protected mode 2021-09-06 21:32:02 +01:00
290794b885
Add string manipulation functions. Update Makefile accordingly. Add echo command to kernel32. 2021-09-06 15:36:44 +01:00
d9d3abbf62
Moved IDT code wholely to idt.c, add keyboard read support, add readline function, updated Makefile accordingly. 2021-09-02 20:59:15 +01:00
b660fa1a0b
We can now receive interrupts 2021-09-02 18:38:00 +01:00
03e7647fc6
Updated Makefile, started splitting code in to multiple pieces. 2021-09-02 16:29:07 +01:00
76e61b1d71
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. 2021-09-02 12:46:14 +01:00
1905f3babd
kernel32.bin is now written in C, make necessary modifications to Makefile, .gitignore, boot32.asm, etc to get this working 2021-08-31 22:50:10 +01:00
07ef9774c2
Added program to enter load kernel32.bin, enter Protected Mode, and then execute kernel32.bin 2021-08-31 21:35:16 +01:00
a33c25d744
Added programs to properly test inter-segment file read and write 2021-08-30 08:11:11 +01:00
4f2e8c5cd3
Updated Makefile and .gitignore to allow for many other binaries to be added 2021-08-29 11:26:38 +01:00
378c199eab
Updated Makefile and .gitignore to accomodate for FAT16 disk creation 2021-08-29 06:58:32 +01:00
ba2db3a84b
Fixed Makefile 2021-08-28 07:20:41 +01:00
ad942b3d8b
Initial commit 2021-08-28 07:06:31 +01:00