Hallo
ich habe eigentlich mal eine interessen ambitionierte frage,
welche möglichkeiten gibt es eigentlich(ohne wine und crossover,und vmware(indirekt) um windows basierte programme in für linux benutzbare programme zu verwandeln bzw 1 zu 1 zu portieren,ich hatte mal vor langer zeit etwas von alky(wenn ich mich richtig erinnere)gehört,oder müsste man alles per reverse engineering analysieren und dann auf den linux kernel anpassen?also mal von den rechtlichen sachen abgesehen,ich würde halt nur mal gern so die möglichkeiten kennen.
thx
Linux 15.062 Themen, 107.425 Beiträge
Hi!
Mit Ausnahme von Emulationslösungen, die du ja ausklammerst, bleibt IMHO eigentlich nur noch Cross/Multi-Plattform-Entwicklung. Dazu muss man das Programm geziehlt so entwiceln, dass es sich in eine Version für Windows und Linux übersetzen lässt. Bei einfachen Anwendungen kann man das mit Klassenbibliotheken hinbekommen, die für beide Zielplattformen existieren.
Im Prinzip zeigen ja Programme wie Firefox, Thunderbird, Gimp und Openoffice, dass dies machbar ist, wobei allerdings der Quelltext dieser grossen Anwendungen nicht "einfach so" auf eine andere Plattform übertragbar sein dürfte, man wird die Sourcen manuell darauf vorbereiten müssen.
Alky ist irgendwie ein Zwitter aus beiden Möglichkeiten (ich finde den Ansatz nicht sonderlich elegant). Man nimmt das ausführbare Programm für Windows und jagt es durch einen Konverter, der daraus eine Linuxanwendung erzeugt. Im Prinzip muss dazu etwas erfolgen, was der Emulation (wie in Wine) entspricht, nur wird die Emulation quasi fixiert weggeschrieben. Dazu muss der vorhandene Maschinencode im Programm einmal komplett interpretiert werden. Wenn man die CPU-Plattform nicht wechselt, recht es evtl. wenn man Funktionsaufrufe des Betriebssystems (IRQs und API-Calls) austauscht und ich denke, genau das ist der Haken.
Wine macht das im Prinzip auch, aber eben "nur" zur Laufzeit, da spart man sich das umständliche interpretieren des Programmcodes und die Umwandlung des Maschinencodes (durch das nötige Einfügen bzw. Ersetzen der IRQ/API-Calls).
Ich denke, man hat sich bei Wine nicht umsonst für diesen Weg entschieden, er ist schon schwierig genug.
Wine und VMWare sind da nicht direkt zu vergleichen, weil VMWare ja den "einfachen" Weg geht, einfach eine neue Maschine zu emulieren, die dann eben ein echtes Windows ausführt. Am gestarteten Programm, muss dann gar nichts geändert werden.
Bis dann
Andreas
