Unterschiede von Linux und Windows - Suche Vergleich der Architektur

#Schlangenöl

Cadet 4th Year
Registriert
März 2024
Beiträge
94
Hi,

ich suche eine Gegenüberstellung von Linux und Windows, die die Kernunterschiede in der Architektur aufzeigt. Mir geht es dabei nicht um das Lizenzmodell oder die Usability, sondern eher um Kernelaufbau, HAL, Granularität etc.

Was ich bisher gefunden habe stellt meist auf einen der Punkte ab, die mich nicht interessieren. Hier geht's um Betriebssystemarchitektur. Vielleicht kenn jemand in drei oder vier Sätzen mal die Unterschiede erklären.
 
  • Gefällt mir
Reaktionen: nERdWIN
Wikipedia und vergleichen... Würde ich jetzt mal vorschlagen... Ich denke es wird keiner die Unterschied in fünf Zeilen erklären können.
 
  • Gefällt mir
Reaktionen: Lotsenbruder und Fujiyama
Ich habe Zweifel ob man das alles in wenigen Zeilen beschreiben kann. Generell ist das Thema doch recht komplex.

Mein letzter Kenntnisstand war übringens das über den Windows Kernel nicht so viel bekannt ist.
 
  • Gefällt mir
Reaktionen: Lotsenbruder, coasterblog und Nordwind2000
Ja, aber das ist doch die Herausforderung. Wenn ich nach Linux Frage kommt meist ist Open Source und anpassbar etc. Nichts davon, wie der Kernel Modular aufgebaut ist, wie Treiber integriert werden oder ähnliches. Ich habe hier zum Beispiel auch das Buch "Moderne Betriebssysteme" in über 1000 Seiten oder so vorliegen, aber ich hätte das gern in ein paar markenten Sätzen oder einer schicken Grafik mal zusammengefasst.
 
Die Liste ist echt sehr sehr lang. Könntest du die Frage etwas spezifischer Eingrenzen? Weil so ist das kaum sinnvoll zu beantworten.

Das fängt ja schon dabei an, dass Linux "nur ein Kernel" ist und Windows ein Betriebssystem. Der Kernel bei Windows heißt NT-Kernel, ist im Gegensatz zu Linux aber nicht isoliert erhältlich. Ein Linux-Betriebssystem wäre zum Beispiel Debian.

Und das war nicht mal die Spitze des Eisbergs, das war höchstens eine Schneeflocke.
 
  • Gefällt mir
Reaktionen: ctzn5, hax69, R00kie und 3 andere
Du könntest ChatGPT fragen:
  1. Windows und Linux haben unterschiedliche Architekturen, wobei Windows auf einem monolithischen Kernel basiert, der alle Betriebssystemfunktionen in einem einzigen Kernel ausführt.
  2. Linux hingegen verwendet einen modularen Kernel-Ansatz, bei dem Kernelfunktionen in separate Module aufgeteilt sind, die bei Bedarf geladen werden können.
  3. Windows unterstützt native Unterstützung für die Windows API (Application Programming Interface), während Linux die POSIX-Standard-API unterstützt, die auch von anderen Unix-Systemen verwendet wird.
  4. Die Dateisysteme sind ebenfalls unterschiedlich, wobei Windows hauptsächlich das NTFS-Dateisystem verwendet, während Linux eine Vielzahl von Dateisystemen wie ext4, Btrfs und XFS unterstützt.
  5. Windows verwendet ein Registry-basiertes System für die Konfiguration und Verwaltung von Systemeinstellungen, während Linux-Konfigurationsdateien in einfachen Textdateien gespeichert werden.
  6. Die Benutzer- und Rechteverwaltung unterscheidet sich ebenfalls: Windows verwendet ein ACL (Access Control List)-basiertes System, während Linux ein auf Benutzer- und Gruppenberechtigungen basierendes System verwendet.
  7. Windows-Anwendungen werden üblicherweise als ausführbare Dateien mit der Erweiterung ".exe" installiert, während Linux-Anwendungen normalerweise über Paketmanager installiert werden, die Abhängigkeiten automatisch verwalten.
  8. Die Netzwerkarchitektur variiert auch: Windows bevorzugt oft eine zentralisierte Netzwerkadministration über Active Directory, während Linux auf dezentrale Konfiguration und Tools wie LDAP und OpenLDAP setzt.
  9. Beide Systeme haben unterschiedliche Ansätze für die Hardwareunterstützung: Windows verwendet proprietäre Treiber, die oft von Hardwareherstellern bereitgestellt werden, während Linux eine breite Palette von Open-Source-Treibern bietet, die in den Kernel integriert sind.
  10. Abschließend lässt sich sagen, dass Windows und Linux jeweils ihre eigenen Architekturparadigmen haben, die sich in der Systemstruktur, der Benutzerinteraktion, der Verwaltung und der Anwendungsunterstützung unterscheiden.
 
  • Gefällt mir
