Yocto

Når Linux skal være en integreret del af et produkt, vil vi gerne vide præcis, hvad der kører på enheden. Med Yocto kan vi bygge et Linux-system specifikt til produktets hardware og funktion. Det giver kontrol over software, reproducerbar produktion og et godt fundament for sikker vedligeholdelse gennem hele produktets levetid.

Yocto

Et Linux-system bygget til produktet

Yocto Project er ikke en Linux-distribution som Ubuntu eller Debian. Det er et build-system og et framework til at bygge sin egen Linux-distribution til et konkret produkt.

Kun det nødvendige

Et Linux-image lavet til produktet

Reproducerbar produktion

Versionsstyrede produktionsimages

Flere hardwareversioner

BSP'er og varianter i samme build-system

Sikkerhed over tid

Secure boot, signerede opdateringer og CVE-tracking

Et Linux-image lavet til produktet

Det er netop derfor, Yocto er interessant for os hos Move.

I stedet for at installere en generel Linux-distribution og efterfølgende fjerne eller deaktivere de ting, produktet ikke skal bruge, kan vi definere præcist, hvad der skal være en del af systemet.

Kernel, drivers, libraries, services, applikationer og konfiguration bliver en del af en kontrolleret build-opskrift.

Resultatet er et Linux-image, der er lavet til produktet.

Vi bestemmer 100 %, hvad der kører

I et embedded produkt er der sjældent nogen fordel ved at installere software, som aldrig bliver brugt.

Med Yocto kan vi vælge præcis de komponenter og services, der skal være med. Hvis produktet ikke skal have Bluetooth, en webserver, grafisk desktop eller bestemte systemservices, behøver de ikke eksistere i imaget.

Det giver et mindre og mere overskueligt system.

Samtidig har vi kontrol over versionsnumre på de softwarepakker, der anvendes. Det gør det lettere at forstå præcis, hvilken software der befinder sig i et bestemt produkt og en bestemt release.

Yocto arbejder med et layer-baseret build-system, hvor eksempelvis hardware/BSP, produktkonfiguration, middleware og Moves egen applikation kan holdes adskilt. Det gør det muligt at genbruge dele af platformen og samtidig styre produktspecifikke forskelle.

En stor fordel i produktionen

Når et produkt skal produceres i hundredvis eller tusindvis af enheder, er reproducerbarhed vigtig.

Produktionsafdelingen skal ikke installere Linux manuelt og derefter udføre en lang liste af konfigurationsændringer. Det ønskede system skal kunne genereres som et færdigt og versionsstyret produktionsimage.

Med Yocto kan build-konfigurationen gemmes sammen med produktets øvrige source code og dokumentation. Hvis vi eksempelvis producerer hardware revision 2.1 med software release 3.4, kan det defineres præcist, hvilket Linux-image der hører til kombinationen.

Det er også værdifuldt mange år senere.

Hvis et produkt skal genproduceres eller have en sikkerhedsopdatering, skal vi kunne forstå, hvordan den oprindelige software blev bygget. Yocto har et stærkt fokus på reproducible builds, hvor samme definerede input skal kunne give samme binære output. Det gør ændringer og efterfølgende validering langt mere kontrollerbare.

Flere hardwareversioner kan håndteres kontrolleret

Produkter ændrer sig gennem deres levetid.

Et compute-modul kan blive erstattet, en ny hardware revision kan få en anden Ethernet-controller, eller produktet kan eksistere i flere varianter.

Med Yocto kan vi vedligeholde forskellige BSP'er og produktkonfigurationer inden for samme overordnede softwareprojekt.

Det gør det muligt at producere det korrekte image til hver hardwareversion uden at have en række manuelt tilpassede Linux-installationer i omløb.

Sammen med et device management-system kan vi samtidig holde styr på, hvilken hardware og software der findes på de produkter, der allerede er installeret hos kunderne.

Et mindre system giver en mindre angrebsflade

Yocto er også interessant i forhold til cybersecurity.

En grundlæggende sikkerhedsstrategi er kun at installere det, produktet faktisk behøver. Hvis en service eller softwarepakke ikke findes på systemet, kan en sårbarhed i den heller ikke udnyttes.

Det betyder ikke, at et Yocto-system automatisk er sikkert. Men det giver os mulighed for at bygge sikkerheden ind i operativsystemet fra begyndelsen.

