Come configurare smartphone e PC. Portale informativo
  • casa
  • Interessante
  • Sorgente aperta. Utilizzo di software open source per creare prodotti commerciali di successo

Sorgente aperta. Utilizzo di software open source per creare prodotti commerciali di successo

Molte persone acquistano vari software o usano le loro versioni piratate craccate. Gli utenti possono vedere l'interfaccia grafica del programma, ma il codice per quel prodotto è solitamente nascosto. A questo proposito è quasi impossibile cambiare il software, che garantisce la protezione dell'autore da chi vuole copiare il codice del programma e appropriarsene. Ma, nonostante ciò, ci sono sempre più programmi cosiddetti "Open Source" nel mondo moderno. Diamo un'occhiata a cos'è il software open source e quali sono i loro lati positivi e negativi.

Cosa può essere considerato open source?

Quasi tutti i software raggiungono l'utente finale come software già pronti. Questi sono programmi abbastanza efficienti con un'interfaccia piacevole e facile da usare. Se il codice di questo prodotto è aperto, chiunque può modificarlo, offrire le proprie opzioni per correggere gli errori rilevati o apportare alcune innovazioni. Pertanto, la qualità di questo prodotto migliora nel tempo. Esempi di sistemi operativi open source sono Linux, Unix, Ubuntu.

Tutti conoscono Microsoft Office, un analogo del quale, ma già open source, è Ufficio aperto... Anche i browser Mozilla Firefox e Google Chrome sono software open source. Ci sono molti prodotti simili, molti usano una grande quantità di software e non sospettano che nessuno di questi possa essere un programma Open Source.

Caratteristiche dell'Open Source

Perché il software sia chiamato programma, non è sufficiente che il suo codice sia aperto a tutti. Un tale programma dovrebbe essere assolutamente gratuito... Inoltre, con un ulteriore utilizzo e un tentativo di modificare il codice, anche l'utente non deve pagare nulla. Chiunque ha il diritto di ridistribuire liberamente questo prodotto e, come detto sopra, di modificarlo. Tali programmi non hanno restrizioni sull'ambito e sui termini di utilizzo. Possono essere utilizzati per affari, ricerca, istruzione, uso per i propri scopi per un periodo di tempo illimitato.

Licenza software open source

Anche la licenza per tali programmi è gratuita. Non ci sono assolutamente restrizioni sull'applicazione, la modifica, la distribuzione, l'uso con altri software compatibili. Inoltre, è tecnologicamente neutro rispetto a tutti gli altri programmi esistenti.

Pro e contro dei programmi Open Source

A differenza dei classici programmi su licenza, sono sviluppati da un gruppo di programmatori liberi, ed è per questo che sono gratuiti.

Il secondo vantaggio importante è che possiamo aggiornare i dati del programma... Un buon programmatore che comprende il codice può aggiungere nuove opzioni al programma o migliorare le prestazioni delle funzioni esistenti. Ad esempio, l'utente Mac OS non può cambiare il suo sistema operativo, a differenza di Linux, che ognuno può non solo personalizzare a propria discrezione, ma anche aggiungere eventuali singole funzioni. Di conseguenza, avrà un prodotto completamente nuovo che è molto comodo da usare. Se il programma risultante è davvero buono, può essere brevettato e persino venduto (!)

Un altro indiscutibile vantaggio dei programmi è la loro protezione dai virus. Quasi tutti i virus sono scritti per le applicazioni finestre e malware per lo stesso Linux importo trascurabile. Pertanto, la probabilità di contrarre un virus utilizzando un sistema operativo open source è molto ridotta.

Oggi molte organizzazioni stanno passando all'utilizzo di software open source. Ciò consente di ridurre i costi e ridurre al minimo la probabilità di violazioni del sistema.

Ma ogni medaglia, come sai, ha due facce, diciamolo sugli svantaggi dell'Open Source programmi.

In caso di problemi con il software, di solito contattano il supporto tecnico. Il software open source non ne ha uno. Questo problema sorge a causa del fatto che il programma è stato modificato da diversi programmatori provenienti da tutto il paese o addirittura dal mondo. Quindi dovrai cercare una soluzione al problema nella vastità della rete. Internet o scoprilo tu stesso.

Il secondo svantaggio si presenta ancora una volta dovuto al fatto che chiunque può modificare il codice del programma. Spesso, le opinioni delle persone potrebbero non coincidere e questo causa conflitti nella modifica del prodotto. Questo può portare al fallimento di un progetto a cui molte persone stanno lavorando da molto tempo.

Inoltre, i programmi dannosi sono spesso mascherati da open source e talvolta è molto difficile distinguerli da un vero software sicuro.

Nonostante il fatto che tali programmi abbiano alcuni inconvenienti, sempre più utenti sono interessati a loro. Oggi sempre più prodotti sono open source. Ciò significa che tali programmi hanno un futuro e meritano attenzione.


La maggior parte del software utilizzato è distribuito in forma compilata. Ciò suggerisce che il codice sorgente di tali programmi passa attraverso un compilatore speciale, che lo converte in un linguaggio comprensibile a un computer. A sua volta, il software che utilizza open source, è l'esatto contrario.

Tale codice, di norma, viene distribuito insieme a una versione compilata del programma, che consente di modificarlo o migliorarlo in ogni modo possibile per consentirgli di eseguire una gamma più ampia di compiti. Gli sviluppatori di tali programmi ritengono che nel tempo l'open source consentirà al prodotto software di diventare più utile e di salvarlo da un gran numero di errori.

Ci sono diversi criteri di ammissibilità per software open source:

  • distribuzione gratuita del pacchetto software, ma allo stesso tempo può far parte di un progetto commerciale;
  • allegato obbligatorio del codice sorgente;
  • la possibilità per chiunque di modificare il codice sorgente;
  • la capacità di distribuire versioni modificate dei programmi;
  • Non dovrebbe essere necessario escludere altro software o interferire con il suo funzionamento.

