SoftPear: Nutzung der MacOS-X-Programme auf x86-Systemen

Recompilierer gegen Emulator

Das Open-Souce-Projekt SoftPear sollte mit MacOS-X-Programme auf Nicht-PowerPC-Hardware ausgeführt werden damit Applikationen für MacOS X auf x86-Systemen laufen. SoftPear ist allerdings kein Emulator. Eine Nachahmung geschieht von SoftPear für die gesamte Hardware nicht, nur von einem Programm, dem Prozessor und die Systemaufrufe. Bei den Systemaufrufen, wie WINE, ist die Ausführung von Windows-Applikationen unter Linux auf x86er-Prozessoren gestattet. Um dynamische Instruktionen zu übersetzen, wird derzeit der PearPC-Kern verwendet. Für eine höhere Performance soll demnächst ein Recompilierer den PowerPC-Code auf Dauer für x86 übersetzen. Ausgeführt werden können als erste Testversion die MacOS-X-Programme gzip, zip, unzip und einige weitere Kommandozeilenprogramme unter Linux und FreeBSD. Von der Homepage softpear.org konnte eine erste Preview-Version heruntergeladen werden. Zu erhalten waren neben dem Quellcode ebenso vorkompilierte Versionen der GPL-Software für Linux und FreeBSD.

Was ist eigentlich Open Source?

software.jpgOpen Source ist eine Software, deren Quelltext ist öffentlich und kann von Dritten eingesehen werden. Open Source Software (OSS) steht für Software, die eine Abgrenzung der Open Source Initiative (OSI) erfüllt. Zum Beispiel unterliegt diese Software einer von OSI anerkannten Open-Source-Softwarelizenz. Des Weiteren steht „Open Source“ als Software allgemein für frei verfügbares Wissen und Information. Dadurch wurde die Gründung neuer „Open“-Bewegungen inspiriert. Darunter Open Content, -Source Hardware, - und Access. Nachdem die ursprüngliche Bezeichnung „Free Software“ Verwirrungen schaffte, wurde der Begriff Open Source eingeführt. Denn die freie Software wurde grundsätzlich als kostenlose Software missverstanden. Open Source gehen viele Ursprünge und Vorläufer voraus. Darunter die Bewegung Do-it-yourself, Hackerbewegung aus den 60/70er Jahren und die Freie-Software-Bewegung der 80er Jahre als unmittelbare Vorläufer. Netscape entschied 1998 durch die Beeinflussung der 1997 publizierten Essay „die Kathedrale“ und „Basar von Eric S. Raymond“ und dem wachsenden Vorherrschen von Microsoft am Browsermarkt, den Quelltext des wirtschaftlich nicht mehr verwertbaren Netscape Navigators freizugeben. Raymond als Informatiker, Bruce Perens und Tim O’Reilly als Gründer und Vorstand des O’Reilly Verlags entschieden, dass die Gemeinschaft Freie-Software ein verbessertes Marketing benötige. Damit diese freie Software als geschäftsfreundlich und entsprechend weniger belastet dargestellt werden kann, wurde für die freie Software einen neuen Marketingbegriff eingeführt. Ab sofort wurde im Marketing der Begriff Open Source genutzt und vom Namensgeber Raymond, Perens und O’Reilly als gegründete Open Source Initiative (OSI). Open-Source-Lizenzen wurden geschaffen, um den Bedürfnissen des Open-Source-Umfelds gerecht zu werden und attraktiv für Wirtschaftsunternehmen zu sein. Aus dieser Bestrebung ging die bekannteste Lizenz Mozilla Public License hervor.

Welche Software kann als Open source bezeichnet werden?

