Neue Konzepte für Betriebssysteme - Ist das OS prinzipiell auswentwickelt?

Status
Für weitere Antworten geschlossen.

serie300

Well-Known Member
Hallo Foren Mitglieder,

gibt es eigentlich konzeptionelle Neuentwicklungen im Betriebssystembereich? Es wurde zwar immer wieder drangebaut (und zum Teil gefrickelt), aber größtenteils neue Treiber und am Filesystem. Wenn ich es mit einem HP-UX (auf 68030 oder PA-RISC) oder einem FreeBSD von 2000 vergleiche, so ist der große Unterschied Virtualisierung, Kernel loadables und ein stabileres Filesystem (abgesehen, daß modernere HW unterstützt wird); naja und ein riesiger Resourcenverbrauch. Wird da in Berkley oder sonstwo was gemacht? Von Microkernel Systemen hört man (außer im Embedded Bereich) fast gar nichts mehr.

Serie300
 
Man muss da unterscheiden zwischen Marktdurchdringung und technischer Entwicklung. Was Marktdurchdringung angeht sitzen die Gorillas (incl. Linux) an einem sehr langen Hebel der kaum Konkurrenz zuläßt. Die Mikrokernel sind inzwischen wohl zimlich ausgereift und werden in spezifischen Anwendungsfällen auch zunehmend eingesetzt. Da der Kernel sehr klein ist differenziert sich das danach je nach Anwendungsfall natürlich schnell was einer weiteren Verbreitung entgegen wirkt.

Als allgemein einsetzbares OS sind wohl nur einige wenige gedacht die wohl eher als Work in Progress oder als Forschungsprojekt angesehen werden müssen: z,B. Minix3, Redox, Helios.
 
Das ist ein komplexes Thema, was sich nicht in ein paar Zeilen zusammenfassen lässt. Es fallen aber zwei Dinge auf. Auf der einen Seite steht die (akademische) Forschung, die in den letzten ungefähr 40 Jahren viele schöne Dinge hervorgebracht hat. Das geht über Microkernel und verteilte Systeme, über Dinge wie komplett interpretierten oder gemanagten (verwalteten) Code im Userland, etc. Und auf der anderen Seite steht die Praxis, die konzeptionell weitgehend irgendwann Mitte der 70er stehen geblieben ist. So war Tanenbaums Amoeba [0] schon zu Beginn der 90er konzeptionell z.B. dem heutigen Linux weit überlegen. Trotzdem nutzen wir heute größtenteils Linux, während Amoeba schon vor über 20 Jahren eingestellt wurde.

Ich denke, dass da ganz stark mit reinspielt, dass monolithische Kernel Anfang der 1980er Jahre verstanden waren. Man kannte ihre Stärken und ihre Schwächen, wusste wie man die Stärken nutzt und die Schwächen abfedert. Alles was danach kam, hatte einen Know-How Nachteil, der die (theoretischen) Vorteile der jeweiligen Konzepte nicht rechtfertigen konnten. So waren als Beispiel Microkernel-Systeme noch bis weit in die 90er Jahre hinein durch die noch nicht ausgreifte Interprozesskommunikation tendenziell langsamer als monolithische Kernel.
Und auch, dass monolithische Kernel und die mit ihnen gebauten Systeme einfach gut genug waren. Microkernel-Fans würden nun sicher eine lange Liste von Vorteilen herunterrattern können, die ein Microkernel-System hat. Ich kann aus einem anderem Leben viele tolle Dinge nennen, die möglich wären wenn die Welt ein großes verteiltes System wäre. Aber wenn ich mal darüber nachdenke, wie viele dieser Vorteile mir in meiner täglichen Arbeit von Nutzen wären, wird die Liste schnell sehr extrem kurz.

