LikeOS
Donate
Under the hood

Technical Details

Everything inside LikeOS 0.2.7-HEAD (dev branch) — from the kernel to the web browser.

At a glance

LikeOS is a 64-bit operating system written from scratch: its own kernel, its own C library and dynamic linker, and a Unix-like userland, with a large set of unmodified upstream programs ported on top — from bash and OpenSSH up to an X.Org desktop, GTK applications and a WebKit web browser. This page is an inventory of what the current development tree contains.

Architecture
x86-64 (long mode), higher-half kernel, up to 64 CPUs
Boot
UEFI only; own GNU-EFI bootloader that loads the ELF64 kernel straight from the ext4 root filesystem
Kernel
Monolithic, preemptive, SMP; 199 system calls with a POSIX-style interface; ACPI through ACPICA 20251212
Root filesystem
ext4 (read/write, journalled), on a single GPT USB disk image: FAT32 EFI System Partition + ext4 root
Graphics
Own DRM/KMS core with GEM, sync objects and DMA-BUF; native Intel i915 and VMware SVGA (vmwgfx) drivers; UEFI framebuffer fallback
Desktop
X.Org server 21.1 (modesetting + glamor), ctwm with a Windows 11-style look, a LikeOS taskbar, PCManFM desktop, GTK 3.24
Web browser
luakit 2.4.0 on WebKitGTK 2.52.6
Shell
bash 5.2 as /bin/sh
License
GNU General Public License version 2 (GPLv2)
Current release
0.2.7-HEAD (dev branch)

Kernel core

The kernel is organised into subsystems for the executive (ke), the hardware abstraction layer (hal), memory management (mm), filesystems (fs), console and terminals (io), device drivers (dev) and networking (net).

Mode
64-bit long mode, higher-half mapping, four-level paging
Boot path
UEFI bootloader with framebuffer (GOP) and memory-map handoff
CPUs
Up to 64; AP start-up via INIT-SIPI-SIPI and a real-mode trampoline
Interrupts
IDT, Local APIC (xAPIC and x2APIC), IOAPIC routing, PCI MSI
Timekeeping
LAPIC timer tick, TSC-based precise time, HPET comparator for high-resolution timers
System calls
199, entered through the SYSCALL instruction
ACPI
ACPICA 20251212 (table parsing, AML interpreter, namespace enumeration)

Core features

  • SMP with per-CPU data via the GS base, per-CPU run queues, IPIs and TLB shootdown.
  • Per-task extended processor state (x87/SSE/AVX through XSAVE), saved and restored across context switches and in signal frames.
  • High-resolution timers on an HPET comparator, giving precise nanosleep, clock_nanosleep, futex and poll timeouts.
  • Clocks: CLOCK_REALTIME, MONOTONIC, MONOTONIC_RAW, BOOTTIME, the coarse variants and per-process/per-thread CPU-time clocks.
  • POSIX interval timers (timer_create family), setitimer and alarm.
  • CPU performance: HWP with the energy-performance preference set to maximum performance on each core, and Enhanced SpeedStep on older Intel CPUs.
  • ACPI power management: S5 poweroff and the ACPI reset register.
  • Firmware loader that reads blobs (Intel GPU DMC, GuC and HuC images) from /lib/firmware.
  • ChaCha20-based CSPRNG with an entropy pool, /dev/random, /dev/urandom and getrandom.
  • Assertion framework (BUG_ON, WARN_ON, WARN_ON_ONCE, VM_BUG_ON, BUILD_BUG_ON) and full crash dumps for kernel and user faults.

Console and terminals

  • Framebuffer console with double buffering, write-combining, scrollback, a scrollbar and a mouse pointer.
  • Virtual terminals with an ANSI/VT100/VT220/xterm emulator: 256-colour and true-colour SGR, scroll regions, alternate screen, mouse reporting and terminal query replies.
  • POSIX TTY line discipline, job-control signals, and pseudo-terminals (/dev/ptmx, /dev/pts).
  • UTF-8 end to end; a PSF console font (Terminus) with a Unicode table.
  • Serial and USB-serial logging back ends.

