Preskočiť na obsah

Záver

Čo bolo dosiahnuté​

Zadanie žiadalo preskúmať a opísať funkcionality a možnosti operačného systému, vybrať jadro, systém nainštalovať, nakonfigurovať a overiť, spracovať cenovú ponuku a vypracovať technickú dokumentáciu. Všetky štyri body sú splnené a každý má v tomto dokumente kapitolu.

Hotové a otestované je: bezstavové zariadenie na NixOS so šifrovaným trvalým zväzkom, odomykanie z TPM aj z kľúčového súboru, inštalácia UEFI aj BIOS bez obsluhy, administračné stránky s jedným heslom a náhradným kľúčom, LosOS cloud a LosOS Git ako záťaž v lokálnom clustri s jednotným vzhľadom, nočná samooprava a samoaktualizácia so stropom generácií a GC, rast disku za behu, hardening postavený z primitív KSPP s testom chránených výnimiek, edge s tunelom, meshom a oknom výpočtov, trh od konca po koniec proti náhradám Stripe, riadiaca rovina edge pre prezentácie na Vercel, príručka majiteľa na každom boxe a táto dokumentácia.

Projekt má približne 45 000 riadkov vlastného kódu v Nixe, Ruste a TypeScripte, vyše 200 jednotkových testov, sedemnásť testov vo virtuálnych strojoch, invarianty vyhodnocované pri zostavení, testy v prehliadači a CI, ktoré inštalačné médium nielen zostaví, ale aj nabootuje.

Čo je plánované​

  • Otvorenie trhu po založení podnikania, ktoré bude platformou Stripe; dovtedy ostáva karta Trh sivá. Prvý beh proti testovaciemu režimu Stripe.
  • Objavovanie edge a oficiálna identita edge (pripravované v PR #75): box hľadá edge v LAN aj na nastavenej adrese, odmieta zdieľanie bez dosiahnuteľného edge a obchoduje len s edge podpísaným koreňovým kľúčom projektu.
  • Firemné nasadenie ako produkt: reprodukovateľný skript pre edge a boxy v jednej sieti, návod pre operátora firmy.
  • Preklady príručky do slovenčiny a nemčiny.
  • Oddelená CA s obmedzením mena namiesto certifikátu boxu, ktorý je zároveň koreňovou autoritou.
  • Rozšírenie VM testov o boot nainštalovaného systému až po prihlásenie do Nextcloudu (dnes to overuje ukážka, nie test).

Poučenia​

  • Testy majú chrániť rozhodnutia, nie len správanie. Najcennejšie testy projektu sú tie, ktoré zlyhajú, keď niekto „opraví“ niečo, čo je vypnuté zámerne.
  • Lintre a kontroly do CI od prvého dňa. Kód v Ruste driftoval bez rustfmt a clippy, piny nixpkgs sa rozišli bez kontroly; obe veci stáli viac času dodatočne než by stáli na začiatku.
  • Chyby, ktoré vidno len na skutočnom štarte. Dve najvážnejšie chyby projektu (kľúčový súbor s NUL bajtmi, chýbajúce virtio ovládače v initrd) prešli všetkými testami, lebo žiadny test nebootoval nainštalovaný systém až do konca. Ukážka vo virtuálnom stroji nie je len prezentácia; je to test.
  • Nezávislá recenzia vlastnej práce našla za jedno popoludnie sedem vecí, ktoré by komisia našla tiež. Oplatí sa ju urobiť skôr, než ju urobí niekto iný.
  • Infraštruktúra CI má limity, ktoré formujú architektúru. Desaťminútový strop bývalého hostiteľa CI viedol k rozdeleniu úloh a k importu artefaktov medzi nimi; štruktúra ostala, aj keď strop padol, lebo dôvody ju prežili.

Jednou vetou: LosOS robí z vyradeného mini-PC vlastný cloud, ktorý sa sám spravuje, a z jeho voľných zdrojov susedskú sieť, z ktorej sa raz dá aj zarábať.