close

Multipiattaforma

Vai alla navigazione Vai alla ricerca

Multipiattaforma ( multipiattaforma ): la capacità del software di funzionare con più piattaforme hardware o sistemi operativi . Viene fornito attraverso l'uso di linguaggi di programmazione di alto livello , ambienti di sviluppo e runtime che supportano la compilazione condizionale, il collegamento e l'esecuzione di codice per varie piattaforme. Un tipico esempio è il software progettato per essere eseguito contemporaneamente su sistemi operativi Linux e Windows .

Image
Swing ha lo stesso aspetto su tutti i sistemi operativi.
Image
Mozilla Firefox utilizza XUL per definire lo stile delle finestre nello stile del sistema operativo (in questo caso, Linux ).

Linguaggi di programmazione multipiattaforma

La maggior parte dei moderni linguaggi di programmazione di alto livello possono essere chiamati multipiattaforma . Ad esempio, C , C ++ , Free Pascal , FreeBASIC , PureBasic  sono linguaggi multipiattaforma a livello di compilazione, ovvero ci sono compilatori per varie piattaforme per questi linguaggi. Ciò consente - con la corretta qualità del codice - di non riscrivere il motore principale del programma, cambiano solo parti speciali dipendenti dal sistema.

Altrettanto importanti per l'uso multipiattaforma sono le librerie di runtime standardizzate . In particolare, la libreria del linguaggio C ( POSIX ) è diventata uno standard. Delle grandi librerie multipiattaforma: Qt , GTK+ , FLTK , STL , Boost , OpenGL , SDL , OpenAL , OpenCL .

Esistono compilatori incrociati - compilatori che generano codice eseguibile per una piattaforma diversa da quella su cui è in esecuzione il compilatore stesso.

Runtime multipiattaforma

PHP , Perl , Python , Tcl e Ruby  sono linguaggi interpretati multipiattaforma e i loro interpreti esistono per molte piattaforme.

Anche i runtime ActionScript Virtual Machine , Java Virtual Machine e .NET sono multipiattaforma, ma il loro input non è codice sorgente , ma codice intermedio . Pertanto, i programmi scritti in ActionScript , Java e C# possono essere eseguiti su diversi sistemi operativi senza ricompilazione.

Interfaccia utente multipiattaforma

Su diversi sistemi operativi e ambienti, indipendentemente dal modo in cui il lavoro in essi viene realizzato tecnicamente, gli elementi di interfaccia standard hanno dimensioni diverse. Pertanto, il semplice posizionamento rigido degli elementi dell'interfaccia è impossibile: in un diverso sistema operativo (ambiente) possono "strisciare" l'uno sull'altro, "sfocare", "ubriacarsi". Esistono diversi approcci:

  1. Un unico stile comune a tutti i sistemi operativi, i programmi hanno lo stesso aspetto in tutti i sistemi. Ecco come funzionano le librerie di interfaccia Java come Swing .
    • Inoltre: puoi organizzare rigidamente i controlli alla maniera di Delphi, lo stile originale.
    • Meno: il sistema deve avere i propri caratteri dello schermo e lo stile è diverso dallo stile del sistema operativo.
  2. Interfaccia autoadattativa (adattativa) che adatta la griglia alle dimensioni effettive dei controlli. Esempi tipici sono Qt , wxWidgets , XUL .
    • Pro: stile del sistema operativo standard, molto veloce e pieghevole sotto Windows XP , Vista e Windows 7 , e qualche automazione della localizzazione .
    • Svantaggio: la mesh autoadattativa richiede un programmatore esperto per l'assemblaggio e il layout stretto è difficile.
  3. In GTK+ è implementato un approccio ibrido .
    • Inoltre: i caratteri possono essere presi dal sistema e non "trascinati" da soli, così come alcune automazioni della localizzazione.
    • Meno: prende tutti gli svantaggi dei primi due approcci. Lo stile è diverso dallo stile del sistema operativo, il layout stretto è difficile.

In ogni caso, in altri sistemi operativi e ambienti, è richiesto almeno un test minimo, poiché sono possibili errori di collegamento ...

Compilazione condizionale

Anche se generalmente c'è un'ampia standardizzazione di hardware e software, il programmatore deve spesso ramificarsi per diversi sistemi operativi e ambienti, incluso l'uno o l'altro attraverso la compilazione condizionale .

Ad esempio, il browser Mozilla Firefox ha diversi set di icone per diversi sistemi operativi.

Programmi applicativi

Anche un gran numero di programmi applicativi è multipiattaforma. Questa qualità è particolarmente pronunciata nei programmi originariamente sviluppati per sistemi operativi simili a Unix . Una condizione importante per la loro portabilità su altre piattaforme è la compatibilità delle piattaforme con le raccomandazioni POSIX , nonché l'esistenza di un compilatore GCC per la piattaforma su cui vengono trasferite.

Sistemi operativi

Anche i moderni sistemi operativi sono spesso multipiattaforma. Ad esempio, i sistemi operativi open source (in particolare: NetBSD , Linux , FreeBSD , AROS ) possono essere eseguiti su diverse piattaforme hardware. I più comuni sono: x86 , m68k , PowerPC , Alpha , AMD64 , SPARC . (" Elbrus OS " non è altro che un sistema operativo profondamente modificato per la piattaforma Elbrus . Ma c'è un "Elbrus OS" disponibile anche per le piattaforme Elbrus-SPARC, che è un'implementazione della piattaforma SPARC di MCST e della piattaforma x86. ) Prima versione Microsoft Windows NT 4 , rilasciata nel 1996, supportava quattro piattaforme (x86, Alpha, MIPS e PowerPC), le versioni successive di Windows NT supportavano solo la piattaforma x86. Microsoft Windows moderno può essere eseguito su piattaforme Intel x86 e Intel Itanium . (Più precisamente, Itanium ha solo versioni di Windows 2000/XP, Windows 2003 e Windows 2008, dopodiché il supporto per Itanium è stato gradualmente eliminato.) Il sistema operativo NetBSD è considerato il più multipiattaforma [1] , essendo stato portato sulla maggior parte dei piattaforme esistenti.

Ambienti di sviluppo

Un certo numero di IDE , tra cui Free Pascal, Lazarus , Qt Creator , girano su diversi sistemi operativi: Linux, Windows e altri [2] .

Emulazione

Se il programma non deve essere eseguito (lanciato) su una piattaforma specifica, ma per questa piattaforma esiste un emulatore della piattaforma di base per questo programma, il programma può essere eseguito nell'ambiente dell'emulatore.

In genere, l'esecuzione di un programma in un ambiente di emulazione comporta un degrado delle prestazioni rispetto a programmi simili per i quali la piattaforma è la base, poiché una parte significativa delle risorse di sistema viene spesa per le funzioni dell'emulatore.

Note

  1. ↑ Portabilità e piattaforme hardware supportate  . netbsd.org . Estratto il 31 ottobre 2021 . Archiviato dall'originale il 22 dicembre 2021.
  2. Lazarus IDE e Free Pascal (downlink) . Data di accesso: 8 dicembre 2013 Archiviata dall'originale il 26 novembre 2013. 

Collegamenti