Inbora Studio Systems Research • Technical Report TR-2026-Q2

Quin OS 2: Architecture, Implementation, and Empirical Evaluation of a Freestanding 64-Bit Operating System

A Five-Year Longitudinal Investigation in Kernel Design, Memory Virtualization, Preemptive Multiprocessing, and Freestanding Userspace Isolation
Dr. Chamyoung (also known as Alok) — Lead Operating System Researcher & Systems Architect
Inbora Studio Systems & Artificial Intelligence Group
Research Commenced: June 2021 • Current Revision: October 2026 • Codebase Lineage: Successor to XuNet OS (32-Bit)
Abstract

Constructing an operating system from bare metal requires resolving multi-dimensional synchronisation, virtualization, and hardware communication challenges without relying on an underlying POSIX libc or host runtime. In this report, we present the design, low-level implementation, and empirical evaluation of Quin OS 2, an independent 64-bit operating system for the x86_64 (AMD64) architecture developed continuously over a five-year timeline (2021–2026) at Inbora Studio under the direction of Dr. Chamyoung (Alok).

Originating as an educational 32-bit protected-mode kernel (XuNet OS), Quin OS 2 now embodies a production-grade monolithic core transitioning toward an isolated server architecture. Subsystems described in this paper include: an order 0–10 buddy allocator with 32-bit atomic Copy-on-Write reference counting; a 4-level PML4 Virtual Memory Manager with Higher-Half Direct Mapping (HHDM at 0xFFFF800000000000); an ACPI MADT-enumerated preemptive Symmetric Multiprocessing (SMP) scheduler incorporating an atomic context-switch spinlock release; an in-tree RFC 793 Transmission Control Protocol (TCP) engine; a double-buffered display compositor (QDS) and integer anti-aliasing engine (QAA) driving the floating Quin Window Manager (QWM); and a Ring-3 userspace runtime linking against cross-compiled musl libc 1.2.4. We document critical race condition resolutions, present exhaustive architectural comparison tables against the Linux Kernel and TempleOS, and evaluate boot throughput and memory efficiency.

1. Introduction & Five-Year Evolutionary Timeline (2021–2026)

Operating system research within Inbora Studio began in mid-2021 with the creation of XuNet OS, an exploratory 32-bit x86 system. Over the subsequent five years, this foundation was completely re-architected to realize a resilient, isolated 64-bit operating system capable of native graphic composition, high-throughput network communication, and self-hosted application compilation.

1.1 The 32-Bit Genesis: XuNet OS (2021)

The predecessor project, XuNet OS, focused on early bare-metal primitives: executing the 16-bit real-mode to 32-bit protected-mode transition, programming the 8259 Programmable Interrupt Controller (PIC) to remap IRQs 0–15 to interrupt vectors 0x20–0x2F, reading FAT12 floppy structures, and issuing BIOS INT 10h calls to initialize 640×480 VESA VBE linear framebuffers. While pedagogically successful, XuNet OS revealed inherent limitations: lack of hardware-enforced memory isolation, 32-bit physical addressing boundaries (capped at 4 GB without PAE), and an inability to scale across modern multi-core x86_64 architectures.

1.2 Chronological Research & Implementation Matrix

The progression of the codebase across the five-year continuum is documented below:

1.3 Architectural Tenets

The development methodology enforces three strict engineering rules:

2. Kernel Bootstrapping & Machine Initialization

2.1 Multiboot Handover & 64-Bit Transition (`boot.asm`)

Execution initiates in 32-bit protected mode when GRUB2 transfers control to the entry point defined in kernel/arch/x86_64/boot.asm. The binary embeds both Multiboot 1 and Multiboot 2 header tags within the first 32 KB:

; Multiboot 1 Header
MULTIBOOT1_MAGIC     equ 0x1BADB002
MULTIBOOT1_FLAGS     equ 0x00000007  ; PAGE_ALIGN | MEM_INFO | VIDEO_MODE
MULTIBOOT1_CHECKSUM  equ -(MULTIBOOT1_MAGIC + MULTIBOOT1_FLAGS)

; Multiboot 2 Header (Tag Type 5: Request 1920x1080x32 Linear Framebuffer)
MULTIBOOT2_MAGIC     equ 0xE85250D6
MULTIBOOT2_ARCH_X86  equ 0
Listing 1: Multiboot headers in boot.asm specifying graphical framebuffer handover.

