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. .. _QOM: https://qemu-project.gitlab.io/qemu/devel/qom.html .. _UACPI: https://github.com/uacpI/uACPI/ .. _`https://github.com/AtieP/taratos`: https://github.com/AtieP/taratos .. toctree:: :maxdepth: 2 :caption: Contents: iommu scheduling