I sistemi operativi incorporati sono piattaforme software appositamente progettate per funzionare su dispositivi con restrizioni alle risorse, come i sensori Internet of Things (IoT), gli impianti medici, le unità di controllo automobilistico e la robotica industriale.

Il paesaggio delle licenze di sistema operativo incorporato

I sistemi operativi integrati sono distribuiti sotto una varietà di modelli di licenze, tra cui licenze proprietarie, licenze open source (con ulteriori suddivisioni), accordi dual-licenziati o ibridi. Ogni modello impone obblighi distinti e garantisce libertà diverse. Riconoscere queste differenze è essenziale per sviluppatori, team legali e leader aziendali quando si seleziona un sistema operativo per un prodotto commerciale.

Licenze di Proprietario

Le licenze di proprietà, spesso rilasciate da venditori commerciali come Wind River (VxWorks), Green Hills (INTEGRITY), o Micrium (ora parte dei Silicon Labs), permettono di utilizzare il sistema operativo in condizioni rigorose.

Licenze Open-Source

I sistemi operativi integrati open source hanno ottenuto una trazione straordinaria grazie all'acquisizione senza costi, allo sviluppo di comunità e alla personalizzazione. Esempi popolari includono FreeRTOS (MIT), Zephyr (Apache 2.0), NutX (BSD-2-Clause), e il kernel Linux (GPLv2).

Licenze permissive (MIT, Apache, BSD)

La licenza MIT, ad esempio, richiede solo che la notifica del copyright e la notifica di autorizzazione siano incluse in tutte le copie o porzioni sostanziali del software. La licenza Apache 2.0 aggiunge una sovvenzione espressa di diritti di brevetto da parte dei contribuenti agli utenti, che può essere cruciale per le aziende preoccupate per il contenzioso di brevetti.

Licenze di copyleft (GPL, LGPL)

Le licenze di copyleft, in particolare la GNU General Public License (GPL) e la Licenza Pubblica Generale Minore (LGPL), impongono obblighi più significativi. La GPL richiede che qualsiasi lavoro derivato (definito in generale come un lavoro basato sul programma licenza GPL) venga distribuito sotto gli stessi termini di GPL.

Debole di copyleft e altri variabili

Alcune licenze open source occupano un terreno centrale. Ad esempio, la Eclipse Public License (EPL) e la Mozilla Public License (MPL) sono copyleft di livello file: le modifiche a un file sono necessarie per essere condivise sotto la stessa licenza, ma il lavoro più grande può essere sotto una licenza diversa. Queste licenze sono meno comuni in OS incorporati, ma appaiono in alcuni componenti middleware. Un'altra variante è la licenza BSD, che sono le versioni critiche.

Modelli ibridi e Dual-License

FreeRTOS, per esempio, è stato storicamente offerto sotto una GPL modificata con un'eccezione commerciale, e ora è principalmente licenza MIT. Il software STM32Cube di STMicroelectronics spesso utilizza un mix di licenze BSD-like e componenti aggiuntivi proprietari.

Implicazioni di scelte di licenza per lo sviluppo del prodotto

La licenza di un sistema operativo integrato si increspa attraverso ogni fase della creazione di prodotti, dalla prototipazione e dai test agli aggiornamenti di produzione, distribuzione e post-mercato. Una licenza scarsamente intesa può causare ridisegnazioni di last-minute, forzata a aperto-sourcing di codice valore, o addirittura richiama prodotti.

Personalizzazione e modifica

Le licenze open source, invece, incoraggiano la modifica ma allegano le condizioni. In una licenza permissiva, è possibile modificare liberamente il kernel del sistema operativo e mantenere le modifiche interne o distribuirle senza rivelare.

Integrazione con il codice di terze parti

Un dispositivo incorporato gestisce in genere uno stack che include il sistema operativo, middleware (ad esempio, stack di rete, file system), e il codice di applicazione. Ogni componente può avere la propria licenza. L'interazione di queste licenze può creare conflitti. Ad esempio, collegare un sistema operativo licenza GPL con un'applicazione proprietaria può essere ammissibile se l'applicazione comunica tramite chiamate di sistema standard e è considerato un "separato lavoro" (la teoria di "aggregata).

