eseguire applicazioni Mac OS X su Linux


13

Secondo questo articolo di Wikipedia :

OS X è una serie di sistemi operativi con interfaccia grafica basata su Unix sviluppati e commercializzati da Apple Inc.

quindi stavo pensando:

  • esiste un'applicazione simile a Wine ma esegue applicazioni Mac?

  • è possibile eseguire applicazioni Mac OS X su una macchina Linux ?


2
L'unico modo sarebbe quello di creare una VM OS X (ad es. Utilizzando kvmo Virtualbox). Sfortunatamente, ci sarebbero problemi di licenza nel farlo - Apple non vuole che esegua il proprio sistema operativo su hardware non Apple. Non credo nemmeno che vendano più OS X su DVD (dovresti ottenere OS X con il tuo Mac e aggiornarlo su Internet quando te lo dicono).
Cas

Grazie! devo configurare la macchina virtuale prima dell'installazione?
0x0584,

Risposte:


17

Darling ( link ) è un progetto che mira a diventare analogo al vino. Attualmente, tuttavia, esegue solo alcuni programmi OSX da riga di comando. A partire dalla metà del 2019, può eseguire molti programmi da riga di comando e, secondo la loro homepage, sembra avvicinarsi al punto in cui può anche eseguire alcuni software grafici rudimentali. Probabilmente non eseguirà ciò che vuoi ancora, a meno che non sia basato su testo.

Finché gli sviluppatori del programma OS X hanno rilasciato il loro codice sorgente e utilizzato librerie multipiattaforma (come QT, GTK, X11, GNUStep o WxWidgets) dovresti essere in grado di ricompilare un programma OS X per Linux. OS X e Linux sono molto più compatibili a livello di API rispetto al livello ABI.

GNUStep implementa le API Cocoa di NeXTStep e OS X. È stato incredibilmente completo quando l'ho provato, in termini di quanto sembrava capace di fare rispetto a quanto poco sembra usarlo in natura. GNUStep funziona solo a livello di codice sorgente (API), quindi funziona se un programma è open-source e utilizza la GUI Cocoa di Apple (NON "Aqua" che è proprietaria). Dipende dalla capacità di compilare e collegare il codice.

Pensa all'API, o Application Programming Interface, come qualcosa di simile al cruscotto di un'auto: tutto è visibile al guidatore dell'auto e puoi entrare nell'auto di qualcun altro e trovare il suo cruscotto diverso altrettanto facile da capire.

Pensa all'ABI, o Application Binary Interface, come al motore dell'auto: può variare notevolmente tra marche e modelli e probabilmente non sarai in grado di scambiare il tuo motore Chevy in una Volvo molto facilmente.

In questa analogia, il tesoro metterebbe il motore Chevy nel telaio di una Volvo, e compilare dalla fonte sarebbe come uscire dalla tua Chevy ed entrare nella Volvo. Uno è molto più semplice da fare rispetto all'altro dal punto di vista dei programmatori.

Ma Apple ha alcune librerie di interfaccia utente proprietarie che nessun altro ha. Se lo sviluppatore ha usato uno di questi (come Aqua), dovrai aspettare e sperare che Darling cresca come ha fatto Wine, o portalo tu stesso. Se non viene rilasciato alcun codice sorgente, sarebbe come se il motore fosse così grande da non poter entrare nel vano motore della Volvo, o progettato per essere collegato a un'auto a trazione anteriore dove la tua Volvo era a trazione posteriore. A meno che qualcuno sia un maniaco assolutamente pazzo (nel migliore dei modi) che abbia mesi di tempo libero e ridicola quantità di dedizione, è improbabile che accada.

Inoltre, GNUStep non è completo al 100% in termini di copertura delle API di Cocoa, quindi un po 'di calzolaio sarà probabilmente ancora necessario per programmi complessi. E GNUStep non fornisce un sistema di compilazione equivalente a xcode - vale a dire, se lo sviluppatore originale utilizzava esclusivamente il sistema "build" dell'IDE XCode, si potrebbe essere lasciato a scrivere makefile per esso. Questa è stata la parte più frustrante per me, poiché mentre ho esperienza con la compilazione e il collegamento di software, è difficile estrarre informazioni utili da un formato come un .xcodeproj con cui non ho precedenti esperienze di backend.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.