Und wie @rubricanis andeutet ist da die Trägheit des Systems, also die Macht der etablierten Marktteilnehmer. Betriebssysteme sind einfach da. Es sind Werkzeuge, die man nutzt und über die man sich nicht allzu viele Gedanken macht. Etwas Neues zu etablieren scheitert daher nicht zuletzt schon daran, dass es sich gegen die schier übermächtige Konkurrenz der Gewohnheit durchsetzen muss. Tatsächlich ist kaum ein etabliertes System jemals wieder vom Markt verschwunden, maximal in konzeptionell sehr ähnliche Systeme aufgegangen. So die meisten Unixes in Linux; oder Mainframes, die es maximal in die Emulation geschafft haben. Wenn es Neuerungen gab, war es meist neue Marktbereiche ohne Konkurrenz. Smartphones als schlechtes, nicht wirklich passendes Beispiel.

Übrigens, in einem Unix-Forum darf man das ja kaum aussprechen, ist Windows konzeptionell schon wesentlich fortschrittlicher als Unix [1]. Einfach, weil es jünger ist. Und schauen wir mal, was aus Googles Fuchsia wird. Der Zircon genannte Kernel ist ein Microkernel-Design mit - das ist in der Praxis sogar halbwegs inovativ - nichtblockierenden Syscalls [2].

0: https://en.wikipedia.org/wiki/Amoeba_(operating_system)
1: https://en.wikipedia.org/wiki/Architecture_of_Windows_NT
2: https://fuchsia.googlesource.com/zircon
 
Ich kann aus einem anderem Leben viele tolle Dinge nennen, die möglich wären wenn die Welt ein großes verteiltes System wäre. Aber wenn ich mal darüber nachdenke, wie viele dieser Vorteile mir in meiner täglichen Arbeit von Nutzen wären, wird die Liste schnell sehr extrem kurz.
Na ja, ein großes, verteiltes Sytem ist natürlich allzu weit gegriffen. Wenn es aber z.B. um Sicherheit oder auch Effizens der Implementierung geht, würde jeder davon profitieren. Interessant finde ich dass sich wie es scheint im MIkro-Kernel Bereich Capability based Systeme durchsetzen.Zwar gibt es das m.W. auch unter FreeBsd (spielt das praktisch eine Rolle?), aber es ist etwas anderes wenn das vom OS erzwungen wird. Aber das erfordert natürlich ein vollkommen anders aufgebautes System, insofern...s,o.

Wenn LInux als prktisch unwartbar bezeichnet wird, dann sollte das schon zu denken geben.

Übrigens, in einem Unix-Forum darf man das ja kaum aussprechen, ist Windows konzeptionell schon wesentlich fortschrittlicher als Unix...
Ach was, das hat entweder ideologische oder politische Gründe. Über die letzteren kann man ja diskutieren, aber i.G. ist das alles Schnee von gestern. Mal sehen wie sich CoreOS und Win10 weiter entwickeln.

https://www.golem.de/news/windows-core-os-microsoft-plant-moderneres-windows-10-1801-132427.html
 
Dabei ist eben auch immer zu bedenken, dass ein Betriebssystem erst mal Mittel zum Zweck ist. Das ist auch das Problem was alle Alternativen zu den Großen im Smartphonemarkt erleben. Das System kann ja noch so schön sein, aber wenn es keine Software dafür gibt ist das Interesse schnell weg. Und wer entwickelt schon auf einem neuen System, wenn es keine Anwender gibt.
Die Großen haben keinen Grund etwas von Grund auf neu zu gestalten, sie sind ja etabliert. Aber selbst MS hat es nicht hinbekommen Entwickler auf ihre Mobilplattform zu bekommen (trotz allerlei Versuche, Marktmacht und Geld). Wie soll da eine kleine Entwicklergemeinde plötzlich ein wachsendes Ökosystem hin bekommen.

Und neue Wege heißen neue Probleme. Nicht gerade das Zugpferd um Entwickler zu gewinnen die ihre Applikation sauber umsetzen wollen.
 
Von Microkernel Systemen hört man (außer im Embedded Bereich) fast gar nichts mehr.

