Warum immer diese neue Einarbeitung

Smalltalk
wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: Warum immer diese neue Einarbeitung

Beitrag von wanne » 31.10.2020 12:54:02

Und damit ist insbesondere der ganze unkontrollierte Wildwuchs gemeint, der innerhalb des Systems faktisch tun konnte was er wollte. Unter systemd kann sich nichts mehr unkontrolliert bewegen.
Das fasst die Philosophie hinter Systemd perfekt zusammen. Ich verstehe nur nicht, warum die ganzen Systemd Jünger nicht einfach zu iOS gehen. Da war das schon immer so: Du willst ne andere Fittnessapp als die von Apple nehmen? Die von Apple ist doch viel toller!!!! Du willst ne andere Renderingengiene als die von apple Nehmen? Warum. Das Ding von Apple ist doch genau so gut!!!!
Und so läuft es mit Systemd. Redhat meint linux sei der einzig wahre Kernel => Alles andere tut nicht. Redhat meint, zwei parallele Linux-Installationen mit SWAP-Patitionen sind unnötig. => Fürhrt ohne Warnung zu schleichendem Dataloss indem die eine die daten der andern überschreibt. Kein Bug. War nie von Systemd vorgesehen, dass da mehr als ein Systemd läuft. Du hast dir so eine schöne Karte zum entschlüsseln von LUKS Containern gekauft. Kannst du in die Tonne treten. Redhat hat jetzt nen neuen "Standard" erfunden an den sich gefälligst alle zu haben. Was andere tut jetzt nicht mehr.
heinz hat geschrieben: ↑ zum Beitrag ↑
30.10.2020 10:40:16
So wie es, seit ich Linux kenne, mit fast allen Teilen ging... (O.K. Es duerfte wohl schwierig werden den Kernel wegzulassen...)
In Debian konnte man mal zwischen 3 völlig unterschiedlichen Kerneln auswählen Linux, Hurd und kFreeBSD. Uns selbstverständlich konnte man den auch weglassen, wenn man Debian in ner chroot, oder sonst irgend wo ausgeführt hat, wo man den halt nicht braucht.
All das funktionierte wunderbar bis systemd kam. Die haben es nämlich – wie immer – nicht für nötig gehalten kompatibel zu irgend was zu sein. Nachdem Pöttering mit seinen Vorschlägen für die für systemd nötigen Änderungen am Linux Kernel einmal von Linus zusammen gestaucht wurde, konnte man dann doch kompatibel zu linux sein. Aber selbstverständlich nicht zu BSD oder Hurd. Das hätte das "moderne" Design verhindert. OpenRC kam btw. wieder je mit 3 unterschiedlichen Kerneln zurecht. – Aber ich weiß das ist ein "unmodernes" scheiß Systeme!
Warum? Weil die sich (wo es ging) an bestehend Standards gehalten haben. Dann waren noch ein paar minimalstpatches bei BSD nötig und es lief.


Und angesichts dessen, dass viele Entwickler Gebrauch von nützlichen Bestandteilen dieser Infrastruktur machen, die sowohl die Arbeit erleichtern als auch Sicherheit deutlich steigern, schafft nunmal indirekte Abhängigkeiten die systemd zumindest partiell oder gänzlich notwendig machen.
Lauter kann ich die Microsoftslogans aus den 90ern: Die Idee hinter Systemd ist Embrace, extend, and extinguish. Und das einzige Konzept, dass sich durch alle Komponenten durchzieht. Ich erinnere mich daran, dass jemand Pöttering gefragt hat, wie man was journalctl kompatibles nachbauen könnte. Antwort: Redhat wird die API so häufig ändern, dass kein anderer die Ressourcen haben wird da auf Dauer hinter her zu springen. Die Entwickler mit etwas mehr Durchblick (Also die die alternativen gesehen haben) hassen allesamt Systemd für seine daurenden API-Changes. Aber sie müssen Systemd-Kompatibel sein weil das dominierende System. Und mit jedem API change hat man eben nicht nur Arbeit mit systemd sondern auch mit allen anderen zu denen man kompatibel sein will. Und systemd tut alles aber auch wirklich alles das es unmöglich ist, kompatibel mit Systemd und irgend was anderem zu sein. – Allen voran halt dauernd APIs ändern.

