61 Commits

Author SHA1 Message Date
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
b2e2cdb19b
Add inw and outw commands in preparation for ATA-PIO support 2021-09-06 17:34:48 +01:00
c803f4a38e
Added single split function, added error message to kernel32 2021-09-06 15:52:12 +01:00
290794b885
Add string manipulation functions. Update Makefile accordingly. Add echo command to kernel32. 2021-09-06 15:36:44 +01:00
26d231a7c9
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. 2021-09-06 15:35:37 +01:00
8f1e13e749
Added caps lock support to readline 2021-09-03 12:02:37 +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
a184efbc9f
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 printf 2021-09-02 20:58:34 +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
a4d1679723
Added primitive printf implementation, can print decimal ints, hex ints and strings 2021-09-02 15:09:21 +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
79fa2e4e60
Updated kernel to process all input as upper case 2021-08-31 14:31:35 +01:00
d9cc9a2fb6
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 kernel 2021-08-31 12:15:23 +01:00
514f07e009
Updated kernel to allow for inter-segment calls to functions. Use Unix Line Endings for the print function 2021-08-30 09:11:31 +01:00
a33c25d744
Added programs to properly test inter-segment file read and write 2021-08-30 08:11:11 +01:00
703a23dfab
Removed very broken and bad code that could've corrupted memory in other segments, updated hello.asm accordingly 2021-08-30 07:26:54 +01:00
df9f175662
Modified load_file to work directly from the stack 2021-08-30 07:02:01 +01:00
14fcc32d79
Added interrupt handler 2021-08-29 21:50:27 +01:00
fa15c6f6d9
Added ability for kernel to load files from disk and execute them 2021-08-29 17:09:08 +01:00