Ist zwar auch Embedded, aber jedes Telefon und jeder Computer einen irgendwo einen SoC verbaut, der durch einen Microkernel betrieben wird. Die aktuelle Intel Management Engine läuft z.B. mit MiniX. Die ARM TrustZone (also so gut wie jedes Smartphone/Tablet) wird ebenfalls mit einem Microkernel betrieben. Das Funk-Modul ebenso.

Das Hauptproblem für Alternativen ist schlicht: Sie haben keine Man-Power. Es fehlen Treiber, es fehlen Grundfunktionen, etc. pp. Wie schon oben verlinkt baut Google ja aktuell an einem. Hier ist der Desktop auch erst mal nebensächlich, da eben die deutlich kleinere Smartphone-Plattform im Fokus steht. Irgendwann wird es noch mal einen Wechsel geben, oder die aktuellen Systeme passen sich an. Das Modul-System von Linux war auch schon mal deutlich schlechter. Heute könnten sogar Module "abstürzen" ohne den Kernel zu killen.

Ansonsten sind wir von der grundlegenden Architektur eines OS so ziemlich dadurch begrenzt wie Computer heute funktionieren. Da gibt es bis auf die Frage ob Makro oder Micokernel nicht viel Variation.
 
@Rakor : Das trifft in der Sache natürlich zu. Andererseits wird *nix von einigen Mikrokernel Projekten auf den Kernel aufgesetzt so dass sich hier durchaus langsame(!) Migrationsmöglichkeiten ergeben. Die Frage ist warum eine solche Strategie im Sinne einer Evolution des OS von niemandem verfolgt wird. Ich denke es gibt zumindest zwei Gründe:

(1) Die Unix Philosophie ist im Grunde extrem konservativ und verschließt sich aus ideologischen Gründen weiteren Entwicklungen. Hinzu kommen soziologische Probleme.
(2) Linux wird im Grunde von kommerziellen Interressen angetrieben und die verfolgen ihre eigenen Ziele, technische Innovation gehört nicht dazu so lange das halbwegs funktioniert, und das tut es.

Und dann kann man noch die Frage stellen ob es überhaupt ein Interesse an einem wirklich sicheren OS gibt. Ich habe da meine Zweifel...
 
Also ja da gibt es was und es gäbe technisch Gründe es einzusetzen, aber es gibt viele Interessen, um alles beim Alten zu belassen. ich bezweifle halt, daß die Wartbarkeit monolithischer kernel mit Rückwärtskompatibelität mit der Zeit zunimmt .
 
Ein Exkurs zu der Antwort #4 von @rubricanis vorweg: Das oben angesprochene "Core OS" wäre zwar "neu", aber auch keine Innovation. Mit der gleichen Idee ("wer braucht noch Desktops?") ist Microsoft schon vor ein paar Jahren böse auf die Nase gefallen, die Umsetzung hieß Windows 8 und kam total toll beim Kunden an - so toll, dass schnell Version 8.1 mit nur halb so viel Hirngrütze nachgeschoben wurde. Windows auf Touchgeräten - das wird nichts mehr. Microsoft hatte das vor wenigen Monaten noch selbst festgestellt. Hartnäckig sind sie ja. -- Aus der Entwicklung von "Longhorn" haben wir freilich gelernt, dass die besten Microsoftideen (WinFS zum Beispiel) die sind, die am ehesten verzichtbar gemacht werden. Sobald es um Geld geht, ist Bunt eben interessanter als Gut. Niemand kauft Gut, jeder kauft Bunt. Sieht man sogar in der Linuxwelt: Wer ist da doch gleich der Marktführer?

