Comparatif

Yocto pour le bring-up silicium. MOS4 pour la surface applicative.

MOS4 ne remplace pas Yocto. mos-distro est le générateur de bundle et le runtime applicatif qui s’exécute sur l’image produite par Yocto — superviseur, IPC typé, OTA, observabilité et 52 micro services. Couches complémentaires.

L’étape de build Yocto produit une image disque stylisée ; l’étape de runtime MOS4 déploie des nœuds micro services dessus — ambre sur les nœuds de runtime

Frontière de couche

Yocto construit. MOS4 exécute.

Yocto produit l’image Linux. MOS4 est la couche runtime applicatif qui s’exécute sur cette image. Trois couches distinctes : système de build Yocto en bas, image Linux au milieu, runtime applicatif MOS4 en haut.

flowchart TB
  subgraph App["MOS4 — couche runtime applicatif"]
    M1[Micro services · superviseur · OTA par service · observabilité]
  end
  subgraph Img["Image Linux (produite par Yocto)"]
    L1[Noyau · userland · systemd]
  end
  subgraph Y["Système de build Yocto"]
    Y1[bitbake · poky · couches meta-* · BSP]
  end
  Y1 -->|produit| L1
  L1 -->|exécute| M1

mos-distro lit un manifeste bundle.toml et un workspace Cargo, puis génère un bundle autonome — binaire monolithique, configuration, fichiers de données — installé sur l’image produite par Yocto. Il ne remplace pas bitbake, poky ou les couches meta.1

Côte à côte

Comparaison des capacités.

Rôle Yocto Système de build et boîte à outils meta-layers. Produit une image Linux custom : noyau, userland, système d’init. MOS4 Couche runtime applicatif et générateur de bundle. S’exécute sur l’image produite par Yocto. mos-distro n’est pas un générateur d’image OS.
Ajout d’un micro service Yocto Rédiger ou localiser une recette BitBake ; résoudre les dépendances de couche et de bibliothèque. MOS4 cargo distro add <nom> met à jour Cargo.toml, bundle.toml et le master process en une seule commande.
Cross-compilation Yocto Sysroot OE SDK ou cross-toolchain par cible. macOS requiert OrbStack ou un hôte de build Linux. MOS4 cargo distro generate utilise des profils de cible prédéfinis (classe modem ARMv7hf, classe compute ARMv7hf et AArch64, classe IA AArch64). Sur macOS, OrbStack gère la cross-compilation de classe modem. Les autres cibles requièrent un hôte de build Linux.
Modèle de mise à jour OTA Yocto Remplacement complet d’image ou overlays par couches. L’unité de mise à jour est l’image complète ou l’overlay. MOS4 Delta par micro service via bsdiff, partitions A/B, rollback automatique via bootcount. Les mises à jour complètes d’image style Yocto restent disponibles pour les changements de noyau et d’image de base.
Cycle de vie applicatif Yocto systemd ou OpenRC gère les processus. Pas de superviseur de couche applicative. MOS4 MOS4 : démarrage ordonné par dépendances, on_start/on_stop/hot-swap, watchdog par micro service, EventBus inter-processus — au-dessus de la base systemd.
Temps de boot applicatif Yocto Yocto contrôle le temps de boot Linux. Le boot de la couche applicative reste à la charge du client. MOS4 1,6 s jusqu’au premier service applicatif prêt sur classe modem (profil de référence, RSS en régime établi 28,4 Mo). Yocto contrôle le boot Linux ; MOS4 ajoute la couche applicative dessus.
Primitives véhicule / IoT Yocto Aucune en natif. Rédaction de recettes requise pour chaque bibliothèque de protocole. MOS4 52 micro services en dépendances Cargo — CAN (16 protocoles), GNSS, modem, Bluetooth, Wi-Fi, bridge MQTT, inférence IA, et plus. cargo distro add, pas de rédaction de recette. Voir /fr/components pour le catalogue complet.
Outillage de taille d’image Yocto Analyse du cache sstate bitbake. Outillage custom par projet. MOS4 cargo distro size-analysis (otool/readelf + cargo-bloat + cargo tree) fait remonter les contributeurs de taille binaire avant que le budget flash ne soit dépassé.