Considera uno degli esempi più sorprendenti di software che accompagna l'open source che ha ricevuto una distribuzione mondiale. All'inizio degli anni '90 del secolo scorso, lo studente finlandese Linus Torvalds ha sviluppato un sistema operativo completamente nuovo basato su Unix, noto oggi come Linux... Il sistema è stato rilasciato con un contratto di licenza Licenza pubblica generale GNU, che conteneva la definizione di open source da un punto di vista giuridico. Un gran numero di programmatori ha iniziato a utilizzare e migliorare questo sistema operativo. Raccogliendo i miglioramenti dei programmatori di tutto il mondo in un unico insieme, nel 1994 Linus Torvalds ha rilasciato la versione 1.0 di Linux. In precedenza, la numerazione delle versioni veniva eseguita a partire da zero.

Nel corso del tempo, c'è stata qualche preoccupazione generale dei consumatori riguardo alla mancanza di garanzia, così come il supporto tecnico per tale software. Quindi Red Hat Software crea il pacchetto software ufficiale Red Hat Linux che riesce a vendere. La caratteristica più significativa di un tale sistema operativo commercializzato è disponibilità di garanzia e supporto tecnico, cosa non meno importante.

Diverse altre aziende hanno anche sviluppato nuove versioni di Linux in vendita, con questi pacchetti che sono inoltre dotato di vari software, tra cui: browser Internet Mozilla basato sul core Netscape, server Web Apache, linguaggio di scripting Web Perl, formato file immagine PNG e molti altri. Inoltre, esistono versioni dei pacchetti software elencati sviluppate per i sistemi operativi Windows e Android. Ciò suggerisce che il software open source è disponibile non solo per i computer, ma anche per i dispositivi mobili.

Riassumendo, vale la pena dire che i programmi forniti con il loro codice open source hanno una serie di svantaggi. Prima di tutto è varietà di versioni, per cui la revisione di un programma può causare la creazione di un nuovo pacchetto software indipendente. La seconda cosa da sottolineare è utilizzo di programmi obsoleti da parte degli utenti, in cui alcuni errori potrebbero non essere eliminati, non è possibile lavorare con nuovi formati di file e così via. Microsoft Word e Open Office ne sono esempi. Se nel primo pacchetto è scritta una formula complessa, il secondo semplicemente non può leggerla.

Anche tra i software open source non ci sono i cosiddetti pacchetti speciali, destinato alla contabilità e alla rendicontazione. Un altro inconveniente è direttamente correlato all'hardware, il fatto è che quando si passa da Windows a Linux, è necessario tenere conto del fatto che i driver Linux non esistono per tutti i modelli di dispositivi informatici, il che causerà il malfunzionamento del sistema.

Tuttavia, non dimentichiamo gli aspetti positivi di tale software, perché l'open source ha molti vantaggi... Innanzitutto, viene distribuito tutto il software open source è libero... In secondo luogo, tale i programmi a volte vengono visualizzati molto più velocemente commerciale a causa del fatto che diverse migliaia di persone sono coinvolte nello sviluppo contemporaneamente e non tutte le aziende possono permettersi di pagare il lavoro di diverse migliaia di programmatori. L'ultima cosa da notare riguarda la capacità di eliminare rapidamente gli errori, grazie al quale i programmi open source funzionano in modo più stabile di quelli commerciali.

Mark Roberts
Direttore della gestione del prodotto (direttore, gestione del prodotto)
di QNX Software Systems
e-mail: [e-mail protetta]

annotazione

Questo articolo si concentra sui vantaggi, le considerazioni strategiche, gli ostacoli e le opportunità associati all'utilizzo di software open source nei prodotti commerciali. Utilizzando l'ambiente di sviluppo integrato (IDE) basato su Eclipse come esempio, discuteremo le differenze tra le licenze del codice sorgente del software protettive e non protettive. Quando si integra o si collega l'open source con il closed source "proprietario", sono spesso necessarie cure e cautela adeguate. Vanno inoltre tenute presenti varie questioni legali, come la potenziale violazione dei brevetti. Cercheremo anche di spiegare perché i principi di base dell'utilizzo del software open source nell'ambiente informatico (IT) non si applicano ai prodotti commerciali per i dispositivi embedded.

L'IDE QNX Momentics come case study per l'utilizzo di software open source

Nel 2001, quando molte aziende di software stavano lottando per far fronte al crollo generale del mercato azionario IT, in particolare quelle relative all'e-business su Internet, QNX Software Systems ha preso la decisione strategica di iniziare a sviluppare un nuovo ambiente di sviluppo integrato (IDE ) per il mercato sistemi embedded. L'azienda aveva già una solida esperienza nello sviluppo di una serie di strumenti utilizzati nello sviluppo di dispositivi incorporati, ma si è resa conto che la creazione di un IDE avrebbe aiutato a rimanere sulla cresta dell'onda di fronte alla concorrenza agguerrita. La decisione di creare un IDE è stata guidata anche da uno spostamento dell'attenzione nei requisiti dei clienti. Durante la crisi, i clienti con vincoli di budget sono diventati più interessati a soluzioni in grado di massimizzare la produttività e renderli più mobili (flessibili) nel loro lavoro, migliorando l'efficienza economica complessiva.

Per QNX, lo sviluppo di un IDE era "una scommessa per il futuro" poiché il costo e lo sforzo per lo sviluppo di un progetto erano fuori dalla portata della maggior parte dei fornitori di strumenti di sistema embedded all'epoca. Fortunatamente, QNX ha lavorato a stretto contatto con IBM in vari segmenti del mercato dei dispositivi embedded. Attraverso una stretta collaborazione, IBM ha condiviso con QNX i suoi piani per il rilascio di un IDE open source che sarebbe poi diventato la base per la piattaforma Eclipse.