... Ich schweife ab - kommen wir zum Thema selbst. Vieles, was als "neu" gilt, ist halt auch schon uralt. Die leidige Virtualisierung mal als sehr gutes Beispiel direkt aus dem Eingangsbeitrag herausgepickt: Da freuen sich heute die Schlipsis über eine Technik, über die alteingesessene Unixer schon vor Jahrzehnten nicht mehr so recht gestaunt haben. (Ist doch schon Jahrzehnte her, oder?) "Der Markt" hat eine etwas andere Aufmerksamkeitsspanne als wir Techniker. Aber die Frage selbst ist schon gegenstandslos: Im Gegensatz zu "früher" bewegt sich die Hardwarewelt eben nicht mehr so schnell. Unix war seinerzeit wie seine Vorgänger und zeitgenössischen Konkurrenzprodukte auf genau eine einzige Plattform (also streng genommen überhaupt nicht) "portierbar", es war halt das System für die PDP (erst 7, dann 11). Es gab in den Fünfzigern und Sechzigern von jeder halbwegs seriösen EDV-Firma - damals hieß das noch EDV und nicht Eiti - genau deswegen mindestens eine eigene Betriebssystemreihe, weil es auch mindestens jeweils eine eigene Prozessorarchitektur gab. Schon aus wirtschaftlichen Gründen hat sich das irgendwann wenigstens außerhalb der Mainframewelt konsolidieren lassen, mal abgesehen von der jetzt auch schon ungefähr zwanzig Jahre alten "Mobile-Devices"-Landschaft voller ARMs und MIPSe gab es seitdem einfach keinen Anlass mehr, sich noch mal groß ans Reißbrett zu setzen. Unix war irgendwann portierbar, also warum sollte man es von vorn nachbauen - nur um irgendwas anders zu machen?

Ohne konzeptionelle Neuentwicklungen im Hardwarebereich braucht auch niemand konzeptionelle Neuentwicklungen im Softwarebereich. iOS und Android sind auch nur so "neu" wie die zugrundeliegenden Konzepte: Eine uralte Architektur, auf die ein bisschen Touch gelötet wurde, braucht nicht plötzlich eine völlig neue Software. Da reicht ein bisschen Abstraktion. Minix ist ein Lehrsystem und nicht als Ersatz für Windows gedacht, aber nur als Ersatz für Windows kriegst du heute Geld und Arbeitskraft, pardon!, in den Arsch geschoben. Je weiter du davon entfernt bist, desto dunkler sieht es aus. Das Thema NetBSD kommt ja hier gelegentlich mal zur Sprache.

Der meines Wissens letzte nennenswert andere einigermaßen relevante Versuch, ein nicht-akademisches Betriebssystem von vornherein "richtig" aufzubauen, hieß Hurd, wurde ich annehmen wollen. Da gab es ja inzwischen auch Releases - nach gerade mal drei Jahrzehnten. Büschen spät, möchte mir scheinen. Für Strom- und Ressourcensparer gibt es Haiku, RISC OS, KolibriOS und solchen Nischenkram, der im Alltag funktionieren könnte, den halt nur einfach keine Sau außer ein paar Fanatikern (schade um RISC OS, finde ich) wirklich zur Kenntnis nimmt, weil die vorhandenen Systeme "gut genug" sind. Daran ist auch Plan 9 gescheitert (hier ist doch kein Plan-9-Sympathisant unterwegs, oder? sonst gibt's gleich wieder verbale Keile ... ;)): Warum sollte jemand Zeit mit einem System verbringen, das nicht mal einen vernünftigen Webbrowser hat, miserabel mit der Tastatur zu bedienen ist und dessen einziger wirklich gewaltiger Architekturvorteil längst auf andere Systeme portiert wurde?

Welche konkrete neue Funktion, die du dir gerade vorstellen könntest, müsste ein Betriebssystem mitbringen, um deine, @serie300, Neugier auf "Hauptsache, was Neues" zu stillen? Wenn dir eine eingefallen ist, überleg dir mal, welche anderen Voraussetzungen dieses neue Betriebssystem mitbringen müsste. Ich wäre erstaunt, wären nicht mindestens zwei der folgenden drei Punkte darunter:
  • Hauptsache, deine bestehende Hardware läuft damit.
  • Hauptsache, bestimmte Software läuft darauf.
  • Hauptsache, die Bedienung braucht kein völliges Umlernen.
Und da wird es halt schon schwierig. Schau dir mal, um noch mal darauf zurückzukommen, GNU/Hurd (notfalls diesen Debian-Hurd-Kram) an: An das Userland gewöhnst du dich vermutlich schnell, weil es halt sowieso auf jedem zweiten Rechner hier rumliegen dürfte, die Architektur (die wievielte ist das eigentlich gerade?) ist eine völlig andere und hat sicherlich große Vorteile für bestimmte Einsatzzwecke. Und - warum steigst du nicht um?

-----------------------------------------------------------------------------------------------
Offenlegung: Ich bin noch gar nicht so alt, dieser Beitrag kann also durchaus aus Versehen statt, wie sonst, absichtlich einigen fachlich falschen Unsinn enthalten.
 
Solange nicht irgendeine KI ein eigenes System bastelt (Skynet :) ) werden wir wohl erstmal auf den jetzigen Strukturen festsitzen

