diff options
| author | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-03-21 22:39:57 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-03-21 22:39:57 +0100 |
| commit | 80b76666074aa94f165e3db7b3dda2145ca6efc0 (patch) | |
| tree | ba8a189df55f3dab4d3623eb4617c7b5d33c7f07 /Public/Documentation | |
| parent | dafcc53840c41dab7a1897868d020a5b196d5b2d (diff) | |
unstable, kernel+api: important breaking changes.
Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Public/Documentation')
| -rw-r--r-- | Public/Documentation/.gitkeep | 0 | ||||
| -rw-r--r-- | Public/Documentation/BUG_LIST.TXT | 1 | ||||
| -rw-r--r-- | Public/Documentation/SPECIFICATION.TXT | 53 | ||||
| -rw-r--r-- | Public/Documentation/TODO_LIST.TXT | 25 | ||||
| -rw-r--r-- | Public/Documentation/compile_flags.txt | 5 |
5 files changed, 84 insertions, 0 deletions
diff --git a/Public/Documentation/.gitkeep b/Public/Documentation/.gitkeep new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/Public/Documentation/.gitkeep diff --git a/Public/Documentation/BUG_LIST.TXT b/Public/Documentation/BUG_LIST.TXT new file mode 100644 index 00000000..6075a6ac --- /dev/null +++ b/Public/Documentation/BUG_LIST.TXT @@ -0,0 +1 @@ +- PS/2 Mouse doesn't raise interrupt on qemu q35, pc machines. [WontFix]
\ No newline at end of file diff --git a/Public/Documentation/SPECIFICATION.TXT b/Public/Documentation/SPECIFICATION.TXT new file mode 100644 index 00000000..11ee62e3 --- /dev/null +++ b/Public/Documentation/SPECIFICATION.TXT @@ -0,0 +1,53 @@ +=================================== +0: General Information +=================================== + +- ABI and Format: PEF/PE32+. +- Kernel architecture: Microkernel. +- Language: C++/(Assembly (AMD64, X64000, X86S, ARM64)) + +=================================== +1: The HCore Microkernel +=================================== + +- Drive/Device Abstraction. +- SMP, Preemptive Multi Threading. +- Separation of Files/Devices. +- Networking. +- Hardware Abstraction Layer. +- Native Filesystem support (NewFS, FAT32 and HCFS). +- Program Loaders. +- Thread Local Storage. +- Semaphore, Locks, Timers. +- Canary mechanisms. +- Dynamic Libraries. +- Cross Platform. +- Permission Selectors. + +=================================== +2: The Filesystem +=================================== + +- Catalog based with forks. +- Large storage support. +- Long file names. +- UNIX path style. + +================================== +3: Common naming conventions: +================================== + +- Kernel -> ke_init_x +- RunTime -> rt_copy_mem +- Hal -> hal_foo_bar + +=================================== +4: The HCore Bootloader +=================================== + +- Capable of booting from a network drive. +- Loads a PE file which is the kernel +- Sanity checks, based on the number of sections. +- Handover compliant. +- Does check for a valid invalid of HCore (useful in the case of recovering) + diff --git a/Public/Documentation/TODO_LIST.TXT b/Public/Documentation/TODO_LIST.TXT new file mode 100644 index 00000000..5e49eb04 --- /dev/null +++ b/Public/Documentation/TODO_LIST.TXT @@ -0,0 +1,25 @@ +- We need preemptive multi-threading. [ X ] +- We then need sync primitives. [ X ] +- We also need a system library for the OS. [ X ] +- We need a bootloader for AMD64 [ X ] + - Implement Boot Services [ X ] + - Design Handover [ X ] + - Load kernel into memory [ X ] + - Fix bug in kernel loader, which causes a 06 #UD. [ X ] + - Load Kernel [ X ] + - Add IDT [ X ] + - AHCI driver [ WiP ] +- Context switch x87/SSE/AVX registers [ X ] +- Framebuffer [ X ] +- AHCI support [ ] +- HCore API and HCore Forms. [ ] +- Make installer form class [ ] + +Status: + +NewBoot: Working. +HCoreKrnl: Not run yet. + +Prioritize: +NewBoot: Protocol and API. +HCoreKrnl: Complying to specs. diff --git a/Public/Documentation/compile_flags.txt b/Public/Documentation/compile_flags.txt new file mode 100644 index 00000000..21296223 --- /dev/null +++ b/Public/Documentation/compile_flags.txt @@ -0,0 +1,5 @@ +-nostdlib +-ffreestanding +-std=c++20 +-I./SDK/ +-I../Private |
