Ziemlich lange war es – zumindest was den deutschsprachigen Teil dieses Blogs angeht – extrem still geworden. Das lag zum größten Teil an meinem Studium, was einen großen Teil meiner Zeit beansprucht, zum anderen aber auch an vielen weiteren Projekten, die ich parallel noch mache oder gemacht habe. Von diesen besonders interessant für die Leser dieses Blogs dürfte meine Teilnahme am diesjährigen Google Summer of Code sein.
Mein Projekt diesen Sommer ist es, das Software Center von Ubuntu für mehr Linux-Distributionen verfügbar zu machen. Wie ich früher bereits berichtet habe machte das Copyright-Assignment von Canonical das Beitragen zum Software Center unnötig schwer, daher wurde es jetzt kurzerhand geforkt, was auch nicht optimal ist, aber zumindest das CLA umgeht.
In meiner Arbeit am Software Center bin ich vor allem damit beschäftigt, die zugrunde liegende Infrastruktur zu bearbeiten, allen Modulen vorran ist das PackageKit. PackageKit kann sehr bald mehrere Paketverwaltungsaktionen parallel ausführen, was absolut nötig ist für ein benutzbares SC. Ubuntu nutzt anstelle von PackageKit eine eigene spezifische Lösung mit einer Kompatibilitätsschicht, was ihnen demnächst noch massiv Probleme bzw. sinnlose Arbeit bereiten wird – aber zum Canonical-Rant komme ich später mal in einem anderen Post 😉 – Zumindest existiert unter Ubuntu momentan eine funktionierende Lösung. (die leider Ubuntu-spezifisch ist)
Meine Arbeit an der Software-Center-Infrastruktur wird es auch ermöglichen, alternative Software-center in anderen Sprachen zu implementieren, so wird z.B. derzeit an einem “lightweight” SC für Distributionen wie Xubuntu/Lubuntu gearbeitet, für die das existierende Software Center zu viele Ressourcen benötigt.
Das GSoC Projekt wird von OpenSUSE gesponsert, wofür sie meine höchste Anerkennung haben. Ich selber benutze kein OpenSUSE und entwickle für Debian, trotzdem darf ich das SoC-Projekt für OpenSUSE im Rahmen ihrer Cross-Distro-Tracks machen. OpenSUSE ist die einzige mir bekannte Distribution, die einen Teil ihrer SoC-Plätze explizit für distributionsübergreifende Aufgaben bereit stellt. – Dabei könnten sie diese Plätze auch für exklusive Aufgaben an ihrer eigenen Distribution verwenden. In sofern, großartig was sie tun! Außerdem lag OpenSUSE schon immer etwas am Software Management, einige sehr innovative Ideen dazu kamen schon extrem früh aus der SUSE-Ecke.
Dadurch, dass ich so lange keinerlei Zeit mehr für Blogbeiträge hatte, ist auch ein ausführlicher Beitrag zum Thema “Warum es totaler Unsinn ist, dass Ubuntu kein systemd verwenden will” nicht fertig geworden. Kurz zur Erinnerung, Mark Shuttleworth hat irgendwann zu Beginn des Jahres dem neuen Init-System systemd eine Absage erteilt, unter anderem, da es “zu wenige tests” habe (was nachweislich Unsinn war) zusammen mit ein wenig FUD.
Blöderweise hat Mark dabei offenbar keine große Ahnung von der Reichweite von systemd gehabt… So stellt es z.B. der ConsoleKit-Ersatz systemd-logind bereit, der das alte ConsoleKit ersetzt. (Als Entwickler freue ich mich darüber besonders, wäre ein Grund Sektkorken knallen zu lassen) Damit hängt dann aber das aktuelle GNOME und eine sehr große Anzahl von Systemkomponenten von systemd ab. Zudem bringt systemd Multiseat zurück in den Linux-Desktop. Unter anderem ermöglicht das, an einem einzigen Computer eine Beliebige Anzahl an Eingabe- und Anzeigegeräten anzuhängen. Damit kann dann z.B. ein Laptop ein ganzes Klassenzimmer mit Desktops versorgen. (entsprechende Zero Clients vorausgesetzt) Diese Technologien blieben Ubuntu verwehrt, ebenso wie alle anderen Vorteile von systemd, und die sind wirklich enorm. Ich nutze es selber hier, und bin jedes mal mehr begeistert von dem Möglichkeiten und vor allem von der Geschwindigkeit. (dafür muss systemd allerdings gut ins System intergriert werden) – Momentan evaluiert Canonical den Einsatz von systemd-logind, was allerdings ohne systemd unmöglich ist. (ich hatte die selbe Idee irgendwann mal, um unter Debian den Übergang zu systemd zu vereinfachen, nach einem kurzen Gespräch mit Lennart Poettering hat sich aber rausgestellt, dass die beiden Module nicht zu trennen sind)
Zusammengefasst: Es tut sich momentan extrem viel. Viel mehr als ich in diesen Post gequetscht habe. Ich weiß nicht, wie viel Zeit ich in den nächsten Tagen zum bloggen haben werde, da es immernoch viel zu tun gibt, aber ich werde nach Möglichkeit auf jeden Fall häufiger Updates zu neuen Entwicklungen und neuen Technologien im Linux-Umfeld schreiben.
Das mit systemd/Upstart war ja leider wirklich ein strategischer Bock, den Canonical geschossen hat… die Entscheidung bindet vermutlich einen großen Haufen Ressourcen, den sie besser in andere Projekte stecken könnten. Das macht mir im Endeffekt ziemlich große Sorgen, weil Canonical das Unternehmen ist, durch das Linux auf dem Desktop so langsam mal Spaß macht. Wenn sie sich in technischen Insellösungen verrennen, ist meine Sorge, dass sie den Desktop-Teil vernachlässigen, den sie einfach besser drauf haben, und dadurch die Fortentwicklung Freier Software eher bremsen denn mit ihren Fähigkeiten anderswo zu beschleunigen. Das Technische sollten sie den großen, erfahrenen Hasen RedHat und SUSE überlassen (wem gehört das jetzt eigentlich? ;-)). Das soll nicht heißen, dass Canonical nur von ihnen schnorren soll. Es ist eher eine Art Symbiose; sie können beide voneinander lernen (habe vor einem Monate wegen systemd von Ubuntu zu Fedora gewechselt… sie können sich wirklich ein paar Sachen voneinander abgucken).
Ich habe da die Hoffnung noch nicht aufgegeben ^^ Ubuntu ist vom Konzept her meiner Meinung nach das beste, was der Linuxwelt passieren konnte, deshalb bin ich auch von dem neuen Kurs von Ubuntu inzwischen so enttäuscht.
Hinsichtlich systemd laufen schon Wetten, wann Ubuntu wechseln wird 😉 Damit wäre eines der größten Hindernisse ausgeräumt. Der nächste Schritt wäre das entfernen der Downstream-patches aus GNOME-Bibliotheken, eventuell Ersetzen von Compiz, Verzicht auf alle Insellösungen und ein Spin mit GNOME-Shell. Dann wäre ich wieder überaus zufrieden mit Ubuntu 😀
Systemd wäre aber schonmal eine tolle Sache… Mal schauen, wie sich das entwickelt… Vielleicht ganz interessant für Interessierte: https://plus.google.com/107928060492923463788/posts/SPeeJw7mxrT
Ob Canonical einen Bock schoss beim einführen von Upstart oder nicht, steht denke ich nicht im Mittelpunkt. Canonical ist der Sponsor und baut mit Ubuntu was eigenes auf, macht sich damit unabhängig und verfolgt eigene Ziele. Ob und wie das mit denen anderer, dritter zusammenpasst ist was anderes. RedHat tut das auch, ebenso wie SuSE. Beide letztgenannten haben Kommerzielle Linux Distributionen und unterstützen mehr oder weniger Ergiebig eine Community die dafür wiederum “ihre” Gegenleistungen anbieten und verfügbar machen damit Sponsoren wie auch immer damit Kohle machen können. Ist im Endeffekt nichts anderes als Canonical mit Ubuntu tut bzw plant zu tun. Da es ja Kostenlose Distributionen und Communitys sind, kann auch jeder wählen ob und wie User davon Gebrauch machen. Mit anderen Worten steht es jedem frei dies oder das zu nutzen. Liegt im Auge des Betrachters welches System hier einem liegt. Ich persönlich hatte Fedora, openSUSE und aktuell Ubuntu und tendiere zu letzteren. Bei Fedora ist mir zu viel Instabilität drin, was auch bei Fedora so eingeplant ist, bei openSUSE zu viel Chaos und mangelnde Betreuung der Pakete wie die aktuelle Diskussion um die Ausgesetzte bzw verschobene Release der 12.2 und künftigen zeigt. Dazu kommt das SuSE seit der Übernahmen von Attachement noch nicht wirklich gezeigt hat wo der neue Eigentümer hin will und wie die Zukunft aussehen soll. Sieht man von den üblichen Floskeln bei derartigen Übernahmen ab, ist bei SuSE noch nichts klar, was sich indirekt auch auf openSUSE auswirken wird. Und wegen systemd und upstart zu wechseln!? Mag für den Durchschnittsanwender nicht so ausschlaggebend sein, denn auf meinen PCs läuft jeweils Ubuntu bzw Fedora und zeigt beim Start der Systeme im Vergleich klare Vorteile für Ubuntu. Da startet dieser samt Gnome Desktop mit knapp 40 Sekunden, wohingegen Fedora mit KDE fast 2 Minuten braucht bzw Gnome jenseits 60 Sekunden ist. Nehme ich den Start beider System bis zum Login Manager, startet Ubuntu mit upstart bei 25 Sekunden und Fedora mit systemd fast 40 Sekunden. OpenSUSE lag da mit um die 35 Sekunden dazwischen, aber keines der System war schneller gestartet als Ubuntu. Ich weiß das die Gegebenheiten andere sein können, nur sind die Durchschnittsanwender eben die Leute die ihr System ganz normal starten und nicht mit einem Script im systemd hantieren um irgendwelche Dienste parallel zu starten statt nacheinander. Dem User von der Stange liegt daran sein System schnell starten zu können, eine große Vielfalt an Anwendungen und die leicht zu installieren und zu verwenden, eine lange Unterstützung mit Updates. All das bietet nun einmal Ubuntu und kein anderer Distributor. Und kommt dann noch was Funktionelles und Innovatives dazu wie von Canonical angekündigt, freuen sich die Anwender. Und wenn Canonical eines Tages damit dann mal Geld einspielt, hab ich nichts dagegen, denn immerhin haben die viel Geld investiert. Anders machen es RedHat mit Fedora und SUSE mit openSUSE schließlich auch nicht.
Prinzipiell und aus der sicht eines Nutzer ist das korrekt, aber: Dadurch, dass Canonical an der Basis des Systems Eigenentwicklungen durchführt haben sie weniger Manpower für andere Bereiche. Sie müssten aktuell z.B. ConsoleKit weiter entwickeln, was eine Sackgasse ist und unnötig Ressourcen bindet. Außerdem behindern sie alleine durch den Stellenwert, den Ubuntu inzwischen hat, die Annahme neuer Technologien, was eher schädlich ist.
Wenn Canonical in Ubuntu die Entwicklercommunity vergrault (was echt passiert, so sind etliche Entwickler zu Fedora gewechselt), so bekommen sie weniger Tests und weniger angepassten Code. Wäre Canonical riesig groß, wäre das egal, dann könnten sie eventuell die Infrastruktur selber stemmen – momentan sind es aber zu wenige Entwickler, außerdem sind sie nach eigenen Angaben nicht am Kernel interessiert, ebensowenig am plumbing layer, daher fehlt ihnen auch das Wissen in diesen Bereichen.
SUSE und RedHat verfolgen eigene Ziele, ja – aber sie nehmen im Grunde das an, was sich in der Community entwickelt hat (sofern es durch die QA für ihre Enterprise-Distribution kommt). Viele Technologien wurden von Entwicklern in ihrere Freizeit begonnen, ein Beispiel wäre z.B. systemd.
Außerdem haben Redhat und SUSE dadurch, dass sie GNOME-Entwickler angestellt haben natürlich Möglichkeiten, Einfluss zu nehmen. Canonical könnte das ebenso tun.
Desweiteren: Würde ich als Firma einen Support-Vetrag mit einer Firma schließen, die zugibt dass ihre Entwickler keine Ahnung vom Kernel haben? Ich würde dann eher den Support direkt von der “Quelle” holen, und an Quellen gibt es viele…
Die Geschwindigkeitsprobleme bei Fedora liegen daran, dass das noch extrem viel anderes Zeug mit startet. (LVM deaktivieren hilft schon einiges) Bei mir habe ich eine GRUB->GNOME-zeit von ca. 10 Sekunden, wo mein Ubuntu-System dann klar unterliegt.
In SUSE ist die Integration von systemd noch nicht besonders gut, da warte ich mal bis zum nächsten Release.
Aus reiner Nutzerperspektive hast du recht, dass technische Details keinen interessieren, für Entwickler sind die aber sehr relevant. Und das wirkt sich dann in letzter Instanz wieder auf die Qualität der Distribution aus, was dann die Nutzer direkt betrifft.