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
andy_m4 schrieb:
Du meinst, die progressive Linux-Community die Windows immer vorgeworfen hat, das die nicht in der Lage sind alte Zöpfe abzuschneiden hängt an alten Zöpfen? :-)
Wer entscheidet dann, welches System man nehmen soll? Und vor allem der Aufwand, alle Distributionen anzupassen.... Viel Spaß, dann hat man wirklich ein Chaos.

Abgesehen davon, es gibt als Alternative schon Flatpak (außer mal wieder Canonical mit Snap), welches man als universalen Paketmanager betrachten kann. 😉
andy_m4 schrieb:
Danke das Du die praxisrelevanten Beispiele gleich mitlieferst. :-)
Du arbeitest ernsthaft mit einem USB Stick und hast dort Windows drauf installiert? 😮
Also ich verwende so nen Stick maximal um schnell ein paar Dateien auszutauschen. Und selbst das funktioniert mittlerweile immer öfters übers Netzwerk (Internet oder lokal).
Und bei größeren Sticks, oder gar USB Platten nutzt man in der Regel auch kein Fat32 mehr.

Sonst verwende ich ein vernünftiges Dateisystem, selbst unter Windows gibts schon bessere Dateisysteme. 😉
andy_m4 schrieb:
Ansonsten:
Das mit der Case-In-sensitivität ist ja nicht grundsätzlich was Schlechtes.
Hab ich nicht behauptet. Habs nur als "Unterschied Windows zu Linux" genannt.

Muss es ja nicht nutzen, kann aber durchaus Vorteile haben.
andy_m4 schrieb:
Ich würde das jetzt aber auch nicht überdramatisieren. Bestimmte Sonderzeichen wie * oder | sind schlicht verboten, weil sie auch noch andere Bedeutungen innerhalb der Shell haben.
Mach ich nicht, war aber ebenfalls nur als Unterschied gedacht, und auch das kann durchaus Vorteile haben.

In der Shell kann man Anführungszeichen dafür benutzen.
andy_m4 schrieb:
Möchte nicht wissen, wie viele Programme man durch entsprechende Wahl eines Dateinamens durcheinander bringen kann.
Dann wurde hier schlecht programmiert. Es gibt mittlerweile für die gängigsten Programmiersprachen libraries, die die Eigenheiten von Betriebssystemen berücksichtigen.
 
foofoobar schrieb:
Kann doas folgende Regel?
Mal jetzt losgelöst von dem Beispiel:
Du liest überhaupt nicht was ich schreibe und machst dann dementsprechend völlig unpassende Anmerkungen.
Meine Behauptung war gar nicht, das doas genauso viel kann wie sudo. Im Gegenteil. Ich habe explizit gesagt, das doas weniger Features hat. Das sehe ich aber nicht als Problem, denn so wie sudo per default in den meisten Distributionen genutzt wird, da reicht doas völlig und man sollte dann auch doas nehmen, weil es simpler / weniger potentielle Sicherheitslücken hat.

Wer mehr Features braucht, dem steht es ja trotzdem frei sudo zu installieren und so nutzen. Es denke nur, das es sinnvoll wäre möglichst sichere Defaults zu nutzen.
Dein Gerade a-la "geht das denn mit doas" geht völlig an meinem Argument vorbei.

Entweder nicht gelesen oder streiten um des streitens willen aka trollen.

foofoobar schrieb:
Probleme zu benennen ist alles andere als destruktiv.
Auch bei der Mikrokernel-Performance gehst Du völlig an dem vorbei, was ich sagte.

Meine Behauptung war NICHT, das Mikrokernel gleich schnell oder gar schneller als monolithische Kernel sind.
Mein Punkt war, das Performance nicht in jedem Fall das alleinige und alles entscheidende Kriterium ist. Und das Sicherheit häufig auf Kosten der Performance geht.

Das sieht man sehr schön daran, das es auch bei einem System mit monolithischen Kernel wie Linux eine Unterscheidung zwischen Kernelmode und Usermode hat. Wäre Performance das einzig maßgebliche Kriterium, würde man das ja nicht auftrennen.