Von der Open Source Initiative wird der Begriff Open Source auf jegliche Software angewendet, deren Lizenzverträge drei kennzeichnende Merkmale aufzeigen und zehn Punkte der Open Source Definition erfüllen: • Die Software, also der Quelltext soll für den Menschen lesbar und verständlich sein: Normalerweise handelt es sich bei dieser Form der Quelltexte um eine höhere Programmiersprache. Vor dem eigentlichen Programmablauf muss der Text durch einen Compiler in eine lesbare Form gewandelt werden, damit der Rechner das Computerprogramm ausführen kann. Binärprogramme können von Menschen im bezeichnenden Sinne praktisch nicht „gelesen“ werden. • Die Open-Source-Software darf unbegrenzt kopiert, verbreitet und genutzt werden: Nutzungsbeschränkungen gibt es nicht, weder der Benutzeranzahl noch der Anzahl von Installationen. Für eine Vervielfältigung und Verbreitung von Open-Source-Software entstehen an einen Lizenzgeber keine Zahlungsverpflichtungen. Es wird nur zur Weitergabe des Quelltextes gefordert. • Eine Veränderung der Software ist erlaubt und darf in der veränderten Form weitergegeben werden: Jeder kann den offengelegten Quelltext ohne weiteren Aufwand verändern. Die Software kann ohne Lizenzgebühren weitergegeben werden. Anwender der Software Open-Source können durch aktive Beteiligung an der Entwicklung mitwirken. Somit wird Open-Source-Software zum Lernen, Mitmachen und Verbessern angeboten. Open-Source bedeutet nicht, dass alles erlaubt ist. Es sind Bedingungen für die Nutzung einzuhalten. Eine bedingungslose Nutzung existiert nur bei gemeinfreier Software. Im BITKOM-Bericht zum Thema Open Source Software ist eine korrekte Beschreibung enthalten und diese besagt: „Es ist nicht erlaubt, die Verwertung, Vervielfältigung und Bearbeitung vorbehaltlos zu nutzen, denn bei der Open Source Software ist es von Nutzungsrechten mit bestimmten Voraussetzungen abhängig. Somit grenzt sich Open Source Software von der Public Domain Software ab. Public Domain Software erlaubt dem Nutzer uneingeschränkt die Vervielfältigung, Verbreitung und Veränderung.“ Informationen darüber gibt es auf der Webseite softpear.org. Open-Source-Software (OSS) überschneidet sich in der Praxis mit der freien Software. In beiden Konzepten soll der Quellcode von Software für Anwender verfügbar sein. Bis auf ganz wenige Ausnahmen werden die gleichen Copyleft- und freizügige Softwarelizenzen von beiden Seiten als „Frei“ bzw. „Offen“ eingeordnet. Ursprünglich liegt der Unterschied in der Terminologie und Sichtweise: Freie Software richtet sich nach dem Aspekt der Nutzerkontrolle über die Software und die freie Software eher als wichtiges soziales, politisches und ethisches Anliegen. Von der OSI wird die Sichtweise vertreten, dass der praktische Nutzen für die Allgemeinheit, also für Nutzer, Gesellschaft, Firmen etc. einer frei verfügbaren Softwareinfrastruktur, freien Softwaremarkt und einer gemeinsamen Entwicklungsmethode der entscheidende Gesichtspunkt sind.

Open Source und der Hintergrund

