BarinkOS/features.md
Nigel b4cff3e667 Basic block allocation for physical memory allocation.
- 1 block = 4096 bytes : because this will make page fault handling possibly
somewhat easier

- 1 byte in the bitmap = 8 blocks of physical memory

unsure if the allocation is perfect ... guess i'll find out some day if this is actually correct.

The bitmap needs 16kb to keep track of 2gb of physical memory. Seems a decent percentage to me.
2022-02-26 20:55:34 +01:00

2.1 KiB

TODO list

Basics

Setup Cross-Compiler
Multiboot to kernel
Printing string to the screen
Printing values/numbers to the screen
Basic Terminal
Extend Multiboot implementation
Output to serial port
Move to protected mode
Enabel CMOS clock
Time measurement (PIC &| PIT)
Detect CPU speed
Interrupt / exception system (API)
PCI support
ATA PIO Mode support
FAT Filesystem
Virtual filesystem
Keyboard support ( P/S2 Keyboard)
Physical memory management
Paging
Virtual memory management
The heap: allocating memory at runtime (malloc and free) is almost impossible to go without.
Enable SIMD Extensions (SSE)

Hardware Management system

Preemptive multi tasking
Processes
Threads
Scheduling (SRV2 Unix OR Priority Based Round Robin)
System V ABI compliance (partially)
POSIX compliance (partially)
RPC - for interprocess communication
Sync primitives - Semaphores, Mutexes, spinlocks et al. \

ACPI support
ATAPI support \

Optional

Basic Window server/client
EXT2 Filesystem USTAR Filesystem \