Nun kann man sicher darüber streiten, wie weit man gehen muss. Ob man das im Kernel auch noch aufsplitten muss, so wie bei Mikrokerneln üblich. Da muss man halt individuell gucken, ob einem Performance wichtiger ist oder die Robustheit/Security, die man durch Aufteilung gewinnt.

Mal abgesehen davon das bei Performance auch häufig die Fragestellung ist: Ist es schnell genug. Insbesondere bei Performancenachteilen die unter die Toleranzschwelle fallen, ist man natürlich eher bereit die zu akzeptieren, wenn man dadurch andere Dinge gewinnen kann.

mike78sbg schrieb:
Wer entscheidet dann, welches System man nehmen soll?
Man kann sich ja einigen. Wie man es mit anderen Dingen ja auch tut. Wie gesagt: Es gibt ja Beispiele für Standards.
Und ja, es ist nicht immer einfach da ein Kompromiss zu finden. Im Idealfall profitieren ja (langfristig) alle davon.

mike78sbg schrieb:
Und vor allem der Aufwand, alle Distributionen anzupassen....
Naja. Ist ja nicht gesagt, das wirklich alle da mitmachen müssen (genauso wie nicht jeder CUPS verwendet). Außerdem sind ja viele Distributionen lediglich abgeleitete Distributionen.

Ein passendes, jüngeres Beispiel wäre vielleicht systemd. Das hatte auch einen standardisierenden Effekt. Das bedeutet auch nicht, das alle Distributionen das benutzen. Aber es hat sich halt sehr weit verbreitet.

mike78sbg schrieb:
Du arbeitest ernsthaft mit einem USB Stick und hast dort Windows drauf installiert?
Wieso Windows drauf installiert?
Es ging doch nur darum auf FAT-USB-Sticks zugreifen zu können.

mike78sbg schrieb:
Sonst verwende ich ein vernünftiges Dateisystem, selbst unter Windows gibts schon bessere Dateisysteme. 😉
Das es bessere Dateisysteme gibt steht doch außer Frage.
Trotzdem gibt es nach wie vor Bedarf dafür. Egal ob man das gut findet oder nicht und egal ob man das selbst nutzt oder nicht.

Ich finde es generell schwierig, wenn man Argumente bringt a-la "brauch ich nicht". Das sind keine guten Argumente, weil man damit alles rechtfertigen kann. Man sollte schon versuchen auch über den eigenen Horizont hinaus zu gucken.

mike78sbg schrieb:
Hab ich nicht behauptet. Habs nur als "Unterschied Windows zu Linux" genannt.
Ja. Das war auch eher als Ergänzung gedacht.

mike78sbg schrieb:
In der Shell kann man Anführungszeichen dafür benutzen.
Ja. Das man damit umgehen kann, hab ich ja selbst gesagt.

mike78sbg schrieb:
Dann wurde hier schlecht programmiert.
Das kann man so sagen. Wenn Du allerdings alle Programme aus der Auswahl nimmst, die schlecht programmiert sind, dann wird die Softwareauswahl sehr schnell ziemlich dünn.
Zumal man in bestimmten Umgebungen (berufliches Umfeld) ja auch oftmals damit leben muss, was da ist.
 
andy_m4 schrieb:
Man kann sich ja einigen. Wie man es mit anderen Dingen ja auch tut. Wie gesagt: Es gibt ja Beispiele für Standards.
Hab ich aber schon geschrieben: Flatpak.