Auf ein erfolgreiches [Something].js warte ich auch noch, auch wenn ich nicht wirklich weiß für was :)
https://xkcd.com/1508/
 
Übrigens, in einem Unix-Forum darf man das ja kaum aussprechen, ist Windows konzeptionell schon wesentlich fortschrittlicher als Unix [1]. Einfach, weil es jünger ist. Und schauen wir mal, was aus Googles Fuchsia wird. Der Zircon genannte Kernel ist ein Microkernel-Design mit - das ist in der Praxis sogar halbwegs inovativ - nichtblockierenden Syscalls [2].

In diese Liste würde ich noch Redox einwerfen. Klar man orientiert sich an Minix und BSD aber es gibt ein modernes Grundgerüst.
  • Microkernel Design
  • Komplett in Rust geschrieben
Mal ein neuer Ansatz was das Thema Sicherheit betrifft. Sämtliche Treiber laufen daher im Userspace. Es gab sogar mal ZFS Unterstützung, wenn ich es noch richtig im Kopf habe aber dies wurde in der Zwischenzeit durch TFS ersetzt.

[1] https://www.redox-os.org/
 
In diese Liste würde ich noch Redox einwerfen. Klar man orientiert sich an Minix und BSD aber es gibt ein modernes Grundgerüst.
  • Microkernel Design
  • Komplett in Rust geschrieben
Mal ein neuer Ansatz was das Thema Sicherheit betrifft. Sämtliche Treiber laufen daher im Userspace. Es gab sogar mal ZFS Unterstützung, wenn ich es noch richtig im Kopf habe aber dies wurde in der Zwischenzeit durch TFS ersetzt.
Wäre ein schönes Projekt für einen Typ-1-Hypervisor
 
Man kann das Ganze auch von einer anderen Seite betrachten. Man schaue sich Chrome OS an. Der Linux Kernel ist hier nur Mittel zum Zweck. Er ist die Schnittstelle zwischen Hardware und Browser. Die übergreifende Kontrolle über die Anwendungen hat aber der Browser und nicht der Kernel.
 
Ohne konzeptionelle Neuentwicklungen im Hardwarebereich braucht auch niemand konzeptionelle Neuentwicklungen im Softwarebereich.
Na ja, ob die Konzepte neu oder alt sind, ist irrelevant, genau so ob sie sich im kommerziellen Umfeld durchsetzen oder nicht, - da wissen wir ja wie das ausgeht!