Reaktionen: ctzn5, hax69, nERdWIN und 4 andere
Ich denke da wird man schon einiges finden, wenn man es sich auch selbst zusammenreimen muss. Als Startpunkt werfe ich mal das Stichwort "monolithischer Kernel" in den Raum.
 
Ich habe auch mal ChatGPT befragt. Um genau zu sein, habe ich den Eröffnungsbeitrag 1:1 eingegeben und das ist die Antwort, die sich überwiegend mit der von @frames p. joule deckt:

Klar, gerne! Linux und Windows unterscheiden sich in ihrer Architektur auf mehreren Ebenen:
  1. Kernel: Linux basiert auf dem monolithischen Kernel, der viele Funktionen direkt im Kernelraum ausführt. Windows hingegen verwendet einen hybriden Ansatz mit einem modularen Kernel, der bestimmte Funktionen in sogenannten Executive Services auslagert.
  2. Hardwareabstraktionsschicht (HAL): Linux hat eine eher schlanke HAL, die oft direkt mit Treibern interagiert. Windows hingegen verfügt über eine komplexere HAL, die zwischen dem Kernel und der Hardwareverwaltungsschicht liegt, um eine höhere Portabilität über verschiedene Hardwareplattformen zu gewährleisten.
  3. Granularität: Linux ist bekannt für seine feine Granularität und bietet dem Benutzer mehr Kontrolle über Systemressourcen und Konfigurationen. Windows hingegen neigt dazu, eine höhere Abstraktionsebene zu bieten, die zwar eine einfachere Bedienung ermöglicht, aber manchmal weniger Flexibilität in der Feinabstimmung bedeutet.
  4. Systemarchitektur: Linux-Systeme sind oft modular aufgebaut, wobei viele Komponenten separat installiert und aktualisiert werden können. Windows hingegen hat tendenziell eine stärker integrierte Architektur, bei der viele Kernkomponenten eng miteinander verbunden sind.
Diese Unterschiede in der Architektur können sich auf Aspekte wie Performance, Sicherheit und Flexibilität auswirken, je nach den spezifischen Anforderungen und Einsatzszenarien.

Ansonsten empfehle ich aber auch: eine "einfache" Antwort auf diese Frage(n) gibt es so nicht, wenn man sich nicht mit der obigen Ausgabe begnügt. Letztlich muss man auch verstehen, um was es dabei geht und es ist auch weitaus komplexer als ein paar Sätze in der Lage wären, dies zu beschreiben.
 
Mein Vorschlag:
Mal ein wenig selbst suchen und so lernen, wie man an die Infos kommt, die man braucht.
 
  • Gefällt mir
Reaktionen: Lotsenbruder und coasterblog
Ich habe dann mal eine Grafik dazu erstellt. Bin zufrieden:
_02f8bf01-eb87-4d7b-a375-3c45f7812d96.jpg


Ansonsten werde ich mal die Unterscheide herausarbeiten, monolithischer Kernel vs. Mikrokernel, super. Denke da sind einige überfordert.