Und ja, ich weiß, dass hier Canonical nicht ganz mitzieht, dennoch läuft FlatPack vermutlich überall. Ist halt schwierig bei so vielen unterschiedlichen Interessen, dennoch ein gutes Ergebnis.
Lässt sich übrigens auch unter Ubuntu verwenden.
andy_m4 schrieb:
Wieso Windows drauf installiert?
Es ging doch nur darum auf FAT-USB-Sticks zugreifen zu können.
Nochmal. Ich hab gefragt, wer benutzt Fat32 noch ernsthaft. Das habe ich vorhin nicht umsonst FETT geschrieben.
Ein USB Stick um schnell ein paar kleine Dateien zu übertragen ist kein ernsthafter Anwendungsfall.
Bei größeren USB Sticks und Dateien (> 4GB), hast selbst damit schon ein Problem, und man nutzt besser ein anderes Filesystem.

Daher die Frage, installierst du dir Windows/Linux ernsthaft auf ner FAT32 Partition? 😉
andy_m4 schrieb:
Das kann man so sagen. Wenn Du allerdings alle Programme aus der Auswahl nimmst, die schlecht programmiert sind, dann wird die Softwareauswahl sehr schnell ziemlich dünn.
Zumal man in bestimmten Umgebungen (berufliches Umfeld) ja auch oftmals damit leben muss, was da ist.

Wenn ich im Linux Umfeld unterwegs bin und dafür Programme schreibe, muss ich so etwas berücksichtigen. Genauso wie beim Mac, dort muss ich spezifische Details beachten.
Ich kann bei einer Portierung auf Windows auch nicht einfach nach /<pfad>/<filename> abfragen, sondern muss dort berücksichtigen, dass ich mit "C:\<pfad>\<filename> abfragen muss.
Und besonders der "Backslash" macht auch in vielen Sprachen Probleme. Füg mal unter Java eine "\" ein, und du wirst dein blaues Wunder erleben.
Wie üblich hat MS auch hier eine Extrawurst.

Aber ja, dann wurde schlampig programmiert.
 
Ja, stimmt. Immerhin ist ja auch schon ein Linux Kernel im System drin.
Ist halt doch schon lange her, dass ich unter Windows ein Programm geschrieben habe.
Ich wollte weniger auf die Pfade, als mehr auf Eigenheiten eines Systems raus, die man berücksichtigen muss. War vielleicht nicht das beste Beispiel, und es beweist, wäre schlampig programmiert. 😁
 
Aufgrund der Ungenauigkeiten (teilweise Fehler) der LLM-generierten Zeugs ist es denke ich quasi ausgeschlossen, dass LLMs bald Menschen ersetzen. Dass sie als Unterstützung herangezogen werden, um bestimmte Tasks zu beschleunigen - insbesondere beim Prototyping oder Templating - klar, keine Frage. Aber am Ende muss immer noch eine Kontrolle und Korrektur/Anpassung durch einen Menschen dabei sein, der sich mit der Thematik auskennt. Ansonsten kann totaler Murks entstehen. Das ist bei Themengebieten, wo es auf Genauigkeit und Fehlerfreiheit ankommt, natürlich besonders brisant.

Nicht ganz so schlimm ist es bei ich sage mal kreativer Nutzung wie Bild-/Videogenerierung. Da ist es dann auch leichter, zu entscheiden, ob einem das Ergebnis gefällt oder nicht. Auch hier können sich natürlich Bugs einschleichen wie schwarze/asiatische Nazi-Soldaten, die deshalb so generiert wurden, weil das LLM so trainiert wurde, dass es bei Darstellungen von Menschen halt Diversity mit reinbringen soll.

@Topic:
Sowohl Linux als auch Windows sind hybride Kernel (Windows dabei vielleicht noch etwas mehr in Richtung Micro als Linux). Micro-Kernel sind zwar von der Theorie her "am besten" vom Aufbau her, aber bisher hat noch niemand einen performanten und stabil laufenden, modernen und im Alltag benutzbaren Micro-Kernel schreiben können, und da der Linux-Kernel wohl technisch overall gesehen der mächtigste Kernel aktuell ist, kann man das vielleicht auch als Indiz dafür sehen, dass eher monolithische Kernel sich durchgesetzt haben in der Praxis. GNU/Hurd ist z.B. ein reiner Microkernel, aber der wird ja nie fertig und hat absolut gar keine Praxisrelevanz. Habe mal gelesen, dass WindowsNT ursprünglich komplett ein Micro-Kernel war, aber sie damit so viele Performanceprobleme und auch Komplexitätsprobleme hatten (bzgl. der Kommunikation oder Synchronisation zwischen den einzelnen Micro-Kernel-Services) dass sie dann doch zwangsweise in Richtung monolithisch gerückt sind. Also ein halbwegs monolithischer Kernel scheint die bessere Wahl zu sein, wenn es performant oder überhaupt laufen soll. Mit einem puren Microkernel schafft man sich vermutlich in der Praxis mehr Probleme, als man damit löst. Also zumindest ist das so meine Zusammenfassung von dem, was ich im Laufe der Zeit zu dem Thema gelesen habe.

