Commit Graph

41 Commits

Author SHA1 Message Date
2f6845692a Updated gitignore 2023-01-08 14:17:36 +00:00
bbb09b2549 Created separate memblock functions for virtual and physical memory allocation 2023-01-08 12:21:13 +00:00
0d77d97561 memblock can now self re-allocate its internal buffers
memory allocated by memblock_alloc() can now be limited to a certain region.
2023-01-08 12:13:59 +00:00
02211e6eba Implemented memblock_alloc() 2022-12-29 20:53:39 +00:00
d9daeae384 Fixed an arithmetic bug causing reserved memory regions at address 0x00 to be ignored 2022-12-29 20:53:24 +00:00
677661b115 Updated compiler database generator to handle multiple target executables 2022-12-29 20:17:06 +00:00
2ac3e8602f Re-factored sandbox into a single executable 2022-12-29 19:47:25 +00:00
2b59afcaf3 Started building the kernel memory manager in userspace 2022-12-29 19:22:16 +00:00
7f51b0755b Added a status field to memory regions to differentiate allocated and reserved regions 2022-12-29 19:21:59 +00:00
02b3be636b Added header containing kernel typedefs for sandbox programs 2022-12-29 10:25:50 +00:00
84efc44710 memblock region iteration can now be bounded to a certain memory range 2022-12-29 10:20:58 +00:00
e922a776c3 Added stubs for the kernel memory manager 2022-12-28 23:04:09 +00:00
fac31086f5 Implemented a status return type 2022-12-28 23:03:49 +00:00
d0091a4df7 Implemented macros for iterating over memblock regions, including free regions 2022-12-28 23:03:30 +00:00
5a2b81c8b9 Sandbox programs are now compiled with debug symbols 2022-12-28 18:41:50 +00:00
30ffc429fc Started implementing a boot-time memory manager 2022-12-28 18:41:04 +00:00
fe6b7220df Kernel is now compiled with -Wall -Werror -pedantic 2022-12-28 18:40:41 +00:00
63d4dba493 More build system adjustments 2022-12-27 08:43:42 +00:00
c337d12d05 Sandbox program list is now auto-generated 2022-12-27 08:28:05 +00:00
83c7f2293c Implemented support for building host binaries to test kernel features 2022-12-26 22:12:53 +00:00
23e8e654d9 Changed jump label in gdt_load 2022-12-24 21:11:43 +00:00
0309e1edd1 Adjusted build system to make it more portable 2022-12-24 17:42:33 +00:00
26853c32c8 Implemented GDT initialisation 2022-12-24 10:28:41 +00:00
0c0830cca7 QEMU monitor is now enabled 2022-12-24 10:28:28 +00:00
62ec27e76b start_32 now maps 2GiB of virtual memory instead of 1 GiB 2022-12-24 10:28:01 +00:00
a3be1de07d start_64 vga_clear now clears the screen AND resets the colour attribute bytes 2022-12-21 08:31:11 +00:00
ea8d46b0f0 Removed old kernel_init() 2022-12-21 08:30:44 +00:00
43a15c2dee Boot log is now stored in the build directory 2022-12-21 08:30:23 +00:00
8475a6139e Implemented some basic libc functions and a text console 2022-12-21 08:29:33 +00:00
f59d67435d Added a build rule to generate compile_commands.json 2022-12-21 08:27:32 +00:00
38202e5ccd Fixed a misnamed label in start_64 print_kernel_identifier 2022-12-15 13:48:55 +00:00
72bf6faadd Started implementing debugging facilities 2022-12-14 21:45:24 +00:00
51e065faaf Fixed some more dodgy formatting 2022-12-14 18:44:46 +00:00
48f00ba3b1 Optimised start_64 vga_clear() 2022-12-14 18:41:41 +00:00
a5c6240761 Adjusted the start_64 kernel identifier message 2022-12-14 18:40:06 +00:00
f9c835b9d6 Removed unused function and error message 2022-12-14 18:33:51 +00:00
a94dfdc952 Reformat for 8-width tabs 2022-12-14 18:31:27 +00:00
268c063876 Updated gitignore 2022-12-14 18:31:19 +00:00
766667a6ad Finished implementing paging init and long mode switch 2022-12-13 22:22:04 +00:00
3402207602 Added build system and some core boot files 2022-12-13 20:22:11 +00:00
a54e2eaabc Initial commit 2022-12-13 20:18:46 +00:00