Commit Graph

  • 6086b04054 Added klog as a new logging system * The logging system sends the message to both VGA and serial * The serial print uses color to indicate the category of the message DebugLogging Nigel Barink 2023-10-28 22:28:21 +0200
  • 9c5667c454 Created a proper driver for the serial bus * The driver can write to any of the pre-defined serial COM ports * The driver can read from any of the pre-defined serial COM ports (Untested) Nigel Barink 2023-10-28 21:51:04 +0200
  • 2522492835 Couple of small changes * Commented out the map page function call to handle page not present * Mapped the ACPI_RECLAIMABLE_MEMORY * Set VBE to false when VBE is not initialized by the bootloader dev Nigel Barink 2023-10-27 18:32:03 +0200
  • e82392e9d9 FAT Filesystem implementation additions Nigel Barink 2023-10-27 18:07:11 +0200
  • 64c87a2a58 Fixing an issue in the CoreLib Nigel Barink 2023-10-27 18:04:09 +0200
  • 04470edcc6 Adding gdb init and adjusting some of the build automation steps Nigel Barink 2023-10-27 18:03:45 +0200
  • 2970806705 ACPI reading memory when mapped to higher half Nigel Barink 2023-09-11 23:23:38 +0200
  • e8df6ec628 Updating Build scripts Nigel Barink 2023-09-11 23:21:43 +0200
  • 5781f730d9 Implemented the basis for syscalls A software interrupt with vector 0x50 will cause a syscall to start executing. The EAX register will hold the syscall_num. Other registers and the stack can be used to hold further arguments. Nigel Barink 2023-02-27 00:34:30 +0100
  • 2d0bb16fad Fixed up ACPI Version 1.0 checksum validation code Nigel Barink 2023-02-27 00:32:16 +0100
  • e6901f0526 We can now open and read files on the harddisk through a messy virtual filesystem The uri has to contain 8.3 filenames for now as I have not yet figured out how to convert from that to regular filenaming for the name comparison. Nigel Barink 2023-02-26 13:44:41 +0100
  • 61f1852420 Added file reading without cluster chain following Nigel Barink 2023-02-25 21:03:10 +0100
  • 32b0d990df Added ctype std lib functions Nigel Barink 2023-02-25 20:41:21 +0100
  • 745656eb2d Fixup C++ compiler path in makefile of CoreLib memcpy implementation added Nigel Barink 2023-02-25 20:04:34 +0100
  • 644ff5b1f5 Adding subdir functionality Added FAT16 driver ability to list subdir entries Removed structure of FAT32 (we won't be using it anytime soon) Nigel Barink 2023-02-24 21:31:20 +0100
  • a77621faf5 Shellscript improvement plus FAT driver implementations - Improved the run bash script to exit when an error occurs in one of the sub tasks - Wrote basic FAT16 functions that should give enough information to properly implement the rest of the driver - FAT structure namings are now in accordence with the microsoft spec of March 2005 Nigel Barink 2023-02-23 23:54:02 +0100
  • 50bf952a49 Basic idea's are created for the storage solution - Added boot device info parsing to the kernel - Added a pointer in the kernel to our pre-kernel BootInfo structure - Created a layout for the FAT driver - Created a layout for the virtual filesystem - Separated IDE driver from the basic atapio driver. This will ensure we are not using one or the other - The create_harddrive shell script will now actually build a harddrive image of the kernel - The virtual filesystem initializes and creates a filesystem structure for every FAT16 partition in the master boot record Nigel Barink 2023-02-21 21:43:14 +0100
  • ef2bba5c1c Started fleshing out the storage API Nigel Barink 2023-02-21 14:36:20 +0100
  • 81f7351fe6 Created a few shell scripts to update and create an build of the Kernel/Operating System. A python script can be run to run the scripts in the correct order and immediatly try the build. Nigel Barink 2023-02-20 01:03:46 +0100
  • dea8ab7d71 Improved build system Added new entries to .gitignore Moved away from source directory as central spot for all source code Nigel Barink 2023-02-20 00:29:06 +0100
  • 2bcc79216e Remove mlibc submodule. The standarc C/C++ will use later on will be added later. It may or not be mlibc Nigel Barink 2023-02-19 23:47:43 +0100
  • b07b4f0d38 Moving certain aspects into their own static library Nigel Barink 2023-02-19 23:38:32 +0100
  • 94a2de3847 Started on path resolution algorithm - The algorithm will work once I am of better mind to deal with raw C strings - The resolution should look at each entry divided by '/'. if the entry is not there then we can quit early, however for now I am mostly concerned with getting the names of directory entries we would need to look for. Nigel Barink 2023-02-19 22:14:58 +0100
  • dbb147e110 Primitie listing rootdir of FAT16 filesystem Nigel Barink 2023-02-19 14:17:47 +0100
  • 37542b736f Remove cpu.h and cpu.cpp in favor of i386/processor.[h|cpp] Moving enable protected Mode to processor class Nigel Barink 2023-02-17 22:01:32 +0100
  • 490529099b Started implementing the virtual file system - The FAT command is no longer available - At Startup the FileSystem initialise funciton is called, it should execute the same code as the FAT command did. - ACPI::initialise is commented out because it causes a Exception Nigel Barink 2023-02-17 21:52:03 +0100
  • 133c16cae7 Added CPUID based checks Nigel Barink 2023-02-17 16:27:36 +0100
  • ecab248cd6 Clean up jump into RING 3 Nigel Barink 2023-02-17 14:46:44 +0100
  • 4ce7cc093b Cleanup of PCI API Nigel Barink 2023-02-17 14:42:42 +0100
  • c9a036bfbb Ring 3 ready - Fixed issue with setting up the Task Segment Register Nigel Barink 2023-02-13 22:44:47 +0100
  • 1f90a5d862 Starting to move towards proper HAL and ring3 - slight clean up of PCI driver - Added TaskSegment header - Rename some folders Nigel Barink 2023-02-11 12:22:45 +0100
  • 520104a43a Moved reading file from disk to its own super visor terminal command Nigel Barink 2023-02-08 14:07:44 +0100
  • 7993a2d172 Merge interrupts into dev Nigel Barink 2023-02-05 10:30:10 +0100
  • 27e99fe4f2 Merged FAT16 into Dev Nigel Barink 2023-02-03 21:47:05 +0100
  • 749f2aa492 Updating folders name's (1) Nigel Barink 2023-02-03 20:01:31 +0100
  • 891085e151 Successfully able to create a disk-image file - Created a scripts folder - Written instructions on how to create the disk image - Working on a python build script that executes all other scripts Nigel Barink 2023-02-02 14:59:42 +0100
  • 364d10d02e src folder -> source folder; makes merging with dev a bit easier. Nigel Barink 2022-09-10 20:06:49 +0200
  • 68371475d9 Marking memory management features as done. Work still needs to be done but the bare minimum for memory management is there. Nigel Barink 2022-09-03 17:38:22 +0200
  • 16e2354019 KERNEL: Moved serials test function into the test folder Nigel Barink 2022-09-03 17:27:41 +0200
  • a47879f404 KERNEL: First Kernel heap implementation Nigel Barink 2022-09-03 17:27:29 +0200
  • 656ca0baa8 KERNEL: Pre-kernel sets up the physical memory manager. Nigel Barink 2022-09-03 01:00:17 +0200
  • 01fcb0aa15 KERNEL: Improved Physical memory allocation code / Code refactor Nigel Barink 2022-09-02 21:09:51 +0200
  • 13e9beea79 KERNEL: Implementing VMM & cleaning up Nigel Barink 2022-09-01 20:16:16 +0200
  • 9893a0bd17 KERNEL: Cleanup Nigel Barink 2022-09-01 17:02:04 +0200
  • a70ae5ca31 KERNEL: Mapping the bios region ( below 1Mib) Nigel Barink 2022-09-01 16:42:56 +0200
  • 15443601a6 Adding dev-scripts (Without much content) .. this can later help setting up the projects on other pc's. Nigel Barink 2022-09-01 16:13:58 +0200
  • c90e90bd84 Moving the images from the repo into the disk folder Nigel Barink 2022-09-01 16:13:06 +0200
  • a5e7fdd07e KERNEL: Physical Page Frame allocation Nigel Barink 2022-09-01 16:11:35 +0200
  • 59ba41f3d2 Multiboot Memory Map get copied to a "safe" place Nigel Barink 2022-08-23 21:35:19 +0200
  • 5051b8903c Divided the kernel into seperate distinct phases Nigel Barink 2022-08-22 21:16:34 +0200
  • 0f0fc9f252 Adding a skeleton for the memory management code Moved the PMM away from being object orientated as it is just plain annoying renamed src folder to source Set timeout to 5 seconds in the grub config Nigel Barink 2022-08-21 21:18:53 +0200
  • e70f56a005 Improving the memory mapping boot code Removed the need to map the extra MBI structure in as a seperate pagetable Renaming / Restructuring the memory folder Nigel Barink 2022-08-21 21:15:15 +0200
  • 560dd64e64 Kernel is working in its full former glory as a higher half kernel Nigel Barink 2022-08-19 23:44:38 +0200
  • 9436e6e033 End of the day cleanup. Nigel Barink 2022-08-19 01:05:10 +0200
  • d280aa0584 Page faults and protetion faults will now hang with a helpful message to explain what is going on. Nigel Barink 2022-08-19 00:44:52 +0200
  • 7d6c823d79 Basic Launch of Higher half kernel Nigel Barink 2022-08-18 01:26:49 +0200
  • bbfea39c23 Fixing include paths for new structure Removed non-sensical libc folder from project Nigel Barink 2022-08-17 14:57:50 +0200
  • 3b3e2597a1 Restructering Kernel folder before moving to higher half kernel Nigel Barink 2022-08-17 14:29:26 +0200
  • 0b0e37b762 Paging cleanup, more cpu testing and psuedo code for higher half kernel Nigel Barink 2022-08-17 14:17:58 +0200
  • 388ac8e7f9 Added checks to be sure paging is actually enabled on the cpu. Nigel Barink 2022-08-16 19:06:16 +0200
  • 9172da075a Added identity paging basics Nigel Barink 2022-08-15 19:51:22 +0200
  • 23c68d9863 Setup paging function signatures... Ready to be implemented. Nigel Barink 2022-03-18 22:09:04 +0100
  • 2e2693d1ea Build some structures will need for the virtual filesystem Nigel Barink 2022-03-15 21:56:32 +0100
  • a93bf566c8 Added FAT-16 screenshot Nigel Barink 2022-03-12 17:04:38 +0100
  • 2e59e6593e Add proper Physical memory management to this branch to ensure it doesn't get too out of date Nigel Barink 2022-03-12 16:56:50 +0100
  • b4cff3e667 Basic block allocation for physical memory allocation. Nigel Barink 2022-02-26 20:44:16 +0100
  • 7330b81a10 Started definition file for a CMOS driver Nigel Barink 2021-12-29 16:28:55 +0100
  • 97606dbf71 Clean up of debugging logs and new commands. Nigel Barink 2021-12-29 16:15:18 +0100
  • 7496299761 Basic Intel Exceptions Nigel Barink 2021-12-28 19:54:10 +0100
  • 0d8ef065e0 Interactive supervisor mode Nigel Barink 2021-12-28 19:47:32 +0100
  • 19b9cfe908 Reading files from disk Nigel Barink 2021-12-27 19:35:24 +0100
  • b8d75dddae Moving lots into seperate folders to cleanup the project structure Nigel Barink 2021-12-27 15:26:32 +0100
  • fb2a19e11d FAT16 structures read from disk using ATA. Nigel Barink 2021-12-24 21:31:10 +0100
  • 72008b0a7a Find RSD Table in early BIOS memory Nigel Barink 2021-12-24 20:13:28 +0100
  • 2621399349 Small code fix up Nigel Barink 2021-12-24 20:08:18 +0100
  • 767dac7e73 Adjustments to IDE driver Nigel Barink 2021-12-23 17:46:27 +0100
  • 6d946ddce3 Struct defining the EXT2 filesystems superblock Nigel Barink 2021-12-23 17:44:27 +0100
  • 9173b90eb1 Structures added for MasterBootRecord support Nigel Barink 2021-12-23 17:43:25 +0100
  • bd5d3f5d49 Basic PIO ATA driver which can read and identify ata drives Nigel Barink 2021-12-23 17:41:07 +0100
  • 88cc1d75bb Re-enabled interrupts from keyboard, Enabled and configured the PIT to throw interrupts at a regular interval Nigel Barink 2021-12-20 21:53:57 +0100
  • f0651ef972 Added some fun GUI primitives BasicGraphics Nigel Barink 2021-12-02 21:02:14 +0100
  • 405b9468d5 Graphics: Moved VBE/VESA driver to drivers folder Nigel Barink 2021-12-02 21:01:33 +0100
  • 2db83b33e1 ATAPI can identify a device correctly Nigel Barink 2021-12-01 00:00:45 +0100
  • 5a68f77b33 Started the base implementation for PCI IDE drivers Nigel Barink 2021-11-29 20:00:28 +0100
  • 72438ae70d Makefile: Added ISO test option for qemu. Nigel Barink 2021-11-28 23:06:21 +0100
  • a36e3d1c16 PCI support checked of on features.md, PCI enumeration screenshot added to readme.md Nigel Barink 2021-11-28 21:12:12 +0100
  • 08b97af863 PCI: enumeration code cleanup Nigel Barink 2021-11-28 21:07:05 +0100
  • 5089da5e9e PCI: Improved syntax of PCI enumeration, Added a PCI information storage class and structs Nigel Barink 2021-11-28 16:46:16 +0100
  • ec654143c6 Basic PCI Enumeration Nigel Barink 2021-11-25 22:05:16 +0100
  • 006c902200 Basic VBE driver initializes via multiboot info structure, reduced resolution, putPixel function implemented Nigel Barink 2021-11-23 22:42:32 +0100
  • 2eca761edc VBE graphics mode successfully initialized by grub, can use iso with qemu now Nigel Barink 2021-11-22 23:01:51 +0100
  • 23ede25ed6 Small changes to reflect renaming in readme.md Nigel Barink 2021-11-22 20:04:14 +0100
  • ba043ef31b Small improvements on Makefile, TODO.md has been renamed to features.md Nigel Barink 2021-11-22 20:01:12 +0100
  • 88c5196586 Rewritten GDT logic Nigel Barink 2021-11-16 21:17:49 +0100
  • 3a87b74224 Renaming/Moving stuff into a different file structure Nigel Barink 2021-11-16 13:57:15 +0100
  • 32909aaed9 GDT is running again Nigel Barink 2021-11-06 21:56:42 +0100
  • 5fb55367ca Implementation of simplistic physical memory manager Nigel Barink 2021-11-06 16:27:13 +0100
  • d79fc6e8e2 Split up boot.s into multiple assembly definitions, Started page frame allocator implementation, kterm definition is now considered c plus plus Nigel Barink 2021-11-03 20:03:38 +0100
  • 5f39f7e7ed Merge branch 'dev' into InterruptHandling Nigel Barink 2021-11-02 21:56:57 +0100
  • d455735ea2 Modified screenshot?? Nigel Barink 2021-11-02 21:44:50 +0100