Warum läuft Linux gut auf so vielen verschiedenen Arten von Computern - Desktops, Laptops, Servern, eingebetteten Geräten, Mobiltelefonen usw.? Liegt es hauptsächlich daran, dass das System offen ist, sodass ein Teil davon geändert werden kann, um in verschiedenen Umgebungen zu funktionieren? Oder gibt es andere Eigenschaften des Linux-Kernels und / oder -Systems, die es diesem Betriebssystem erleichtern, auf einer so breiten Palette von Plattformen zu arbeiten?
22
Antworten:
Offenheit ist sicherlich ein Teil davon, aber ich denke, der Schlüsselfaktor ist, dass Linus Torvald weiterhin darauf besteht, dass die gesamte Arbeit, von groß bis klein, einen Platz im Linux-Kernel einnimmt, solange sie gut gemacht ist. Wenn er sich irgendwann entschlossen hätte, eine Linie zu ziehen und zu sagen: "Okay, für diese ausgefallene Supercomputer-Hardware brauchen wir eine Gabel", dann hätte sich möglicherweise eine völlig getrennte High-End- und Klein-System-Variante entwickelt. Stattdessen haben die Leute die härtere Arbeit geleistet, alles relativ gut zusammenspielen zu lassen.
Und Kludges, die eine Seite der Dinge zum Nachteil der anderen befähigen, werden im Allgemeinen nicht zugelassen. Wiederum zwingen sie die Menschen dazu, Probleme härter, aber korrekter zu lösen, was sich in der Regel als einfacher herausstellt einmal wird der Kludge zu einer historischen Fußnote.
Aus einem Interview vor einigen Jahren :
quelle
Linux lässt sich auf viele verschiedene Arten von Hardware skalieren, weil:
quelle
fork
möglich ist undfork
auf einem nicht-virtuellen Speichersystem nicht in angemessener Weise effizient ausgeführt werden kann. Während die angegebenen Ports wahrscheinlich Teile des Linux-Kernels verwenden und Linux-Software ausführen können, unterscheiden sich die von diesen Ports bereitgestellten APIs anscheinend größtenteils von den typischen Linux-Kerneln. (Beispiel: Speicherzuordnung - was offensichtlich virtuellen Speicher erfordert)Der Linux-Kernel lässt sich gut skalieren, weil es so ist. Der Kernel ist relativ klein und macht das, was er tun muss. Gerätetreiber sind optional und können bei kleineren Systemen aus dem Kernel entfernt werden. Über die minimalen Kernel-Anforderungen hinaus werden die meisten Funktionen als optionale Features implementiert.
Schauen Sie sich die Konfigurationsdatei an, die neben den meisten Kerneln installiert ist. Es werden alle aktivierten Funktionen sowie die unterstützten Treiber aufgelistet.
Treiber werden entweder im Kernel eingebettet oder als ladbare Module unterstützt. Auf diese Weise kann ein Kernel dynamisch für die Hardware konfiguriert werden, auf der er ausgeführt wird. Dies ist der Ansatz vieler Distributionen.
Abgesehen von den Kompilierungswerkzeugen ist das Ändern des Kernels für neue Hardware relativ einfach. Für einen neuen Prozessor muss nur der zugehörige Code als Modifikation der vorhandenen Funktionalität implementiert werden. Neue Geräte erfordern nur einen neuen Treiber mit den entsprechenden Haken. Neue Dateisysteme sind ebenfalls relativ triviale Modifikationen.
Die Codebasis wurde gut gepflegt, um diese Flexibilität ohne externe Gabelung beizubehalten. Die bedingte Kompilierung führt zu einem sehr flexiblen Kernel, der so gering wie möglich gehalten wurde.
quelle
Ich habe keine detaillierten technischen Kenntnisse, um diese Antwort zu untermauern, aber meiner Erfahrung nach lässt sich Linux im Vergleich zu anderen Betriebssystemen, die ich häufig verwende (hauptsächlich Windows), gut skalieren. Die Frage ist also vielleicht, warum Windows nicht so gut skaliert wie Linux.
Wenn es für Sie immer noch nützlich ist, diese Frage so zu wiederholen, würde ich vorschlagen, dass die Marktkräfte Microsoft dazu motivieren, Features und Funktionen hinzuzufügen, die auf die neueste und leistungsfähigste Hardware abgestimmt sind, da sie mehr Kopien des Betriebssystems verkaufen, vor allem, wenn Endbenutzer neue Systeme kaufen . Daher stelle ich zu jedem Zeitpunkt fest, dass die neueste Version von Windows auf älterer, weniger leistungsfähiger Hardware eine schlechte Leistung aufweist.
Verzeih mir, wenn das deine Frage vereinfacht.
quelle