doom is now using the native api, add a PEB + TEB to replace the dummy and the awkward argument passing to processes, all allocations are zeroed because i had enough, small readme changes and dedication.

This commit is contained in:
maksw committed 2026-05-18 21:30:07 +02:00
1 parent ddb5d5f5d8
commit f5fd7bdd75
28 files changed
+6334 -5722

No files matched your search

+13 -6
View File
@@ -1,5 +1,7 @@
# NT-Lite -- an x86-64 kernel
## The Monster From ~~Redmond~~ Kraków
Boots. Runs processes. Mimics Windows to some extent.
## what is it?
@@ -17,7 +19,7 @@ The codebase is roughly 20k lines of C and assembly.
- preemptive scheduler with priority levels
- processes and threads
- VFS with IRPs
- drive-letter paths such as `0:\apps\shell.exe`
- drive-letter paths such as `0:/apps/shell.exe`
- INI-based boot and driver configuration
- PE import resolution and dynamic driver loading
- partial Win32 personality
@@ -52,7 +54,7 @@ Currently shipping: AHCI (interrupts), IDE (PIO/DMA), and FAT32.
All file access flows through the VFS layer. That keeps disk access, filesystem parsing, and path translation separate instead of spreading storage logic across the rest of the kernel.
Paths are not interpreted as Windows paths by default. A drive such as `0:\` is a mounted namespace, while the Win32 and POSIX personalities translate their own path styles into the same underlying VFS.
Paths are not interpreted as Windows paths by default. A drive such as `0:/` is a mounted namespace, while the Win32 and POSIX personalities translate their own path styles into the same underlying VFS.
### processes, threads, and syscalls
@@ -84,9 +86,9 @@ The Win32 personality supports programs that expect drive letters, familiar proc
## paths
```text
"apps\shell.exe" -> current working directory
"0:\apps\shell.exe" -> drive 0
"2:\data\config.ini" -> drive 2
"apps/shell.exe" -> current working directory
"0:/apps/shell.exe" -> drive 0
"2:/data/config.ini" -> drive 2
```
Drives 0-7 are available. A drive only works if a filesystem is registered on it. The Win32 personality translates drive letters to drive numbers, while the POSIX personality maps drives onto a tree.
@@ -290,6 +292,9 @@ A: Learning. Fun.
Q: Does it run Doom?
A: `doom.exe`
Q: How often does it crash?
A: Yes.
Q: Is the Win32 layer real?
A: Real enough to load binaries that expect it. Not real enough to run Notepad.
@@ -299,7 +304,7 @@ A: No. But IPC is free.
Q: Is this finished?
A: No.
Will it corrupt my data?
Q: Will it corrupt my data?
A: It shouldn't.
Q: Why is the path syntax so weird?
@@ -313,3 +318,5 @@ A: This document.
Q: Can I use this in production?
A: Don't.
#### Projekt dedykowany dla szanownego Pana profesora Leszka Wójcika przez którego znienawidziłem Unixa.