taratos documentationΒΆ
Welcome to taratos documentation! Taratos is an x86 type 1 hypervisor, which is in progress, and is a personal project for me to learn more and experiment with Operating Systems, virtualization, drivers, etc.
The repository can be found at https://github.com/AtieP/taratos.
As of now, I have done:
NUMA-aware physical memory management
Buddy page frame allocation, slab small object allocation
Virtual memory manager, with on-demand faulting
Memory hotplug and hotunplug
SMP-aware scheduling, with support for CPU affinities
RMS, FIFO and RR scheduling
An IRQ subsystem
A device and driver model, with support for hotplug and hotunplugging
An IOMMU abstraction layer
A mechanism for instantating objects of classes and with support for virtual tables, much like QOM
Running a guest in real mode with AMD SVM
Device support:
Generic x86 chipsets with ACPI, thanks to UACPI
ACPI EC (Embedded Controller)
PCI Express, support for device discovery and ACPI hotunplug
AMD IOMMU (DMA remapping)
Many of these components have bits which are work in progress.
The documentation is also work in progress, with detailed overviews of the kernel components and API references coming soon.