Software hat nie eine Abhängigkeiten auf irgend eine Software das ist Bullshit von Leuten die mehr verkaufen als Programmieren. Software hat Abhängigkeiten auf ne API. Und @systemd: Das macht den unterschied zwischen modularer und nicht modularer Software. Dass ne stabile API in der Mitte hängt. Dann kann man problemlos eine Komponente durch eine andere austauschen.

SystemV init hat n den 35 Jahren in denen es gelebt hat 3 mal Änderungen erfahren. – Ja das war super primitiv. – Schadet aber auch nicht. Aber man kann argumentieren, dass das nicht mehr geht. Aber die Bash in 30 Jahren 5 Major Versions. Und dass ist ne volle Programmiersprache. AWK lebt seit 50 Jahren ohne Änderungen. Der Apache hat nach 35 Jahren Version 2. CGI hat in 25 Jahren eine Überarbeitung gebraucht. Ist mittlerweile durch FastCGI ersetzt, dass seither weitestgehend stabil ist. Die meisten Scripte sind immer noch kompatibel mit beidem. Modernes FCGI-Script läuft üblicherweise problemlos auf nem 20 Jahre alten CGI-Server der dann mit nem modernen Browser von gestern reden kann. Und das Web gilt als einer der Bereiche, der sich am schnellsten fortentwickelt. Das ist vernünftige Abstraktion.
Sich dauernd ändernde APIs haben nichts mit schneller Entwicklung zu tun sondern schlicht und einfach mit Inkompetenz beim API Design.

Und jetzt Systemd: ~200 Major Versionen Jedes mal mit nem API Change. Jedes mal mit harten Abhängigkeiten die einen zwingen nicht nur jedes Einzelteil von Systemd auszutauschen. Und meinstens müssen dann nochmal 20 weitere Komponenten, die von Systemd abhängen auch geupdated werden. – Inklusive derer, die ich selbst geschrieben habe. Entweder die Systemdentwickler sind im Vergleich zu andern bescheuert kurzsichtig, dass sie im Schnitt alle 2 Wochen feststellen dass ihre Designentscheidungen von gestern scheiße warn. Oder sie wollen nicht.
Und am Ende merken das halt die Anwender ohne die genauen Gründe zu können. Dauernd tun irgend welche Anwendungen nicht, weil systemd die API ändert. Dauernd ist alles inkompatibel zueinander, weil Systemd es durch sein API-Änderungen unmöglich macht zu Systemd Kompatible Anwendungen zu schreiben und zu letzt dauernd darf man neu lernen weil sich dauernd auch die API für die Nutzer ändert.
Und die Systemd-Leute können noch so laut schreien. Ist das Problem der Anwendung wenn sie nicht schnell genug hinter unseren Changes her programmiert oder dass es die Schuld der Anwender die nicht schnell genug umlernen wollen. Die wahrheit ist Systemd lagert seine Probleme dauernd grundlos an andere aus. – Das heißt nicht ganz ohne Grund man hat eben einen schönen Vorteil wenn man allen anderen dauernd mehr Arbeit aufhalst und die sich dann darum statt um wirkliche Weiterentwicklung kümmern müssen.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
heisenberg
Beiträge: 3565
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Warum immer diese neue Einarbeitung

Beitrag von heisenberg » 31.10.2020 14:49:27

wanne hat geschrieben: ↑ zum Beitrag ↑
31.10.2020 12:54:02
Ich erinnere mich daran, dass jemand Pöttering gefragt hat, wie man was journalctl kompatibles nachbauen könnte. Antwort: Redhat wird die API so häufig ändern, dass kein anderer die Ressourcen haben wird da auf Dauer hinter her zu springen.
Du erwähnst diese Aussage AFAIR nicht zum ersten Mal. Hast Du einen Beleg dafür, dass Pöttering das wirklich gesagt hat?