Jede Einzelperson oder eine Organisation kann Open-Source-Software zur Verwendung und Entwicklung betreiben. Abhängig vom Einzelfall können bei dem Einsatz und Entwicklungsprozess Kosten entstehen. Dagegen bietet sich eine Reihe von Vorteilen. Beteiligen an der Entwicklung eines Open-Source-Programms können sich beliebig viele Firmen und Personen. Der Entwicklungsaufwand wird aufgeteilt und jeder profitiert von der Arbeit der anderen. Für eine Firma lohnt sich finanziell die Beteiligung an dem Projekt, anstatt die eigene Entwicklung oder der Einkauf einer fertigen Software. Des Weiteren ist kein Nutzer einer Open-Source-Software von einer bestimmten Herstellerfirma abhängig. Es kann also eine beliebige Software, zum Beispiel einen Treiber für den Drucker downloaden, genutzt werden. Dem Nutzer steht frei, für eine Erweiterung oder Behebung eines Programmfehlers eine Änderung vorzunehmen oder dies jemandem in Auftrag zu geben. Dies ist allerdings bei proprietärer Software nicht möglich, daher ist eine Änderung nur beim Hersteller zu beantragen. Aufgrund dieser Unabhängigkeit ist eine geplante Obsoleszenz eines Softwareproduktes nicht möglich, leider zu Lasten des Nutzers. Mit Open-Source-Software ist eine Programmbearbeitung möglich, während dies mit eigener Software oft durch die Abhängigkeit an einen Anbieter verhindert wird. Die Nutzung von Open-Source-Software besitzt keine oder nur wenige Bedingungen. Die Software darf von beliebig vielen Nutzern für einen beliebigen Zweck eingesetzt werden, zum Beispiel für den Computer. Lizenzkosten fallen für eine Vervielfältigung und Weiterverwendung nicht an. Mit Open-Source-Software wird ein Einblick in den Quelltext ermöglicht und über das offene Entwicklungsmodell ebenfalls die Versionshistorie. Damit kann jeder unter Verwendung für bestimmte Seiten wie Ohloh, die Softwarequalität mittels statischer Code-Analyse und die Anzahl der Entwickler und Veränderungen analysieren. Daraus kann die Wartbarkeit und den Reifegrad der Software geschlossen werden. Ebenfalls kann die Prüfbarkeit eines Programmes auf bewusst eingebrachte, vom Nutzer ungewollte Mechanismen wie Backdoors verwendet werden, um politische oder wirtschaftliche Spionagezwecke auszuschließen. Der Anbieter Microsoft muss durch nicht-quelloffene Software Probleme, wiederkehrende Gerüchte über NSA-Hintertüren in den Betriebssystemen widerlegen, denn für Microsoft ist eine Offenlegung des Quelltexts keine Option.

Etwas anders - Mac OS X auf PC

Das SoftPear-Projekt will Apples aktuelles Betriebssystem Mac OS X auf x86-Hardware zum Laufen zu bringen. Die erste Preview-Version der Software und einen Development Guide wurde von den Machern des Projekts bereits veröffentlicht. Ein traditioneller Emulator ist SoftPear allerdings nicht. Es wird keine vollständige Hardware-Architektur mit CPU und I/O-Subsystem simuliert, sondern lediglich eine Kompatibilitätsebene zwischen Mac-OS-X-Programmen und dem nativen x86-Betriebsssystem ausgeführt. Für den PowerPC-Code besteht die Kompatibilitätsschicht aus einem dynamischen Recompiler. Mit einer weiteren Lage werden Daten zwischen dem Little-Endian-Modus des x86-PCs und dem Big-Endian-Modus des PowerPC-Prozessors umgewandelt. Von der Preview-Version sollte allerdings noch nicht zu viel erwartet werden. Denn neben gzip, zip und unzip laufen von Seiten der Entwickler zurzeit nur einige andere kleine Shell-Tools. Das Archiv ist nur 288 KByte groß und neben dem Quelltext und Binärversionen für Linux, FreeBSD und Mac OS X sind einige Testprogramme enthalten.

Erfolgreicher Test - SoftPear PPC nach IA32 Rekompiler

Das Projekt SoftPear stellt seinen PowerPC-nach-IA32-Rekompiler im CVS zur Verfügung. Mittlerweile mit vielen kleinen Testprogrammen erprobt und mit Erfolg von der PowerPC- auf die IA32-Architektur rekompiliert. Ein Teil vom Projekt SoftPear ist der Rekompiler, das Mac OS X auf IA32-PCs zur Verfügung stellen will. Jedoch nicht durch einen Emulator, sondern in Form einer Kompatibilitässchicht. Durch diese Schicht ist es möglich, ein normales Linuxsystem auf dem PC von der Mac OS X-Benutzeroberfläche zu benutzen. Die benötigten Schnittstellen, Bibliotheken und Mac OS X-Applikationen werden dabei auf das zugrundeliegende System abgebildet, dafür sind die Rekompiler notwendig. Aufgeteilt sind diese in zwei Unterprojekte und erfüllen dadurch zwei Aufgaben. Ein Darwin/PPC-Maschinencode übersetzt für Darwin/IA32 und der andere bringt Darwin/PPC-Binaries in ein Linux/IA32-Format. Zusammen bilden diese Rekompiler das Kernstück der Kompatibilitätsschicht, denn Programme müssen bei einer Ausführung für die Zielarchitektur erst aufbereitet werden. Weiteres dazu auf der Webseite softpear.org. Durch die gewonnenen Informationen aus der Bereitstellung von Mac OS X auf IA32 sieht das SoftPear-Projekt die Nutzung voraus, einen freien Klon des Apple-Betriebssystems zu entwerfen.