IBM ha offerto di sfruttare l'esperienza di QNX per adattare la tecnologia IDE alle esigenze degli sviluppatori che creano applicazioni embedded C/C++. Quasi immediatamente, QNX ha sottolineato gli interessanti vantaggi dell'utilizzo di un IDE open source. Ad esempio, per un tale ambiente sarebbe possibile:

  • eliminare la dipendenza da un unico fornitore, che di solito è associata alla necessità di concedere in licenza la piattaforma finestra;
  • offrire il codice sorgente per la personalizzazione alle esigenze del cliente;
  • coinvolgere i principali attori del settore per supportare e costruire un ecosistema di tecnologie e plug-in complementari;
  • fornire ai clienti un'architettura stabile in grado di supportare la differenziazione del prodotto;
  • consentire agli sviluppatori di dispositivi embedded di utilizzare workstation standard come piattaforma di sviluppo adatta a lavorare con applicazioni informatiche (nella più ampia gamma di applicazioni).

Infine, è stata considerata la possibilità separata che l'IDE potesse guadagnare popolarità e diventare lo standard de facto, il che consentirebbe a QNX di utilizzare tale piattaforma per catturare il mercato di ampi ecosistemi di sviluppatori e strumenti di terze parti.

Fondare il progetto open source Eclipse.org

Il Consorzio Eclipse è stato fondato da Borland, IBM, Merant, QNX Software Systems, Red Hat e SUSE nel novembre 2001. All'inizio del 2004, il Consiglio di amministrazione ha riorganizzato il Consorzio Eclipse in una società senza scopo di lucro chiamata Fondazione Eclipse.

Fin dall'inizio, Eclipse è stato un vero progetto open source. Il progetto ha offerto sia tecnologie open source gratuite sia l'accesso a una comunità degli sviluppatori più istruiti e avanzati nel loro campo. Pertanto, questa tecnologia si è rivelata una piattaforma universale per l'integrazione di tutti i tipi di strumenti di sviluppo. Si basa su un'architettura aperta ed estensibile ed è chiaramente concesso in licenza come prodotto ridistribuibile esente da royalty. I contributi della community al progetto Eclipse si basano sul modello di sviluppo standard Open Source Software (OSS), ma la maggior parte dei membri offre anche sviluppo commerciale basato sulla piattaforma Eclipse.

Progetto di creazione del repository degli strumenti

Nel dicembre 2001, QNX ha iniziato a costruire il suo QNX® Neutrino® RTOS, basato sull'IDE Eclipse. Dal punto di vista dell'azienda, l'IDE dovrebbe avere grandi funzionalità, concentrarsi sul lavoro con i linguaggi C / C ++, avere strumenti profondamente integrati per il debug, la profilazione, l'analisi e la creazione di applicazioni integrate. Fin dall'inizio, il team di QNX ha inteso che fosse un IDE multiuso e multilingue che supporta più piattaforme di strumenti. Questo includeva:

  • diverse piattaforme di strumenti: Windows, Solaris, QNX Neutrino RTOS (sviluppo self-hosted);
  • diverse architetture di destinazione: ARM, MIPS, PowerPC, SH-4, x86;
  • linguaggi di programmazione C, C++, Java.

Da allora, l'IDE ha continuato a crescere per includere il supporto per la piattaforma Linux e il supporto per architetture di processori aggiuntive, inclusi i processori XScale.

Il progetto è stato lanciato in stile "programmazione estrema". Nell'azienda è stato selezionato un team di 12 migliori ingegneri. Fu loro assegnata una stanza speciale, isolata da ogni distrazione, e messa a loro completa disposizione.

Al gruppo è stata data la necessaria autorità in ambito decisionale, per loro è stato stilato un duro programma di lavoro, al limite del rischio, con il rilascio della versione beta del prodotto in 16 settimane, e della versione commerciale da 4 luglio 2002. Il gruppo ha rispettato tutte le scadenze stabilite e ha rilasciato un nuovo prodotto - soprannominato QNX Momentics® IDE - esattamente nei tempi previsti, una testimonianza del potenziale del software open source per ridurre il time-to-market.

Dall'idea alla consegna del prodotto - meno di 7 mesi

Basandosi sulla piattaforma Eclipse, il team QNX ha completato un IDE molto potente e versatile per lo sviluppo di software embedded in sei mesi. L'IDE supportava lo sviluppo multipiattaforma su più piattaforme di strumenti e più linguaggi di programmazione e supportava le più popolari schede processori di destinazione embedded. Con la piattaforma Eclipse, QNX è stato in grado di:

  • utilizzare compilatori GNU e strumenti da riga di comando per lo sviluppo incrociato;
  • supportare plug-in di terze parti come IBM WebSphere per Java incorporato e Rational ClearCase per lo sviluppo basato su modello;
  • creare strumenti aggiuntivi per la creazione di sistemi, la gestione dei dispositivi di destinazione, l'analisi della memoria, la profilazione di sistemi e applicazioni, ecc.

Nella fig. La Figura 1 fornisce un esempio di come la piattaforma Eclipse riduce il costo della creazione di un IDE, consentendo alle aziende di concentrarsi sui livelli superiori di sviluppo, dove viene effettivamente creata la vera innovazione. Ad esempio, utilizzando la piattaforma Eclipse, QNX è stato in grado di creare facilmente diversi strumenti di visualizzazione innovativi che consentono di penetrare in profondità nel sistema embedded e visualizzarne il comportamento.

Contribuire alla comunità

La forza di un progetto open source di successo risiede nella collaborazione della comunità di sviluppatori e nel miglioramento continuo del codebase. Se un'azienda adotta e fa uso dell'open source, ha semplicemente la responsabilità di contribuire alla comunità. A tal fine, QNX ha rilevato il progetto Eclipse CDT nel giugno 2002.

L'obiettivo del progetto Eclipse CDT (C/C++ Development Tools) è creare un insieme comune di strumenti di sviluppo C/C++ interoperabili per la piattaforma Eclipse. Eclipse CDT è stato commercializzato come progetto open source, con diritti di gestione da Eclipse Corporation. Per lanciare il progetto CDT, QNX ha donato le sue risorse di sviluppo e il codice sorgente al progetto QNX Momentics IDE. Anche Rational e Red Hat come membri della comunità hanno fornito un supporto significativo al progetto.

Riso. 1. Utilizzando la piattaforma Eclipse, i fornitori di strumenti possono concentrarsi sul livello più alto dello stack di lavoro, dove viene effettivamente creata la vera innovazione.

