Schlagwort: InitWare

  • InitWare als Systemd-Fork auch für macOS

    InitWare auf einem iMac

    Anfang August hatte ich über das Projekt InitWare berichtet, dass ein an Systemd angelehntes Init-System für BSD-Distributionen zum Ziel hat. Nun meldet sich der Entwickler zurück und kündigt kommende Unterstützung auch für macOS an.

    Auf macOS portiert

    Nachdem InitWare auf NetBSD, FreeBSD, DragonFlyBSD und zuletzt auch auf OpenBSD lauffähig sei, verbleibe nur die Portierung auf ein weiteres wichtiges BSD-Betriebssystem, nämlich macOS, so der Entwickler. Gesagt – getan, er besorgte sich einen iMac aus 2. Hand und begann damit, InitWare unter macOS zu bauen. Da die Hauptarbeit bereits für die anderen BSD-Varianten geleistet wurde, war diese Portierung relativ einfach. 90 % der Arbeit habe darin bestanden, eine Reihe kleinerer im Systemd-Quellcode verwendeter GNU/Linux-Erweiterungen zu POSIX durch die POSIX-Äquivalente zu ersetzen.

    Verbleibende Probleme

    Noch ist die Portierung aber nicht ganz auf dem Stand der anderen BSDs. Eines der zu lösenden Probleme ist es, einen adäquaten Ersatz für die Kernel Virtual Memory (KVM) API zu finden, die von InitWare auf den freien BSDs verwendet wird, um Metadaten über Prozesse zu erhalten. Diese wurde mit macOS 10.5 abgeschafft. Da auch ein ProcFS wie unter Linux fehlt, das ähnliche Informationen liefert, vermutet der Entwickler, dass die BSD-Standardschnittstelle sysctl(3) von macOS ähnliche Informationen bereithält.

    Alternative zu Launchd

    Somit erhält macOS neben Launchd, das in Teilen die Entwicklung von Systemd beeinflusst hat, über einen Umweg mit InitWare eine Systemd-nahe Implementierung. Geplant ist, künftig das bestehende pkgsrc-wip-Rezept für InitWare unter NetBSD zu erweitern, um InitWare auch unter macOS zu unterstützen, was es jedem, der InitWare unter macOS ausprobieren möchte, ermöglichen wird, dies recht einfach zu tun. Anzumerken bleibt, dass InitWare als Ganzes vorerst noch Alpha-Software bleibt.

  • InitWare als Systemd-Fork auf OpenBSD

    InitWare unter OpenBSD

    Ein oft vorgebrachter Kritikpunkt an Systemd ist, dass es nur unter einem Linux-Kernel und glibc läuft und nirgends sonst. Seit einiger Zeit ist mit InitWare ein Fork in Arbeit, um ein Systemd-ähnliches Initsystem auch auf BSD nutzen zu können. Der Fork verzichtet zudem auf die Linux-typischen Systemaufrufe. InitWare ist nicht der erste Systemd-Fork, 2014 gab es bereits uselessd mit der Zielsetzung, Systemd auf ein reines Init-System zurückzustutzen. Dieser Versuch wurde aber ein Jahr später wieder eingestellt.

    Nicht alle Komponenten genutzt

    Auch das modular aufgebaute InitWare nutzt nicht die gesamte Funktionalität von Systemd, sondern verzichtet unter anderem auf Komponenten wie Udev und Journald. Das generelle Prinzip der Units wurde übernommen, jedoch fokussiert InitWare stärker auf den Init-Prozess selbst. Units sind über eine einheitliche Schnittstelle verwaltbar, können Abhängigkeiten und andere Beziehungen zu anderen Einheiten angeben und werden automatisch vom InitWare-Manager, einem Dienstverwaltungssystem geplant. Hinzu kommt ein Anmelde- und Benutzer-Sitzungsmanager, der die Verwaltung von Benutzern und ihren Sitzungen erleichtert. Jedem Benutzer wird ein eigener Benutzerdienstmanager zur Verfügung gestellt, mit dem er seine eigenen Dienste verwalten kann.

    Kompatibilität angestrebt

    InitWare strebt ein hohes Maß an Kompatibilität mit den Kernschnittstellen von Systemd an. Unit-Dateien, die systemctl– und loginctl-Befehle, die hier iwctl und iwloginctl heißen, die D-Bus-APIs, die sd_notify-API und mehrere andere Schnittstellen sind alle Gegenstand dieses Ziels. Es gibt aber auch Punkte, in denen sich beide Systeme unterscheiden. InitWare ist sehr portabel und will wesentlich modularer sein. Zudem ist InitWare von wesentlich geringerem Umfang und beschränkt sich auf die Verwaltung von Systemen, Diensten, Sitzungen und Anmeldungen.

    Nun auch auf OpenBSD bootbar

    Bisher konnten Rechner unter DragonFly BSD, FreeBSD, NetBSD und GNU/Linux mit InitWare gestartet werden. Kürzlich kam nun OpenBSD hinzu. Eine Roadmap skizziert die nächsten Schritte des Projekts. Die Entwickler machen darauf aufmerksam, dass InitWare noch nicht bereit für den Einsatz ist und dass die Installation derzeit ein Verständnis der Feinheiten des Bootvorgangs der Plattform erfordert, es dagegen aber recht einfach sei, das System in einen nicht mehr startfähigen Zustand zu versetzen.