_95539e8b-82fb-4a43-a6b2-f2fc00aeb2fe.jpg


_6fabedcf-1b05-48fa-b12f-a00a9e22cfe5.jpg


Also ChatGPT bzw Dali erstellt schöne Bilder, ist aber für nichts sinnvolles zu gebrauchen. Gerade wenn es komplexer wird und man im Internet eh nichts brauchbares findet.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: ctzn5, Crazytom und sirYOgI
#Schlangenöl schrieb:
Denke da sind einige überfordert.
Wieso überfordert?

In der heutigen Zeit ist doch "normal", dass man sich auf die Zuarbeit der Anderen verlässt. Sieht man jeden Tag hier im CB Forum.
 
  • Gefällt mir
Reaktionen: tha_mos und Lotsenbruder
7vor10 schrieb:
Was nun? Münze werfen oder Elfmeterschießen?
Linux ist auch monolthisch. Die Modularität bezieht sich nicht darauf, dass man Treiber als Module (ähnlich einer DLL) haben kann -- man kann den Kernel auch komplett ohne Module kompilieren --, sondern dass die Architektur des Kernels aus kleinen Paketen besteht, die miteinander kommunizieren. Bei Linux hast du alles in einem großen Blob. Gab es da nicht mal eine berühmte Diskussion zwischen Linus und Andrew Tanenbaum, dem Erfinder des Microkernels?
 
  • Gefällt mir
Reaktionen: TomH22
frames p. joule schrieb:
Du könntest ChatGPT fragen
Ja. Und an den Antworten sieht man, das das nicht unbedingt ne gute Idee ist. :-)

frames p. joule schrieb:
Windows und Linux haben unterschiedliche Architekturen, wobei Windows auf einem monolithischen Kernel basiert, der alle Betriebssystemfunktionen in einem einzigen Kernel ausführt.
Das ist falsch. Windows hat keinen rein monolithischen Kernel. Es ist eher eine Art Hybird-Kernel
Die Grafik auf Wikipedia gibt da einen ganz guten Überblick:
https://en.wikipedia.org/wiki/Architecture_of_Windows_NT#/media/File:Windows_2000_architecture.svg

frames p. joule schrieb:
Linux hingegen verwendet einen modularen Kernel-Ansatz, bei dem Kernelfunktionen in separate Module aufgeteilt sind, die bei Bedarf geladen werden können.
Naja. Kommt darauf an, wie man modular versteht. Der Kernel von Linux bleibt trotzdem monolithisch.
Ja. Man hat ladbare Kernelmodule. Die hast Du aber bei Windows auch.

frames p. joule schrieb:
Windows unterstützt native Unterstützung für die Windows API
Windows unterstützt mehrere Subsysteme. Davon wird aber kaum noch aktiv Gebrauch gemacht. Der integrierte Linux-Support (WSL2) ist z.B. einfach eine virtuelle Maschine.

frames p. joule schrieb:
während Linux die POSIX-Standard-API unterstützt, die auch von anderen Unix-Systemen verwendet wird.
Linux unterstützt große Teile von POSIX aber keineswegs vollständig und an einigen Stelle, hast Du auch Abweichungen.
Das führt dazu, das sich Linux-Programme nicht unbedingt kompatibel zu anderen UNIX-Systemen sind.

frames p. joule schrieb:
während Linux-Konfigurationsdateien in einfachen Textdateien gespeichert werden.
Naja. Kommt darauf an, wie weit man Systemeinstellung fasst. Aber sowas wie dconf hat schon starke Anleihen an der Registry, wenngleich die eigentliche Speicherung immer noch Text (XML) ist.