Der WindowsNT-Kernel müsste unter c:\windows\system32\ntoskrnl.exe liegen (oder zumindest nt*krnl*). Kann grad nicht nachschauen.
 
andy_m4 schrieb:
Die Registry ist zudem eine Datenbank, was den Zugriff schneller machen kann, wenngleich das auf moderner Hardware kaum ins Gewicht fällt.
Naja, die Registry verteilt ihren Inhalt fröhlich über mehrere Dateien, eine Indizierung gibt es (meines Wissens nach) auch nicht und damit das Ding nicht zu viel Ram frisst gibt es eine harte Grenze, wie viel Speicher geladene Einträge belegen dürfen. Im Vergleich zu sowas wie Sqlite, ist das Ding ein reines Drauerspiel und bei sehe ich Sqlite als Minimum an Datenbank an..
Im Großen und Ganzen ist die Registry damit deutlich aufwendiger als Dateizugriffe übers Dateisysteme, die klassich ja ihren Inhalt auch über eine Abwandlung eines B-Trees verwalten. Allenfalls das Parsen von Textdateien ist dann wieder etwas Overhead im Vergleich zur Registry mit definierten Datentypen.

Real verzweifle ich auch immer wenn ich größeres mit der Registry vorhabe. Das ist so unglaublich langsam -.-

andy_m4 schrieb:
Ich glaub jeder Linux-Admin ist schon mal sein Bash-Skript um die Ohren geflogen weil da ein Leerzeichen im Dateinamen war.
Character Escaping unter Windows ist Imho noch wesentlich unlustiger.
 
  • Gefällt mir
Reaktionen: mike78sbg
Die Registry ist ja auch ein historisch gewachsenes Monstrum (eine gigantische Müllhalde), was aus Gründen der von Microsoft ewig mit Prio 1 behandelten Abwärtskompatibilität zu auch den ranzigsten, längst nicht mehr aktualsierbaren kommerziellen Programmen sich auch nie mehr ändern wird. Jede Veränderung würde vermutlich in Inkompatibilitäten resultieren, aber das wird MS nicht tun weil sie sonst vielen Business-Kunden Probleme bereiten. Windows wird vorher untergehen, bevor die Registry modernisiert oder aufgeräumt wird. Bis dahin gilt: aus den Augen (= in der Registry), aus dem Sinn.
 
  • Gefällt mir
Reaktionen: Piktogramm
mike78sbg schrieb:
Hab ich aber schon geschrieben: Flatpak.
Wie gesagt. Ich hab explizit(!!!) geschrieben des es Standards gibt.
Bei Paketmanagementsystemen gibt es sie aber nicht. Ob Flatpak die auf mittlere Sicht ersetzen wirdm ist fraglich. Flatpak geht eher in die Richtung Application-Container und ist damit damit etwas anders gestrickt als tradtionelles Paketmanagement, wenngleich man Dinge nachbilden kann.
Ist aber letztlich auch egal: Stand heute haben wir noch ein Wirr-Warr bei Paketmanagement-Systemen. Das war meine Aussage und die lässt sich auch nicht wegdiskutieren.