QNX continua a mantenere il progetto CDT, che è cresciuto da un inizialmente modesto 80.000 righe di codice a oltre 700.000 linee di codice oggi. All'inizio del 2006, l'Eclipse CDT Progress Log rappresentava una stima del 52% del contributo di QNX. Poi è arrivata IBM con un contributo del 36%. Il progetto CDT è il secondo progetto Eclipse più popolare dopo la piattaforma Eclipse stessa.

Posso permettermi di "regalare" il codice?

Può sembrare che "donare" il tuo codice significhi fare qualcosa contro il buon senso. Tuttavia, se la funzionalità del tuo prodotto si rivela utile da applicare, allora perché non contribuire come contributo alla comunità open source. Facendo questo passo, puoi beneficiare di questa offerta di implementazione "standard" insieme all'esperienza per supportare il prodotto. Sarai in grado di beneficiare del lavoro dell'intera comunità per migliorare la base di codice. Una tale strategia può liberare le tue risorse per condurre ulteriori ricerche, focalizzate sull'innovazione, sull'aggiunta di funzionalità aggiuntive ai tuoi prodotti.

Inoltre, potresti ottenere un certo controllo sulla direzione della piattaforma "standard" - guadagnato, ovviamente, grazie ai tuoi contributi alla comunità! Se sostieni un progetto, comportati come un buon cittadino della comunità, rispetta le opinioni degli altri, apprezza il contributo e i consigli degli altri membri. Non pensare che qualcuno cercherà di "pulirti le tasche" a seguito dell'utilizzo del codice e di intercettare la tua leadership sulla direzione dello sviluppo della piattaforma.

Ad esempio, la strategia di QNX Software Systems consiste nel capitalizzare i vantaggi di far parte di Eclipse sviluppando nuove funzionalità che si collegano ai punti di estendibilità standardizzati già disponibili nelle piattaforme Eclipse e CDT. A tal fine, QNX intende rimanere un membro attivo della comunità Eclipse, sfruttando la base di codice esistente e l'esperienza di terze parti (plug-in), contribuendo a soddisfare le reali esigenze dei clienti creando estensioni proprietarie. La strategia descritta è illustrata in Fig. 2.

Riso. 2. Puoi contribuire al lavoro della comunità con la tua esperienza.

Riepilogo dei vantaggi

La piattaforma di strumenti basata su Eclipse è reciprocamente vantaggiosa sia per gli sviluppatori di applicazioni come QNX sia per i clienti che acquistano gli strumenti della piattaforma.

Gli sviluppatori beneficiano di un minor time to market e della possibilità di beneficiare della ricerca di altre persone (a basso costo). Questi risultati possono includere codice "IP pulito" di alta qualità fornito da fornitori affidabili come IBM e QNX. Un altro vantaggio per lo sviluppatore è che ottiene uno schema di licenza semplice e chiaro, compresi i diritti commerciali e una certa protezione dei brevetti. Inoltre, lo sviluppatore ha la possibilità di lavorare su più piattaforme OS supportate da Eclipse, così come i punti di estensibilità ben definiti nel progetto Eclipse.

I clienti che acquistano un IDE basato su Eclipse beneficiano di una piattaforma di strumenti dedicata allo sviluppo integrato, un potente supporto per la compilazione incrociata, un facile debugging ed estensioni per gestire i sistemi di destinazione. Il team di sviluppo del cliente apprezzerà le numerose funzionalità che facilitano il lavoro, il poco tempo necessario per la formazione aggiuntiva, le buone prestazioni del prodotto e una piattaforma affidabile per gestire progetti di grandi dimensioni. Il client può anche sfruttare utilmente il framework Eclipse nelle proprie applicazioni (es. RCP, eRCP, ecc.).

Il futuro di Eclipse Corporation

La Eclipse Corporation è una comunità attiva ed energica. Introduce continuamente nuovi progetti, fornisce nuove architetture ad aziende innovative consolidate e anche le piccole aziende possono commercializzare la piattaforma Eclipse creando nuovi plug-in a costi minimi che estendono le funzionalità esistenti (vedere la Figura 3).

Riso. 3. Eclipse Corporation è una comunità vivace e in rapida crescita di sviluppatori di plug-in.

Confronto di licenze open source

Non tutte le licenze open source sono uguali. QNX ha preso una mossa ben ponderata con la Eclipse Public License. Questa scelta è stata dettata in parte dalle esigenze dei suoi clienti embedded e in parte dal desiderio di prendere il controllo (e beneficiare) delle tecnologie che differenziano i prodotti.

L'iniziativa non profit Open Source () ha fornito un'utile definizione di open source in 10 punti. Ci sono attualmente oltre 50 licenze approvate da OSI elencate sul sito web, inclusa la Eclipse Public License. Queste licenze possono contenere differenze significative che devono essere chiaramente comprese. Queste differenze possono avere un impatto significativo sulla proprietà intellettuale (IP) degli sviluppatori e sulla loro capacità di proteggerla. Ciò è particolarmente vero quando si utilizza codice open source (o lavoro derivato basato su codice open source) in dispositivi incorporati.

Licenza protettiva e non protettiva

Secondo i termini di una licenza difensiva come la GPL v2, il lavoro derivato può essere ridistribuito solo con il codice sorgente associato. Secondo i termini della licenza difensiva, è garantito che quando il codice sorgente viene rilasciato nella categoria aperta, rimarrà in quella categoria in tutte le generazioni successive e nei lavori derivati. Come spiegheremo più avanti, questo requisito porta ad alcuni problemi nel caso dei sistemi embedded.

Esempi di licenze non sicure sono le licenze originali MIT e BSD. Le licenze non protettive conservano il copyright del proprietario, ma concedono ampi diritti all'utente, incluso il diritto di modificare e la distribuzione gratuita senza restrizioni (o l'uso personale) del software.

Cosa si intende per "licenza virus"