Memory management

  • Physical page allocator with a bitmap and per-page reference counts; a RAM-sized direct map.
  • SLAB allocator for kernel objects; memory poisoning in debug builds.
  • Demand paging: anonymous memory, brk, BSS and file-backed mappings are populated on first touch, not at exec.
  • Copy-on-write fork, plus a real vfork that shares the address space.
  • mmap/munmap (anonymous, private and shared file mappings), mprotect, mremap, madvise, mincore, and brk that returns memory when the heap shrinks.
  • A per-process mapping table that grows on demand, up to 65,530 mappings — enough for large GTK and WebKit processes.
  • Guard-paged stacks; no-execute (NX) mappings, with kernel sections remapped by permission.
  • System V shared memory and semaphores, POSIX shared memory (/dev/shm) and memfd_create.
  • Unified page cache with read-ahead and CLOCK eviction, shared by ext4 and FAT32.
  • OOM killer: when reclaim cannot satisfy an allocation, a victim process is chosen and killed instead of the machine stalling.
  • Diagnostics: memstat (system and per-process accounting) and pmap (one process's address space, with a watch mode).

Scheduling and processes

Scheduler

  • Preemptive, fair scheduler: every task is charged the CPU time it uses (vruntime), and the task that has run least runs next.
  • Per-CPU run queues kept in vruntime order; woken tasks are placed just ahead of the runnable ones.
  • Periodic load balancing between CPUs, and CPU affinity (sched_setaffinity/sched_getaffinity).
  • The standard sched_* calls are accepted; there are no priority classes.

Processes and threads

  • fork, vfork, clone (threads, TLS, child TID set/clear, shared files, FS and signal handlers), execve, exit_group, wait4.
  • ELF64 loading of static and dynamically linked programs, and #! scripts.
  • Process groups, sessions and job control.
  • Signals: rt_sigaction with SA_SIGINFO, real-time queued signals, sigaltstack, sigsuspend, sigtimedwait, tgkill, and syscall restart.
  • Futexes: wait/wake, requeue and compare-requeue, wake-op, bitsets, priority-inheritance locks, and robust lists; process-private and shared keys.
  • Event interfaces: poll, ppoll, select, pselect6, epoll, eventfd, timerfd, signalfd, pipes.
  • ptrace: attach/trace-me, peek/poke memory and user area, general and FP registers, single-step, syscall tracing, fork/vfork/clone/exec/exit events, and hardware watchpoints through the debug registers.
  • /proc: self, <pid>/maps, cmdline, comm, exe, cwd, fd, stat, statm, status, auxv, mem, plus cpuinfo, meminfo, mounts, uptime, version.
  • ps shows what a blocked task is waiting on (WCHAN); top, kdump (kernel TCP, AF_UNIX, PTY and task tables).

Filesystems and storage

ext4 — the root filesystem

  • Full read and write support: extent trees (with growth) and indirect block mapping.
  • Hash-indexed (htree) directories, including directory hashing on write.
  • JBD2 journal in ordered-data mode, with replay after an unclean shutdown.
  • 64-bit, flex_bg and metadata_csum (CRC32C) filesystems.
  • Extended attributes, symbolic and hard links, fallocate.
  • Correct unlink-while-open semantics: an orphaned inode lives until its last close.
  • The bootloader reads /boot/kernel.elf straight out of ext4.

Other filesystems

  • FAT32 with long file names, used for the EFI System Partition.
  • tmpfs mounted at /ram, with hard links (used to run the browser's cache in RAM).
  • devfs: /dev/null, zero, random, urandom, tty, console, ptmx, pts/*, fb0, input/event*, dri/card*, dri/renderD*, shm, fd and the disk nodes.
  • procfs (/proc) and sysfs (/sys/bus/pci/devices and device classes such as the backlight).

VFS and caching

  • VFS with symlinks, hard links, *at() calls, chroot, statfs, utimensat, sync/fsync/fdatasync.
  • POSIX advisory record locks (F_GETLK/F_SETLK/F_SETLKW).
  • Dentry cache (positive and negative entries), inode cache, and the unified page cache with dirty writeback.

Storage

  • Block device layer over USB mass storage (Bulk-Only Transport) on xHCI; 1 MiB write coalescing for USB throughput.
  • Disk image: one GPT USB disk — partition 1 is the FAT EFI System Partition (bootloader only), partition 2 the ext4 root; make usb-write grows the root to the full drive.
AHCI/SATA and NVMe controllers are not yet supported, and mounting removable media is still pending; LikeOS runs from a USB drive.

Devices and buses

AreaSupport
PCIConfiguration-space enumeration, capabilities, MSI; exported in /sys/bus/pci
ACPIACPICA 20251212: tables (RSDP/XSDT/MADT/FADT), AML, device enumeration, S5 poweroff, reset
Interrupt controllersLocal APIC (xAPIC and x2APIC), IOAPIC; HPET
USB hostxHCI (USB 3.x) host controller driver, interrupt-driven
USB classesMass storage (Bulk-Only Transport); HID boot keyboards and mice, report-protocol mice with scroll wheel; USB-serial logging
Legacy inputPS/2 keyboard and mouse
I2C-HIDIntel LPSS DesignWare I2C controller with HID-over-I2C touchpads, found through ACPI (experimental)
Input interfaceevdev (/dev/input/event*), used by the X server
DisplayIntel i915, VMware SVGA II/SVGA3D (vmwgfx), UEFI GOP framebuffer, /dev/fb0 (fbdev)
BacklightIntel PWM backlight in /sys/class/backlight/intel_backlight and the backlight tool
NetworkNine Ethernet drivers — see Networking

Networking

Protocol stack

  • Ethernet, ARP, IPv4, ICMP, IGMP, UDP and TCP, with a routing table and softirq-based receive processing.
  • In-kernel DHCP client and DNS resolver (forward and reverse).
  • BSD socket API: sendmsg/recvmsg, accept4, sendfile, shutdown half-close, raw sockets for ping and traceroute.
  • Socket options including SO_REUSEADDR, SO_REUSEPORT, SO_KEEPALIVE, SO_LINGER, buffer sizes and timeouts, TCP_NODELAY and the keepalive tunables.

TCP

  • Window scaling and timestamps (RFC 7323), selective acknowledgements (RFC 2018).
  • NewReno congestion control (RFC 5681), RTO computation (RFC 6298), initial window of ten segments (RFC 6928).
  • SYN cookies (RFC 4987), SipHash-based initial sequence numbers (RFC 6528), challenge ACKs (RFC 5961), path-MTU handling (RFC 1191).

Unix domain sockets

  • Stream, datagram and sequenced-packet sockets; filesystem and abstract names.
  • File-descriptor passing (SCM_RIGHTS) and peer credentials (SO_PEERCRED) — what D-Bus, the X server and DRI3 rely on.

Network drivers

DriverHardware
e1000Intel 82540EM, 82545EM (QEMU, VMware default, VirtualBox PRO/1000)
e1000eIntel 82574L, 82583V, I217, I218 and the I219 family (generations 1–23); verified on the ThinkPad P50
igbIntel 82575, 82576, I350, I210, I211
eepro100Intel 8255x
pcnet32AMD PCnet-PCI II / PCnet-FAST III
ne2kNE2000-compatible PCI (Realtek RTL8029AS)
rtl8139Realtek RTL8139 / RTL8139C+
tulipDEC 21040, 21041, 21140, 21142, 21143
vmxnet3VMware paravirtual NIC (ESXi, Workstation, Fusion, QEMU)

Command-line tools: ifconfig, route, arp, arping, ping, traceroute, netstat, dhclient, host, dig, nslookup, hostname, plus the ported curl, netcat and OpenSSH.

The stack is IPv4-only.

Graphics and GPU drivers

DRM/KMS core

A display-manager core written for LikeOS, offering the standard DRM ioctl interface that libdrm, Mesa and the X server's modesetting driver use.

  • Primary nodes (/dev/dri/card*) and render nodes (/dev/dri/renderD*), DRM master handling.
  • Atomic and legacy mode setting: CRTCs, planes (primary, overlay, cursor), connectors, properties, blending, colour management and damage clips.
  • Vblank counters and events, page flips, CRTC sequence queries.
  • GEM buffer objects, dumb buffers, and PRIME/DMA-BUF sharing between processes.
  • Fences, fence arrays and chains, reservation objects, sync files, and binary and timeline sync objects.
  • Dirty tracking of coherently mapped buffers through the page tables.
  • EDID, DisplayID and ELD parsing; DisplayPort, dual-mode, DSC, HDMI infoframe and SCDC helpers.
  • Device suspend/resume with a gate that holds clients off the hardware.
  • The kernel console becomes a DRM client when a driver is present, and hands the screen to the X server and takes it back.

Intel i915 driver

A native driver whose device table covers Intel graphics from the i830 (generation 2) through Xe3 (Lunar Lake, Battlemage, Panther Lake, Wildcat Lake, Nova Lake). The Skylake-class HD Graphics 530 of the ThinkPad P50 is the reference machine.

  • Command submission: ring buffers on generations 2–7; execution lists with per-context 48-bit address spaces from Broadwell; GuC firmware submission (interface version 70) on the parts that require it (DG2, Meteor Lake and later), including the separate media GT.
  • Engines: render, blitter, video decode, video enhancement and compute.
  • Global GTT, per-process GTT (4-level, 5-level on Xe2+), stolen memory, and device-local memory on the discrete DG1, DG2 and Battlemage cards.
  • Render P-states (RPS), and SLPC frequency management through the GuC.
  • Firmware: DMC display microcode, GuC and HuC images from /lib/firmware/i915 and /lib/firmware/xe.
  • Hang detection and engine reset; workarounds and MOCS tables per platform.
  • The i915 uAPI Mesa's iris driver and the VA-API media drivers use: GEM objects, contexts and VMs, execbuffer2 with soft-pin and sync objects, queries.

Intel display engine

  • Embedded DisplayPort panels from the VBT and EDID: link training, panel power sequencing, PWM backlight, ACPI OpRegion.
  • DisplayPort, HDMI and DVI outputs with hotplug detection; Type-C ports (Ice Lake to Meteor Lake).
  • Display stream compression (DSC), variable refresh timing, colour management, X- and Y-tiled scan-out.
  • PLLs and PHYs across generations: combo PHYs, Synopsys PHYs (DG2), C10/C20 PHYs (Meteor Lake and Arrow Lake), LT PHY (Nova Lake).
  • Legacy outputs of older generations: VGA, LVDS, SDVO, DVO, the TV encoder, and MIPI DSI panels on Bay Trail and Cherry Trail.
  • Display bandwidth, watermarks, CDCLK and power-well management.

VMware SVGA (vmwgfx)

  • A hardware layer for the SVGA II adapter found in VMware and VirtualBox (VMSVGA) — not used under QEMU, where LikeOS draws on the UEFI framebuffer; every optional feature is gated on what the host advertises.
  • Three scan-out paths chosen by device capability: legacy VRAM, screen objects and screen targets.
  • SVGA3D with guest-backed objects (MOBs, GB surfaces), DX (VGPU10) contexts, views and shaders, and command buffers.
  • Command-stream validation and handle translation, so no process can name another's objects.
  • FIFO and interrupt-driven fences, a hardware cursor, and the video overlay stream offered to X as an XVideo adaptor.
  • Suspend/resume, and the guest-to-host message channel.

Userspace graphics stack

ComponentVersionNotes
Mesa25.3.6Gallium drivers: iris (Intel, Broadwell and later), svga (VMware/VirtualBox SVGA3D), llvmpipe, softpipe. OpenGL, OpenGL ES 2, GLX (DRI), EGL and GBM on X11
LLVM23.1.0Built for LikeOS (x86 back end) as llvmpipe's JIT
libdrm2.4.124DRM userspace interface
libepoxy1.5.10GL dispatch for GTK
GLU / Mesa demos9.0.3 / 9.0.0

The X server runs glamor (OpenGL-accelerated 2D), DRI3 and Present on Intel graphics and on VMware or VirtualBox with 3D enabled; clients such as WebKit render on the GPU through the render node. Elsewhere it draws in software and GL falls back to llvmpipe. drminfo reports the driver and its capabilities.

Desktop and applications

Session

  • startx from any account: the X server is installed setuid root and drops privileges once its devices are open.
  • The server configuration is chosen at start-up from the detected GPU (i915, VMware 3D, other DRM driver, or plain fbdev).
  • A D-Bus session bus is started with the session.

Windows 11-style look

  • ctwm window manager with LikeOS additions: flat, 30-pixel "Fluent" title bars with the application icon, wide minimise/maximise/close buttons (close in red), anti-aliased Xft title fonts, click-to-focus and raise-on-click.
  • taskbar, a LikeOS GTK panel along the bottom: start button with a menu built from the installed .desktop files, a button per window with focus highlight and running indicators, a four-workspace switcher, a load and memory monitor, and a clock — driven purely through the EWMH and ICCCM standards.
  • A LikeOS GTK 3 theme compiled from SCSS, Windows-style message dialogs, and the LikeOS cursor theme generated at build time.
  • Fonts: Selawik as the interface font, plus Noto Sans, DejaVu, Liberation and the X core fonts.
  • PCManFM draws the wallpaper and desktop icons; new accounts receive launchers in ~/Desktop.

X Window System and toolkits

ComponentVersionNotes
X.Org server21.1.23modesetting driver with glamor, DRI2/DRI3, Present, GLX; XVideo
xf86-video-fbdev / xf86-input-evdev0.5.0 / 2.11.0Software fallback and input
libX11 / libxcb1.8.13 / 1.17.0Plus the usual X extension libraries
libxkbcommon / xkeyboard-config1.13.1 / 2.47Keyboard handling
Mesa25.3.6See Graphics
FreeType / fontconfig / pixman2.13.3 / 2.15.0 / 0.46.4Font rendering and pixel compositing
Motif2.3.8Toolkit for XNEdit
GTK3.24.52Main toolkit; GTK 2.24.33 is also built for HexChat
GLib2.88.3GObject, GIO; glib-networking 2.80.1
Cairo / Pango / HarfBuzz1.18.4 / 1.58.0 / 14.3.0With FriBidi 1.0.16
gdk-pixbuf / ATK2.44.7 / 2.38.0
GtkSourceView / VTE4.8.4 / 0.84.1Editor and terminal widgets
D-Bus1.16.2Session bus
libstdc++GCC 13.3.0C++ runtime for the C++ ports
Adwaita / hicolor icons, shared-mime-info3.38.0 / 0.18 / 2.5.1

Applications

ApplicationVersionNotes
ctwm4.1.0Window manager (with LikeOS patches)
PCManFM1.4.0File manager and desktop (libfm 1.4.1, menu-cache 1.1.1)
Claws Mail4.4.0IMAP, POP3 and SMTP over TLS (libetpan, GnuTLS 3.8.13), spell checking via Enchant and Hunspell
Mousepad0.7.0GTK text editor
xfce4-terminal1.2.0VTE-based terminal (libxfce4ui 4.20.2, xfconf 4.20.0)
HexChat2.16.2IRC client
galculator2.1.4Calculator
luakit2.4.0Web browser — see below
xterm410UTF-8, 256 colours
XNEdit1.6.3Motif text editor
X clients–xcalc, xclock, xload, xsetroot, xrandr, xset, xauth, xvinfo, twm

Web browser and multimedia

WebKitGTK 2.52.6

  • The GTK 3 API (webkit2gtk-4.1) on the X11 target, with feature options matching a mainstream desktop distribution build.
  • Skia rendering with its GPU back end on Mesa, a GPU process, and frames passed between processes as DMA-BUF descriptors via GBM; CPU rendering where there is no GPU.
  • JavaScriptCore with all JIT tiers, WebAssembly and the sampling profiler.
  • GStreamer media: video, Web Audio, Media Source Extensions, MediaStream, MediaRecorder, WebCodecs and GStreamer GL.
  • Gamepads (libmanette), WebDriver, colour management (LCMS), hyphenation, libsecret, MiniBrowser.
  • Networking through libsoup 3.6.6 with GnuTLS, HTTP/2 (nghttp2), the public suffix list (libpsl); ICU 78.3, SQLite, WOFF2/Brotli and WebP.

luakit 2.4.0

  • Keyboard-driven browser scripted in Lua 5.1.5 (with LuaFileSystem 1.9.0).
  • Hardware acceleration always on; window size chosen from the screen size.
  • Built-in ad blocking with option-aware filter rules and a keyword index, shipping EasyList, EasyPrivacy, Peter Lowe's list and more than twenty regional lists.
  • An optional launcher keeps the browser's profile and caches in RAM (/ram).

Multimedia

ComponentVersionNotes
GStreamer1.24.13Core with base, good, bad and libav plugins
FFmpeg7.1.1Codecs, ffmpeg/ffprobe, VA-API hardware acceleration
libva / libva-utils2.22.0VA-API, vainfo
Intel media driver (iHD)24.3.4With gmmlib 22.5.2
Intel VA-API driver (i965)2.4.1Fallback driver

On Intel graphics, video is decoded on the GPU's video engines through VA-API (GStreamer's va decoders for H.264, H.265, VP8, VP9 and AV1, and FFmpeg's VA-API hwaccels). On VMware, the adapter's overlay is offered as the "VMware Overlay Video Engine" XVideo adaptor next to glamor's textured adaptor.

C library and runtime

LikeOS has its own C library (libc.so and libc.a) and its own dynamic linker, ld-likeos.so, both written for the system.

  • Dynamic linker: dlopen/dlsym, GNU hash tables, static and dynamic TLS (__tls_get_addr), constructors and DT_INIT_ARRAY, RELRO.
  • Threads: POSIX threads (mutexes including robust ones, condition variables, barriers, read-write locks, thread-specific data), POSIX semaphores, and C11 <threads.h>.
  • malloc: bin-based allocator with per-thread caches and multiple arenas.
  • Math: correctly rounded double and float functions from LLVM libc, plus fenv.
  • Unicode and locales: UTF-8 locale, the full multibyte and wide-character interface, wcwidth, <uchar.h>, generated Unicode tables.
  • iconv: UTF-8, UTF-16, UTF-32, ISO-8859-1, ISO-8859-15 and ASCII.
  • POSIX regular expressions (BRE and ERE, leftmost-longest), fnmatch, glob, ftw.
  • Time zones from POSIX TZ rules or common Olson names.
  • Networking: getaddrinfo, resolver, getifaddrs; users and groups: passwd, group, shadow.
  • posix_spawn built on clone(CLONE_VM|CLONE_VFORK), popen, makecontext/swapcontext, PTY helpers, termios, System V IPC.
  • Stack-smashing protection in libc and in every program built against it.

Base system ports

ComponentVersionNotes
bash5.2.37The system shell, installed as /bin/sh
OpenSSH10.4p1Client tools and the sshd server
OpenSSL3.5.6TLS and crypto library and toolkit
curl8.14.1With nghttp2 1.65.0
tmux3.6aTerminal multiplexer (libevent 2.1.12)
nano8.3Text editor with syntax highlighting
netcatOpenBSDNetworking utility
zlib1.3.1Compression
ncurses APILikeOSA LikeOS implementation of the curses interface

Core utilities

Written for LikeOS: ls, cat, cp, mv, rm, mkdir, rmdir, ln, touch, chmod, stat, file, find, readlink, cmp, grep, sed, expr, wc, sort, uniq, cut, tr, head, tail, more, less, strings, hexdump, uname, uptime, date, time, ps, top, df, du, free, dmesg, nproc, kill, sleep, env, which, echo, printf, man, tty, shutdown, poweroff, reboot, halt and more.

Security and users

  • Multi-user login: init → getty → login driven by /etc/inittab.
  • PAM with a yescrypt-based crypt(3); /etc/passwd, /etc/shadow, /etc/group.
  • Real, effective and saved user and group IDs, supplementary groups and set-user-ID execution.
  • Discretionary access control enforced in the VFS through a single privilege check, so permissions apply to every path that opens a file.
  • Device permissions by group (video, render); /proc/<pid>/mem and process maps restricted to the owner and root.
  • ptrace and process inspection subject to the same access check.
  • SMEP and SMAP where the CPU supports them, NX mappings, ring 3 isolation.
  • Stack canaries in the kernel and userland; RELRO in the dynamic linker.
  • ChaCha20 CSPRNG, SYN cookies and SipHash TCP sequence numbers.
  • chroot; OpenSSH server for remote logins.
  • Account tools: id, whoami, groups, su, passwd, adduser, addgroup, deluser, delgroup.

Developer tools

  • GDB 17.2 and gdbserver running on LikeOS, on top of the kernel's ptrace with hardware watchpoints.
  • User crash reports that name the faulting mapping and offset and recover a probable call chain, resolvable with addr2line even for stripped libraries.
  • Kernel crash dumps and the assertion framework; debug builds with symbols and memory poisoning.
  • Diagnostics: memstat, pmap, kdump, ps with WCHAN, dmesg, drminfo.
  • On-target test programs: system-call, libc, memory, fork, network, OpenSSL and ext4 tests.
  • Host-side unit tests for libc (malloc, printf, strings, math, time zones, Unicode) and for the DRM and i915 code (EDID, VBT, DisplayPort, DSC, fences, sync objects, atomic checks, watermarks, colour, PLLs).

Build system

Build host
Ubuntu 24.04 LTS; make deps installs the prerequisites
Kernel and userland
GCC, cross-built; make all
Ports
Upstream sources kept byte-identical; LikeOS changes live as patches and build files beside each port; cross toolchain wrappers for autotools, Meson and CMake
Output
build/likeos-ext4.img, a bootable GPT USB disk image
Install
make usb-write USB_DEVICE=/dev/sdX
Screen size
Build-time preferred resolution (SCREEN_SIZE) and ceiling (MAX_SCREEN_SIZE)

Supported hardware and virtual machines

PlatformStatusNotes
Lenovo ThinkPad P50TestedReference machine: Intel HD Graphics 530 on the i915 driver with GPU acceleration, I219 Ethernet, USB boot
Dell Pro 16 PlusTestedUSB boot
VMwareSupportedUSB 3.1 boot; vmwgfx with 3D acceleration, overlay video, vmxnet3 or e1000
VirtualBoxSupportedxHCI (USB 3) and the VMSVGA adapter, with 3D when enabled
QEMUSupportedUSB image targets with xHCI; graphics on the UEFI framebuffer — there is no VMware SVGA support under QEMU; KVM recommended for the desktop
Firmware
UEFI required
Boot medium
USB drive (xHCI)
Graphics
Intel integrated and discrete GPUs (i915), VMware/VirtualBox SVGA, or any UEFI GOP framebuffer
Default login
root / toor (change it with passwd)
The i915 driver's device table reaches far beyond the machines it has been verified on; real-hardware testing so far has been on the two notebooks above.