Updates (gepland)
FAQ › EUZOS Desktop › Updates · English
Status: gepland. Automatische versie-updates zijn een ontwerp (docs/UPDATES.md, 27-10-2026), nog niet gebouwd. Niets op een pc of server vraagt of installeert vandaag zelf een nieuwe OS-release. De opdrachten, bestanden en eindpunten op deze pagina die gepland heten, bestaan nog niet in de code. Wat al werkt, is de handmatige cyclus van proberen en vastzetten (zie Opstarten).
Wat is het?
Het plan beschrijft hoe een draaiende EUZOS-pc (Desktop) of -server (Server) hoort van een nieuwere release, die downloadt en installeert zonder het risico van een machine die niet meer start. Het hergebruikt onderdelen die al bestaan: de proefkernel (try/commit), ondertekende bestanden en de bescherming tegen terugrollen (FETCH.TXT), het ondertekende releasemanifest, de downloadserver met downloadtokens, en de appcatalogus.
Hoe doe ik…?
Hoe werk ik EUZOS vandaag bij?
Met de hand, met onderdelen die nu bestaan:
- Nieuwe kernel: zet hem op het opstartvolume als
\EOS\KX64TRY.ELF, voertryuit, controleer hem, daarnacommit(het Mac-scripttools/trial.shdoet dit automatisch via SSH). Zie Opstarten. - Een ondertekend bestand:
fetch <url> <pad>. - Alles: opnieuw installeren met het Installatieprogramma (dit wist de schijf, ook de profielen).
- Chromium:
apps install chromiummet de hand haalt een nieuwere versie uit de catalogus (zie Bureaublad en apps).
Hoe hoort een pc van een update? (gepland)
Een desktop vraagt het de profielserver meteen na een geslaagde aanmelding (hij heeft het pc-token nodig), daarna elke 4 uur plus willekeurig 0–30 minuten zolang er iemand is ingelogd; nooit vaker dan eens per 15 minuten. Het kanaal volgt het buildtype: een productiebuild neemt alleen productiebuilds, een testbuild alleen testbuilds.
Wat ziet de gebruiker? (gepland)
- Een geel label "Update beschikbaar" naast de taakbalk, op elk scherm van het bureaublad; een tik erop opent de updatekaart met de releaseopmerkingen, Nu herstarten en Vannacht.
- Vannacht: om 03:00 lokale tijd als de pc aan staat, 15 minuten niet gebruikt is en op netstroom of boven 40% accu zit; staat de pc dan uit, dan zet de volgende keer uitschakelen de update klaar ("Bijwerken en uitschakelen").
- Beveiligingsupdates: "Verplicht voor <datum>"; na de termijn een aftelling van 15 minuten, dan de herstart. De termijn telt vanaf het moment dat dit apparaat het aanbod voor het eerst zag.
- Daarna één melding: "EUZOS is bijgewerkt naar 240", of na een terugrol "De update kon niet worden geïnstalleerd; EUZOS houdt versie 239".
De beslissing van de eigenaar: op de desktop gaan downloaden en klaarzetten automatisch; een organisatie kan "vragen" als beleid kiezen.
(De Nederlandse schermteksten hierboven zijn vertalingen van het ontwerp; ze staan nog niet in de vertaalbestanden.)
Hoe installeert het veilig? (gepland)
- Controleren: de ondertekende releasebeschrijving en het manifest (handtekening, editie, buildtype, build hoger dan de draaiende, versie niet lager dan in
FETCH.TXT, niet ingetrokken). - Klaarzetten: alleen gewijzigde bestanden (verschil op SHA-256) gaan naar
\EOS\UPD\; de nieuwe kernel meteen naar\EOS\KX64TRY.ELF. - Herstarten in de proef (
TRY.TXTschrijven). - Gezondheidscontrole in de proefkernel (binnen 5 minuten): een netwerkverbinding met een adres, en TLS naar de profielserver van de omgeving die de ingebouwde serversleutel teruggeeft.
- Geslaagd: automatisch
commit, daarna de klaargezette bestanden op hun plaats (de oude bewaard in\EOS\PREV\), het nieuwe manifest,FETCH.TXT, configuratiemigraties. - Mislukt: de proefkernel herstart vanzelf; de vastgezette kernel komt terug, ziet de mislukte proef, en geeft die release na 2 pogingen op.
- Melden van het resultaat aan de profielserver.
Alleen de kernel krijgt een proefstart. Een release die de bootloader verandert, wordt in fase 1 nooit automatisch geïnstalleerd. Ontwikkelkernels (build-ID die niet met release- begint) en systemen die van een stick gestart zijn, tonen alleen het aanbod.
Kan ik na een update terug? (gepland)
update rollback zal KX64OLD.ELF terugzetten (een lokale wissel, geen download).
Hoe zit het met EUZOS Server? (gepland)
Een server herstart nooit vanzelf. Downloaden en klaarzetten gaan automatisch; Server Admin krijgt de acties update-status, update-now en update-window <dag uu:mm-uu:mm>|off. Een server die te laat is, staat rood in Server Admin en op de beheerpagina. Zie Server Admin.
Wat gebeurt er offline? (gepland)
Geen aanbod en geen download zonder de profielserver. Een klaargezette release krijgt geen proefstart zolang de profielserver onbereikbaar is. Via een verbinding met datalimiet (mobiel) controleert de pc wel maar downloadt hij niet ("Wachten op wifi of kabel"). Offline inloggen verandert niet.
Details
Onderdelen die al bestaan
| Onderdeel | Waar |
|---|---|
| Proefkernel en vastzetten | boot/src/main.rs (try_once), kernel::boot_volume (prepare_try, commit), tools/trial.sh |
| Zelfherstel van een proefkernel | panic-afhandeling, fatale uitzondering, kernel::watchdog (HANG.TXT) |
| Ondertekende bestanden, tegen terugrollen | tools/sign, kernel::fetch, \EOS\FW\SIGNPUB.TXT, \EOS\FW\FETCH.TXT |
| Releasemanifest | libs/manifest, tools/release.sh, tools/stickrelease.sh |
| Buildnummers | OS_BUILD (Desktop), SERVER_BUILD (Server), het editiemerk EUZOS-EDITION: in het kernelbestand |
| Downloadserver en tokens | server/download, POST /api/apps/token, POST /api/workplace/v1/download-token |
| Appcatalogus | server/profile/src/apps.rs, kernel/src/app_store.rs |
Bouwplan (uit docs/UPDATES.md)
| Fase | Wat |
|---|---|
| U1 | releaseformaat (DESKTOP.REL/SERVER.REL, .RVK), libs/release, release.sh per editie |
| U2 | profielserver: schema 19, aanbod/token/melding, ringen, CLI |
| U3 | kernelmotor kernel/src/update.rs, consoleopdracht update |
| U4 | desktop-UX (label, kaart, vannacht, termijn) |
| U5 | server (acties update-*, ondertekend venster) |
| U6 | beheerpagina "Releases" |
| U7 | apps: minimumversie, automatische app-updates |
| U8 | later: sleutelwissel, A/B-bootloader, releasecache, Secure Boot-spoor |
Naslag
Consoleopdrachten
| Opdracht | Argumenten | Wat het doet | Status |
|---|---|---|---|
try, commit | – | proefkernel één keer, daarna vastzetten | bestaat (Opstarten) |
fetch | <url> <pad> | ondertekend bestand naar het opstartvolume | bestaat |
apps install chromium | – | Chromium (nieuwere versie) uit de catalogus halen | bestaat (Bureaublad en apps) |
update | – | status | gepland |
update check | – | nu om een aanbod vragen | gepland |
update now | – | nu installeren (herstarten in de proef) | gepland |
update tonight | – | vannacht installeren | gepland |
update rollback | – | KX64OLD.ELF terugzetten | gepland |
De geplande opdracht update is alleen Engels (geen Nederlandse alias).
Functies en modules
| Module | Rol | Status |
|---|---|---|
kernel::boot_volume::prepare_try, commit | proberen en vastzetten | bestaat |
kernel::fetch::fetch_manifest, fetch_entry | een manifest en zijn bestanden ophalen en controleren | bestaat |
kernel/src/update.rs | updatemotor | gepland |
libs/release | inlezen van releasebeschrijving en intrekkingslijst | gepland |
Configuratiebestanden (gepland)
| Bestand | Sleutel | Waarden | Betekenis |
|---|---|---|---|
\EOS\FW\UPDATE.TXT | device | 32 hex | willekeurige apparaat-id, één keer gemaakt |
state | idle, downloading, staged, trial, failed | updatetoestand | |
release | <editie> <build> <handtekeningversie> | release die geïnstalleerd wordt | |
staged-at | Unix-tijd | ||
attempts | getal | proefpogingen | |
apply | now, tonight, next-start, window | wanneer installeren | |
deadline | Unix-tijd of - | termijn voor beveiliging | |
last-result | bv. installed 240 <unix> | ||
config-schema | getal | niveau van de configuratiemigratie | |
window (server) | bv. sun 02:00-04:00 | onderhoudsvenster; het bestand wordt dan ondertekend met de eigen sleutel van de server | |
\EOS\UPD\, \EOS\PREV\ | – | – | klaargezette bestanden, vorige bestanden |
API-eindpunten (gepland)
Regelformaat (sleutel=waarde) zoals de bestaande EUZOS-API.
| Methode en pad | Verzoek | Antwoord |
|---|---|---|
GET /api/update/v1/offer | token, edition, build, version, arch, device, lang | none, of available + edition=, build=, version=, descriptor=, size=, security=, deadline=, minimum=, regels note=, revoked= |
POST /api/update/v1/token | token; inhoud edition=, version= | een downloadtoken ezdl1 (token=, expires=, duration=) |
POST /api/update/v1/report | token; inhoud device=, edition=, from=, to=, result=installed|rolled-back|failed|deferred, reason=, detail= | ok |
GET /api/workplace/v1/update-offer | werkplektoken | zoals offer, editie server |
POST /api/workplace/v1/update-report | werkplektoken | zoals report |
Protocolberichten en formaten (gepland)
Releasebeschrijving DESKTOP.REL / SERVER.REL (ondertekend met tools/sign onder precies die naam):
EUZOS-RELEASE 1
edition=desktop
build=240
build-type=production
arch=x86_64
arch=aarch64
manifest-sha256=<64 hex>
manifest-version=<handtekeningversie van MANIFEST.TXT>
minimum-from=232
config-schema=3
bootloader=unchanged
security=0
Indeling op de downloadserver (op inhoud geadresseerd): download.euzos.eu/<editie>/<handtekeningversie>/ met DESKTOP.REL(.sig), MANIFEST.TXT(.sig) en één bestand per SHA-256. Een intrekkingslijst DESKTOP.RVK / SERVER.RVK wordt door de eigenaar ondertekend.
Zie ook
- Opstarten · Installatieprogramma · Server Admin · Beheerpagina
- docs/UPDATES.md
- docs/DOWNLOADSERVER.md
EUZOS