Commit graph

  • a597e79b0a Change of exactly one character, but an important detail. Target is i386 now instead of 686 in an attempt to run on retro hardware :). main Jake Holtham 2025-07-21 23:34:37 -0400
  • 7b4e4afd43 Defined a couple of functions, added documentation templates basic_paging lordtet 2025-07-17 07:36:45 -0400
  • 6261af8e3a Some changes to names and a convenience ASM function lordtet 2025-07-15 23:14:33 -0400
  • e1369902f7 started fixing physmem. page fault when allocating. lordtet 2025-07-15 17:21:50 -0400
  • 20357559c1 The beginning of paging! The kernel resides in the higher half, and as of now still identity maps the lower half for compatibility. Will not merge back to master until all the previous features work properly in virtual memory.. Jake Holtham 2025-07-15 14:52:48 -0400
  • 4ffc4692ae Page frame setup done, plus makefile changes. lordtet 2025-07-11 18:29:03 -0400
  • c45eb306df Potentially working bitmap allocator, still need to debug it, but i need to push this so i can switch machines. Jake Holtham 2025-07-11 11:53:10 -0400
  • ffd3b2fee4 Partially implemented physical frame management. lordtet 2025-07-11 01:38:26 -0400
  • 0c6e42f713 Added physical memory file lol Jake Holtham 2025-07-09 17:44:59 -0400
  • 472f91fe14 Started work on memory map, added printf features lordtet 2025-07-05 04:36:39 -0400
  • 53198515c8 Temporary "default output" global, makefile changes. Default output variable holds a generic writer, and any output that isn't really sure where to output to can just output there. Set by the system early in boot. lordtet 2025-07-04 02:20:31 -0400
  • 62ab718e4d Serial output works! lordtet 2025-07-04 01:47:44 -0400
  • d6465ade55 Reworked I/O methodology Instead of passing function pointers, we're passing structs with context now. The idea is the same, I/O functions require some struct with a function pointer and some generic memory that only the output device cares about. I/O just calls it. lordtet 2025-07-03 01:36:47 -0400
  • 26dd32345f Added header and asm file for assembly function wrappers lordtet 2025-07-02 21:17:57 -0400
  • 981c224f55 Serial implementation Pt1 Serial testing with COM1 works - need to rework I/O to have it output tho. That's next. lordtet 2025-07-02 19:48:33 -0400
  • d5f996973c Removed errant comment that isnt really applicable anymore Just cleanup before some work lordtet 2025-07-02 14:48:25 -0400
  • 4899877cec Changed I/O to be more generic. lordtet 2025-06-29 01:13:43 -0400
  • 55d5823bde Added tons of documentation lordtet 2025-06-28 02:11:09 -0400
  • 4c76d5647a Fixed interrupt handler bug Table was wrong. Oops. Pointer math got me. lordtet 2025-06-28 01:35:35 -0400
  • 561c7f9fa7 Loaded IDT! Many code changes, many undocumented. Documentation and cleanup is next. lordtet 2025-06-28 00:14:42 -0400
  • fbef354410 Small IDT work, gotta go hiking lol lordtet 2025-06-17 20:13:09 -0400
  • 8c51b7010e Interrupt Descriptors implemented Now just need to populate the IDT, then debug the whole thing. lordtet 2025-06-16 22:40:02 -0400
  • 623b9e339f Removing the tables header. Moving its contents to table headers. lordtet 2025-06-16 00:52:05 -0400
  • d32c1fab63 dude PLEASE i dont want to implement ISRs dude PLEASEEEEE I did set up all of the stuff around it tho. Gotta implement some handlers. lordtet 2025-06-12 01:19:59 -0400
  • 3b2503a187 Updated the readme for better usage. lordtet 2025-06-11 00:39:51 -0400
  • 978fd36490 Definitely plan on using more assembly for... assorted assembly related tasks, so I'm doing some housekeeping. lordtet 2025-06-11 00:27:15 -0400
  • 8fadee6baf They're calling him "mr has a working custom GDT" ... ... ...I'm sorry they don't call me that. lordtet 2025-06-10 23:58:28 -0400
  • b127a659bb This underwent some crazy scope creep. Just one more feature... lordtet 2025-06-10 23:41:51 -0400
  • d97ec36f8c Half-baked commit, but i added a struct type for the tss and allocated some memory for it in bss. Also put some space in for the gdt in rodata. Need to leave now, so this broken build goes to the repo! lordtet 2025-06-10 09:17:21 -0400
  • 295e622fe1 Moved the kernel to the 1MB boundary in the linker script. Also did some stuff with ccls for language server stuff. lordtet 2025-06-09 18:27:55 -0400
  • 745cf9045c Moved multiboot structs to kmultiboot.h lordtet 2025-06-08 22:44:17 -0400
  • 8734cd4da6 Added some functions, did some reorganizing. kttools.h/c is a lib for converting types (only currently contains i_to_str). lordtet 2025-06-08 16:18:06 -0400
  • e8a6c514ad kernel tools split into kio (for i/o) and kttools (kernel type tools). in general, kernel libraries will be marked with "k" in the beginning. lordtet 2025-06-08 01:27:41 -0400
  • f39627ec51 Forgot to commit some gitignore changes, here. lordtet 2025-06-07 18:08:37 -0400
  • 5efb8d9fbc Moved i/o content to kerno.c Added function for integer -> string (library pending) Modified makefile to reflect use of include/ dir lordtet 2025-05-28 23:19:50 -0400
  • 5dd086565f Forgot to link libgcc. oops. That'll do. lordtet 2025-05-26 23:25:30 -0400
  • 7500299684 Refactoring of makefiles is here. Looks like a bit less of a mess, thankfully. lordtet 2025-05-26 22:42:41 -0400
  • 6423dc4610 Makefile is getting a little messy, i'll rework it later, probably. Anyway, now: make iso -> creates iso with bootloader make run_iso -> runs iso in qemu make run -> runs kernel without bootloader or img creation lordtet 2025-05-26 17:59:56 -0400
  • 6f0b585bfe Quick addition to the makefile, run_iso will build the ISO image and then run the full image. As opposed to run, which will just run the kernel from QEMU. lordtet 2025-05-26 17:46:55 -0400
  • 0831fb86e4 Added some framework to create a bootable ISO with grub as the bootloader. Eventually the bootloader will be a submodule of this dir - but for now GRUB works for boot. lordtet 2025-05-26 17:42:00 -0400
  • 1de036ad09 Updated readme. lordtet 2025-05-23 01:24:17 -0400
  • aa4f5f070b First content commit. Added sample code hello world with personal comments for study lordtet 2025-05-23 01:18:12 -0400
  • 4a25828031 Initial commit lordtet 2025-05-21 19:22:01 +0000