Alcune persone chiamano la GPL una "licenza virale". Questo nome è sorto a causa dell'ambiguità della definizione legale del concetto di "sviluppo derivato". Con un'interpretazione rigorosa della definizione, si scopre che anche un piccolo pezzo di codice coperto dalla GPL è incorporato in qualche applicazione proprietaria, quindi l'intera applicazione deve essere licenziata sotto la GPL. Viene subito in mente un'analogia con un virus.

Domande sulla ricezione del risarcimento

Recentemente, l'indennizzo IP è diventato l'argomento principale di discussione per gli sviluppatori. In risposta, alcuni fornitori open source hanno annunciato che avrebbero protetto i clienti da cause legali per violazione di brevetti o copyright. E le più recenti licenze open source chiariscono le sanzioni per gli utenti che cercano di far valere i propri diritti di brevetto contro altri utenti del codebase.

Principali sfide per la commercializzazione di software open source

Confronto tra applicazioni embedded e IT

Il successo del settore open source è stato alimentato dall'adozione di Linux da parte delle organizzazioni IT. I vantaggi dell'utilizzo di Linux erano associati all'esecuzione su hardware relativamente uniforme e stabile (di solito la famiglia x86) e all'utilizzo di una piattaforma di elaborazione flessibile e ricca di risorse.

Questo non è il caso del software integrato. Il software funziona su un'ampia varietà di dispositivi a funzionalità fisse su un'ampia gamma di architetture hardware. I progettisti di dispositivi integrati spesso basano il loro vantaggio competitivo su un set di funzionalità, dimensioni, prestazioni, costi, durata della batteria, affidabilità, interoperabilità ed espandibilità specifici. Queste caratteristiche distintive sono solitamente implementate in software di basso livello, che nel caso di Linux richiede il collegamento diretto al kernel del sistema operativo. La personalizzazione del software di basso livello per soddisfare le esigenze dei clienti è la norma, non l'eccezione, quindi gli sviluppatori spesso ottengono le funzionalità di cui hanno bisogno modificando il kernel del sistema operativo. Il metodo del collegamento diretto viene utilizzato anche incorporando frammenti di codice al fine di ridurre i costi di creazione delle librerie. Questa pratica, nel suo insieme, rende molto difficile proteggere il codice proprietario con licenze GPL (disponibili al pubblico).

In genere, questi problemi di licenza non si applicano alle applicazioni IT perché il software proprietario e specifico dell'azienda non si estende oltre l'azienda e viene utilizzato esclusivamente per esigenze interne. D'altro canto, i dispositivi embedded distribuiscono sempre software derivato che si qualifica per le licenze open source "force open", che potrebbero compromettere aspetti chiave delle preziose offerte open source.

Inoltre, i prodotti integrati hanno spesso una lunga durata, sia durante la produzione che durante l'uso. Un prodotto integrato soggetto alle Condizioni d'uso Open Source è a maggior rischio, inclusa la mancanza di supporto tecnico a lungo termine, potenziali problemi di sicurezza e violazione della proprietà intellettuale.

Problemi di licenza

Incertezza dello status giuridico

Nonostante le parole confortanti dei sostenitori di alcune licenze open source, molte delle questioni chiave che preoccupano gli sviluppatori di sistemi embedded non sono state ancora ampiamente verificate dalla pratica forense. Come accennato, la definizione di "derivato" è fondamentale per far rispettare alcune clausole della licenza, sebbene molti individui e organizzazioni che accettano i termini di utilizzo dell'open source abbiano poca o nessuna comprensione del concetto.

Alcune soluzioni alternative che consentono ai fornitori commerciali di implementare driver "proprietari" in Linux (ad esempio i moduli del kernel caricabili) si basano su argomenti "ha detto, ha detto" piuttosto che su collegamenti diretti al testo dell'accordo di licenza. In effetti, tali driver che utilizzano moduli LKM sono irti di pericolosi elusioni dei requisiti della licenza GPL. Andando all'estremo, si può interpretarlo nel senso che il codebase di Linux può essere presentato come inutile per la maggior parte degli usi pratici, se alcuni di questi driver "proprietari" non sono inclusi in esso. Questa situazione può effettivamente svalutare l'idea di una licenza GPL.

Mancanza di risarcimento per violazione della PI

Nella maggior parte dei casi d'uso open source, esiste la possibilità reale che tu stia violando inavvertitamente i diritti di brevetto di qualcun altro. Solo una piccola parte delle licenze open source fa esplicito riferimento a brevetti e non è possibile fare alcuna determinazione sulle licenze implicite. È necessario concedere in licenza separatamente qualsiasi brevetto relativo, ad esempio, a codec open source che implementano algoritmi MP3 o altre soluzioni proprietarie. Nel frattempo, i cattivi ragazzi (inclusa Microsoft) sono preoccupati di costruire un portafoglio di brevetti che, secondo molti esperti, può essere "sparato" ai sostenitori dell'open source.

Alcune licenze fanno esplicito riferimento a brevetti. Ad esempio, la Eclipse Public License menziona esplicitamente i diritti di brevetto e contiene una clausola penale se qualcuno cerca di far valere i diritti di brevetto in modo diverso. Eclipse fa anche di tutto per rivedere il codice e scoprire da dove proviene in termini di licenza, brevetto o legge sul copyright.

Ulteriori sforzi per preservare l'IP

Per utilizzare l'open source, un'azienda deve dedicare notevoli sforzi nelle seguenti aree:

  • gestione della distribuzione dei prodotti;
  • gestione delle licenze;
  • risoluzione di conflitti legali in termini di obblighi dei clienti;
  • prestando la dovuta attenzione alle questioni legali: mantenere la purezza dei diritti IP, verificare i diritti IP per l'open source, stabilire la fonte del codice, tenere traccia delle modifiche nelle versioni della licenza, ad esempio GPL v3, ecc.

Accettare i requisiti del cliente

Alcuni grandi clienti, di fronte alla complessità e all'incertezza del software open source, si sono rifiutati di trattare con prodotti open source. Se desideri lavorare con tali clienti, devi ottenere o offrire loro di includere i termini per il tuo codice corrispondenti alla licenza commerciale.

Problemi di IP

I termini della tua licenza open source influiscono sulla proprietà intellettuale che contraddistingue il tuo prodotto? Se è così, il tuo IP è a rischio.