Obblighi di distribuzione e di fine utente

Quando un prodotto contenente un sistema operativo incorporato viene spedito ai clienti, la licenza può imporre obblighi al produttore per fornire il codice sorgente (ad esempio, per la GPL), per visualizzare le comunicazioni di attribuzione, o per offrire un'offerta scritta per il codice sorgente.

Considerazioni giuridiche e strategiche

La selezione di un sistema operativo integrato non è una decisione puramente tecnica, richiede una revisione legale dei termini di licenza, una comprensione di come le licenze interagiscono con la propria strategia di proprietà intellettuale dell’azienda, e una valutazione del rischio di potenziali oneri di conformità.

Programmi di verifica e conformità della licenza

Le organizzazioni che utilizzano più componenti open source devono implementare una fattura di software dei materiali (SBOM) accompagnata da annotazioni di licenza. Strumenti come FOSSA, Black Duck e SPDX possono aiutare a automatizzare il rilevamento degli obblighi di licenza. Un programma di conformità dovrebbe includere le politiche per modificare il codice open source, le regole per il collegamento e l'aggregazione dei prodotti, e i modelli per la consegna del codice sorgente ai clienti.

Clausole di brevetto e protezione

In base a Apache 2.0, ogni collaboratore concede una licenza perpetuo, mondiale, non esclusiva a qualsiasi brevetto che detiene che copra il codice contribuito. Questo può proteggere gli utenti da brevetti di violazione da parte dei contribuenti. Inversamente, GPLv2 (utilizzato da Linux) non include una licenza esplicita di brevetto, anche se i tribunali hanno interpretato che la licenza opt ward implicitamente concede diritti necessari per esercitare la licenza di brevetto.

Supporto, aggiornamenti e longevità

I fornitori di sistemi operativi proprietari offrono contratti di manutenzione, patch di sicurezza e supporto tecnico, spesso con tempi di risposta garantiti. I progetti open source si affidano ai contributi comunitari e talvolta al supporto commerciale di terze parti. Una licenza che impedisce a una società di distribuire il firmware aggiornato di terze parti (ad esempio, a causa di copyleft GPL su blobs binari) può ritardare gli aggiornamenti di sicurezza.

Migliori Pratiche per Sviluppatori e Team di Ingegneria

Gli sviluppatori di sistemi incorporati possono adottare misure concrete per navigare la complessità delle licenze:

  • Inizia con una chiara politica di conformità:[] Documento che le licenze sono accettabili e in quali condizioni. Ad esempio, decidere se la vostra organizzazione permetterà codice GPLv3 in prodotti che includono clausole anti-circonferenza (Sezione 3 di GPLv3 sull'anti-tivoizzazione può essere in conflitto con alcuni modelli di business).
  • Utilizza un sistema di controllo della versione con marcatori di licenza:[ Ogni componente di terze parti dovrebbe avere il suo file di licenza incluso nel repository.
  • Separare riguarda architettonicamente:[] Se possibile, progettare il sistema in modo che il codice copyleft forte risiede in una libreria separata o processo che comunica tramite interfacce standard (ad esempio, tubi Unix, sockets, o ABI ben definiti).
  • Identificatori SPDX di leva:[] Utilizzare i tag software Package Data Exchange (SPDX) nei file sorgente per automatizzare la scansione della conformità e garantire che le informazioni sulla licenza siano standardizzate e leggibili in macchina.
  • Consulta legale presto:[] Non aspettare fino al lancio del prodotto per rivedere le licenze.
  • Le licenze proprietarie negoziate con attenzione:[ Per i sistemi operativi commerciali, negoziare i termini intorno al codice sorgente escrow, indemnification, e il diritto di modificare il sistema operativo per uso interno.

Conclusioni

Le implicazioni di licenza dei sistemi operativi incorporati si estendono ben oltre la stampa legale. Essi influenzano l’architettura di un prodotto, il costo delle merci vendute, la capacità di proteggere la proprietà intellettuale, e l’esposizione dell’azienda al contenzioso. Come sistemi integrati continuano a proliferare in settori di sicurezza-critici, regolamentati come l’automotive, il medico e l’avionica, le quote aumentano solo.