Editions
FAQ › EUZOS Server › Editions · Nederlands
What is it?
EUZOS comes in two editions built from one codebase: EUZOS Desktop (for users' PCs, laptops and tablets) and EUZOS Server (for servers in a company; first role: the workplace server). Both use the same kernel, the same libraries and the same boot loader. You choose the edition when you build. What an edition does not have is not in its kernel at all: the modules sit behind #[cfg(feature = "desktop")] or #[cfg(feature = "server")], and libraries that only one edition uses are optional dependencies.
How do I…?
How do I build EUZOS Server?
make image EUZOS_EDITION=server # EUZOS Server, test build
make image EUZOS_EDITION=server EUZOS_ENV=production # EUZOS Server, production build
make images # all four images, checked and zipped
EUZOS_EDITION=desktop|server (default desktop) combines with EUZOS_ENV=test|production. The old variable names (EUZOS_EDITIE, EUZOS_OMGEVING) are still accepted for one release.
How do I see which edition a kernel is?
The kernel file contains the mark EUZOS-EDITION:desktop or EUZOS-EDITION:server (EDITION_MARK in kernel/src/main.rs); make images uses it to check that each image has the kernel of its edition. The first line of the log also names the edition, for example EUZOS Server kernel v…, build v….
Why does a command say "not in EUZOS Server"?
Because the module is not compiled into the server kernel. The server answers <command>: not in EUZOS Server, only in EUZOS Desktop (docs/EDITIONS.md) for camera, privacy, sdio, wifi, mobile, offline, serveradmin, pckey, sound, browser, chromium, logout, mail, browserfeedback, explorer, microsoft and vault. The desktop answers <command>: only in EUZOS Server for workplace and packages. See Server console.
Why is there no small installation stick for the server?
make installer (the small installation stick) is for the desktop only. You install EUZOS Server from the full image (see Server installer).
Details
What each edition has
| EUZOS Desktop | EUZOS Server | |
|---|---|---|
| For | users' PCs, laptops and tablets | servers in a company (first: the workplace server) |
| Screen | graphical desktop, login screen, windows | the console; only the installer is graphical (same style as the desktop) |
| Users | login (QR, password, Microsoft), profile, profile directory, vault, offline login | no session; only the admin logs in, in the installer (to register the workplace server) |
| Screen security | screen off, screensaver, lock screen | no |
| Apps | browser, Chromium, mail, explorer, terminal, camera test | none; server packages instead |
| Network | Intel (e1000/I219), Realtek RTL8111/8168, Realtek USB (RTL8152), virtio, Wi-Fi, mobile (MBIM) | Intel, Realtek, Realtek USB, virtio and Broadcom BCM5717-5720 (net/bcm5720.rs); no Wi-Fi, no mobile |
| USB | xHCI (USB 3); no EHCI yet | xHCI and EHCI (USB 2.0, usb/ehci.rs) |
| Input | keyboard, mouse, touchpad, touchscreen, on-screen keyboard | keyboard (PS/2, USB); the input layer itself is shared |
| Sound, camera | HD Audio, ALSA for apps, UVC camera | no |
| Storage | AHCI, NVMe, USB storage, partition 2 (profiles and apps/) | the same (the workplace server uses the apps area as a cache) |
| Roles | none | Workplace management (WORKPLC.TXT); more planned |
| Network setup | DHCP (and Wi-Fi) | DHCP or a static address per adapter (NETWORK.TXT, network), external address behind NAT |
| Firewall | no | inbound closed by default (FIREWALL.TXT, signed; firewall, Server Admin) |
| Server Admin | yes (the admin manages a server from an EUZOS PC) | no (a server does not manage itself) |
| Processors | x86-64 and ARM64 | x86-64 |
| Images | euzos-desktop-sbx, euzos-desktop-prod | euzos-server-sbx, euzos-server-prod |
Shared are: the kernel itself (memory, threads, SMP, ACPI/AML, PCI), the console and the shell, the network (TCP/IP, DHCP, DNS, NTP, TLS, HTTP client), sshd (with the edition's rules), storage and install, the Linux translation layer (without /dev/snd, /dev/video and the Wayland compositor on the server), fetch, the app store and DriverEnricher.
How the split works in the code
kernel/Cargo.toml: the featuresdesktop(default) andserver; exactly one of the two, otherwise the build stops. Desktop-only libraries are optional (web,http,mail,image,hda,alsa,sdio,iwl,uvc,rtl8712,wayland,devtools,oauth,onedrive,graph,mailapp,browserfeedback,storage); server-only:bcm.kernel/src/main.rs: the desktop modules are behind#[cfg(feature = "desktop")];workplace,serverinstaller(server/installer.rs),packages(server/packages.rs) andserver_setup_choice(server/setup_choice.rs) behindserver.- Stand-in modules with the same name and no content where shared code needs a name of the other edition:
server/screen.rs(no graphical desktop: a notice becomes a console line, keys go to the installer),net/no_mobile.rs,linux/no_media.rs, and on the desktopusb/without_ehci.rs. - The server build allows
dead_code; other warnings stay errors.
Images
| Zip | Edition | Environment | Contents |
|---|---|---|---|
euzos-desktop-sbx-<build>.zip | Desktop | test build, environment sandbox | x86-64 and ARM64, Wi-Fi firmware, test SSH keys if present |
euzos-desktop-prod-<build>.zip | Desktop | production build | without the test files (PROFILE.TXT, EXTRA.PEM, AUTHKEYS.TXT, HOSTKEY.TXT, WIFI.TXT) |
euzos-server-sbx-<build>.zip | Server | test build, environment sandbox | x86-64 only, no Wi-Fi firmware, no display/camera/sound test programs |
euzos-server-prod-<build>.zip | Server | production build | the same, without test keys |
make images writes the size of each kernel to build/editions-<build>.txt.
Reference
Console commands
| Command | Edition | What it does |
|---|---|---|
installer, installer text | Server | the server installer (graphical, or text) — see Server installer |
packages | Server | the server packages and their state — see Packages |
workplace [status|setup [name]|now] | Server | the workplace role — see Packages |
network … | Server | static address / DHCP per adapter — see Network and firewall |
firewall … | Server | the inbound firewall — see Network and firewall |
serveradmin … | Desktop | Server Admin — see Server Admin |
pckey [create] | Desktop | the PC's device key (needed for Server Admin) |
Functions and modules
| Item | Role |
|---|---|
kernel/src/main.rs EDITION_MARK | EUZOS-EDITION:desktop / EUZOS-EDITION:server in the kernel file |
kernel/src/main.rs::run_command | the #[cfg(feature = "server")] arms (installer, network, firewall, packages) and the list of refused desktop commands |
crate::server_setup_choice (kernel/src/server/setup_choice.rs) | what the graphical server installer writes to the disk, and the registration |
crate::serverinstaller (kernel/src/server/installer.rs) | the text installer |
crate::packages (kernel/src/server/packages.rs) | the package list and states |
crate::screen (kernel/src/server/screen.rs) | the server's small drawing layer for the graphical installer |
crate::net::bcm5720, crate::usb::ehci | server-only drivers (Broadcom BCM5717-5720, EHCI) |
Config files
| File | Edition | Meaning |
|---|---|---|
\EOS\FW\WORKPLC.TXT | Server | the Workplace management role (Packages); a desktop that finds it logs that the role only exists in EUZOS Server |
\EOS\FW\NETWORK.TXT | Server | static addresses (Network and firewall) |
\EOS\FW\FIREWALL.TXT | Server | signed firewall rules (Network and firewall) |
\EOS\FW\PROFILE.TXT | both | the environment / profile server |
See also
- docs/EDITIONS.md
- docs/USB-EHCI.md
- docs/ENVIRONMENTS.md
- Server installer, Server console, Desktop console
EUZOS