mike78sbg schrieb:
Ich hab gefragt, wer benutzt Fat32 noch ernsthaft.
Denk nur mal an all die Geräte die Sticks oder Memory-Cards benutzen. Das ist zwar bei neueren Modellen eher Ex-FAT etc. aber wer noch älteren Kram rumfliegen hat, dann ist das häufig irgendwie was mit (v)FAT32.
Auch das lässt sich nicht wegdiskutieren.

Aber selbst wenn du FAT nicht gelten lässt, gibt es immer noch NTFS etc. die sich anders bezüglich Dateinamens Klein-/Großschreibung verhalten als ein UNIX-like-Dateisystem wie ext4.
Gleiches bei NAS die SMB-Shares haben und sich aus Windows-Kompatibilitätsgründen natürlich bei der Dateinamens Klein-/Großschreibung entsprechend verhalten.

Es gibt also genügend Beispiele.

mike78sbg schrieb:
Daher die Frage, installierst du dir Windows/Linux ernsthaft auf ner FAT32 Partition?
Was die Installation eines Systems mit dem Datenaustausch via USB-Stick oder auch Memory-Cards aus Digitalkameras etc. zu tun hat, erschließt sich mir nicht.

mike78sbg schrieb:
Wenn ich im Linux Umfeld unterwegs bin und dafür Programme schreibe, muss ich so etwas berücksichtigen.
Wie gesagt. In der Praxis stolpert man gern auch mal schon allein über ein Leerzeichen.
Und ja klar. Man kann die Fälle entsprechend abfangen bzw. berücksichtigen. Das war nie die Frage. Im Gegenteil. Das hab ich sogar explizit so benannt.

jenzen schrieb:
Aufgrund der Ungenauigkeiten (teilweise Fehler) der LLM-generierten Zeugs ist es denke ich quasi ausgeschlossen, dass LLMs bald Menschen ersetzen.
Naja. Das suggeriert so ein wenig, als wenn Menschen keine Fehler machen würden. Das deckt sich nicht mit meinen Erfahrungen.
Interessanterweise gibt es da viele Parallelen zwischen LLMs und Menschen. Mag sein, das die LLMs trotzdem noch schlechter sind als der Mensch (zumindest im Schnitt), aber das ist ja nur eine Frage der weiteren Entwicklung.
"quasi ausgeschlossen" klingt mir da als Formulierung doch etwas hart.

jenzen schrieb:
Aber am Ende muss immer noch eine Kontrolle und Korrektur/Anpassung durch einen Menschen dabei sein, der sich mit der Thematik auskennt.
Man darf LLMs auch nicht so verstehen, das die da einem perfekte Lösungen präsentieren. LLMs sind eher prädestiniert für Boilerplate-Arbeiten. Wer LLMs für quasi exakte Arbeiten nutzt, der nutzt sie falsch.

By the way: Auch bei vom Menschen gemachten arbeiten Bedarf es idealerweise einer Kontrolle. Und in fast allen Berufszweigen ist das auch der Fall.

jenzen schrieb:
Micro-Kernel sind zwar von der Theorie her "am besten" vom Aufbau her, aber bisher hat noch niemand einen performanten und stabil laufenden, modernen und im Alltag benutzbaren Micro-Kernel schreiben können
Außer GNU Hurd: Minix, Google Fuchsia, Redox OS
Kommt aber natürlich darauf an, wie Du "im Alltag benutzbar" definierst. :-)

jenzen schrieb:
GNU/Hurd ist z.B. ein reiner Microkernel, aber der wird ja nie fertig und hat absolut gar keine Praxisrelevanz
Kommt drauf an, wie Du "fertig" definierst.
Wenn Du damit meinst, das da noch Sachen "open" sind, so ist das auch beim Linux-Kernel der Fall.

jenzen schrieb:
Also ein halbwegs monolithischer Kernel scheint die bessere Wahl zu sein, wenn es performant oder überhaupt laufen soll.
In monolithische Kernel sind einfach bisher viel mehr Ressourcen geflossen. Daher lässt sich das überhaupt nicht vergleichen.

