BarinkOS/features.md
Nigel 2e59e6593e Add proper Physical memory management to this branch
to ensure it doesn't get too out of date

We can now run the FAT command to demo reading out the FAT16 filesystem,
however this will cause the need for a reboot as after this command. We are FOR NOW
not able to put in any new commands
2022-03-12 16:56:50 +01:00

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
Keyboard support ( P/S2 Keyboard)
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 \