Der Punkt ist doch dass die gegenwärtigen Betriebssysteme groß, alt und fett geworden sind und aus allen Löchern leaken.Zur Zeit bekomme ich bei Fedora fast täglich ein OS update, Win10 schiebt das immer noch ein paar Tage auf ;-).Vor Meltdown und Spectre war das etwas weniger, - aber nur etwas. Das Rennen zwischen Hackern und den Programmierern geht doch aus wie das zwischen Hase und Igel. Die Systeme sind nur "gut genug" weil wir so anspruchslos geworden sind und gelernt haben damit zu leben, aber das ist auch alles. Und die End-User kümmern sich nicht darum so lange die halbwegs das machen was sie sollen. Ich denke nicht dass das mit eine wenig Reperatur oder wie du meinst "Abstraktion" zu beheben ist. Da ist etwas grundlegend faul in Dänemark!

Mikrokernels sind heute deshalb interessant weil sie sich enorm weiter entwickelt haben (Sel4 etc) und nahezu so effektiv sind wie monolitische Kernel. Was es (noch) nicht gibt ist ein kohärentes System darüber denn ein OS besteht bekanntlich aus weit mehr als dem Kernel wie gerade BSD-Leute wissen.

In diese Liste würde ich noch Redox einwerfen. Klar man orientiert sich an Minix und BSD aber es gibt ein modernes Grundgerüst.
Klar, die halten sich an Minix und BSD damit sie nicht alle Werkzeuge neu entwickeln müssen, dazu fehlen eifach die Resourcen. Interessant finde ich auch Genode Aber man kann noch weiter zurückschauen: Das alte Oberon system von Wirth/Gutknecht war Unix ellenweit voraus, nach damaligen Maßstäben versteht sich.Aber ein System ohne cmdline ? Undenkbar! ;-) Aber auch heute könnte man davon lernen wie von manch anderen Entwicklungen, durchaus auch von Plan9.

Die Evolution geht so lange weiter bis an irgend einer Stelle das System zusammenbricht. Zur Zeit retten sich die Syteme nur von einem Tag zum nächsten. Die Frage ist wie lange das noch gut geht...
 
Der Punkt ist doch dass die gegenwärtigen Betriebssysteme groß, alt und fett geworden sind und aus allen Löchern leaken.Zur Zeit bekomme ich bei Fedora fast täglich ein OS update, Win10 schiebt das immer noch ein paar Tage auf ;-).Vor Meltdown und Spectre war das etwas weniger, - aber nur etwas. Das Rennen zwischen Hackern und den Programmierern geht doch aus wie das zwischen Hase und Igel.
Aber wäre das bei einem anders konzeptionierten Betriebssystem zwingend besser? Die Gesamtkomplexität wird ja nicht geringer, wenn man die gleiche Funktionalität anbieten will. Man verteilt sie nur anders. Es kann also gut sein, dass man eine Klasse Probleme nur durch eine andere Klasse ersetzt.
 
Aber wäre das bei einem anders konzeptionierten Betriebssystem zwingend besser? Die Gesamtkomplexität wird ja nicht geringer, wenn man die gleiche Funktionalität anbieten will. Man verteilt sie nur anders. Es kann also gut sein, dass man eine Klasse Probleme nur durch eine andere Klasse ersetzt.

Wie wurde es mal bei mir an der Uni gesagt: Mit all dem Code der bei Linux alleine für die Sicherheit drauf geht kannst du einen kompletten Microkernel bauen, der all die Probleme nicht hat.
Viele Design-Entscheidungen heutiger Systeme haben im Großen und Ganzen Performance als Grundlage und nicht Sicherheit. Auch all das ganze Theater was OpenBSD für die Sicherheit betreibt sind bei einem entsprechenden Microkernel inhärent.

Darum sind Microkernel in den Bereichen auch quasi Marktführer, wie ich ja oben schon gesagt habe. So gut wie jede Sicherheitskomponente in einem Computer wird mit so etwas betrieben.