Se i tuoi sistemi incorporati utilizzano una combinazione del tuo software e del software open source, devi comprendere la natura, l'origine e la relazione di tutti i componenti del software incorporato. Senza una tale conoscenza approfondita, potresti inavvertitamente violare i diritti IP di qualcuno o addirittura perdere i tuoi diritti sul tuo software.

Senza licenze di brevetto o compensi pagati, il software embedded di lunga durata, il prezzo di vendita relativamente alto e il volume dei dispositivi embedded con funzionalità fisse rendono tali sistemi un obiettivo ovvio per le richieste di violazione dei brevetti da parte dei bad boy e dei principali concorrenti.

Come illustra il caso di studio dell'IDE QNX Momentics, ci sono molti vantaggi immediati per il software open source, inclusi tempi di commercializzazione più rapidi, costi di sviluppo inferiori e maggiore libertà di aggiungere funzionalità e innovazione al prodotto. Se offri il tuo software come servizio che risolve qualche problema per un cliente, al cliente non importa se hai utilizzato software open source o meno, paga solo per la funzione di cui ha bisogno.

Tuttavia, dovresti comprendere la differenza tra le diverse licenze open source e scegliere quella più adatta alla tua applicazione e alle esigenze del cliente. Inoltre, preparati a rispondere degli obblighi di licenza del software che hai scelto. Dovresti essere a conoscenza di altri requisiti IP (come i diritti di brevetto) relativi al codice del software. Fai attenzione a una base di codici che non visualizza un messaggio di violazione dell'IP. Cerca progetti che offrano un risarcimento per eventuali danni e visualizza un messaggio sullo schermo sulle donazioni in denaro per lo sviluppo del codice per compensare i costi associati alla violazione del copyright o del brevetto e così via. Inoltre, assicurati che il software open source che stai utilizzando sia coerente con la tua politica sulla proprietà intellettuale ed evita licenze difensive che potrebbero costringerti a rivelare parti distintive del tuo codice. Se il tuo prodotto è integrato nel sistema, prendi in considerazione anche l'offerta di termini di licenza commerciale per il tuo IP.

L'uso del codice open source nei dispositivi incorporati porta a problemi più complessi rispetto al caso dell'utilizzo di tale software nelle applicazioni IT, poiché la prima opzione è irta di maggiori pericoli. Prima di decidere di utilizzare qualsiasi software open source, stima il suo vero costo di proprietà (TTCO) e la sua idoneità per il tuo progetto.

Infine, unisciti alla community open source di utenti e sviluppatori per massimizzare il tuo valore e i tuoi vantaggi!

Tutto il software su LiveCD e DVD è software gratuito e open source (software gratuito e open source), con alcune eccezioni (Flash, Opera, Acrobat Reader e altri) che si trovano nel repository non-oss. Quando si parla di Software gratis, Noi intendiamo libertà, non prezzo.

Cos'è il software libero?