Prior to entering Long Mode, boot.asm executes CPUID checks verifying that the processor supports 64-bit execution (bit 29 of EDX from function 0x80000001). Paging is bootstrapped by identity mapping the lowest 1 GB of physical memory using 2 MB huge pages:

  1. boot_pml4[0] references boot_pdpt with flags 0x03 (Present | Writable).
  2. boot_pdpt[0] references boot_pd.
  3. boot_pd initializes 512 entries mapping physical addresses 0x00000000 through 0x3FFFFFFF using flags 0x83 (Present | Writable | Huge Page 2MB).
  4. boot_pml4[256] is initialized pointing to boot_pdpt, mapping the Higher-Half Direct Map (HHDM) starting at virtual address 0xFFFF800000000000.
Virtual Address Space Layout:
0x0000000000000000 - 0x00007FFFFFFFFFFF  [Lower Half: 128 TB Ring-3 Userspace]
  ├── 0x0000000000400000                 : ELF64 Image Base (Randomized via ASLR)
  ├── 0x0000500000000000                 : Dynamic mmap Base (Grows Upwards)
  └── 0x00007FFFFFFFF000                 : Userspace Process Stack Top (16 MB)

0xFFFF800000000000 - 0xFFFFFFFFFFFFFFFF  [Higher Half: 128 TB Ring-0 Kernel Space]
  ├── 0xFFFF800000000000                 : Higher-Half Direct Map (HHDM) — All Physical RAM
  ├── 0xFFFF800000100000                 : Kernel ELF Image (Physical 1 MB)
  ├── Post-Kernel End                    : PMM Bitmap & Frame Metadata Tables
  └── Post-Bitmap                        : Kernel Heap (kmalloc Slab Pools)
        
Figure 1: Virtual address decomposition and Higher-Half Direct Map (HHDM) architecture.

To switch execution modes:

; Load CR3 with physical address of PML4
mov eax, boot_pml4
mov cr3, eax

; Enable Physical Address Extension (PAE) in CR4
mov eax, cr4
or  eax, 1 << 5
mov cr4, eax

; Enable Long Mode (LME) in IA32_EFER MSR (0xC0000080)
mov ecx, 0xC0000080
rdmsr
or  eax, 1 << 8
wrmsr

; Engage Paging (PG) and Protection (PE) in CR0
mov eax, cr0
or  eax, (1 << 31) | (1 << 0)
mov cr0, eax

; Far jump into 64-bit code segment
jmp 0x08:long_mode_entry
Listing 2: Long Mode transition sequence in kernel/arch/x86_64/boot.asm.

2.2 The Deterministic Kernel Initialization Sequence (`main.c`)

Upon landing in 64-bit mode, kernel_main() executes a deterministic 12-stage initialization sequence:

3. Memory Management Subsystem

3.1 Physical Memory Manager — Buddy Allocator (`pmm.c`)

Physical RAM is organized into orders 0 through 10, representing power-of-two multiples of 4 KB pages:

Order Block Size Frame Count Order Block Size Frame Count
Order 0 4 KB 1 Frame Order 6 256 KB 64 Frames
Order 1 8 KB 2 Frames Order 7 512 KB 128 Frames
Order 2 16 KB 4 Frames Order 8 1024 KB (1 MB) 256 Frames
Order 3 32 KB 8 Frames Order 9 2048 KB (2 MB) 512 Frames
Order 4 64 KB 16 Frames Order 10 4096 KB (4 MB) 1024 Frames
Order 5 128 KB 32 Frames Maximum Contiguous Order = 10
Table 1: Physical Memory Manager (PMM) buddy allocator order allocation hierarchy.

The buddy index of a frame $F$ at order $O$ is determined by bitwise XOR:

#define BUDDY_FRAME(f, order) ((f) ^ (1ULL << (order)))

Free blocks are tracked using a circular doubly-linked descriptor embedded directly into the first page of each unallocated block:

typedef struct free_block {
    struct free_block *next;
    struct free_block *prev;
    uint32_t magic;      /* Guarded by FREE_BLOCK_MAGIC = 0x12345678U */
    uint8_t  order;
} free_block_t;
Incident Case Study: BUG-004 Refcount Saturation Fix

In early revisions of pmm.c, page reference counts were stored in a uint16_t array. During stress testing involving thousands of fork() operations on shared text pages, the 16-bit counter saturated at 65,535 and wrapped around to zero. As a result, active shared pages were mistakenly returned to the buddy free-list while still mapped, causing kernel panics. In Quin OS 2, s_refcounts was widened to a uint32_t array, eliminating overflow risk across long-running process trees.

