# TODO list ## Start planning Setup Cross-Compiler \ Multiboot to kernel \ Printing string to the screen \ Printing values/numbers to the screen (a.k.k itoa) \ 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) \ Plan your memory map (virtual, and physical) : decide where you want the data to be. \ 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)\ 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. \ Basic Terminal \ Extend hardware recognition ( CPU codename, memory, ATA harddisk, RAW diskSpace, CPU speed through SMBIOS et al. ) \ Basic Window server/client \ ## Support for more filesystems if I like the challenge in writing these ... FAT Filesystem \ EXT2 Filesystem \