From d7eb7affee3733dfeee6864045da4c2f5df2e919 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Fri, 29 Mar 2024 12:25:03 +0100 Subject: Meta: Update spec. Signed-off-by: Amlal El Mahrouss --- Public/Documentation/Spec.md | 53 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Public/Documentation/Spec.md (limited to 'Public/Documentation/Spec.md') diff --git a/Public/Documentation/Spec.md b/Public/Documentation/Spec.md new file mode 100644 index 00000000..f2b097a0 --- /dev/null +++ b/Public/Documentation/Spec.md @@ -0,0 +1,53 @@ +=================================== +# 0: General Information +=================================== + +- ABI and Format: PEF/PE32+. +- Kernel architecture: Microkernel. +- Language: C++/(Assembly (AMD64, X64000, X86S, ARM64, PowerPC, RISCV)) + +=================================== +# 1: The NewKernel +=================================== + +- 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 NewBoot +=================================== + +- 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 NewOS (useful in the case of recovering) + -- cgit v1.2.3