Commit Graph

100 Commits

Author SHA1 Message Date
xnoe cd8bd42ebb Kernel now handles page faults. 2021-10-21 22:06:27 +01:00
xnoe 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
xnoe b117dee07b Hopefully fix compilation error encountered on Debian 10 GCC 2021-10-13 12:13:51 +01:00
xnoe f9d7581cec Set C standard to gnu11 2021-10-13 12:01:57 +01:00
xnoe 4a44a8030d Hopefully fix compilation error encountered on Debian 10 GCC 2021-10-13 11:56:52 +01:00
xnoe 74b7d7c58c Added .editorconfig 2021-10-12 21:44:52 +01:00
xnoe 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
xnoe e2bb3ff634 The kernel is now actually useable with paging enabled. 2021-10-12 00:53:02 +01:00
xnoe 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
xnoe 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
xnoe 65b8e7773e Added initial paging support. 2021-10-11 12:26:11 +01:00
xnoe e9f610d4aa Memory bitmap generated 2021-10-10 20:19:09 +01:00
xnoe 7469925ef4 Added e820 to boot.asm 2021-10-10 17:05:57 +01:00
xnoe 010ea7eb1d Fixed bug with capitalisation 2021-09-25 17:51:18 +01:00
xnoe 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
xnoe d617de6a0c Moved some files around in preparation for completely changing the way that booting works 2021-09-23 15:09:06 +01:00
xnoe 2c4c76d1e7 Added filename decoding to strings 2021-09-07 10:46:09 +01:00
xnoe ec314d7b1b We can now read from the disk in protected mode 2021-09-06 21:32:02 +01:00
xnoe b2e2cdb19b Add inw and outw commands in preparation for ATA-PIO support 2021-09-06 17:34:48 +01:00
xnoe c803f4a38e Added single split function, added error message to kernel32 2021-09-06 15:52:12 +01:00
xnoe 290794b885 Add string manipulation functions. Update Makefile accordingly. Add echo command to kernel32. 2021-09-06 15:36:44 +01:00
xnoe 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
xnoe 8f1e13e749 Added caps lock support to readline 2021-09-03 12:02:37 +01:00
xnoe 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
xnoe 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
xnoe b660fa1a0b We can now receive interrupts 2021-09-02 18:38:00 +01:00
xnoe 03e7647fc6 Updated Makefile, started splitting code in to multiple pieces. 2021-09-02 16:29:07 +01:00
xnoe a4d1679723 Added primitive printf implementation, can print decimal ints, hex ints and strings 2021-09-02 15:09:21 +01:00
xnoe 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
xnoe 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
xnoe 07ef9774c2 Added program to enter load kernel32.bin, enter Protected Mode, and then execute kernel32.bin 2021-08-31 21:35:16 +01:00
xnoe 79fa2e4e60 Updated kernel to process all input as upper case 2021-08-31 14:31:35 +01:00
xnoe 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
xnoe 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
xnoe a33c25d744 Added programs to properly test inter-segment file read and write 2021-08-30 08:11:11 +01:00
xnoe 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
xnoe df9f175662 Modified load_file to work directly from the stack 2021-08-30 07:02:01 +01:00
xnoe 14fcc32d79 Added interrupt handler 2021-08-29 21:50:27 +01:00
xnoe fa15c6f6d9 Added ability for kernel to load files from disk and execute them 2021-08-29 17:09:08 +01:00
xnoe 3e288a821e Added program to test loading other programs from disk 2021-08-29 16:23:27 +01:00
xnoe 7f2dd973f9 Fixed bug that caused kernel to be improperly loaded 2021-08-29 11:27:35 +01:00
xnoe 4f2e8c5cd3 Updated Makefile and .gitignore to allow for many other binaries to be added 2021-08-29 11:26:38 +01:00
xnoe 0dca50b0d4 Added README.md and LICENSE 2021-08-29 07:27:42 +01:00
xnoe 5fbe8c6886 strcmp is obsoleted by rep cmpsb 2021-08-29 07:00:41 +01:00
xnoe 378c199eab Updated Makefile and .gitignore to accomodate for FAT16 disk creation 2021-08-29 06:58:32 +01:00
xnoe ed9d22fb42 We now have FAT16 file loading support in the bootloader. 2021-08-29 06:58:12 +01:00
xnoe 6e7a6bfb1e All functions work now. Readline supports backspace properly. Etc 2021-08-28 12:29:50 +01:00
xnoe ef03c94f13 Added strcmp function 2021-08-28 07:55:26 +01:00
xnoe ba2db3a84b Fixed Makefile 2021-08-28 07:20:41 +01:00
xnoe ad942b3d8b Initial commit 2021-08-28 07:06:31 +01:00