jenzen schrieb:
Habe mal gelesen, dass WindowsNT ursprünglich komplett ein Micro-Kernel war
Zumindest war es so mal angedacht. Dementsprechend sind auch einige Microkernel-Elemente im NT-Kernel enthalten.

jenzen schrieb:
Also zumindest ist das so meine Zusammenfassung von dem, was ich im Laufe der Zeit zu dem Thema gelesen habe.
Willst Du damit ausdrücken, das Dein Text Unsicherheiten beinhaltet? War das nicht eigentlich das, was den Menschen von LLMs Deiner MEinung nach unterscheiden sollte? Das nur LLMs ungenau sind und der Mensch nicht? :-)

Piktogramm schrieb:
Im Vergleich zu sowas wie Sqlite, ist das Ding ein reines Drauerspiel und bei sehe ich Sqlite als Minimum an Datenbank an..
Das mag sein. Ich will jetzt hier die Registtry auch nicht verteidigen oder so. Ich hab einfach mal beides gegenüber gestellt und dann mal ein paar Vor- und Nachteile genannt.

Piktogramm schrieb:
Character Escaping unter Windows ist Imho noch wesentlich unlustiger.
Ich hab ja auch nicht gesagt, das es unter Windows besser ist, sondern lediglich das Sonderzeichen gerne mal Stolperfallen sein können.
 
andy_m4 schrieb:
Wie gesagt. Ich hab explizit(!!!) geschrieben des es Standards gibt.
Bei Paketmanagementsystemen gibt es sie aber nicht. Ob Flatpak die auf mittlere Sicht ersetzen wirdm ist fraglich. Flatpak geht eher in die Richtung Application-Container und ist damit damit etwas anders gestrickt als tradtionelles Paketmanagement, wenngleich man Dinge nachbilden kann.
Ist aber letztlich auch egal: Stand heute haben wir noch ein Wirr-Warr bei Paketmanagement-Systemen. Das war meine Aussage und die lässt sich auch nicht wegdiskutieren.
Ja und? Warum muss man nun alle bestehenden Paketmanager ablösen?
FlatPak versucht das ganze auf einen Nenner zu bringen. Funktioniert z.B. am SteamDeck hervorragend.

Auch unter z.B.: Manjaro kannst du hauptsächlich auf Flatpak setzen.

100% wirst du sowieso nie alles ablösen können.

Oder warum gibt es unter Mac Homebrew? Weil du in den offiziellen Quellen auch nicht alles findest.
Und unter Windows wird die Lücke noch wesentlich größer sein, weshalb es das klassische "exe runterladen und installieren" vermutlich nie ablösen wird.

Sry, aber da hat man unter Linux schlichtweg die beste Lösung bisher.
andy_m4 schrieb:
Denk nur mal an all die Geräte die Sticks oder Memory-Cards benutzen. Das ist zwar bei neueren Modellen eher Ex-FAT etc. aber wer noch älteren Kram rumfliegen hat, dann ist das häufig irgendwie was mit (v)FAT32.
Auch das lässt sich nicht wegdiskutieren.

Was die Installation eines Systems mit dem Datenaustausch via USB-Stick oder auch Memory-Cards aus Digitalkameras etc. zu tun hat, erschließt sich mir nicht.
Jetzt wirds lächerlich, sry.
Im ernst, es geht hier um Windows/Linux Vergleich, und nicht um Kameras oder sonstiges.

Und hast du nie schnell eine Datei auf nen USB Stick kopiert und einem Freund/Kollegen, etc.. gegeben?
andy_m4 schrieb:
Wie gesagt. In der Praxis stolpert man gern auch mal schon allein über ein Leerzeichen.
Und ja klar. Man kann die Fälle entsprechend abfangen bzw. berücksichtigen. Das war nie die Frage. Im Gegenteil. Das hab ich sogar explizit so benannt.
Ja, man stolpert drüber, also nicht aufgepasst, schlampig programmiert, ist so. Besonders wenn man über ein Leerzeichen stolpert, wars wirklich schlampig.
 
Zurück
Oben