3.2 Virtual Memory Manager & Copy-on-Write (`vmm.c`)

The VMM coordinates the AMD64 4-level paging structures. Addresses are broken down into table indices via shifting and masking:

#define PML4_IDX(virt) (((virt) >> 39) & 0x1FFUL)
#define PDPT_IDX(virt) (((virt) >> 30) & 0x1FFUL)
#define PD_IDX(virt)   (((virt) >> 21) & 0x1FFUL)
#define PT_IDX(virt)   (((virt) >> 12) & 0x1FFUL)

Copy-on-Write Resolution Sequence: When a process executes sys_fork(), the child receives a duplicate PML4. Writable page table entries in user space are marked read-only and flagged with bit 9 (PTE_COW = 1ULL << 9), while incrementing s_refcounts[frame]. When either process writes to a CoW page:

  1. The processor generates a Page Fault (Exception Vector 0xE) with error code bit 1 set (Write violation).
  2. vmm_page_fault_handler() extracts the faulting address from the CR2 register and walks the active PML4.
  3. If PTE_COW is active and s_refcounts[frame] > 1:
    • Allocates a fresh 4 KB physical frame via pmm_alloc_frame().
    • Performs memcpy(PHYS_TO_VIRT(new_frame), PHYS_TO_VIRT(old_frame), 4096).
    • Updates the faulting process's page table entry to point to new_frame with PTE_WRITABLE set and PTE_COW cleared.
    • Decrements s_refcounts[old_frame] and issues invlpg to invalidate the local TLB entry.
  4. If s_refcounts[frame] == 1, the process is the sole remaining owner: the handler clears PTE_COW, enables PTE_WRITABLE, and resumes execution without re-allocating.

3.3 Kernel Slab Allocator (`heap.c`)

Dynamic kernel heap allocations (kmalloc/kfree) are served by 8 pre-allocated Slab cache pools:

static const size_t SLAB_SIZES[8] = {32, 64, 128, 256, 512, 1024, 2048, 4096};

Each slab page is indexed by an external metadata array (s_page_meta) consuming 1 byte per physical frame. Allocations exceeding 4096 bytes automatically round up to the nearest power-of-two order and allocate directly from the PMM with META_BUDDY_FLAG (0x80).

4. Preemptive Multi-Core SMP Scheduling

4.1 Application Processor Startup & Per-CPU State

Quin OS parses ACPI tables to identify available processor cores via the Multiple APIC Description Table (MADT). To awaken secondary cores (Application Processors):

  1. The Bootstrap Processor (BSP) copies the real-mode trampoline from smp_trampoline.asm to physical address 0x8000.
  2. The BSP dispatches an INIT Inter-Processor Interrupt (IPI) via the Local APIC Interrupt Command Register (ICR).
  3. Following a 10 ms delay, the BSP issues two Startup IPIs (SIPI) specifying vector 0x08 (target address 0x8000).
  4. Each AP transitions through protected mode to Long Mode, loads a unique TSS and GDT, configures its own Local APIC timer, and registers into the global scheduler table g_per_cpu[SMP_MAX_CPUS].

4.2 Slicing Mechanics: PIT Mode 2 vs Mode 3

Preemptive scheduling relies on dual timing sources:

4.3 The Cross-Core Work-Stealing Race (`BUG-080`)

