Zum Inhalt springen

Odin (Software)

aus Wikipedia, der freien Enzyklopädie

Odin ist eine Software, die die Windows-Bibliotheken unter dem Betriebssystem OS/2 Warp oder den Nachfolgesystemen eComStation und ArcaOS zur Verfügung stellt, um Windows-Programme unter diesen Betriebssystemen nutzen zu können. Es soll auch mittels einer mitgelieferten Odin32 API die Portierung von Windowssoftware auf OS/2 vereinfachen. Zwar können diese Programme keine OS/2-spezifischen Eigenschaften, wie die Workplace Shell (WPS) benutzen, sie werden jedoch als ablauffähige Anwendungen ins Betriebssystem integriert und für Anwender verfügbar gemacht.

Diese Software unterliegt den Open-Source-Bestimmungen und ist für jedermann frei verfügbar. Das Projekt ist nach Odin, dem obersten Gott der germanischen und nordischen Mythologie, benannt.

Das Projekt

Die Projektziele sind:

  • Jedes Windows-Programm soll geladen werden können und richtig funktionieren.
  • Eine vollständige OS/2-Umsetzung der Win32-API.

Obwohl diese Ziele bei weitem noch nicht erreicht wurden, funktionieren viele Programme bereits fehlerfrei. Beispielsweise ist StarOffice in Version 5.2 nutzbar,<ref>Angaben zu StarOffice der Website <templatestyles src="Webarchiv/styles.css" />{{#if:20151212071432

      | {{#ifeq: 20151212071432 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: de.os2.org | {{#invoke:WLink|getEscapedTitle|de.os2.org}} | {{#invoke:Webarchiv|getdomain|http://de.os2.org/software/softwhere/?id=1}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20151212071432}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: de.os2.org | {{#invoke:WLink|getEscapedTitle|de.os2.org}} | {{#invoke:Webarchiv|getdomain|http://de.os2.org/software/softwhere/?id=1}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2024-04-03 18:21:43 InternetArchiveBot | 2024-04-03 18:21:43 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20151212071432}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: de.os2.org | {{#invoke:WLink|getEscapedTitle|de.os2.org}} | {{#invoke:Webarchiv|getdomain|http://de.os2.org/software/softwhere/?id=1}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2024-04-03 18:21:43 InternetArchiveBot | 2024-04-03 18:21:43 InternetArchiveBot |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: de.os2.org | {{#invoke:WLink|getEscapedTitle|de.os2.org}} | {{#invoke:Webarchiv|getdomain|http://de.os2.org/software/softwhere/?id=1}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if: 2024-04-03 18:21:43 InternetArchiveBot | 2024-04-03 18:21:43 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: de.os2.org | {{#invoke:WLink|getEscapedTitle|de.os2.org}} | {{#invoke:Webarchiv|getdomain|http://de.os2.org/software/softwhere/?id=1}} }} (Memento{{#if: {{#if: 2024-04-03 18:21:43 InternetArchiveBot | 2024-04-03 18:21:43 InternetArchiveBot |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: de.os2.org | {{#invoke:WLink|getEscapedTitle|de.os2.org}} | {{#invoke:Webarchiv|getdomain|http://de.os2.org/software/softwhere/?id=1}} }}  
                 }}}}}}}}{{#if:2024-04-03 18:21:43 InternetArchiveBot
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20151212071432|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://de.os2.org/software/softwhere/?id=1}}
    || {{#if:  || }}
  }}{{#if: de.os2.org
    | {{#if: {{#invoke:WLink|isBracketedLink|de.os2.org}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://de.os2.org/software/softwhere/?id=1%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://de.os2.org/software/softwhere/?id=1%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://de.os2.org/software/softwhere/?id=1 }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }}</ref> OpenOffice.org benötigt jedoch eine zusätzliche Kompatibilitätsschicht.<ref name="ibm">Dabei handelt es sich offenbar um eine unveränderte Windowsversion, die mithilfe der Windowsbibliotheken Odin und einer speziellen Laufzeitumgebung der Fa. Innotek (Referenz: <templatestyles src="Webarchiv/styles.css" />{{#if:20090823001958
      | {{#ifeq: 20090823001958 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: OOo-Forum | {{#invoke:WLink|getEscapedTitle|OOo-Forum}} | {{#invoke:Webarchiv|getdomain|http://de.openoffice.org/servlets/ReadMsg?listName=dev&msgNo=20105}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20090823001958}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: OOo-Forum | {{#invoke:WLink|getEscapedTitle|OOo-Forum}} | {{#invoke:Webarchiv|getdomain|http://de.openoffice.org/servlets/ReadMsg?listName=dev&msgNo=20105}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20090823001958}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: OOo-Forum | {{#invoke:WLink|getEscapedTitle|OOo-Forum}} | {{#invoke:Webarchiv|getdomain|http://de.openoffice.org/servlets/ReadMsg?listName=dev&msgNo=20105}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: OOo-Forum | {{#invoke:WLink|getEscapedTitle|OOo-Forum}} | {{#invoke:Webarchiv|getdomain|http://de.openoffice.org/servlets/ReadMsg?listName=dev&msgNo=20105}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: OOo-Forum | {{#invoke:WLink|getEscapedTitle|OOo-Forum}} | {{#invoke:Webarchiv|getdomain|http://de.openoffice.org/servlets/ReadMsg?listName=dev&msgNo=20105}} }} (Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: OOo-Forum | {{#invoke:WLink|getEscapedTitle|OOo-Forum}} | {{#invoke:Webarchiv|getdomain|http://de.openoffice.org/servlets/ReadMsg?listName=dev&msgNo=20105}} }}  
                 }}}}}}}}{{#if:
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20090823001958|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://de.openoffice.org/servlets/ReadMsg?listName=dev&msgNo=20105}}
    || {{#if:  || }}
  }}{{#if: OOo-Forum
    | {{#if: {{#invoke:WLink|isBracketedLink|OOo-Forum}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://de.openoffice.org/servlets/ReadMsg?listName=dev&msgNo=20105%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://de.openoffice.org/servlets/ReadMsg?listName=dev&msgNo=20105%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://de.openoffice.org/servlets/ReadMsg?listName=dev&msgNo=20105 }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }}) von IBM selbst (Support Agreement for OpenOffice.org for eComStation and OS/2) oder über den Onlineshop shop.mensys.nl bereitgestellt werden.</ref> Auf die Unterstützung besonderer Windowsschnittstellen wie z. B. DirectX wurde bisher noch verzichtet. Ebenso wie auf die Unterstützung selten genutzter Bibliotheken. Odin richtet sich in diesem Sinne an Benutzer im geschäftlichen Umfeld, die Wert auf hohe Verfügbarkeit besonders im Serverbereich legen, dem Großteil der Käufer von eComStation.<ref>Vertrieb der eComStation über das Unternehmen Serenity: Über uns</ref>

Odin32 wird auch kommerziell genutzt für die OS/2-Portierung des Web-Browsers Opera.

Status

Die letzte Version von Juli 2017 trägt die Nummer 0.9 und weist mit ihrer führenden Null auf einen Betastatus hin. Die Historie der Ticket-Änderungen zeigt noch immer eine kontinuierliche Entwicklungsarbeit, jedoch in deutlich größeren Zeitabständen als vor einigen Jahren.<ref>All tickets recently changed first – Ticket-Übersicht auf netlabs.org</ref>

Hinweise darauf, ob jemals die Entwicklung einer Win64-Programmierschnittstelle (API) oder die Unterstützung weiterer Softwareplattformen (z. B. .Net-Framework oder UWP-Apps) geplant sind, sind auf der Entwicklerseite nicht verfügbar.

Technische Besonderheiten

Odin erreicht binäre Kompatibilität, indem Win32-EXE- und -DLL-Dateien in das OS/2 Format übersetzt werden. Die Umwandlung geschieht entweder „on the fly“ (jedes Mal, wenn das Programm ausgeführt wird) oder permanent. Odin ist keine Emulation und wegen der eigenen Entwickler-API keine reine Kompatibilitätsebene.

Odin gibt sich gegenüber Windows-Anwendungen als „Windows 2000 Service Pack 2“ aus.<ref>odin.netlabs.org: Odin Windows version change</ref> Es verwendet Code von Wine, das Win32-Anwendungen auf Unix-ähnlichen Betriebssystemen unterstützt.

Weblinks

  • Projektseite bei netlabs.org
  • Odin im Netlabs-Wiki (Archivseite von wiki.netlabs.org vom 7. November 2023)

Einzelnachweise

<references />