Die Aussage bedeutet, dass Red Hat die lockere Gemeinschaft zur technischen Weiterentwicklung von Linux zu Gunsten der Stärkung seiner Marktposition aufgegeben hat.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
ralli
Beiträge: 3919
Registriert: 02.03.2008 08:03:02

Re: Warum immer diese neue Einarbeitung

Beitrag von ralli » 31.10.2020 15:54:36

Hmm, RedHat verdient mit Linux seine Brötchen. IBM wird die Wertschöpfung nicht reichen. Sie wollen mit Sicherheit das Unternehmen noch profitabeler machen. Das kann man gut finden oder auch nicht. Mit Kompatibilität läßt sich kein Geld verdienen. Mit Einfachheit auch nicht. Der nächste Schritt ist, das CentOS 8 kaputt gespart wird. Ähnlich wie Oracle mit Opensolaris. Aber das ist ein anderes Thema.

Gruß ralli
Wer nicht lieben kann, muß hassen. Wer nicht aufbauen kann muß zerstören. Wer keine Brücken baut, muß spalten.

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Warum immer diese neue Einarbeitung

Beitrag von Meillo » 31.10.2020 16:37:59

Eine kleine Korrektur:
wanne hat geschrieben: ↑ zum Beitrag ↑
31.10.2020 12:54:02
AWK lebt seit 50 Jahren ohne Änderungen.
Das originale AWK (oawk) ist von 1977, also 43 Jahre alt. Nawk (eine (vermutlich kompatible) Ueberarbeitung, die z.B. Funktionen eingefuehrt hat) ist 1985 entstanden, also vor 35 Jahre. Danach gab es nur noch ein paar v.a. gawk-spezifische Erweiterungen. ... aber das aendert nichts an der Aussage von wanne.


Schoen, dass du (wanne) nochmal neue Argumente und Betrachtungswinkel bringst, wie z.B. die Kernel-Austauschbarkeit und Systemsetups die abseits des Mainstreams liegen. Diese zu ermoeglichen hat bisher zu den Staerken von Unix gezaehlt.

Wie ich bereits gesagt habe, habe ich nichts dagegen, dass jemand Systemd verwendet, wenn das fuer sein Szenario passend ist, aber es gibt eben auch Szenarien, in denen es nicht (gut) passt. Dass man diese Szenarien vielleicht selber noch nie gebraucht hat oder ihre Vorteile nicht zu nutzen wusste, bedeutet nicht, dass sie nicht fuer andere nuetzlich und wertvoll sind. Das haengt in erster Linie von Denkweisen und Betrachtungswinkel ab. Ein User der von der Windows-Denkwelt gepraegt ist wird Chroots zur Systemrettung, fuer Systemmigrationen, fuer Experimente wohl kaum vermissen, denn er kommt vermutlich gar nicht auf die Idee, dass sie ein passendes Hilfsmittel sein koennten.

Die erforderlichen Kosten, die passenden APIs und Abstraktionen zu gestalten, werden halt von denen, die nur im Mainstream leben, als unnoetigen Aufwand angesehen. Dabei sind sie das was man Qualitaet nennt und das was Randgruppen einschliesst und das was Zukunftssicherheit ist, naemlich die Flexibilitaet fuer alternative Wege. (Ein ``universelles Betriebssystem'', wie Debian sich selbst sieht, sollte eine moeglichst einschliessende Haltung vertreten.)

Wie gesagt: Ich habe nichts dagegen, dass es Systemd gibt und dass es fuer passende Szenarien eingesetzt werden kann. Mich stoert wie Systemd die Alternativen, die Vielfalt und die Wahlmoeglichkeiten (und die Einsatzmoeglichkeiten, wie wanne beschreibt) unterdrueckt. Es muss nicht alles bleiben wie es war. Es sollten sich nur alle Initsystementwickler auf Augenhoehe an einen Tisch setzen und eine fuer alle tragbare Abstraktionsschicht/API entwerfen, die die Austauschbarkeit schafft. Die erzeugt natuerlich Einschraenkungen fuer die Entwicklungsfreiheit, aber das Gesamtergebnis waere schon alleine rein technisch gesehen qualitativ besser.
Use ed once in a while!

Antworten