Source — colonne Yocto depuis yoctoproject.org ; MOS4 depuis la page architecture MOS4. Chiffres de temps de boot référencés en [3].

Images de base

Yocto, Debian et buildroot — tous supportés.

cargo distro génère des bundles qui s’installent sur des images produites par Yocto, basées sur Debian et basées sur buildroot. MOS4 ne remplace pas le pipeline de build d’image existant. Yocto est le chemin de production le plus courant ; Debian et buildroot sont des alternatives confirmées.2

FAQ

Les questions qu’on nous pose le plus.

  • MOS4 remplace-t-il Yocto, bitbake ou les couches meta ?

    Non. MOS4 est la couche runtime applicatif qui s’exécute sur l’image produite par Yocto. Yocto produit le noyau et l’userland ; MOS4 ajoute au-dessus le superviseur de services, l’IPC typé, l’OTA, l’observabilité et les micro services métier véhicule. Les deux sont complémentaires.

  • Existe-t-il une couche meta-mos ?

    Oui — Munic maintient une couche meta qui tire les micro services MOS4 à la bonne couche Yocto, compatible avec les couches BSP et distro existantes. L’accès est sous accord d’évaluation. <a href="/fr/contact?topic=yocto-eval">Parlez à l’ingénierie</a>.

  • MOS4 remplace-t-il systemd ?

    Non. systemd démarre la plateforme ; MOS4 s’exécute comme une unité systemd (installée à /mnt/user/start.sh, prise au runlevel 5) et supervise les micro services applicatifs au-dessus. Les deux coexistent.

  • Puis-je mettre à jour les micro services sans reflasher l’image ?

    Oui — mos-update exécute l’OTA delta par micro service : téléchargement, vérification SHA-256, validation Ed25519, application delta, commit partition A/B, rollback automatique via bootcount. Les mises à jour complètes d’image style Yocto restent disponibles pour les changements de noyau et d’image de base.

  • Quels environnements de build sont supportés pour la cross-compilation ?

    Les images basées sur Yocto, Debian et buildroot sont toutes supportées. Sur macOS, OrbStack gère la cross-compilation de classe modem ; les autres cibles requièrent un hôte de build Linux ou OrbStack. Le sysroot OE SDK à /opt/oecore-cortexa7/ reste requis pour la cross-compilation ARM soft-float sur matériel de classe modem.

  • Comment évaluer MOS4 sur du matériel Yocto avant de s’engager sur meta-mos ?

    <a href="/fr/contact?topic=yocto-eval">Parlez à l’ingénierie</a>. Le chemin on-target le plus rapide est évalué par programme.

Notes

Sources de la comparaison.

  1. Terminologie Yocto Project — bitbake, poky et les couches meta sont les primitives documentées du système de build. mos-distro lit bundle.toml + un workspace Cargo au niveau de la couche applicative. Source : yoctoproject.org; MOS4 depuis /fr/platform/architecture.
  2. Couverture d’images de base vérifiée par rapport à la matrice CI mos-distro : les images ARM produites par Yocto, les images basées Debian et les images basées buildroot exécutent chacune un bundle MOS4 installé dans le pipeline par commit.
  3. Timing de boot du profil de référence de classe modem (1,6 s jusqu’au premier service applicatif prêt, 28,4 Mo de RSS en régime établi) mesuré sur la carte de référence de classe modem. Méthodologie : boot à froid jusqu’au premier appel de service EventBus réussi.

Apportez les couches Yocto.

Un appel de 30 minutes avec l’ingénierie. Apportez les meta-layers ; l’ingénierie placera MOS4 où il a sa place.

Vous construisez sur MOS4 ?

Une réponse de l'équipe d'ingénierie, ~24 h. Pas de pitch, pas de NDA.

Parler à l'équipe