Auch Bitcoin ist ein Open Source Projekt

Bitcoin findet weltweit als ein dezentrales Zahlungssystem Verwendung und steht als Name einer digitalen Geldeinheit. Durch einen Zusammenschluss von Rechnern können Überweisungen über das Internet mit einer speziellen Peer-to-Peer-Anwendung abgewickelt werden und eine zentrale Abwicklungsstelle wird nicht benötigt. Damit ist die Bezahlung für einen Einkauf für den Haushalt, zum Beispiel ein Bügeleisen oder eine Digitalkamera eine einfache Abwicklung. An Bitcom können in einer persönlichen digitalen Brieftasche Eigentumsnachweise gespeichert werden. Der Kurs zum Umrechnen in andere Zahlungsmittel von Bitcoin wird durch Angebot und Nachfrage bestimmt. Unter dem Pseudonym Satoshi Nakamoto beschrieb er das Bitcoin-Zahlungssystem zum ersten Mal 2008 in einem veröffentlichten White Paper. Dazu wurde ein Jahr später eine Open-Source-Referenz-Software veröffentlicht. Das Bitcoin-Netzwerk beruht auf gemeinsamen Teilnehmern und einer Bitcoin-Software verwalteter dezentraler Datenbank, die alle Transaktionen aufzeichnet. Für die Teilnahme ist der Betrieb eines Bitcoin-Clients Bedingung, alternativ die Nutzung eines Onlinedienstes, zum Beispiel für das Handy. Das Bitcoinsystem kann länderübergreifend eingesetzt werden, dafür genügt ein Internetzugang. Verschlüsselte Techniken stellen durch Transaktionen mit Bitcoins sicher, dass diese nur vom jeweiligen Eigentümer vorgenommen und Geldeinheiten nicht öfter ausgegeben werden können. Bitcoin wird daher ebenfalls als Kryptowährung bezeichnet, obwohl die Staaten den Begriff Währung als gesetzliches Zahlungsmittel bezeichnen. Die Bezeichnung Kryptogeld wird ebenfalls in deutschsprachigen Medien genutzt.

Funktionsweise von Bitcoin

Bitcoin besteht zusammenhängend aus einem Zahlungssystem und einer Geldeinheit, welche in einem nicht zentralen Rechnernetz und mit eigener Software verwaltet wird. Das System beruht auf gemeinsamen Teilnehmern einer verwalteten dezentralen Datenbank und alle Transaktionen werden in einer Blockchain aufgezeichnet. Für die Teilnahme ist ein Bitcoin-Client oder Nutzung eines für diese Funktion bereitstellenden Onlinedienstleisters die einzige Bedingung. Für das Bitcoin-System muss eine Internetverbindung zur Verfügung stehen und kann länderübergreifend eingesetzt werden. Das Bitcon Zahlungssystem besteht aus einer Datenbank, der Blockchain, einer Art Journal und alle Transaktionen über Bitcon sind dort verzeichnet. Bitcoin verwendet ein Peer-to-Peer-Netzwerk und alle teilnehmenden Rechner verbinden sich mithilfe eines Programms. Die Blockchain wird mehrfach und dezentral auf allen Bitcoin-Nodes gespeichert und verwaltet. Aktualisiert wird laufend über das Netzwerk von Bitcoin. Um das Bitcoin-System zur Zahlung für gekaufte Gutscheine oder Mode nutzen zu können, muss eine Bitcoin-Wallet-Software mit Internetverbindung vorhanden sein. Bitcoin-Wallets sind als Desktopanwendungen und als Webanwendungen zu verwenden. Alle Informationen können unter softpear.org eingesehen werden. An anonyme Adressen finden die Zahlungen statt und die Software kann dies für jeden Teilnehmer beliebig neu erzeugen. Eine Identifizierung der Handelspartner findet von Bitcoin nicht statt. Allerdings ist eine vollständige Anonymität durch das System nicht garantiert, denn jegliche Transaktionen werden öffentlich in der Transaktionsgeschichte verzeichnet. Daher ist im Grunde eine Verknüpfung von Adressen bei Bitcoin mit identifizierenden Informationen möglich. Eine Transaktion über Bitcoin kann nicht widerrufen werden, sobald diese durch das Netzwerk bestätigt wurde. Bei einer Zahlung kann es zehn Minuten dauern, bis die erste Bestätigung ankommt. Im Einzelfall oder für eine geringe Gebühr allerdings auch mehrere Stunden. In Form von gefundener Blöcke kommen nach Verstreichen der Zeit weitere Bestätigungen hinzu und erhöhen die Verbindlichkeit der Zahlung. Um eine Zahlung durchzuführen, können Gebühren entstehen, dabei werden Zahlungen mit höheren Gebühren bevorzugt.