frames p. joule schrieb:
während Linux ein auf Benutzer- und Gruppenberechtigungen basierendes System verwendet.
Auch das ist eine eher arg verkürzte Darstellung. Denn auch unter Linux kannst Du z.B: ACLs verwenden.
Welches Dateiberechtigungssystem zur Verfügung steht, hängt unter anderem auch vom Dateisystem ab.
Wenn man z.B. FAT benutzt, dann sind die UNIX-Datei-/Gruppenberechtigungen quasi außer Kraft (gibt halt ne feste Vorgabe die für alle Dateien/Verzeichnisse gilt).

frames p. joule schrieb:
Windows-Anwendungen werden üblicherweise als ausführbare Dateien mit der Erweiterung ".exe" installiert, während Linux-Anwendungen normalerweise über Paketmanager installiert werden, die Abhängigkeiten automatisch verwalten.
Hier werden so ein bisschen verschiedene Dinge durcheinander gewürfelt und dadurch auch letztlich falsch dargestellt. Wenn man bei Windows ein Programm installiert, wird da üblicherweise auch nicht einfach nur eine einzelne .EXE-Datei auf die Platte geworden.
Aber ja. Bei Windows hat man eine sehr starke Bindung an die Dateiendung. Das heißt aber nicht, das es unter Linux keine ausführbaren Dateien gibt.

frames p. joule schrieb:
Die Netzwerkarchitektur variiert auch: Windows bevorzugt oft eine zentralisierte Netzwerkadministration über Active Directory, während Linux auf dezentrale Konfiguration und Tools wie LDAP und OpenLDAP setzt.
Naja. Erst mal ist LDAP kein Tool, sondern ein Protokoll. Und zweitens hat man in Netzen natürlich auch bei Linux eine zentrale Administration. Gabs schon früher in Form von NIS.
Und auch Active-Directory ist letztlich eine (wenn auch stark erweiterte) Implementation von LDAP. Und ja, da kommen noch andere Sachen rein. Insofern wird da schon mehr integriert als das bei Linux-Lösungen der Fall ist. Aber das man unter Linux alles dezentral regelt und man bei jeder Administrationsaufgabe da auf dem jeweiligen Client/Server drauf muss, so ist aber keineswegs.

frames p. joule schrieb:
während Linux eine breite Palette von Open-Source-Treibern bietet, die in den Kernel integriert sind.
Weiß nicht, ob man das so uneingeschränkt sagen kann. Ein Trend in den letzten Jahren ist, das immer mehr Kram von Firmware abhängig ist. Insbesondere bei Grafikkarten merkt man es deutlich. Und diese Firmware ist halt kein Open-Source.
Klar ist die Situation trotzdem natürlich viel offener als bei Windows. Aber der Firmwareteil wird halt gerne mal unterschlagen/vergessen.

Donnerkind schrieb:
Gab es da nicht mal eine berühmte Diskussion zwischen Linus und Andrew Tanenbaum, dem Erfinder des Microkernels?
Ja. Gab es.
https://www.oreilly.com/openbook/opensources/book/appa.html
 
  • Gefällt mir
Reaktionen: TomH22 und Donnerkind
andy_m4 schrieb:
Das ist falsch. Windows hat keinen rein monolithischen Kernel. Es ist eher eine Art Hybird-Kernel
Die Grafik auf Wikipedia gibt da einen ganz guten Überblick:
https://en.wikipedia.org/wiki/Architecture_of_Windows_NT#/media/File:Windows_2000_architecture.svg
Ein paar Daemons/Services und ein paar Shared-Libs bzw. DLLs verkehren einen Monolithen nicht ins Gegenteil.

Ach ja, wer sowas wie ein HAL unter Linux vermisst sollte mal beim C-Compiler suchen.
HAL ist lediglich ein Workaround um ein closed-source Konstrukt aufrecht zu erhalten.