Root Cause Analysis: General Protection Fault (#GP) at RIP=0x11

During multi-core testing on 4-core configurations, Quin OS experienced intermittent kernel crashes displaying RIP=0x11. Disassembly revealed that schedule() was transitioning the outgoing thread to THREAD_READY and releasing its run-queue spinlock *prior* to calling switch_context().

In that nanosecond window, a sibling CPU executing steal_work() would observe the thread in THREAD_READY state, dequeue it, and resume it using the *previous* saved RSP value, because switch_context() had not yet written the new stack pointer. Two physical cores simultaneously executed on the same stack. When the stale stack frame reached ret, execution jumped into unmapped memory (0x11).

To permanently resolve this race condition, spinlock release was migrated directly into the assembly implementation of switch_context in kernel/arch/x86_64/switch.asm:

switch_context:
    ; System V AMD64 ABI: RDI = prev, RSI = next, RDX = runq_lock
    push rbx
    push rbp
    push r12
    push r13
    push r14
    push r15

    ; 1. Store updated stack pointer into prev->rsp (offset 8)
    mov [rdi + 8], rsp

    ; 2. Switch to incoming thread's stack
    mov rsp, [rsi + 8]

    ; 3. ATOMIC RELEASE: Release runq_lock ONLY after we are provably
    ;    off prev's stack and prev->rsp is coherent!
    mov dword [rdx], 0

    ; 4. Restore incoming callee-saved registers
    pop r15
    pop r14
    pop r13
    pop r12
    pop rbp
    pop rbx
    ret
Listing 3: Atomic spinlock release in switch_context eliminating the cross-core work-stealing race.

5. System Calls, Kernel Security & SysV AMD64 ABI

5.1 Fast System Call Entry & CVE-2012-0217 Mitigation

System calls enter the kernel via the CPU SYSCALL instruction. During boot, Model-Specific Registers are initialized:

Hardware Security: CVE-2012-0217 Mitigation

On Intel x86_64 processors, executing SYSRET while the AC bit is set in RFLAGS can trigger a General Protection Fault (#GP) in Ring 0 if the return address is non-canonical. By masking bit 18 (AC) in IA32_FMASK, the hardware automatically clears this bit upon every SYSCALL invocation, mitigating this vulnerability hardware-wide.

syscall_entry:
    swapgs                      ; Switch to per-CPU scratch
    mov [gs:8], rsp             ; Preserve user RSP
    mov rsp, [gs:0]             ; Load kernel RSP0 from TSS

    push qword [gs:8]           ; Push user RSP
    push rax                    ; Preserve GPRs
    push rbx
    push rcx                    ; User return RIP
    push rdx
    push rsi
    push rdi
    push rbp
    push r8
    push r9
    push r10
    push r11                    ; User RFLAGS
    push r12
    push r13
    push r14
    push r15

    mov  rdi, rsp               ; Pass frame pointer to C dispatcher
    call syscall_dispatch
Listing 4: Assembly trampoline preserving System V register state during SYSCALL entry.

5.2 Galois LFSR Address Space Layout Randomization (`aslr.c`)

To prevent return-oriented programming (ROP) exploits in Ring-3 binaries, Quin OS implements Address Space Layout Randomization (ASLR) using a 32-bit maximal-length Galois Linear Feedback Shift Register (LFSR). The generator polynomial is:

P(x) = x32 + x22 + x2 + x + 1   (Tap Mask: 0xB4BCD35CUL)

The LFSR is seeded during early boot from hardware rdtsc jitter and PIT timing counters. Generated address slides are rounded to 2 MB boundaries to preserve shared-library relative segment offsets across elf_execve() invocations.

6. Graphics Architecture & Window Compositor

6.1 Double-Buffered Composition Engine (`qds.c`)

The Quin Display Server maintains two full-resolution ARGB32 surfaces: a front buffer mapped directly to physical display MMIO (VirtIO-GPU or Bochs BGA) and a heap-allocated back buffer. To maximize throughput on high-resolution displays (2560×1440 at 32 bpp, requiring 14.7 MB per frame), QDS implements dirty damage rectangle tracking:

typedef struct {
    uint32_t *back;
    uint32_t *front;
    uint32_t  width, height;
    /* Dirty damage bounding box */
    uint32_t  dmg_x, dmg_y;
    uint32_t  dmg_x2, dmg_y2;
    int       dmg_valid;
} qds_state_t;

When windows are dragged or content reflows, only the dirty bounding region is transferred across the PCI bus via VIRTIO_GPU_CMD_TRANSFER_TO_HOST_2D and VIRTIO_GPU_CMD_RESOURCE_FLUSH, reducing bus transfer volume by up to 88% during typical desktop use.

6.2 Anti-Aliasing & Acrylic Blur (`qaa.c`)

The Quin Anti-Aliased Engine (QAA) provides sub-pixel font rendering and geometric drawing without floating-point or SSE instructions:

6.3 Floating Window Manager (`qwm.c`)

QWM is an 8,300-line compositor managing window Z-ordering, PS/2 mouse coordinate mapping, and desktop chrome:

7. In-Tree Bare-Metal RFC 793 TCP Engine

Quin OS incorporates an independent, freestanding Transmission Control Protocol implementation (drivers/net/tcp.c) designed to RFC 793 specifications without external networking libraries:

7.1 State Machine & Sliding Window Flow Control

The stack implements the complete TCP finite state machine: CLOSED, SYN_SENT, SYN_RECEIVED, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2, CLOSE_WAIT, CLOSING, LAST_ACK, and TIME_WAIT. Connections negotiate Maximum Segment Size (MSS, default 1460 bytes) and Window Scale options during the 3-way handshake.

7.2 Jacobson/Karels RTO Estimation & Fast Retransmit

Dynamic Retransmission Timeouts (RTO) are calculated by tracking smoothed round-trip time ($SRTT$) and round-trip variance ($RTTVAR$):

RTTVAR ← (1 - β) × RTTVAR + β × |SRTT - R'|
SRTT ← (1 - α) × SRTT + α × R'
RTO ← SRTT + max(G, 4 × RTTVAR)

Where $\alpha = 1/8$, $\beta = 1/4$, and RTO is bounded between $200 \text{ ms}$ and $15 \text{ s}$. The stack triggers fast retransmission immediately upon receiving three duplicate acknowledgments (dup-ACKs), bypassing timer expiration.

7.3 Supporting Protocols & Time Synchronization

The network subsystem is completed by:

8. Storage Architecture & Filesystem Drivers

8.1 Virtual File System Architecture (`vfs.c`)

The Virtual File System routes operations through a 16-node prefix mount table:

8.2 Ext2 Implementation & Hardware Safety Gates (`ext2.c`)

The Ext2 driver supports block sizes of 1024, 2048, and 4096 bytes, direct, indirect, and doubly-indirect block addressing, and directory tree traversals.

Hardware Safety: Real-Disk Protection Gate

To prevent catastrophic data loss when booting on physical hardware with existing operating systems, ext2_init() verifies the volume label against EXT2_QUIN_VOLUME_LABEL ("QUINOS_DISK"). If an attached physical SATA or NVMe drive does not match this label, the driver strictly refuses to mount or write to the device.

8.3 Hardware Driver Matrix

Subsystem Source File Hardware Specifications & Protocols
Display virtio_gpu.c, Bochs BGA VirtIO modern 2D/3D command rings; Bochs I/O ports 0x01CE/0x01CF
Storage virtio_blk.c, ahci.c, nvme.c VirtIO Block; SATA AHCI DMA; PCIe NVMe submission/completion queues
Network virtio_net.c, e1000.c VirtIO Net with MAC filtering; Intel Gigabit 82540EM
USB usb_xhci.c, usb_uhci.c USB 3.0 xHCI controller; USB 1.1 UHCI; USB HID Keyboard/Mouse; Mass Storage
Audio ac97.c, speaker.c Intel 82801AA AC97 stereo PCM DMA (NABMBAR); PC Speaker PIT Channel 2 (port 0x61)
Input mouse.c, keyboard.c, virtio_input.c PS/2 Keyboard (IRQ1 scancode set 1); PS/2 Mouse (IRQ12 3-button); VirtIO Tablet
Table 2: Built-in device driver implementation matrix.

9. Userspace Architecture & musl libc 1.2.4

9.1 System V AMD64 ABI Stack Initialization (`elf.c`)

The ELF64 loader maps PT_LOAD segments into per-process address spaces. Before transferring execution to user space via sysretq or iretq, the kernel constructs the System V AMD64 ABI stack frame:

Higher Addresses
  [ strings: environment strings, argument strings ]
  [ 16-byte random seed for ChaCha20 stack canary ]
  [ auxv: AT_PHDR, AT_PHENT, AT_PHNUM, AT_PAGESZ=4096, AT_ENTRY, AT_RANDOM, AT_NULL ]
  [ envp: envp[n]=NULL, ..., envp[0] ]
  [ argv: argv[argc]=NULL, ..., argv[0] ]
  [ argc: 64-bit integer ] <-- User RSP (16-byte aligned)
Lower Addresses
Figure 2: System V AMD64 ABI user stack frame constructed by kernel/src/elf.c.

9.2 Ported Applications & Native Engines

Through its POSIX syscall compatibility and static linking against musl libc, Quin OS 2 hosts a diverse set of applications:

10. Comparative Architectural Analysis

10.1 Quin OS 2 vs. Linux Kernel (v6.x)

Dimension Quin OS 2 Linux Kernel (v6.x)
Kernel Model Monolithic transitioning to Isolated Ring-3 Server Model Modular Monolithic with Loadable Kernel Modules (LKM)
Codebase Scale ~300,000 lines (Kernel, Drivers, GUI, Userspace) ~35,000,000+ lines (Over 30 years of accumulation)
Cold Boot Duration < 1.8 seconds (Direct BIOS/GRUB to QWM GUI) 8.0 – 25.0 seconds (initramfs, systemd services)
Idle RAM Footprint ~42 MB Total RAM (Complete graphical desktop) ~500 MB – 1.5 GB RAM (with desktop environment)
Physical Memory Order 0–10 Buddy Allocator with 32-bit atomic CoW refcounts Multi-tier Buddy Allocator with SLUB/SLAB/SLOB caches
Virtual Memory 4-level paging, HHDM at 0xFFFF800000000000, CoW fork 4-level & 5-level paging, VMA trees, swap, kswapd
Task Scheduler Preemptive 3-Priority Round-Robin + LAPIC & 100 Hz PIT Completely Fair Scheduler (CFS) / EEVDF
Display Pipeline In-tree double-buffered QDS compositor & floating QWM Userspace client-server model (X11 / Wayland Compositor)
GUI Toolkit Native QuinUI hand-drawn vector widgets (zero-decode) External third-party libraries (GTK, Qt, wxWidgets)
Network Stack Freestanding in-tree C RFC 793 TCP/IP (~4,000 lines) Multi-protocol stack with eBPF, Netfilter, IPsec
C Standard Library musl libc 1.2.4 (statically compiled ELF64 binaries) GNU C Library (glibc) or musl libc
Table 3: Comprehensive architectural comparison: Quin OS 2 versus the Linux Kernel.

10.2 Quin OS 2 vs. TempleOS (Terry A. Davis)

Dimension Quin OS 2 TempleOS (Terry A. Davis)
Primary Philosophy Modern, secure, isolated, multitasking desktop OS Divine comedy / biblical temple recreation; single-purpose
Privilege Isolation Strict Ring-0 / Ring-3 CPU isolation (SYSCALL/SYSRET) Zero ring separation: All code executes in Ring-0
Memory Protection PML4 4-Level Paging, NX/XD bit, CoW, ASLR, Canaries Identity-mapped flat memory; zero memory protection
Multi-Core SMP Preemptive round-robin across cores with per-CPU run-queues Master/slave core model; APs wait for HolyC job queues
Display Resolution 2560×1440 True Color (32-bit ARGB) Double-Buffered 640×480 16-Color fixed VGA palette
Graphics & Font Engine QAA sub-pixel anti-aliasing, rounded rects, acrylic blur Fixed 8×8 bitmap text font grid
Networking Capability Full RFC 793 TCP/IP (Ethernet, DHCP, DNS, HTTP, NTP) Zero networking support by theological design
Filesystem Ext2 (read/write), FAT32, USTAR, procfs, devfs, shmfs RedSea 64-bit filesystem, FAT32, ISO9660
Audio Subsystem 16-Bit Stereo PCM audio via AC97 DMA controller Single-voice PC speaker frequency modulation
Language & Toolchain Standard C99 / Assembly (GCC / NASM / TinyCC) HolyC (custom C dialect with in-kernel JIT compiler)
Table 4: Comparative analysis: Quin OS 2 versus TempleOS.

11. Performance Benchmarking & Optimization Techniques

11.1 Empirical Measurements

Metric / Measurement Quin OS 2 Linux (Debian Minimal)
Kernel Binary Size ~1.4 MB (Standalone ELF) ~9.2 MB (vmlinuz compressed)
Total RAM Consumption at Desktop 42 MB 680 MB
Cold Boot Duration to Interactive Desktop 1.68 seconds 11.4 seconds
Context Switch Overhead (switch_context) ~142 CPU cycles ~380 CPU cycles
Syscall Entry/Exit Overhead (SYSCALL) ~85 CPU cycles ~190 CPU cycles
Ext2 Read Throughput (VirtIO-Blk) ~30 MB/s ~450 MB/s (cached)
Table 5: Empirical performance benchmarks measured under QEMU/KVM virtualization.

11.2 Key Architectural Optimizations

Three low-level design patterns account for Quin OS's responsiveness and low memory footprint:

12. Engineering Roadmap & Future Research

Active engineering on Quin OS 2 is structured across five progressive phases:

13. Research Attribution & BibTeX Citation

To cite this research in academic publications, technical reports, or comparative operating system literature, please use the following BibTeX entry:

@article{chamyoung2026quinos2, title={Quin OS 2: Architecture, Implementation, and Empirical Evaluation of a Freestanding 64-Bit Operating System}, author={Chamyoung, Dr. (Alok)}, journal={Inbora Studio Technical Reports}, volume={2}, number={1}, pages={1--48}, year={2026}, publisher={Inbora Studio}, url={https://inborastudio.github.io/QuinOS/} }

Official Project Repositories