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
SYSCALLinstruction - 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_createfamily),setitimerandalarm. - 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/urandomandgetrandom. - 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 realvforkthat shares the address space. mmap/munmap(anonymous, private and shared file mappings),mprotect,mremap,madvise,mincore, andbrkthat 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) andmemfd_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) andpmap(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
vruntimeorder; 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_sigactionwithSA_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, pluscpuinfo,meminfo,mounts,uptime,version.psshows 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_bgandmetadata_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.elfstraight 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,fdand the disk nodes. - procfs (
/proc) and sysfs (/sys/bus/pci/devicesand 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-writegrows the root to the full drive.
Devices and buses
| Area | Support |
|---|---|
| PCI | Configuration-space enumeration, capabilities, MSI; exported in /sys/bus/pci |
| ACPI | ACPICA 20251212: tables (RSDP/XSDT/MADT/FADT), AML, device enumeration, S5 poweroff, reset |
| Interrupt controllers | Local APIC (xAPIC and x2APIC), IOAPIC; HPET |
| USB host | xHCI (USB 3.x) host controller driver, interrupt-driven |
| USB classes | Mass storage (Bulk-Only Transport); HID boot keyboards and mice, report-protocol mice with scroll wheel; USB-serial logging |
| Legacy input | PS/2 keyboard and mouse |
| I2C-HID | Intel LPSS DesignWare I2C controller with HID-over-I2C touchpads, found through ACPI (experimental) |
| Input interface | evdev (/dev/input/event*), used by the X server |
| Display | Intel i915, VMware SVGA II/SVGA3D (vmwgfx), UEFI GOP framebuffer, /dev/fb0 (fbdev) |
| Backlight | Intel PWM backlight in /sys/class/backlight/intel_backlight and the backlight tool |
| Network | Nine 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,shutdownhalf-close, raw sockets forpingandtraceroute. - Socket options including
SO_REUSEADDR,SO_REUSEPORT,SO_KEEPALIVE,SO_LINGER, buffer sizes and timeouts,TCP_NODELAYand 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
| Driver | Hardware |
|---|---|
| e1000 | Intel 82540EM, 82545EM (QEMU, VMware default, VirtualBox PRO/1000) |
| e1000e | Intel 82574L, 82583V, I217, I218 and the I219 family (generations 1–23); verified on the ThinkPad P50 |
| igb | Intel 82575, 82576, I350, I210, I211 |
| eepro100 | Intel 8255x |
| pcnet32 | AMD PCnet-PCI II / PCnet-FAST III |
| ne2k | NE2000-compatible PCI (Realtek RTL8029AS) |
| rtl8139 | Realtek RTL8139 / RTL8139C+ |
| tulip | DEC 21040, 21041, 21140, 21142, 21143 |
| vmxnet3 | VMware 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.
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/i915and/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,
execbuffer2with 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
| Component | Version | Notes |
|---|---|---|
| Mesa | 25.3.6 | Gallium drivers: iris (Intel, Broadwell and later), svga (VMware/VirtualBox SVGA3D), llvmpipe, softpipe. OpenGL, OpenGL ES 2, GLX (DRI), EGL and GBM on X11 |
| LLVM | 23.1.0 | Built for LikeOS (x86 back end) as llvmpipe's JIT |
| libdrm | 2.4.124 | DRM userspace interface |
| libepoxy | 1.5.10 | GL dispatch for GTK |
| GLU / Mesa demos | 9.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
startxfrom 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
.desktopfiles, 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
| Component | Version | Notes |
|---|---|---|
| X.Org server | 21.1.23 | modesetting driver with glamor, DRI2/DRI3, Present, GLX; XVideo |
| xf86-video-fbdev / xf86-input-evdev | 0.5.0 / 2.11.0 | Software fallback and input |
| libX11 / libxcb | 1.8.13 / 1.17.0 | Plus the usual X extension libraries |
| libxkbcommon / xkeyboard-config | 1.13.1 / 2.47 | Keyboard handling |
| Mesa | 25.3.6 | See Graphics |
| FreeType / fontconfig / pixman | 2.13.3 / 2.15.0 / 0.46.4 | Font rendering and pixel compositing |
| Motif | 2.3.8 | Toolkit for XNEdit |
| GTK | 3.24.52 | Main toolkit; GTK 2.24.33 is also built for HexChat |
| GLib | 2.88.3 | GObject, GIO; glib-networking 2.80.1 |
| Cairo / Pango / HarfBuzz | 1.18.4 / 1.58.0 / 14.3.0 | With FriBidi 1.0.16 |
| gdk-pixbuf / ATK | 2.44.7 / 2.38.0 | |
| GtkSourceView / VTE | 4.8.4 / 0.84.1 | Editor and terminal widgets |
| D-Bus | 1.16.2 | Session bus |
| libstdc++ | GCC 13.3.0 | C++ runtime for the C++ ports |
| Adwaita / hicolor icons, shared-mime-info | 3.38.0 / 0.18 / 2.5.1 |
Applications
| Application | Version | Notes |
|---|---|---|
| ctwm | 4.1.0 | Window manager (with LikeOS patches) |
| PCManFM | 1.4.0 | File manager and desktop (libfm 1.4.1, menu-cache 1.1.1) |
| Claws Mail | 4.4.0 | IMAP, POP3 and SMTP over TLS (libetpan, GnuTLS 3.8.13), spell checking via Enchant and Hunspell |
| Mousepad | 0.7.0 | GTK text editor |
| xfce4-terminal | 1.2.0 | VTE-based terminal (libxfce4ui 4.20.2, xfconf 4.20.0) |
| HexChat | 2.16.2 | IRC client |
| galculator | 2.1.4 | Calculator |
| luakit | 2.4.0 | Web browser — see below |
| xterm | 410 | UTF-8, 256 colours |
| XNEdit | 1.6.3 | Motif 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
| Component | Version | Notes |
|---|---|---|
| GStreamer | 1.24.13 | Core with base, good, bad and libav plugins |
| FFmpeg | 7.1.1 | Codecs, ffmpeg/ffprobe, VA-API hardware acceleration |
| libva / libva-utils | 2.22.0 | VA-API, vainfo |
| Intel media driver (iHD) | 24.3.4 | With gmmlib 22.5.2 |
| Intel VA-API driver (i965) | 2.4.1 | Fallback 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 andDT_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
doubleandfloatfunctions from LLVM libc, plusfenv. - 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
TZrules or common Olson names. - Networking:
getaddrinfo, resolver,getifaddrs; users and groups:passwd,group,shadow. posix_spawnbuilt onclone(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
| Component | Version | Notes |
|---|---|---|
| bash | 5.2.37 | The system shell, installed as /bin/sh |
| OpenSSH | 10.4p1 | Client tools and the sshd server |
| OpenSSL | 3.5.6 | TLS and crypto library and toolkit |
| curl | 8.14.1 | With nghttp2 1.65.0 |
| tmux | 3.6a | Terminal multiplexer (libevent 2.1.12) |
| nano | 8.3 | Text editor with syntax highlighting |
| netcat | OpenBSD | Networking utility |
| zlib | 1.3.1 | Compression |
| ncurses API | LikeOS | A 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→logindriven 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>/memand process maps restricted to the owner and root. ptraceand 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
gdbserverrunning on LikeOS, on top of the kernel'sptracewith hardware watchpoints. - User crash reports that name the faulting mapping and offset and recover a probable call chain, resolvable with
addr2lineeven for stripped libraries. - Kernel crash dumps and the assertion framework; debug builds with symbols and memory poisoning.
- Diagnostics:
memstat,pmap,kdump,pswith 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 depsinstalls 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
| Platform | Status | Notes |
|---|---|---|
| Lenovo ThinkPad P50 | Tested | Reference machine: Intel HD Graphics 530 on the i915 driver with GPU acceleration, I219 Ethernet, USB boot |
| Dell Pro 16 Plus | Tested | USB boot |
| VMware | Supported | USB 3.1 boot; vmwgfx with 3D acceleration, overlay video, vmxnet3 or e1000 |
| VirtualBox | Supported | xHCI (USB 3) and the VMSVGA adapter, with 3D when enabled |
| QEMU | Supported | USB 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 withpasswd)