Vi kan eksempelvis arbejde med:

  • kun nødvendige services og netværksporte
  • read-only root filesystem, hvor det er relevant
  • bruger- og rettighedsstyring
  • secure boot, hvis hardwaren understøtter det
  • signerede software- og firmwareopdateringer
  • individuelle credentials og certifikater
  • security hardening af kernel og software
  • logging og overvågning
  • kontrol over installerede softwarepakker og versioner

Yocto Project anbefaler selv blandt andet at fjerne unødvendig software og debugging-funktionalitet fra produktionsimages, lukke services der ikke anvendes og benytte hardwarebaseret secure boot, når platformen understøtter det.

Styr på sårbarheder over produktets levetid

Sikkerhed stopper ikke, når produktet bliver produceret.

Nye sårbarheder bliver løbende fundet i Linux kernel, libraries og open source-komponenter. Derfor skal producenten vide, hvilke komponenter og versioner der findes i de forskellige software releases.

Yocto har værktøjer og workflows til at arbejde med kendte CVE'er og sikkerhedsopdateringer. Det gør det muligt at vurdere, om en offentliggjort sårbarhed faktisk påvirker de produkter, der er installeret i markedet.

Det passer godt sammen med moderne krav til vulnerability management og eksempelvis EU's Cyber Resilience Act, hvor connected produkter i stigende grad skal kunne vedligeholdes sikkerhedsmæssigt gennem deres supportperiode.

Yocto giver kontrol gennem hele produktets lifecycle

For os er Yocto især interessant, når Linux ikke bare er en computer, der står ved siden af produktet, men er en del af selve produktet.

Her skal operativsystemet behandles på samme måde som elektronik, mekanik og embedded software: det skal versionsstyres, testes, dokumenteres, frigives til produktion og kunne vedligeholdes mange år frem.

Hos Move kan vi arbejde med hele kæden fra valg af compute-modul og BSP til Yocto-image, embedded applikationer, secure boot, produktion, remote updates og device management.

Det giver en Linux-platform, hvor vi har kontrol over både det, der bliver installeret på produktionslinjen i dag, og det, der skal kunne vedligeholdes ude hos kunden i fremtiden.

Ofte stillede spørgsmål

Hvad er Yocto?

Yocto Project er et open source-framework til at bygge skræddersyede Linux-systemer til embedded og IoT-produkter. Det er ikke en færdig Linux-distribution.

Hvorfor bruge Yocto i stedet for Ubuntu eller Debian?

Hvis enheden er et produkt, giver Yocto mulighed for langt større kontrol over præcis hvilke komponenter, versioner og services der findes i systemet. En generel distribution kan være et bedre valg i andre situationer, så valget afhænger af produktets behov.

Hvad er fordelen ved Yocto i produktionen?

Vi kan bygge og versionsstyre et defineret produktionsimage. Det gør installationen reproducerbar og reducerer behovet for manuel konfiguration af hver produceret enhed.

Kan Yocto håndtere flere hardwareversioner?

Ja. Forskellige BSP'er og konfigurationer kan anvendes til forskellige hardwareplatforme og produktvarianter inden for samme overordnede build-system.

Er Yocto mere sikkert?

Yocto giver gode muligheder for at bygge et minimalt og hardened system, men sikkerhed afhænger stadig af den konkrete implementering. En vigtig fordel er, at unødvendige pakker, services og funktioner helt kan udelades.

Kan man lave remote updates på et Yocto-system?

Ja. Yocto kan indgå i en arkitektur med OTA-opdateringer, signerede images, rollback og device management. Den konkrete update-mekanisme vælges ud fra produktets sikkerheds- og driftskrav.

Kan man holde styr på kendte sikkerhedssårbarheder?

Ja. Yocto understøtter workflows til CVE-tracking og giver mulighed for at holde styr på de komponenter og softwareversioner, der indgår i et bestemt image.

Klar når du er

Skal vi gøre din idé til virkelighed?

Teknisk udvikling kræver mere end gode idéer — det kræver de rigtige kompetencer. Vi har samlet hardware, software og ingeniørekspertise under ét tag, så du kommer hurtigt og sikkert fra prototype til produktion.

Ræk ud til os →