Und wenn mal in die Praxis schaut wird man bemerken das eine konkrete Linux Installation wesentlich schmerzfreier auf verschiedenster HW bootet als eine konkrete Windows-Installation.
Eine Initrd ist in der Praxis das bessere Konstrukt als eine HAL.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Lotsenbruder
Also der größte Unterschied, was hier viele nicht ganz richtig schreiben... Linux ist der Kernel. (ja, ich weiß, dass ist nun Korinthenkacken. Aber sollte doch erwähnt werden als wichtiger Unterschied.) 😉 😁
Linux hat einen monolithischen Kernel ist somit schon mal falsch.
Es ist ein monolithischer Kernel. Allerdings kann man ihn mit Modulen erweitern, welche bei Bedarf geladen und entladen werden können. Am bekanntesten die proprietären nvidia treiber module, welche immer wieder für kontroverse Diskussionen sorgen.

Windows hingegen ist das ganze Betriebssystem, inkl. dem Kernel und alles rundherum.
Linux hingegen ist der Kernel, und das ganze rundherum macht es zu einer Linux Distribution.
Das ist mal der wesentliche Unterschied. So gesehen ist damit Android auch eine Linux Distribution.


Einer der größten Unterschied bei den gängigen Desktop Linux Distros zu Windows ist unter anderem die Verzeichnisstruktur, welche mit / (root) beginnt.
Unter /boot liegt für gewöhnlich der Kernel. (keine Ahnung wo der unter Windows zu finden ist, irgendwo in C:\Windows??)
/ect sind die ganzen config dateien als textfiles untergebracht, ganz im Gegensatz zur unübersichtlichen registry in Windows.
/home ist das Verzeichns für die User "/home/<username>" Somit hat man eine viel sauberere Trennung zwischen User und System. Unter Windows liegt alles auf "C:". Und besonders im Verzeichnis C:\Windows\ herrscht in der Regel Chaos.
Hier für mehr Infos: https://wiki.ubuntuusers.de/Verzeichnisstruktur/


Auch die Berechtigung unter Linux ist viel restriktiver. MS hat hier mittlerweile einiges übernommen aus der UNIX Welt, nachdem sie mit XP und davor doch sehr oft massiv auf die Nase geflogen sind, aber ich halte das immer noch für unausgegoren.
Einerseits genügt es auf "ja" (oder wie auch immer der Knopf heißt) zu drücken, andererseits muss man irgendwelche Kunststücke vollziehen um am System was zu ändern. So ganz nachvollziehen konnte ich das nie unter Windows.
Ein "sudo" fehlt schlichtweg.
Unter Linux kann ich als User außerhalb meines Verzeichnis so gut wie gar nichts verändern, teilweise auch gar nicht mal lesen.


Dann der Paketmanager. Während man unter Windows irgendwelche .exe dateien installiert, gibt es für so ziemlich jede Distribution einen Paketmanager (deb, rpm, ...), und der kümmert sich um die ganze Software.


Und einiges anderes wurde bereits weiter oben angesprochen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Lotsenbruder
frames p. joule schrieb:
Du könntest ChatGPT fragen:
Ich geh jetzt gar nicht auf die einzelnen Punkte ein. Bisher hab ich ChatGPT noch nicht verwendet. Wenn ich dann den nachfolgenden Text so durchles, dann bin ich auch beruhigt, dass ich dazu noch keine Notwendigkeit verspürt hab.

Grundsätzlich lässt sich die Qualität der ChatGPT-Aussagen zum obigen Thema zusammenfassen:
  • Ein Großteil der Aussagen ist falsch.
  • Die restlichen Aussagen sind ungenau.

In einer Prüfung an der Uni würdest du mit diesen Aussagen durchfallen.

Donnerkind schrieb:
Gab es da nicht mal eine berühmte Diskussion zwischen Linus und Andrew Tanenbaum, dem Erfinder des Microkernels?
Ich hab meine Zweifel, dass Tanenbaum der "Erfinder" des Microkernels war. Er hat den monolithischen Kernel (und damit Linux) als obsolet dargestellt und lag damit gnadenlos falsch.

Allerdings muss man Tanenbaum zugestehen, dass sein Minix auf wesentlich mehr x86-basierten Intel-Rechnern läuft als Linux.
 
Zurück
Oben