summaryrefslogtreecommitdiffhomepage
path: root/doc/specs/SPECIFICATION_OS.md
blob: 35f2dfd677b7c59d3e96b03d86734bf49600648f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
===================================

# 0: General Information:

===================================

- ABI and Format: PEF/PE32+.
- Kernel architecture: Portable hybrid Kernel.
- Used Languages: C++, and Assembly Assembly (AMD64, X64000, X86S, ARM64, POWER, RISCV)
- 32-bit is not supported as of 12/25/2025.

===================================

# 1: The Kernel (NeKernel)

===================================

- Drive/Device Abstraction.
- SMP, Preemptive Multi Threading.
- Separation of Files/Devices.
- Networking Support.
- Hardware Abstraction Layer.
- Native Filesystem support (NeFS, FAT32 and ffs2).
- Program Loaders interfaces.
- TLS (Thread Local Storage) support.
- BinaryMutex, Locks, Timers.
- Canary mechanisms.
- Dynamic Loader.
- Cross Platform.
- Permission Selectors.
- Modular and Security focused.

===================================

# 2: The Filesystem (NeFS)

===================================

- Catalog object with associated forks.
- Large storage support.
- Long file names.
- UNIX path style.
- Can be formated under 8mb.

==================================

# 3: Common Codebase Conventions:

==================================

- Kernel -> ke_init_x
- RunTime -> rt_copy_mem
- Hal -> hal_foo_bar
- Class methods -> Class::FooBar
- Internals function shall be formated as such: (hali, rtli, rti...)

===================================

# 4: The Bootloader (BootZ):

===================================

- Capable of booting from a network drive.
- Loads a PE file which is the Kernel, or any modules.
- Sanity checks, based on the number of sections.
- Handover compliant.
- Does check for a valid partition (useful in the case of recovering)
- Modular, and Security focused.

===================================

# 5: The IFS/FileMgr:

==================================

- Filesystem to mountpoint interface abstraction.
- Multi-drive support (A, B, C, D indices).
- Packet-based I/O operations.
- Separation of read/write operations per drive.

===================================

# 6: The TraceSrv:

==================================

- Opcode Based Debug System.
- Defines 'String', and 'Source' messages are foundational message types.
- Packet Based Messages with a 'type' field. The 'type' field shall decide how the message shall be interpreted.