Virtuelle Geldeinheit von Bitcoin

programm.jpgVerwaltet und geschöpft werden die virtuellen Geldeinheiten dezentral in einem Rechnernetz. Dieses Netzwerk bildet sich aus mehreren Teilnehmern unter Ausführung eines Bitcoin-Clients und ist miteinander über das Internet verbunden. Einige Onlinedienste bieten Nutzern die Verwaltung der digitalen Brieftaschen an. Die persönliche Brieftasche (Wallet) enthält zur Autorisierung der Zahlungen kryptographische Schlüssel. Bei diesem Verfahren ist eine Offenlegung der privaten Schlüssel nicht notwendig. Geschützt werden muss das digitale Wallet allerdings gegen Verlust, Ausspähen und schädlichen Programmen. Zwischen den Teilnehmern werden allgemein Bitcoins elektronisch ausgetauscht. Der Besitz wird durch den kryptographischen Schlüssel nachgewiesen. Jede Geldtransaktion erhält eine digitale Signatur und wird in einer öffentlichen und vom gesamten Netzwerk betriebenen Datenbank aufgezeichnet. Aufgrund altbekannter Sicherheitsmethoden, zum Beispiel Tresore, bildeten sich analoge Offlinevarianten von Wallets für Bitcoin heraus. Auf Papier vermerkt werden können kryptographische Schlüssel zu den eigenen Bitcoins, die in der dezentralen öffentlichen Blockchain gespeichert sind. Befindet sich dieser private Schlüssel beim Besitzer, kann nur der Besitzer im Bitcoin-Netzwerk über das Bitcoin-Guthaben des Papier-Wallets verfügen. Somit ist ein Austausch von Bitcoin-Guthaben ohne elektronische Systeme möglich. Wird einer anderen Person das Papier-Wallet übergeben kann dieser neue Besitzer über das entsprechende Bitcoin-Guthaben verfügen. Im Internet kann damit zum Beispiel ein Beamer gekauft und mit dem Guthaben bezahlt werden. Zurzeit sind Bitcoin Geldeinheiten an speziellen und nicht regulierten Online-Börsen gegen andere Zahlungsmittel zu tauschen. Durch das sogenannte Mining werden mit der Zeit neue Einheiten des Kryptogeldes erzeugt. Durch Aufwendung von Rechenleistung ist eine Beteiligung der Bitcointeilnehmer an Erzeugung möglich. Alle Teilnehmer konkurrieren um einen Betrag, der in einem zehn minütigen Abstand an nur einen Teilnehmer ausgeschüttet wird. Des Weiteren um Transaktionsgebühren zu erwerben. Die aufwendige Berechnung dient dem Zweck der Bestätigung von fremden Zahlungen und sichert somit den Betrieb des Bitcoin-Netzes. Durch das Netzwerkprotokoll ist die höchste Geldmenge auf 21 Millionen Einheiten festgelegt und einzelne Teilnehmer können dies nicht beeinflussen.