Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
* ATA/ATAPI read/write;
* PS/2 keyboard and mouse;
* VBE 1024x768x32 (by GRUB);
* Up to 4GB of RAM;
* ACPI, but it doesn't work ;
* RTC and PIT;
* WIP preemptive multitasking.
Obsidian OS supports:
- x86 CPU (32-bit) with SSE2 instructions
- Multiprocessing
- ACPI
- APIC (I/O and timer, no PIC, no PIT)
- SmBIOS
- PCI bus
- PS/2 keyboard and mouse
- Serial-ATA devices (AHCI, no IDE emulation)
- VBE-compatible video card (24-bit and 32-bit modes supported)
Currently, I'm in the very early stages, but here's my support design goals:
Architecture:
* x86 (SSE2+)
* x86-64
* ARM - Raspberry Pi
* ARM64 - RPI
I only have the Pi for ARM tests, but if I can do that it should be fairly portable as a whole.
Features:
* AVX support
* AVX-512 support
* Much more to come!
* i686 (32-bit) CPU, including x87, MMX, SSE, etc.
* ATA hard drives
* ATAPI optical drives
* PS/2 (compatible) keyboard/mouse
* Up to 4GB RAM (tested 16MB - 4GB)
* VGA (compatible) graphics + VBE support
Planned (near future):
* "Native" (2D framebuffer) support for Intel, AMD, NVidia and "BGA" (Qemu/Bochs/VirtualBox) graphics.
* USB (HID and MSD)
* Possibly PAE for >4GB RAM
* As yet undecided selection of NICs
Seeing as re-writing my driver layer is next on my to-do list, much of this is not fully decided.