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
Nigel2023-10-28 22:28:21 +02:00
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)
Nigel2023-10-28 21:51:04 +02:00
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
Nigel2023-10-27 18:32:03 +02:00
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.
Nigel2023-02-27 00:34:30 +01:00
2d0bb16fad
Fixed up ACPI Version 1.0 checksum validation code
Nigel2023-02-27 00:32:16 +01:00
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.
Nigel2023-02-26 13:44:41 +01:00
61f1852420
Added file reading without cluster chain following
Nigel2023-02-25 21:03:10 +01:00
745656eb2d
Fixup C++ compiler path in makefile of CoreLib memcpy implementation added
Nigel2023-02-25 20:04:34 +01:00
644ff5b1f5
Adding subdir functionality Added FAT16 driver ability to list subdir entries Removed structure of FAT32 (we won't be using it anytime soon)
Nigel2023-02-24 21:31:20 +01:00
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
Nigel2023-02-23 23:54:02 +01:00
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
Nigel2023-02-21 21:43:14 +01:00
ef2bba5c1c
Started fleshing out the storage API
Nigel2023-02-21 14:36:20 +01:00
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.
Nigel2023-02-20 01:03:46 +01:00
dea8ab7d71
Improved build system Added new entries to .gitignore Moved away from source directory as central spot for all source code
Nigel2023-02-20 00:29:06 +01:00
2bcc79216e
Remove mlibc submodule. The standarc C/C++ will use later on will be added later. It may or not be mlibc
Nigel2023-02-19 23:47:43 +01:00
b07b4f0d38
Moving certain aspects into their own static library
Nigel2023-02-19 23:38:32 +01:00
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.
Nigel2023-02-19 22:14:58 +01:00
dbb147e110
Primitie listing rootdir of FAT16 filesystem
Nigel2023-02-19 14:17:47 +01:00
37542b736f
Remove cpu.h and cpu.cpp in favor of i386/processor.[h|cpp] Moving enable protected Mode to processor class
Nigel2023-02-17 22:01:32 +01:00
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
Nigel2023-02-17 21:52:03 +01:00
133c16cae7
Added CPUID based checks
Nigel2023-02-17 16:27:36 +01:00
ecab248cd6
Clean up jump into RING 3
Nigel2023-02-17 14:46:44 +01:00
4ce7cc093b
Cleanup of PCI API
Nigel2023-02-17 14:42:42 +01:00
c9a036bfbb
Ring 3 ready - Fixed issue with setting up the Task Segment Register
Nigel2023-02-13 22:44:47 +01:00
1f90a5d862
Starting to move towards proper HAL and ring3 - slight clean up of PCI driver - Added TaskSegment header - Rename some folders
Nigel2023-02-11 12:22:45 +01:00
520104a43a
Moved reading file from disk to its own super visor terminal command
Nigel2023-02-08 14:07:44 +01:00
7993a2d172
Merge interrupts into dev
Nigel2023-02-05 10:30:10 +01:00
27e99fe4f2
Merged FAT16 into Dev
Nigel2023-02-03 21:47:05 +01:00
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
Nigel2023-02-02 14:59:42 +01:00
364d10d02e
src folder -> source folder; makes merging with dev a bit easier.
Nigel2022-09-10 20:06:49 +02:00
68371475d9
Marking memory management features as done. Work still needs to be done but the bare minimum for memory management is there.
Nigel2022-09-03 17:38:22 +02:00
16e2354019
KERNEL: Moved serials test function into the test folder
Nigel2022-09-03 17:27:41 +02:00
a47879f404
KERNEL: First Kernel heap implementation
Nigel2022-09-03 17:27:29 +02:00
656ca0baa8
KERNEL: Pre-kernel sets up the physical memory manager.
Nigel2022-09-03 01:00:17 +02:00
59ba41f3d2
Multiboot Memory Map get copied to a "safe" place
Nigel2022-08-23 21:35:19 +02:00
5051b8903c
Divided the kernel into seperate distinct phases
Nigel2022-08-22 21:16:34 +02:00
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
Nigel2022-08-21 21:18:53 +02:00
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
Nigel2022-08-21 21:15:15 +02:00
560dd64e64
Kernel is working in its full former glory as a higher half kernel
Nigel2022-08-19 23:44:38 +02:00
9436e6e033
End of the day cleanup.
Nigel2022-08-19 01:05:10 +02:00
d280aa0584
Page faults and protetion faults will now hang with a helpful message to explain what is going on.
Nigel2022-08-19 00:44:52 +02:00
7d6c823d79
Basic Launch of Higher half kernel
Nigel2022-08-18 01:26:49 +02:00
bbfea39c23
Fixing include paths for new structure Removed non-sensical libc folder from project
Nigel2022-08-17 14:57:50 +02:00
3b3e2597a1
Restructering Kernel folder before moving to higher half kernel
Nigel2022-08-17 14:29:26 +02:00
0b0e37b762
Paging cleanup, more cpu testing and psuedo code for higher half kernel
Nigel2022-08-17 14:17:58 +02:00
388ac8e7f9
Added checks to be sure paging is actually enabled on the cpu.
Nigel2022-08-16 19:06:16 +02:00
19b9cfe908
Reading files from disk
Nigel2021-12-27 19:35:24 +01:00
b8d75dddae
Moving lots into seperate folders to cleanup the project structure
Nigel2021-12-27 15:26:32 +01:00
fb2a19e11d
FAT16 structures read from disk using ATA.
Nigel2021-12-24 21:31:10 +01:00
72008b0a7a
Find RSD Table in early BIOS memory
Nigel2021-12-24 20:13:28 +01:00
2621399349
Small code fix up
Nigel2021-12-24 20:08:18 +01:00
767dac7e73
Adjustments to IDE driver
Nigel2021-12-23 17:46:27 +01:00
6d946ddce3
Struct defining the EXT2 filesystems superblock
Nigel2021-12-23 17:44:27 +01:00
9173b90eb1
Structures added for MasterBootRecord support
Nigel2021-12-23 17:43:25 +01:00
bd5d3f5d49
Basic PIO ATA driver which can read and identify ata drives
Nigel2021-12-23 17:41:07 +01:00
88cc1d75bb
Re-enabled interrupts from keyboard, Enabled and configured the PIT to throw interrupts at a regular interval
Nigel2021-12-20 21:53:57 +01:00
3a87b74224
Renaming/Moving stuff into a different file structure
Nigel2021-11-16 13:57:15 +01:00
32909aaed9
GDT is running again
Nigel2021-11-06 21:56:42 +01:00
5fb55367ca
Implementation of simplistic physical memory manager
Nigel2021-11-06 16:27:13 +01:00
d79fc6e8e2
Split up boot.s into multiple assembly definitions, Started page frame allocator implementation, kterm definition is now considered c plus plus
Nigel2021-11-03 20:03:38 +01:00