BarinkOS/features.md

2.7 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)

Other features I am thinking of:

PCI support
ATA PIO Mode support
USTAR Filesystem ( For its simplicity this is very likely the first filesystem the OS is going to support)
ACPI support ( Or some other basic way to support shutdown, reboot and possibly hibernation )
ATAPI support
Memory Management (MMU)
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
FAT16 Filesystem \