diff options
| author | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-03-21 21:03:17 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@el-mahrouss-logic.com> | 2024-03-21 21:03:17 +0100 |
| commit | 3ae71240a9b4e69d5a13cbec6e0fccb651c80fe9 (patch) | |
| tree | 95288d3d3ddcc5e78eecdd326a3df1731b6bcc0d /Public | |
| parent | 051e2cfb8df4f2fc1ef711ca7351e7018b4c6e1c (diff) | |
Meta: Move .TXTs into Public/
Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Public')
| -rw-r--r-- | Public/BUG_LIST.TXT | 1 | ||||
| -rw-r--r-- | Public/SPECIFICATION.TXT | 53 | ||||
| -rw-r--r-- | Public/TODO_LIST.TXT | 25 |
3 files changed, 79 insertions, 0 deletions
diff --git a/Public/BUG_LIST.TXT b/Public/BUG_LIST.TXT new file mode 100644 index 00000000..6075a6ac --- /dev/null +++ b/Public/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/SPECIFICATION.TXT b/Public/SPECIFICATION.TXT new file mode 100644 index 00000000..11ee62e3 --- /dev/null +++ b/Public/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/TODO_LIST.TXT b/Public/TODO_LIST.TXT new file mode 100644 index 00000000..5e49eb04 --- /dev/null +++ b/Public/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. |
