Technology

The x86_64 and AArch64 ports use the same syscall handlers, scheduler, memory manager, VFS, networking and IPC code.

Architecture

Process semantics, VFS, networking, scheduling, IPC, ELF policy and Linux-visible errors live in common code. The architecture directories handle CPU entry, context switching, interrupt controllers, page tables, timers and firmware handoff.

Linux userspace compatibility

EdgeOS loads Linux ELF64 binaries. Architecture syscall tables extract syscall numbers and arguments, then route into shared handlers. Linux ioctl layouts, socket options, vDSO support, procfs, sysfs and devtmpfs provide the surrounding interfaces used by Debian software.

Docker

Docker has run from unmodified Debian packages in EdgeOS development VMs. Its kernel dependencies include namespaces, cgroup v2, OverlayFS, veth pairs, bridge networking, nftables, NAT and connection tracking.

Containers can use the default bridge, internal DNS, container-to-container traffic, published host ports and IPv6 bridge networks. cgroup v2 provides memory, swap and block-I/O limits.

Process and runtime interfaces

AreaImplemented interfaces and subsystems
Program loadingLinux ELF64 loading, shebang handling, process-image construction, auxiliary vectors, architecture syscall entry and vDSO support
Process lifecyclefork, vfork, clone, clone3, exec, exit, process waiting, sessions, process groups, parent-death signals and resource accounting
Identity and permissionsUIDs, GIDs, supplementary groups, Linux capabilities, securebits, prctl, file permissions and resource limits
NamespacesMount, PID, user, UTS, IPC, network, time and cgroup namespaces with clone, unshare, setns and namespace descriptors
cgroup v2CPU, cpuset, memory, swap, PIDs, I/O and freezer controls with pressure and resource accounting
SchedulingSMP scheduling, affinity, nice levels, SCHED_OTHER, BATCH, IDLE, FIFO, RR and DEADLINE, utilization clamps and CPU cgroup controls
Signals and tracingSignal queues and frames, signalfd, ptrace, pidfds, process memory access, restartable syscalls and SIGSYS delivery
Virtual memoryVMAs, anonymous and file mappings, copy-on-write, mmap, mprotect, mremap, madvise, page cache, reclaim, OOM handling and swap
userfaultfdAPI negotiation, memory-range registration, missing-page events, event reads and copy, zero-page, continue and write-protect resolutions
SynchronizationWait queues, futexes, robust lists, priority inheritance, requeue, waitv, membarrier, mutexes, spinlocks and deferred work
Linux AIOAIO context setup and teardown, request submission, completion queues, event collection and request cancellation
io_uringSubmission and completion rings, registered files and buffers, provided-buffer rings, eventfd notification, poll, timeout update and cancellation
Descriptor eventsepoll, eventfd, signalfd, timerfd, anonymous descriptors, poll readiness and close and reuse handling
File notificationsinotify watches and event queues plus fanotify groups, marks, path events and move notifications
System V IPCShared memory attach and control, message queues, semaphore sets, permissions, IPC namespaces and semaphore undo state
POSIX IPCPipes, PTYs and POSIX message queues with named lookup, send, receive, notification and IPC namespace isolation
Unix socketsStream and datagram endpoints, accept queues, ancillary messages, credentials and descriptor passing with SCM_RIGHTS
seccompClassic BPF syscall filters, chained filter state, errno, trap, trace, log and kill actions, plus user-notification listeners
LandlockFilesystem rulesets, path-beneath rules, per-task restrictions, inherited policy and rename and link access checks
BPFBPF maps and programs, map element and batch operations, BTF objects, object IDs, program attachment, links and cgroup device hooks
KeyringsThread, process, session, user and group keyrings with add, request, search, link, update, revoke, timeout and permission operations
Performance eventsperf_event descriptors and software counters for clocks, page faults, context switches, CPU migrations and cgroup switches

Storage and networking