Mit den heutigen Desktop-Konzepten gewinnt man halt auch keinen Blumentopf mehr. So wie man damals zu CP/M, DOS und Windows 9x Zeiten seinen Rechner noch hart mit einem Schlüssel abgeschlossen hat, kam es zum lokalen Login und bewegt sich Richtung Cloud-Login. Auch das Konzept, dass eine Anwendung mit Benutzerrechten Vollzugriff auf sämtliche Dateien des Benutzers hat, kann man heute eigentlich gar nicht mehr anbieten. Jedes Smartphone fragt heute den Anwender, ob eine Anwendung auf deine Kontakt- oder Mediendatenbank bzw. deine Webcam zugreifen darf. Auf einem PC-Desktop? Pustekuchen.

Darum benötigt es ab und zu einfach mal einen harten Schnitt. So wie iOS und Android Anwendungstechnisch bei 0 angefangen haben, müsste das im Desktop-PC Umfeld auch mal passieren. Leider ist der Sektor sehr sehr träge geworden, obwohl es durch Virtualisierung und Co. gar keinen Grund dafür gibt.
 
Auch all das ganze Theater was OpenBSD für die Sicherheit betreibt sind bei einem entsprechenden Microkernel inhärent.
Willst du wirklich eine so allgemeine Aussage in den Raum werfen? Gib mal bitte 2-3 Beispiele für ein wenig Informationsgrundlage, vielleicht darf ich dann heute noch was lernen
 
Die Trägheit im Markt ist auf jeden Fall ein Problem. Es muss einen überzeugenden Nutzen geben, um anderes auszuprobieren, weil die Einstiegshürden einfach extrem hoch sind. Als eher Außenstehender was OS-Entwicklungen betrifft, könnte ich mir allerdings vorstellen, dass z.B. in Bereichen, in denen hohe Sicherheit erwartet wird, neue Prozessor-Konzepte kommen werden, die viele heute bekannte Software-Schwachstellen schon auf Hardwareebene unterbinden. Die neue Hardware erfordert dann vermutlich auch neue Kernel- und OS-Konzepte. Wenn der Nutzerkreis dieser Lösungen dann über Militär und Kernkraftwerksbetreiber hinaus wächst, könnte daraus ein allgemein verwendetes OS werden.
 
"Ist nicht in C/C++ geschrieben" ist als Innovation hingegen schon ziemlich mau IMO. (Bezogen auf Redox OS.)
 
Aber wäre das bei einem anders konzeptionierten Betriebssystem zwingend besser? Die Gesamtkomplexität wird ja nicht geringer, wenn man die gleiche Funktionalität anbieten will. Man verteilt sie nur anders. Es kann also gut sein, dass man eine Klasse Probleme nur durch eine andere Klasse ersetzt.
Zwingend nicht, aber es besteht die Chance. Ob die genutzt wird, ist eine andere Frage und hängt wie so vieles vermutlich von Seitenbedingungen ab. Denk z.B. mal an X-Windows. Ich habe mal einen längeren Potcast von einem der Entwickler angehört. Wie er es beschreibt ist das definitiv nicht mehr wartbar da sich da Unmengen z.T. unverständlichem Code der von einer Vielzahl unterschiedlichster Leute produziert worden ist angesammelt hat. Ein Loch stopfen reißt da drei andere auf. Ob Wayland wirklich besser ist, ist eine andere Frage aber es spricht schon einiges dafür. Auch die Entwicklung komplexer Software hat sich ja seit den 80ern weiter entwickelt (Tools, Test, Modularisierung, Sprachen etc). Linus scheint ja vom Kernel ähnliches zu denken. Natürlich kauft man sich da neue Probleme ein, aber die Frage ist ob die lösbar sind oder eben nahezu nicht.

Ich denke -Nuke- hat recht wenn er Sicherheit als das zentrale Problem beschreibt. Kraftwerke, Produktion, Datenaustausch zwischen Firmen, Rechtswanwälten etc werden zunehmend kritisch, Und man irrt sich wenn man das GUI meint davon ausnehmen zu können, denn all diese Sachen erfordern die Interaktion mit Menschen, und die werden sich kaum mit der cmdline anfreunden. Klar kann man durch Abstraktion und Modularisierung eine Menge erreichen, aber auf der Basis von was? Wenn das Fundament wackelig ist, erreicht man da auch nicht allzuviel.Ich denke Capabilities o.Ä. Konzepte die erzwungen werden sind da ein muss.

