Microkernels sind architektonisch vielleicht schöner aufgebaut als monolithische Kernels, aber das alleine macht noch keinen guten Kernel aus, weil Microkernels viel komplizierter sind durch die ganze Kommunikation der einzelnen kleinen Teile untereinander, und dadurch steigt die Anfälligkeit für Fehler (oder auch "nur" Performanceengpässe etc.) rapide an. Sowohl Windows NT als auch Linux sind sich außerdem näher als man denkt, obwohl NT ursprünglich auf einem Microkernel aufbaute und Linux nicht. Das liegt daran, dass Linux modular ist und einiges auch schon in den Userspace ausgelagert hat (wie z.B. udev, libusb, ...), und zum anderen ist Windows NT seit langem schon ein "hybrider Kernel", d.h. hat sich bereits schon vor längerer Zeit vom Design her dem monolithischen Kernel angenähert (IIRC, aufgrund von damaliger schlechter Performance). Vom Erfolg her gesehen hat sich Linus Torvalds' Design als das in der Praxis bessere bewährt, deshalb hat sich der WinNT Kernel dem auch angenähert, um nicht zu viele Nachteile zu haben. Denn was bringen einem theoretische architektonische Vorteile, wenn sie in der Praxis dann eh nicht ausgenutzt werden können.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
News Release Candidate: Linus Torvalds hat den neuen Linux-Kernel 6.0 freigegeben
- Ersteller SVΞN
- Erstellt am
- Zur News: Release Candidate: Linus Torvalds hat den neuen Linux-Kernel 6.0 freigegeben
I'm unknown
Rear Admiral
- Registriert
- Feb. 2005
- Beiträge
- 5.503
Nun ja, so einfach ist das nicht. Da die Änderungen von vielen Leuten beigesteuert werden wäre das bei jedem Release eine Diskussion.ReactivateMe347 schrieb:Eigentlich ist das simpel
Früher wurden die Versionsnummern sehr lange hochgezählt und es gab Entwicklerkernel (mit ungerader Nummer, z.b. 2.1.x, 2.3.x, 2.5.x). Bei 2.6 ging es sehr lange hoch - leider jedoch nicht ganz bis zur 42 .
Solange die Versionsinkrements der einzige Kritikpunkt beim Kernel ist machen die Entwickler wohl viel richtig
andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 7.797
Man kann ein ganzes Projekt bauen können und trotzdem Modularität haben. Das eine schließt das Andere nicht aus.foofoobar schrieb:Die kompletten Treiber-Sourcen zu haben und den Kernel als ganzes bauen zu können ist einfach ein Vorteil.
Abstraktionen kosten nicht zwangsläufig Zeit. Rust ist ja nun nicht gerade langsam. Aber man braucht nicht mal da gucken, sondern da reicht ein Blick auf das gute alte C++. Eine zentrale Idee ist dabei Abstraktionen einzubauen ohne (oder allenfalls minimal) das die sich auf die Laufzeit-Performance auswirken.foofoobar schrieb:Und schicke Abstraktionen sind nicht immer schnell, und Zeit ist Geld.
Es geht dabei weniger um reine Lehre oder so. Aber wenn es grundlegende Probleme gibt, dann sollte man die halt angehen und nicht die Augen davor verschließen. Genau eben aus dem Grund damit es auch weiter freie Alternativen gibt.foofoobar schrieb:Und mir ist ein freies konkurrenzfähiges System wesentlich lieber als wenn es nur rein kommerzielle Systeme geben würde weil Systeme die nach dem Prinzip der reinen Lehre gebaut sind nicht konkurrenzfähig wären.
Ich hier wieder bringst Du irgendwelche Sachen ein zu denen ich gar nix gesagt hab. Ich hätts ja noch verstanden wenn ich hier Minux "über den Klee" gelobt hätte. Aber irgendwelche Sachen vollkommen zusammenhangslos einzuwerfen ... da frag ich mich, was das soll.foofoobar schrieb:In der SGX-Enklave und den Mgmt-Funktionen von Intel-CPUs hat Minix jedenfalls ziemlich versagt.
Von den technischen Details Deines Beispiels fang ich da lieber gar nicht erst an.
Du redest Blödsinn.foofoobar schrieb:Und die Lizenzen der BSDs haben dafür gesorgt das jeder seinen eigenen Kram gemacht hat und sich das komplett zerfasert hat
Die BSD-Lizenzen sind wesentlich kompatibler als die GPL (was zum Beispiel dafür gesorgt hat, das solche Schen wie ZFS und dtrace schon seit Jahren im FreeBSD-Kernel sind). Und Zerfaserung. Echt jetzt? Angesichts der 500 Mio Linux-Distributionen ist bei den BSDs Zerfaserung ein Problem? Du verarschst mich, oder?
Jaein. Zumindest das Performanceproblem hat man inzwischen ganz gut im Griff.jenzen schrieb:Microkernels sind architektonisch vielleicht schöner aufgebaut als monolithische Kernels, aber das alleine macht noch keinen guten Kernel aus, weil Microkernels viel komplizierter sind durch die ganze Kommunikation der einzelnen kleinen Teile untereinander, und dadurch steigt die Anfälligkeit für Fehler (oder auch "nur" Performanceengpässe etc.) rapide an.
Ob es besser ist lässt sich anhand der Praxis schwierig beantworten da es ja keine praxisrelevanten Mikrokernel gibt die nennenswert verbreitet wären.jenzen schrieb:Vom Erfolg her gesehen hat sich Linus Torvalds' Design als das in der Praxis bessere bewährt
Von daher ist das Fazit ... schwierig. :-)
Möglicherweise kommt da aber mal wieder etwas Bewegung rein. Das schon genannte Redox ist ein Microkernel. Und Googles Fuchsia hat mit dem Zirkon-Kernel auch eine Microkernel-Architektur.
Ansonsten hast Du sicher Recht. Microkernel haben auch durchaus Nachteile und sind jetzt nicht automatisch besser. Und Du hast auch damit Recht als Eleganz alleine keine hinreichende Eigenschaft ist die dazu führt das sich Mikrokernel durchsetzen. Es könnte aber irgendwann eine Frage der Notwendigkeiten werden, wenn man bestimmter Probleme (wie z.B. Komplexität) Herr werden möchte oder auch weil sich Gegebenheiten ändern. Und dann kann man immer noch darüber reden, was dann tatsächlich eine probate Lösung sein wird.
Was meines Erachtens nach ein Fehler ist, wäre einfach in einem "Weiter so" zu verharren.
moonwalker99
Lt. Commander
- Registriert
- Jan. 2008
- Beiträge
- 1.948
Vielleicht wäre Rust eine geeignete Sprache, um den Kernel "modern" zu machen.MR2007 schrieb:Bei dem was heutzutage als modern gilt, hätte ich eher Angst davor. Am Ende kriegen wir ein JS-Kernel, der über 10 verschachtelte Frameworks läuft, unzählige externe Ressourcen ungeprüft nachlädt und am Besten noch mit Blockchains und "AI" verzahnt ist, mit kostenpflichtigen DLCs (leichter Sarkasmus ist beabsichtigt )
KitKat::new()
Rear Admiral Pro
- Registriert
- Okt. 2020
- Beiträge
- 5.958
moonwalker99 schrieb:Vielleicht wäre Rust eine geeignete Sprache
https://www.theregister.com/2022/06/23/linus_torvalds_rust_linux_kernel/Linus Torvalds says Rust is coming to the Linux kernel 'real soon now'
Web-Schecki
Lieutenant
- Registriert
- Juni 2010
- Beiträge
- 988
Akademisch gesehen völlig korrekt - aber praktisch? Linux ist, so wie ich das beurteilen kann, in der Praxis ein ziemlich stabiler Kernel. Technisch hab ich leider viel zu wenig Ahnung von den Details, aber mein Eindruck ist, dass die schlicht eine recht vernünftige Herangehensweise an die Weiterentwicklung haben, um mit der Komplexität zurechtzukommen. Letztlich spricht der Erfolg einfach für sich. Die können enorm viel Ändern und Verbessern und sind dennoch stabil.andy_m4 schrieb:Zum Beispiel das Linux immer noch ein sehr monolithisches System ist. Was die Implikation hat, das ein Problem an einer Stelle den ganzen Kernel mit in den Abgrund reißen kann.
Und es wurde ja schon gesagt, der Bloat kommt vor allem von Treibern. Die breite Hardwareunterstützung ist aber DER Vorteil gegenüber anderen, akademisch vielleicht besseren Systemen wie Minix. Klar, WENN wir da mehr unification hätten, dann wäre das für alle Betriebssysteme besser, aber die Realität ist einfach eine andere. Und für den Fortschritt der Hardware ist es vielleicht sogar besser, wenn die nicht durch irgendwelche nur mühsam erweiterbare Standards eingeschränkt wird. Das bringt nämlich auch einen Haufen Bloat mit - man denke nur an x86, wo formal immer noch 16-Bit-Support (wenn auch emuliert, soviel ich weiß) mitgeschleppt wird.
Grundsätzlich verstehe ich deinen Punkt absolut, aber der Erfolg ist eben auch ein riesiges Argument dafür, dass die Herangehensweise der Linux-Community nicht ganz falsch ist. Ich befürchte auch, das Kernproblem (Komplexität durch Bloat) hat man einfach unabhängig vom Kernel-Konzept bei Betriebssystemen mit breiter Hardware-Unterstützung.
PHuV
Banned
- Registriert
- März 2005
- Beiträge
- 14.219
Auch wenn ich C-Fan erster Stunde bin, fänge ich es gut, man ein OS mit einer aktuellen und modernen Sprache zu erstellen. Ich weiß ja nicht, woran es liegt oder scheitert, aber könnte man nicht schon parallel einen neuen Linux Microkernel unter RUST entwickeln und so bauen, daß er mit Hilfe von Wrappern und Emulatoren mit den anderen Dingen wie Libs, Treibern und Co. läuft? Apple bekommt ja sowas auch hin, siehe die Emulation von x86 nach ARM oder vorher PPC nach x86. Da sollte sowas mit Linux doch auch möglich sein?
Zuletzt bearbeitet:
KitKat::new()
Rear Admiral Pro
- Registriert
- Okt. 2020
- Beiträge
- 5.958
RedoxOS?PHuV schrieb:aber könnte man nicht schon parallel einen neuen Microkernel unter RUST entwickeln und so bauen, daß er mit Hilfe von Wrappern und Emulatoren mit den anderen Dingen wie Libs, Treibern und Co. läuft?
https://www.redox-os.org/
PHuV
Banned
- Registriert
- März 2005
- Beiträge
- 14.219
Ich meinte das eigentlich bezogen auf Linux. 🙂 Aber danke für den Link, ich schau mir das mal an.KitKat::new() schrieb:RedoxOS?
KitKat::new()
Rear Admiral Pro
- Registriert
- Okt. 2020
- Beiträge
- 5.958
Auf was denkst du habe ich das bezogen?
We want to be able to use it, without obstructions, as an alternative to Linux on our computers. It should be able to run most Linux programs with only minimal modifications.
https://doc.redox-os.org/book/ch01-03-our-goals.htmlWe are not a Linux clone, or POSIX-compliant, nor are we crazy scientists, who wish to redesign everything. Generally, we stick to well-tested and proven correct designs. If it ain't broken don't fix it.
This means that a large number of standard programs and libraries will be compatible with Redox. Some things that do not align with our design decisions will have to be ported.
Also dieser Satz gehört meiner Meinung nach überarbeitet. Verschachtelter gehts nicht mehr.Auf den Linux-Kernel 5.19, der unter anderem Fixes gegen die CPU-Sicherheitslücken RETBleed, welche in noch stark verbreiteten Prozessoren von AMD und Intel die im Jahr 2017 entdeckten Schwachstellen Spectre und Spectre-V2 ausnutzen können, erhalten und aufgrund eines Fehltritts von Intel bei der GPU-Firmware insgesamt acht Release Candidates nötig hatte, folgt jetzt die offizielle Freigabe von Linux 6.0-RC1.
Artikel-Update: Linux 6.0 unterstützt neue Hardware
Der kommende Betriebssystemkernel Linux 6.0 unterstützt wie gewohnt auch wieder die neueste Hardware. Auf Wunsch der Community hat die Redation deshalb eine entsprechende Übersicht der wichtigsten Neuerungen in diesem Bereich zusammengestellt.
Erweiterter Hardware-Support von Linux 6.0
Zudem haben die Hersteller und Entwickler damit begonnen, am Support für Intel Meteor Lake und Ponte Vecchio sowie die RDNA-3-Architektur der Radeon-RX-7000-Serie zu arbeiten. Gestrichen wurde hingegen die Unterstützung für die NEC VR4100 MIPS-Prozessoren.
Viele der neuesten Patches für einen erweiterten Hardware-Support werden bereits mit dem Release von Linux 6.1 erwartet.
Der kommende Betriebssystemkernel Linux 6.0 unterstützt wie gewohnt auch wieder die neueste Hardware. Auf Wunsch der Community hat die Redation deshalb eine entsprechende Übersicht der wichtigsten Neuerungen in diesem Bereich zusammengestellt.
Erweiterter Hardware-Support von Linux 6.0
- Initialer Support für AMD Raphael
- Initialer Support für Intel Raptor Lake
- Support für Qualcomm Snapdragon 8cx Gen3
- Erweiterte Support für Intel DG2 („Alchemist“)
- Verbessertes NUMA-Balancing für AMD Zen
- Neue Erweiterungen für RISC-V-CPUs
- PCI-Support für OpenRISC-CPUs
Zudem haben die Hersteller und Entwickler damit begonnen, am Support für Intel Meteor Lake und Ponte Vecchio sowie die RDNA-3-Architektur der Radeon-RX-7000-Serie zu arbeiten. Gestrichen wurde hingegen die Unterstützung für die NEC VR4100 MIPS-Prozessoren.
Viele der neuesten Patches für einen erweiterten Hardware-Support werden bereits mit dem Release von Linux 6.1 erwartet.
andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 7.797
Ist beim Linux-Kernel sicher so, das der nicht bekannt dafür ist unter argen Stabilitätsproblemen zu leiden. Abstürze sind ja nur ein Symptom in der die Problematik offenbar wird. Es geht dabei ja auch um mögliche Sicherheitslücken und so. Auch die Linux-Entwickler selbst sehen das als Problem. Nicht umsonst bauen die Sachen in den Kernel ein, um davor zu schützen. Man gucke nur auf diese ganzen Kernel-Protection Sachen. Das ist jetzt also kein unbekanntes Problem was völlig neu ist und niemand auf dem Radar hat. Darum weiß man natürlich. Und man weiß es nicht nur, sondern betrachtet die als so praxisrelevant, das man sogar Sicherheitslinien reinzieht.Web-Schecki schrieb:Akademisch gesehen völlig korrekt - aber praktisch? Linux ist, so wie ich das beurteilen kann, in der Praxis ein ziemlich stabiler Kernel.
Allerdings ist das mit nachträglich eingebauter Sicherheit natürlich immer so eine Sache.
Der Linux-Kernel ist trotz aller Stabilität weit entfernt von fehlerfrei. Dazu hast Du noch die ziemlich hohe Entwicklungsgeschwindigkeit wo halt neue Sachen in den Kernel reinkommen. Du hast also nicht nur das Problem bestehende Bugs alle wegzufixen, sondern es kommen stetig noch neue hinzu.
Na ja. Aber ja. Beim Linux-Kernel ist man da sicher im Vergleich zu vielen anderen Projekten noch relativ gut aufgestellt.Web-Schecki schrieb:Technisch hab ich leider viel zu wenig Ahnung von den Details, aber mein Eindruck ist, dass die schlicht eine recht vernünftige Herangehensweise an die Weiterentwicklung haben, um mit der Komplexität zurechtzukommen.
Und man sieht es ja auch intern durchaus als Problem was diskutiert wird. Das ist also jetzt kein äußerer Eindruck der von außen da heran getragen wird.
Das macht es ja nicht besser. Und das wäre ja eher ein Grund für Mikrokernel, weil dann der eigentliche Kernel der Einflussphäre des Treibercodes entzogen wäre.Web-Schecki schrieb:Und es wurde ja schon gesagt, der Bloat kommt vor allem von Treibern.
Eine weitere Entkoppelung wären dann schon die angesprochenen stabilen Kernel-APIs für Treiber. Das würde dann erlauben Treiber und Kernels getrennt zu releasen.
Haben wir ja in anderen Bereichen auch. Stell Dir mal vor, Dein Browser würde nur zusammen mit dem System geupdatet werden können und Du könntest nicht einfach nur den Browser ansich aktualisieren.
Woanders ist Modularität schon längst selbstverständlich aber beim Kernel halten wir am monolithischen Ansatz fest?
Ja sicher. Ab und an sollte man mal alte Zöpfe abschneiden (deswegen ja auch die Idee eines "new linux" anstatt "wir machen so weiter"). Die größten Probleme sind häufig in irgendwelchem legacy-Kram zu finden.Web-Schecki schrieb:Und für den Fortschritt der Hardware ist es vielleicht sogar besser, wenn die nicht durch irgendwelche nur mühsam erweiterbare Standards eingeschränkt wird. Das bringt nämlich auch einen Haufen Bloat mit - man denke nur an x86, wo formal immer noch 16-Bit-Support (wenn auch emuliert, soviel ich weiß) mitgeschleppt wird.
Und ja. Man kann nicht immer alles gut planen und "Standards" schaffen die über längere Zeit gut funktionieren.
Es gibt ja so zwei grundlegende Ansätze.
- Man hat ein Problem und entwirft dann dazu erst mal ne Quick&Dirty-Lösung. Da hat man schnell etwas, was man auch direkt ausprobieren kann und dann auch sieht, wie gut es in der Praxis funktioniert und ob es überhaupt der richtige Weg ist oder man schon gleich zu beginn sieht, das der Ansatz zum scheitern verurteilt ist und man ihn dann verwirft.
- Oder man durchdenkt von vorn herein schon die Sachen etwas weiter. Bis man überhaupt ne Lösung hat dauert es länger, aber sie funktioniert dann in der Regel auch, man muss weniger nachbessern und sie überlebt auch länger.
Das führt dazu, das Linux ziemlich volatil ist. Ich meine wie viele Device-Systeme hatten wir durch bis wir jetzt bei udev waren.
Früher hatte man ja auch mal eine Unterteilung in Entwickler-Kernel und stabilen Kernel. Der stabile Kernel war quasi production-ready und der Entwicklerkernel war so ein bisschen Spielwiese um Sachen auszuprobieren. Das fand ich immer gar nicht so verkehrt.
Das Problem hast Du ja auch, wenn Du mal den Treiberteil weglässt. Ich hatte ja exemplarisch die Security-Frameworks genannt.Web-Schecki schrieb:Ich befürchte auch, das Kernproblem (Komplexität durch Bloat) hat man einfach unabhängig vom Kernel-Konzept bei Betriebssystemen mit breiter Hardware-Unterstützung.
Ich dachte, das waren Kernighan & Ritchie :-)PHuV schrieb:Auch wenn ich C-Fan erster Stunde bin
Prinzipiell würde das natürlich gehen. Allerdings ist das durchaus auch aufwendig. Wie das bei Apple läuft weiß ich nicht, aber ich kenne den Code so ein bisschen aus FreeBSD. Dort macht man das ja auch, um z.B. Linux-Grafiktreiber auf FreeBSD zum laufen zu kriegen und das ist relativ aufwändig und schlägt auch durch aufs eigentliche System.PHuV schrieb:daß er mit Hilfe von Wrappern und Emulatoren mit den anderen Dingen wie Libs, Treibern und Co. läuft?
Und das ist halt suboptimal wenn das Ziel ist ein sauberes und schlankes System zu kreieren.
Klar kann man sagen, das man halt ne Transition-Phase hat wo man das halt in Kauf nimmt und dann zurück baut, wenn man alles auf native Treiber umgestellt hat.
In der Praxis ist sowas häufig schwierig. Weil Du dann ja zwei Treiber entwickeln und pflegen musst. Um de. Aufwand aus dem Wege zu gehen, schreibst Du nur einen Treiber. Und Du wirst nicht das Treibermodell vom neuen System wählen, sondern vom Alten weil der funktioniert sowohl beim neuen als auch beim alten System (größere Abdeckung).
Das ist so ein bisschen wie mit Wayland und X11 und wir werden auch noch in 20 Jahren XWayland mitschleppen, weil es irgendwo noch Programme gibt die nur mit X11 funktionieren. :-)
Apple hat das Problem deshalb nicht in dem Ausmaß, weil sie die Hoheit über das Ökosystem haben und daher das einfach vorgeben können.
0x8100
Admiral
- Registriert
- Okt. 2015
- Beiträge
- 9.870
dafür hat man ewig gewartet, bis denn mal neue hardware im stable unterstützt wurde. die spielwiese ist heute der "staging" bereich, somit kann man neue sachen ausprobieren ohne auf den stabilen teil verzichten zu müssen.andy_m4 schrieb:Früher hatte man ja auch mal eine Unterteilung in Entwickler-Kernel und stabilen Kernel. Der stabile Kernel war quasi production-ready und der Entwicklerkernel war so ein bisschen Spielwiese um Sachen auszuprobieren. Das fand ich immer gar nicht so verkehrt.
ist nun mal eine getroffene entscheidung, um sich nicht künstlich limitieren zu lassen. die apis zum userspace sind stabil, im kernel kann es sich jederzeit ändern.andy_m4 schrieb:Eine weitere Entkoppelung wären dann schon die angesprochenen stabilen Kernel-APIs für Treiber. Das würde dann erlauben Treiber und Kernels getrennt zu releasen.
andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 7.797
Was aber auch nur ein Problem ist weil Treiber mit dem Kernel so eng verbandeln sind.0x8100 schrieb:dafür hat man ewig gewartet, bis denn mal neue hardware im stable unterstützt wurde.
Das ist natürlich richtig. Und selbst ohne dem kann man sich ja einfach eine Kopie ziehen und dann darauf basierend einfach mal losstarten.0x8100 schrieb:die spielwiese ist heute der "staging" bereich, somit kann man neue sachen ausprobieren ohne auf den stabilen teil verzichten zu müssen.
Ich verstehe die Entscheidung. Und es gibt ja Gründe dafür. Was aber dennoch nicht bedeuten muss, das man nicht mal darüber spricht oder das auf alle Zeit so sein muss.0x8100 schrieb:ist nun mal eine getroffene entscheidung, um sich nicht künstlich limitieren zu lassen.
Meistens schon.0x8100 schrieb:die apis zum userspace sind stabil,
0x8100
Admiral
- Registriert
- Okt. 2015
- Beiträge
- 9.870
nicht meistens, sie sind es aufgrund einer design-entscheidung:andy_m4 schrieb:Meistens schon.
https://github.com/torvalds/linux/blob/master/Documentation/process/stable-api-nonsense.rstThe kernel to userspace interface is the one that application programs use, the syscall interface. That interface is very stable over time, and will not break. I have old programs that were built on a pre 0.9something kernel that still work just fine on the latest 2.6 kernel release. That interface is the one that users and application programmers can count on being stable.
andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 7.797
Ist mir bewusst. Dennoch trifft es nicht in allen Fällen zu.0x8100 schrieb:nicht meistens, sie sind es aufgrund einer design-entscheidung
Sonst bräuchte man auch das (auch noch fett geschriebene) Zusatzwort "very" nicht (was sich zwar positiv liest, aber eigentlich letztlich sogar ne abschwächende Aussage macht).
Denn entweder ist etwas stabil oder nicht. 1 oder 0. Schwanger oder nicht schwanger. Es gibt da kein ein bisschen schwanger.
Da gibts halt keine Steigerungsform und dementsprechend macht es auch kein Sinn von "sehr stabil" zu sprechen. Das macht nur Sinn, wenn es eben keine 100% Aussage ist.
Und wenn das schon der führende Kernelentwickler einräumt, dann ist da ja vermutlich was dran. Insofern ist das kein Widerspruch zu meiner Aussage, sondern eher ein Beleg dafür.
Und das da Beispiele genannt werden, wo alte Programme nach wie vor laufen ist natürlich auch kein Gegenbeweis. Das trifft dann halt nur eine Aussage für genau diese Programme. Was anderes wäre es jetzt, wenn die alle APIs benutzen würden, was aber vermutlich eher nicht der Fall ist.
0x8100
Admiral
- Registriert
- Okt. 2015
- Beiträge
- 9.870
man kann auch echt alles kleinreden. dass eine api stabil ist, ist nun mal kein naturgesetz und ausnahmen gibt es immer. die sind aber seit ewigkeiten nicht vorgekommen und in die zukunft kann keiner sehen. dass man das aber durchzieht sieht man daran, dass erst letztens intel angezählt wurde, weil sie den userspace inkompatibel machen wollten und das zum release ändern mussten.
auch bei deinem favorisierten microkernel würde es keine garantien geben, dass apis stabil sind.
auch bei deinem favorisierten microkernel würde es keine garantien geben, dass apis stabil sind.
andy_m4
Admiral
- Registriert
- Aug. 2015
- Beiträge
- 7.797
Evtl. meinst Du eher kleinlich sein. Das würde zumindest besser passen. :-)0x8100 schrieb:man kann auch echt alles kleinreden
Ich hab auch nix Anderes behauptet.0x8100 schrieb:dass eine api stabil ist, ist nun mal kein naturgesetz und ausnahmen gibt es immer.
Und ich finde das auch gar nicht weiter dramatisch, das es mal zu API-Anpassungen kommt.
Das weiß ich jetzt gar nicht auf Schlag, würde dem aber erst mal zustimmen.0x8100 schrieb:die sind aber seit ewigkeiten nicht vorgekommen
Gerade heutzutage, wo soviel von Linux abhängt würde das ja auch ein riesigen Rattenschwanz nachsich ziehen. Damit würden sich die Linux-Entwickler ziemlich unbeliebt machen. :-)
Ich hab nix Anderes behauptet.0x8100 schrieb:auch bei deinem favorisierten microkernel würde es keine garantien geben, dass apis stabil sind.
Das eine hat auch erst mal wenig mit dem Anderen zu tun. Ist einfach nur ne Frage, die man diskutieren sollte wann und wo das Sinn macht.
Allerdings ist man bei Modularität natürlich eher angehalten Schnittstellen stabil zu halten, weil man sonst ein Teil der Vorteile von Modularität nicht nutzt. Und im Falle des Mikrokernels ging es ja auch um interne APIs. Also genau die, die jetzt ja bei Linux alles andere als stabil sind.
Ob die nun perfekt stabil sind ist die Frage. Vermutlich würde sich aber die Situation zum Jetzt-Zustand in Richtung API-Stabilität verschieben.
Abgesehen davon ist ja immer die Frage, wie lange man die Stabilität überhaupt haben will. Der Punkt der Flexibilität ist ja durchaus valide. Ein Kompromiss könnte ja sein, das man z.B. innerhalb einer Major-Version stabil bleibt, so wie es ja bei einigen anderen Systemen auch üblich ist.
Gut. Dann müsste man sich wieder auf ein vernünftiges Versionsschema einigen und solche Sperenzien a-la "Zahlen größer als 20 sind mir zu hoch" weglassen. Aber das sind ja alles Dinge, die sich regeln lassen. :-)
foofoobar
Captain
- Registriert
- Dez. 2011
- Beiträge
- 3.694
Die Einführung von multiqueuing und den Umbau des IO-Systems für nvme wäre mit einer "stabilen" Kernel-API sicherlich schwieriger gewesen. Außerdem verhindert eine "instabile" Kernel-API ziemlich gut das der Kernel noch uralte Blobs unterstützen muss. Und mit guten Argumenten geht im Linux-Kernel einiges, siehe das upstreaming von Wireshark, hat zwar etwas gedauert ging dann aber ziemlich flott.andy_m4 schrieb:Eine weitere Entkoppelung wären dann schon die angesprochenen stabilen Kernel-APIs für Treiber. Das würde dann erlauben Treiber und Kernels getrennt zu releasen.
Jeder kann den Linux-Kernel forken oder was komplett neues bauen.andy_m4 schrieb:Ja sicher. Ab und an sollte man mal alte Zöpfe abschneiden (deswegen ja auch die Idee eines "new linux" anstatt "wir machen so weiter").
https://de.wikipedia.org/wiki/Die_Kathedrale_und_der_Basarandy_m4 schrieb:Es gibt ja so zwei grundlegende Ansätze.
Ich sag mal, im Linux-Umfeld ist man von der Mentalität her eher bei ersterem. :-)
- Man hat ein Problem und entwirft dann dazu erst mal ne Quick&Dirty-Lösung. Da hat man schnell etwas, was man auch direkt ausprobieren kann und dann auch sieht, wie gut es in der Praxis funktioniert und ob es überhaupt der richtige Weg ist oder man schon gleich zu beginn sieht, das der Ansatz zum scheitern verurteilt ist und man ihn dann verwirft.
- Oder man durchdenkt von vorn herein schon die Sachen etwas weiter. Bis man überhaupt ne Lösung hat dauert es länger, aber sie funktioniert dann in der Regel auch, man muss weniger nachbessern und sie überlebt auch länger.
Das führt dazu, das Linux ziemlich volatil ist. Ich meine wie viele Device-Systeme hatten wir durch bis wir jetzt bei udev waren.
Es gab auch schon den umgekehrten Fall.andy_m4 schrieb:Prinzipiell würde das natürlich gehen. Allerdings ist das durchaus auch aufwendig. Wie das bei Apple läuft weiß ich nicht, aber ich kenne den Code so ein bisschen aus FreeBSD. Dort macht man das ja auch, um z.B. Linux-Grafiktreiber auf FreeBSD zum laufen zu kriegen und das ist relativ aufwändig und schlägt auch durch aufs eigentliche System.
Im wesentlichen ist das ein X-Server der einen Wayland-Treiber hat, derartige X-Server gibt es unter Windows massenhaft.andy_m4 schrieb:Das ist so ein bisschen wie mit Wayland und X11 und wir werden auch noch in 20 Jahren XWayland mitschleppen, weil es irgendwo noch Programme gibt die nur mit X11 funktionieren. :-)
Who cares?
Ergänzung ()
Manchmal verlässt sich Code auf nicht garantierte Eigenschaften, dann wird es blöd.andy_m4 schrieb:Meistens schon.
Zuletzt bearbeitet:
Ähnliche Themen
- Antworten
- 63
- Aufrufe
- 8.687
- Antworten
- 54
- Aufrufe
- 6.077
- Antworten
- 120
- Aufrufe
- 22.078
- Antworten
- 28
- Aufrufe
- 5.319