Wie wird Firefox für PC, Mac und Linux parallel entwickelt?

  • Hallo!

    Ich habe eine Frage die nur am Rande mit dem Firefox bzw. dessen Entwicklung zu tun hat: Wie allseits bekannt ist, gibt es Firefox-Versionen für Windows, den Mac und auch für Linux. Soweit ich weiß basiert Firefox nicht auf Java oder einer anderen plattformübergreifenden Sprache. Wie genau wird Firefox also für diese Systeme gleichzeitig entwickelt?

    In welcher Sprache wird Firefox überhaupt entwickelt. Ich denke es ist C/C++ aber genaueres konnte ich nicht finden. Natürlich gibt es C Compiler für jedes der genannten Systeme, aber die zugrunde liegenden Klassen sind doch immer plattformspezifisch. Ein C Programm für Windows funktioniert also sehr wahrscheinlich nicht unter Mac oder Linux.

    Ich kann mir nicht vorstellen, dass Firefox für jedes System separat entwickelt wird. Wie genau gelingt also die parallele Entwicklung?

    Wird ein gemeinsamer Kern entwickelt der unabhängig vom System ist und die abhängigen Teile werden getrennt entwickelt? Oder gibt es tatsächlich eine Möglichkeit für alle drei Systeme mit dem gleichen Code zu arbeiten?

    Besten Dank
    Agenor

  • C++ ist zuerst einmal nur eine abstrahierte Sprache. Mit dem passenden Compiler kann diese Sprache auf jedem OS/System im Grunde übersetzt werden. Das ist überhaupt kein Problem.

    Problematischer sind OS-spezifische "Schnittstellen", an denen sich ein Programm bedienen kann/muss. Die können sehr wohl unterschiedlich sein. Du musst Dir Firefox einfach als modulares Produkt vorstellen. Es gibt Module für alle möglichen Aufgaben. Seitendarstellung, Interface, (Internet-)Protokolle, usw. usf. Firefox ist in großen Teilen identisch auf den einzelnen Betriebssystemen. Aber bestimmte Module, die mit dem Betriebssystem kommunizieren, sind spezifisch für das jeweilige OS entwickelt und dienen als "Vermittler".

    Das ist alles jetzt recht platt ausgedrückt und im konkreten Fall erheblich komplexer (Firefox baut z.B. auf dem XUL-Runner auf, das ganze hat also zusätzlich noch weitere Abstraktionsebenen, die das ganze nicht leichter machen zu verstehen ; ), aber es dürfte verständlich machen, warum Firefox nicht für jedes Betriebssystem komplett neu entwickelt und gepflegt werden muss.