Skip to content

Latest commit

 

History

History
81 lines (66 loc) · 4.59 KB

v64.md

File metadata and controls

81 lines (66 loc) · 4.59 KB

v64: 64-bit browser engine

LumiBoot integrates speedyHKjournalist/v64 as the lazy V64Provider. The runtime is pinned to commit 74d2bafcc7d568e2ab4374804e176f1a8a350f61 (27 October 2026); every published WASM, Worker, plugin, BIOS and WebGPU asset is locked by byte size and SHA-256 in scripts/v64-assets.lock.json.

There is no virtualization backend. CPU emulation, devices, disk I/O and rendering execute in the visitor's browser.

Implemented and verified here

  • x86-64 CPU with the v64 WebAssembly page-tier JIT.
  • A dedicated CPU Worker.
  • 1–8 guest cores; parallel: "auto" uses one Worker per vCPU when the page is cross-origin isolated, with v64's cooperative fallback otherwise.
  • ISO, kernel/initramfs and RAW hard-disk boot paths.
  • Persistent RAW disks in OPFS. LumiBoot copies imported bytes once to opfs:lumiboot/v64/disks/<system>.img; disk_option: "read_write" writes the guest's changes back from the CPU Worker.
  • VirtIO, NE2000 and E1000 network devices through the existing LumiBoot network profiles; offline remains the default.
  • PS/2 keyboard/mouse, VGA, optional Intel HD Audio, i440FX/Q35 and ACPI.
  • Bochs VGA by default; VMware SVGA II and virtio-gpu plugins plus the v64 WebGPU renderer are available when a profile selects them and WebGPU exists.
  • Real E2E boot of the unmodified official Alpine 3.24.0 x86_64 virt ISO. The test waits for the guest's localhost login: prompt, logs in, and proves uname -m is x86_64. A successful run took about 1.5 minutes on two cores.

Prepare and verify:

pnpm assets:v64:prepare
pnpm assets:v64:alpine
pnpm assets:v64:check
VM_E2E_ASSETS=1 pnpm exec playwright test tests/e2e/session-alpine-v64.spec.ts --project=chromium --workers=1

The E2E server is Playwright's port 5200. Do not run this test against the developer's port 5173.

Compatibility status

Guest LumiBoot status Evidence / limit
Fedora 44 x86-64 verified Real boot and x86_64 userspace command in session-fedora.spec.ts; live ISO built by images/fedora-44-x86-64/build.sh, booted from its own GRUB El-Torito record (boot.cdromOnly), because the injected-bzimage path hard-codes the initrd at 64 MiB and a kernel that decompresses above it overwrites it
Alpine 3.24 x86-64 verified Real boot and x86_64 userspace command in session-alpine-v64.spec.ts
Graphical Linux x86-64 runtime path integrated, not yet verified virtio-gpu/VMware SVGA and WebGPU are wired, but no redistributable desktop fixture has passed a LumiBoot E2E test yet. First candidate: the fedora-44-x86-64-xfce variant (Xorg modesetting + XFCE on the bochs-drm framebuffer), declared validated: true (image built locally) but no E2E boot recorded yet
Windows 7 x64 not verified Upstream lists Windows 7 as unverified
Windows 10 x64 not verified Upstream lists Windows 10 as unverified
Windows 11 x64 not verified No v64 validation; CPU allow-list, TPM 2.0, Secure Boot/UEFI and WDDM 2.x remain material obstacles
ARM64 Linux upstream-capable, not exposed by V64Provider yet Needs the separate ARM64 WASM core, QEMU virt machine, direct kernel/initrd/device-tree boot and a dedicated manifest contract
macOS unsupported No validated v64 guest, no Apple hardware model, and licensing restricts use to Apple-branded hardware. LumiBoot makes no compatibility claim

Windows media and macOS media are never distributed by LumiBoot. No Windows 8.1 entry exists on the v64 engine: the catalogue's Windows 8.1 system is the x86 profile (windows-8-1-x86) running on v86 from the operator's local RAW disk, declared validated: true but outside the v64 compatibility table.

Hosting requirements

Parallel cores require these headers, enabled by default in the Vite dev and preview servers:

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Resource-Policy: same-origin

Production hosting must send equivalent headers. Cross-origin disks must also be CORS/CORP-compatible. Set LUMIBOOT_COOP_COEP=0 only when the host cannot provide isolation; v64 then keeps multiple guest cores but schedules them cooperatively on one host thread.

Upstream references: v64 README, x86-64, multicore, GPU devices, disk persistence.