AreaImplemented interfaces and subsystems
VFSPath and inode caches, descriptors, extended attributes, file locks, sparse files, fallocate, file handles, readahead and writeback
MountsMount namespaces, mount topology, the modern mount API, bind and move operations, pivot_root and per-mount propagation state
Pseudo filesystemstmpfs, initramfs, procfs, sysfs, devtmpfs, devpts and cgroup2
Writable filesystemsext2, ext4, FAT32, FUSE and OverlayFS, with an NFSv3 server path
Read-only filesystemsSquashFS, EROFS, XFS, Btrfs, exFAT, NTFS, ISO9660 and UDF readers
QuotasQuota enable and disable, synchronization, format and information queries, per-ID limits and next-record iteration
Block layerBlock cache, partition discovery, RAM disks, loop devices, device mapper and shared request dispatch
Storage devicesVirtIO Block and SCSI, NVMe, AHCI, ATA, VMware PVSCSI and BSD bridge storage and CAM packages
Socket familiesIPv4, IPv6, Unix and packet sockets with Linux socket options, poll behavior and diagnostic interfaces
Network protocolsARP, NDP, ICMP, TCP, UDP, IGMP and MLD multicast with IPv4 and IPv6 address handling
Network controlrtnetlink, generic netlink, sock_diag, ethtool, route dumps and network-namespace event delivery
Routing and filteringIPv4 and IPv6 routes, policy and multipath routing, qdiscs, nftables hooks, NAT and connection tracking
Virtual networkingTUN and TAP, veth, bridge with FDB, MDB and VLAN filtering, VLAN, macvlan, ipvlan, bonding, dummy and VRF devices
Network devicesIntel e1000, Realtek r8169 and VirtIO Net, plus BSD bridge Ethernet, Wi-Fi and USB network packages

Devices and platforms

AreaImplemented interfaces and subsystems
Console and framebufferEFI GOP, framebuffer console, virtual terminals, fbdev, boot logging and console device interfaces
DisplayDRM and KMS interfaces, EDID and DisplayID modes, Bochs BGA, VMware SVGA and VirtIO GPU 2D and 3D paths
InputPS/2 keyboard and mouse, Synaptics and Elan touchpads, USB HID, VirtIO Input and Linux input/event interfaces
AudioALSA-facing PCM and control devices with HDA, AC97, USB audio and BSD bridge audio backends
USBHub and device enumeration, UHCI, OHCI, EHCI and xHCI hosts, HID, mass storage, audio and BSD bridge host, gadget and device classes
VirtIOPCI and MMIO transports for block, SCSI, network, GPU, input, RNG, console and balloon devices
VMware and Hyper-VVMware PVSCSI and SVGA devices, VMXNET3 bridge integration and Hyper-V guest detection
FirmwareACPI and ACPICA, Device Tree, EFI runtime services and firmware loading
BusesPCI and PCIe enumeration, MSI and MSI-X, I2C, SMBus, GPIO and SD and MMC bridge packages
Multiprocessingx86 APIC and IOAPIC and AArch64 GICv3 and PSCI bring-up, per-CPU state, reschedule IPIs and TLB shootdown
Timers and clocksPOSIX clocks and timers, interval timers, timerfd, nanosleep, RTC, HPET and architecture timer backends
Hardware servicesACPI power, battery and thermal data, CPU frequency control, RTC, RNG, TPM 2.0, watchdogs and LED and GPIO interfaces
Board targetsGeneric x86_64 PCs, generic AArch64 UEFI and virt systems, Raspberry Pi 4 and Raspberry Pi 5 build targets

BSD Driver Bridge

The BSD Driver Bridge compiles selected FreeBSD driver sources against EdgeOS compatibility services. The bridge covers kernel primitives, newbus, PCI resources, networking, CAM storage, USB, TTY, input, audio and display integration.

Each package manifest records its upstream commit, source files, license data, compatibility requirements, module mode and source digest. The build compiles only the files named by that manifest.