Il movimento del software libero è stato avviato da Richard M. Stallman, che ha fondato il Progetto GNU (acronimo ricorsivo: GNU "s Not Unix) nel 1984. Un anno dopo, ha fondato la Free Software Foundation, nota anche come FSF. ...

Il software libero può essere classificato in 4 principali "gradi di libertà":

  • libertà uso di programmi in alcun modo (libertà 0)
  • libertà imparare a lavorare programma, oltre ad adattarlo alle tue esigenze (libertà 1) Ciò richiede l'accesso al codice sorgente.
  • libertà distribuzione di copie programmi. Puoi condividere con il tuo vicino. (libertà 2)
  • libertà migliorare il programma e pubblica i miglioramenti che apporti, a beneficio dell'intera comunità (libertà 3). Ciò richiede l'accesso al codice sorgente.

Il software non libero è chiamato proprietario. È importante non confondere shareware e freeware con software libero, sono due cose diverse.

Che cos'è il software open source?

Il movimento del software libero open source è iniziato nei primi anni '90 da persone che hanno enfatizzato i vantaggi tecnici ed economici dell'uso dell'open source e del modello aperto di sviluppo del software libero. Tuttavia, esiste una piccola quantità di codice software riconosciuto come gratuito dalla società open source, motivo per cui viene spesso utilizzato il termine FOSS (software open source gratuito e gratuito). Perché, in senso stretto, Software Libero e Software Open Source non sono affatto la stessa cosa che si potrebbe pensare. Ad esempio, un contratto di licenza di un prodotto software può autorizzare la ricerca sul suo codice sorgente, vietandone la modifica e/o la distribuzione di copie. In questo caso il prodotto è open source (Open Source), ma non gratuito (Free).

Vantaggi dell'utilizzo del software libero

Il software gratuito è utile per una serie di motivi, i principali sono elencati di seguito.

Correzione dell'errore

Se il prodotto software è software libero, questo ti dà il diritto di correggere gli errori trovati in esso, nonché di modificarlo in base alle tue esigenze. Se il programma è proprietario, non è possibile correggere in modo indipendente gli errori rilevati in esso o espandere la funzionalità. In tal caso, sarai costretto a contattare il proprietario del prodotto software con una richiesta per apportare le necessarie correzioni e aggiungere le funzionalità di cui hai bisogno. Tuttavia, non vi è alcuna garanzia che il proprietario lo farà.

Condivisione

Il software libero ti dà il diritto di distribuirne copie, aiutando così i tuoi amici a usare il software libero senza ottenere una licenza.

Conoscere e controllare cosa fa e come il programma

Nella stragrande maggioranza dei casi, non è possibile sapere esattamente cosa sta facendo il programma proprietario. Pertanto, non puoi essere sicuro che il programma faccia solo ciò che gli chiedi, perché può eseguire alcune azioni a tua insaputa (ad esempio, inviare informazioni su di te come utente ai suoi creatori o avere capacità non documentate di vario carattere). Naturalmente, in caso di utilizzo di software libero, sei completamente assicurato contro tali problemi. Dopotutto, hai il codice sorgente del programma a tua disposizione, che ti permette di sapere esattamente cosa fa il programma e come. Se una o l'altra delle sue capacità e / o caratteristiche del suo lavoro non ti soddisfano, puoi apportare le modifiche necessarie al codice.

Vantaggi tecnici

Il codice open source di un prodotto software gratuito è disponibile per un gran numero di persone, il che dà loro l'opportunità di correggere gli errori trovati in esso; ciò contribuisce allo sviluppo e al miglioramento del prodotto. Questo sistema di "peer review" può essere paragonato al modo scientifico della ricerca. Al contrario, il codice proprietario del prodotto proprietario è tenuto segreto e non è quasi mai visto da nessuno al di fuori dell'azienda.

Benefici economici

Il software libero offre alle aziende la possibilità di condividere il costo del software che sviluppano. Ad esempio, Novell e RedHat competono per sviluppare lo stesso software, ma in tal modo si aiutano a vicenda. Anche IBM e HP sono concorrenti, ma hanno anche contribuito pesantemente allo sviluppo del kernel Linux, condividendo così i costi di sviluppo. Il software libero ti permette di avere un mercato competitivo per il supporto tecnico, e quindi la sua qualità è solitamente molto alta. Con il software proprietario la situazione è esattamente l'opposto: solo l'azienda sviluppatrice ha accesso al codice sorgente ed è in grado di offrire il supporto tecnico adeguato, e questo mostra un certo grado di monopolio. Inoltre, la questione del costo di acquisto di un prodotto software deve essere attribuita ai benefici economici. Nel caso in cui sia gratuito, puoi scaricarne una copia da Internet (o acquistarla su un supporto fisso) una volta, installarla su un numero qualsiasi di computer e utilizzarla per un tempo illimitato. Se il prodotto è proprietario, in base ai termini del contratto di licenza l'uso del prodotto può essere fortemente limitato (ad esempio, con la limitazione del numero di installazioni e/o del tempo di utilizzo).

Non sono un programmatore. Perché dovrei preoccuparmi di quanto sopra?

In effetti, la maggior parte delle libertà e opportunità di cui sopra possono essere utilizzate solo da programmatori in grado di leggere e scrivere codice di programma. Tuttavia, non dovresti pensare che il software libero sia destinato esclusivamente ai programmatori. Se tu, non essendo tale, desideri modificare il software gratuito che stai utilizzando in un modo o nell'altro per estenderne le funzionalità, puoi (da solo o in collaborazione con altri utenti) assumere un programmatore che possa farlo per te. Questa pratica è molto comune. Inoltre, non devi essere tu stesso un programmatore per distribuire software libero.

Gli sforzi dei produttori di apparecchiature informatiche per promuovere soluzioni supportate da un forte supporto di marketing sono ampiamente riconosciuti software open source(software open source). Nell'uso ufficiale moderno in russo, questo fenomeno è solitamente chiamato Software gratis(SPO).

L'essenza del concetto consiste in diversi principi per la creazione e la distribuzione di software open source:

  • disponibilità di codici sorgente per tutti;
  • politica di licenza di distribuzione basata su una delle licenze approvate dalla comunità (vedi opensource.org);
  • la capacità di partecipare direttamente allo sviluppo e alla correzione degli errori software per conto proprio;
  • la possibilità di modificare alcune funzioni del software e di adattarsi a nuove condizioni (previa disponibilità di modifiche per l'intera comunità);
  • massima compatibilità con standard aperti;
  • la capacità di lavorare in vari sistemi operativi e su più piattaforme (cross-platform).

Questi principi sono usati per creare la maggioranza

SPO. Vale la pena notare che c'è una notevole differenza tra gratuito e gratuito SU. Nonostante il fatto che la maggior parte delle licenze software open source siano di distribuzione gratuita, questa proprietà da sola non è sufficiente per considerare il software libero.

L'open source ha già ottenuto una serie di importanti vittorie su alcuni dei più forti fornitori di software proprietario. In particolare il server web Apacheè molto più avanti di prodotti simili di altre società (incluso Microsoft) in termini di quota di mercato a causa del suo basso costo, indipendenza dal fornitore, molti utenti esperti nella sua amministrazione e supporto per gli sviluppatori. Linux bypassato tutti gli altri tipi in termini di offerta Unix per piattaforma Intel, compresa la leadership di lunga data SCO. I DBMS open source hanno una forte presenza nel sistema operativo open source e nei popolari mercati Internet di fascia bassa. La minaccia al software proprietario deriva dai vantaggi del software open source simili a quelli di Internet, ad es. apertura, libertà di adattamento, ecc.

Il software libero ha già una forte presenza nei sistemi operativi per server, infrastrutture Internet, server di applicazioni Web, DBMS per piccole imprese e dipartimenti basati su database Web con generazione di pagine Web dinamiche, sistemi informatici tecnici e integrati e software per dispositivi server. Parlando dell'infrastruttura di Internet, va notato che la maggior parte dei dispositivi esegue sistemi operativi e altri software open source. Questi dispositivi includono server dei nomi di dominio, router, switch, firewall, gateway, bilanciatori del carico, server di applicazioni e database e altro ancora.

Dati questi progressi, il software open source mette a rischio le aziende la cui principale fonte di reddito sono le tariffe di accesso dei clienti e le tariffe di licenza del software proprietario. L'open source porta nel software il modello di business legacy e dei beni di consumo nel mercato dell'hardware, un modello a cui è difficile adattarsi per un fornitore di software tradizionale, in particolare un leader.

Molti dei fornitori che utilizzano modelli di business open source non si sono sviluppati come fornitori di software tradizionale fin dall'inizio. Man mano che la loro quota di mercato del software open source cresce e la sua posizione nei mercati strategici di Internet, i fornitori di software legacy stanno identificando le minacce dall'open source e le opportunità presentate dai nuovi modelli di business. Naturalmente, i fornitori di software legacy hanno la possibilità di adottare questi modelli di business in tutto o in parte, a seconda del loro portafoglio di prodotti. Anche così, l'open source rappresenta una minaccia tangibile e molto reale per i consueti modelli di business delle società di software.

Ci sono quattro principali minacce open source per le aziende chiuse.

  • Pressione sui prezzi. Poiché le licenze open source, infatti, richiedono la distribuzione gratuita del software e delle sue modifiche, i prezzi per prodotti tradizionali simili devono essere ridotti per non cedere al software open source e per combattere la perdita di quote di mercato. Per esempio, SCO non può prendere $ 2.000 per Unix per piattaforma Intel, mentre Linux disponibile gratuitamente, a Microsoft monopolizza il settore desktop. I fornitori tradizionali possono, tuttavia, recuperare parzialmente le perdite realizzando i loro prodotti software di qualità superiore rispetto a JV O e addebitando costi aggiuntivi per questo.
  • Funzionalità abbastanza buona. Il software "abbastanza buono" (ma non il migliore) può parzialmente spiazzare i prodotti dei fornitori di software tradizionali, che troppo spesso si rivolgono al mercato di massa. Le funzionalità più complesse (e costose) nelle prime fasi del suo sviluppo sono sempre destinate a un gruppo relativamente ristretto di utenti professionali. Ma anche i produttori che operano in questo mercato devono ancora capire chiaramente che il mercato del software altamente sviluppato si espanderà e si approfondirà. Se la funzionalità avanzata non riesce ad attrarre una base di utenti più ampia, i clienti acquisteranno naturalmente alternative open source, anche se meno avanzate. In mercati di massa molto ampi, i fornitori di software open source dominanti, oltre ad aumentare la loro offerta, hanno ampi margini di crescita attraverso strategie di prodotti e servizi complementari. La dimensione del mercato di massa di per sé garantisce prezzi più bassi a causa di elevati volumi di consegne, che consente agli utenti finali di ricevere profitti tangibili anche con un leggero aumento del costo dei loro prodotti.

In alcuni casi, il software open source può persino aggirare le funzionalità dei prodotti tradizionali. Per esempio, Apacheè diventato il primo server web ad offrire una popolare funzione Internet tra i provider alias IP, consentendo di ospitare diversi nomi di dominio Internet su un sistema.

  • "Effetti di rete", grazie alla conoscenza e allo studio di software e strumenti di uso di massa. Il costo della formazione degli utenti della nuova tecnologia rappresenta una parte significativa del costo totale di proprietà, più del prezzo del prodotto software stesso. Un'azienda con un'ampia base di utenti che ha familiarità con il prodotto e i relativi strumenti di accompagnamento può sfruttare questa familiarità rilasciando nuove versioni o entrando in mercati correlati. Questo tipo di effetto rete può variare a seconda del tipo di utente utilizzato dagli sviluppatori di software API, amministratori di sistema: strumenti di amministrazione specifici, gli utenti lavorano con interfacce utente grafiche e i manager stabiliscono relazioni con i fornitori. Una volta formata, questa rete di partner e utenti di soluzioni open source non viene più distrutta e consente di risolvere problemi di marketing di ordine minore, come l'acquisizione di aderenti e la fedeltà dei clienti.
  • La pressione della standardizzazione. L'ultima minaccia del movimento open source sono i suoi strumenti e la sua cultura, che vede il suo nemico come suo nemico ogni sorta di barriere tecnologiche erette dai fornitori di software tradizionali.

Recentemente, la direzione in più rapida evoluzione nel software è la cosiddetta "commercialeopen-source", quelli. JV O supportata da società commerciali convenzionali. La società dovrebbe essere considerata uno dei leader in questo settore. Sole, che sta sviluppando diversi grandi progetti in questo settore: Sistema operativo OpenSolaris, DBMS MySQL, ufficio OpenOffice.org e ambiente di virtualizzazione Scatola virtuale. Di norma, esistono diverse versioni di tale software, inclusa una commerciale. Quando paga una licenza, l'utente riceve supporto tecnico e, in alcuni casi, strumenti speciali per un lavoro conveniente che non sono disponibili con una licenza aperta. Cioè, con piccole esigenze, le aziende possono utilizzare versioni gratuite o gratuite di software e, con un aumento delle richieste, possono acquistare estensioni commerciali senza modificare nulla nella loro infrastruttura e applicazioni. Pertanto, la versione commerciale del software open source compete direttamente con lo sviluppo delle aziende tradizionali, ad esempio Microsoft, che sta attivamente creando schemi di licenza speciali per l'uso nell'ambiente Internet (stiamo parlando di software server).

Di conseguenza, il software open source su Internet svolge un ruolo di formazione del sistema, supportando e sviluppando i principi di base della costruzione del Web. Inoltre, l'uso di software open source è rilevante dal punto di vista della focalizzazione sulla fornitura di servizi anziché sulla vendita di beni. Pertanto, quando si creano sistemi Internet, vale la pena concentrarsi su standard aperti e software che li implementano, poiché solo in questo modo offrirà un'opportunità per lo sviluppo del business e nuove opportunità per i mercati elettronici.

L'utilizzo di software open source per supportare le tecnologie Internet è naturale e necessario dal punto di vista delle proprietà di scalabilità, globalità e compatibilità. Ad esempio, l'aumento del numero di server o altri dispositivi dell'infrastruttura non richiede investimenti aggiuntivi nel software, che offre maggiore flessibilità rispetto al software proprietario. Ciò diventa particolarmente vero quando il costo del software supera la componente hardware del progetto. I requisiti di globalità e interoperabilità sono implementati grazie a un buon supporto per software open source multipiattaforma e all'uso di standard aperti, che consente di mantenere un alto livello di interoperabilità anche con molti prodotti e piattaforme concorrenti sul mercato.

Alla luce del moderno sviluppo di applicazioni di servizio basate su tecnologie web, software open source in combinazione con computer economici (nettop e netbook) possono spremere in modo significativo i tradizionali sistemi desktop e mobili, che si basano sul sistema operativo. finestre e suite per ufficio tradizionali. Utilizzo di un sistema operativo specializzato leggero con una GUI basata su kernel Linux e i moderni browser Web consentono di eseguire la maggior parte delle attività quotidiane su piattaforme di rete utilizzando solo software open source.

Principali articoli correlati