Es kommen Probleme hinzu bei denen sich einem UNIXler der Magen umdrehen mag wie z.B. auto updates ohne die es m.E. nicht gehen wird. Wir werden sehen...
 
Willst du wirklich eine so allgemeine Aussage in den Raum werfen? Gib mal bitte 2-3 Beispiele für ein wenig Informationsgrundlage, vielleicht darf ich dann heute noch was lernen

Stichwort wurde hier schon genannt, aber mal mit Link: https://de.wikipedia.org/wiki/Capability-based_security

Die Grundlage ist schlicht eine Andere. Prinzipiell hast du bei einem Makrokernel das Problem, dass du auf Ring 0 alles hardwarenahe hast und jeder "Einbruch" darin in einer Katastrophe endet. Darum wird ein großer Aufwand betrieben, dass auch innerhalb des Kernels entsprechend die Mauern hochgezogen werden. Siehe Konzepte wie KARL.

Bei einem Microkernel ist dein Kernel aber im Allgemeinen nichts weiter als ein Vermittler über IPC und Scheduler. Das Memory Management über einen Userspace-Prozess ist quasi Sandboxing by design und nicht wie normalerweise "optional hinzugeschustert".

Anders ausgedrückt:
Makrokernel: Die Anwendung hat maximale Rechte und der Kernel schränkt diese zur Laufzeit ein
entsprechender Microkernel: Die Anwendung hat minimale Rechte und ein Userspace-Prozess erweitert diese bei Bedarf

Man muss bei all dem aber ein bisschen von der aktuellen UNIX/POSIX Denke weg kommen. Ein System zu schaffen, dass die oben genannten Vorteile hat und dazu auch noch genauso sein soll wie ein BSD oder Linux wird schwierig. Die ganze Systeminteraktion muss hier anders sein und ebenso muss die Software mit einem Microkernel System im Hinterkopf entworfen werden, ähnlich wie es im Real-TIme Fall ja auch ist.

P.S. ich schreibe "entsprechender" Microkernel, weil es hier ein paar unterschiedliche Designs gibt. Du kannst natürlich auch einen Microkernel schreiben der jeder Anwendung Vollzugriff auf das System gibt. Hat dann halt nur keine Vorteile.
 
Die Grundlage ist schlicht eine Andere. Prinzipiell hast du bei einem Makrokernel das Problem, dass du auf Ring 0 alles hardwarenahe hast und jeder "Einbruch" darin in einer Katastrophe endet. Darum wird ein großer Aufwand betrieben, dass auch innerhalb des Kernels entsprechend die Mauern hochgezogen werden. Siehe Konzepte wie KARL.
Sehe hier trotzdem keinen Grund auf Mitigations zu verzichten, gerade wenns um erweitertes ASLR geht

Insgesamt gebe ich dir ganz klar recht, die Priv-Drop und Priv-Sep sind ja ähnliche Konzepte, die mit Sicherheit auch auf Kernelebene Vorteile bringen (sehr abstrakt gedacht).
 
Denk z.B. mal an X-Windows. Ich habe mal einen längeren Potcast von einem der Entwickler angehört. Wie er es beschreibt ist das definitiv nicht mehr wartbar da sich da Unmengen z.T. unverständlichem Code der von einer Vielzahl unterschiedlichster Leute produziert worden ist angesammelt hat.

Es gibt einen erhellenden Vortrag eines X.Org-Entwicklers:
Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.

X11 ist wie sendmail: es hatte seine Zeit und hat seine Aufgabe mit Bravour erfüllt, aber jetzt wird es Zeit für eine neue Generation. Sonst wird es eklig.
 
Es gibt keinen Anlass, funktionierende Lösungen zu ersetzen. Sonst - wird es tatsächlich eklig.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben