Linux 15.036 Themen, 107.107 Beiträge

Linux - Contra Windows

Acader / 15 Antworten / Baumansicht Nickles

Linux ist ein anderes Betriebssystem als Windows.
Beide haben ihre Vor - und Nachteile hinsichtlich der Anwendung.
Mich würde mal interessieren wie man die Geschwindigkeit auf gleicher Hardware optimal miteinander vergleichen kann.
Man kann ja für die jeweiligen Betriebssysteme/Distributionen Benchmark Tests nur mit der entsprechenden Software durchführen und diese ist bei Windows eben anders als für Linux. Also ist der Vergleich unreell.
Welche Möglichkeiten haben wir zu einem reellen Vergleich um die Rechenkraft der jeweiligen Hardware herauszufinden ?

Gruß Acader

bei Antwort benachrichtigen
KarstenW Acader „Linux - Contra Windows“
Optionen

Ein Vergleich zwischen Linux und Windows wird wahrscheinlich nichts.
Du mußt dich mal mit Prozessoren ein wenig beschäftigen. Da ich kein Informatiker bin und nur Grundkenntnisse in C Programmierung habe, kann ich es nur ganz einfach erklären.
Bei Prozessoren wird einmal zwischen RISC Prozessoren und CISC Prozessoren unterschieden. CISC Prozessoren haben eine Befehlsdekodiereinheit eingebaut, mit der erst die Maschinenbefehle, die von einem Programm eingelesen werden, erst noch dekodiert werden müssen, bevor sie vom eigentlichen Prozessor verarbeitet werden. Diese Dekodierung kostet ein wenig Rechenzeit und macht den Prozessor etwas langsamer (oder man erhöht die Taktfrequenz wie bei AMD- und Intelprozessoren)
Bei RISC Prozessoren werden die Befehl direkt verarbeitet. Da gibt es keinen Befehlsdekodierer. Dadurch werden auch bei RISC Prozessoren die Befehle schneller verarbeitet. Ein typischer Vertreter dieser RISC Prozessoren ist der Ultra 3 Sparcprozessor von Sun Microsystems. Diese Sparcprozessoren sind schweineteuer (und kann ich mir leider nicht leisten).
Intel und AMD stellen CISC Prozessoren her, wobei die neueren Prozessoren auch RISC Elemente eingebaut haben.

Wahrscheinlich hast du schon mitbekommen das der Linuxkernel auf sehr vielen unterschiedlichen Prozessorarchitekturen läuft. Das ist nur ein Vorteil des POSIX Standard von Unix. Deshalb kann man schon mal nicht einfach Linux mit Windows XP vergleichen, wenn die Systeme auf unterschiedlichen Prozessorarchitekturen laufen.

Und dann muß man wissen das ein Prozessor einmal durch die Taktfrequnez schneller wird. Und zum Anderen wird ein Prozessor durch neue Maschinenbefehle schneller, die ältere Maschinenbefehle teilweise ersetzen.
Und nun kommt der C-Compiler gcc ins Spiel. Der Compiler gcc hat die Aufgabe den erzeugten Binärcode so zu optimieren , das möglichst die neuen Maschinenbefehle und Instruktionen des neuen Prozessors in die Binärdatei des Programmes geschrieben werden, so das der erzeugte Binärcode schneller läuft.

Man muß also erstmal für einen Vergleich die gleichen Prozessoren verwenden und dann muß das Programm auch noch für die eingebaute CPU vom Compiler optimiert worden sein.
Unter Linux ist das kein Problem (wenn man etwas Erfahrung mit dem Compiler gcc hat) , aber unter Windows ist das leider unmöglich , da Microsoft den Sourcecode von Windows nicht rausrückt.
Windows ist meist für ältere Prozessoren optimiert, so das Windows auf sehr vielen AMD und Intel Maschinen läuft.
Windows nutzt dadurch auch nicht die neuen Maschienbefehle und Instruktionen der neuen Prozessoren aus und verschwendet dadurch Rechenleistung.

Das Hauptproblem was ich bei Windows sehe ist, das Windows einen hybriden Kernel verwendet. Ein hybrider Kernel ist eine Mischung aus einem Microkernel und einem monolitschen Kernel.
Bei Windows laufen eine Menge Treiber außerhalb des Kernelspace im Userspace. Das ist der Speicherbereich wo auch die ganz normalen Programme laufen. Das Problem ist wenn ein Treiber im Userspace läuft er erstmal keinen Zugriff auf die Hardware bekommt. Damit dieser Treiber Zugriff auf die Hardware bekommt , muß der Prozessor vom Protected Mode in den Kernelmode (heißt unter Windows Realmode glaube ich) umgeschaltet werden. Dieses Umschalten kostet etwas Rechenzeit, Overhead genannt. Wenn der Treiber fertig ist , wird der Prozessor wieder in den Protected Mode umgeschaltet. Das kostet wieder etwas Rechenzeit.
Im Gegensatz dazu laufen die Treiber bei Linux immer im Kernelspace( auch die Kernelmodule) . Dadurch bekommen die Treiber auch vollen Zugriff auf die Hardware und die Umschaltung zwischen Protected Mode und Kernel Mode fällt weg.

Linus Torwalds hält überhaupt nichts davon einen Treiber im Userspace laufen zu lassen. Kann ich nicht beurteilen, da ich kein Informatiker bin ;-).
Da der Treiber in den Kernel implementiert werden muß, braucht man auch den Sourcecode des Treibers.
Das Problem ist , das sehr häufig viele Firmen den Programmcode des Treibers nicht rausrücken wollen. Na ja, du kennst ja die Probleme mit den Treibern unter Linux. Es gibt aber Ausnahmen wie NVidia mit seinen NForce Treibern.

Mehr weiß ich nicht.

PS: Wenn du selbst ein Linuxprogramm, den Linuxkernel beispielsweise, für die eingebaute CPU übersetzen willst, dann mußt du eigentlich keine Programmierkenntnisse haben. Das ist alles so gemacht, das auch ein normaler Anwender, welcher in der Lage ist Handbücher und Anleitungen in Englisch zu lesen, das auch machen kann. Für viele Anwender ist wahrscheinlich Englisch ein Problem.



Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
Alfredo7 KarstenW „Ein Vergleich zwischen Linux und Windows wird wahrscheinlich nichts. Du mußt...“
Optionen

@karstenw

=> merkst was ?!?

wenn du deine ausfuehrungen nicht zum besten gegeben haettest, waers auch keinem aufgefallen -

leider.

ich hab wenigstens versucht deine erklaerungen zu verstehen - und ich hab was d'raus gelernt.

schoenen gruss

alfredo

Neid und Missgunst ist die Wurzel jeden Übels
bei Antwort benachrichtigen
KarstenW Alfredo7 „@karstenw merkst was ?!? wenn du deine ausfuehrungen nicht zum besten gegeben...“
Optionen

Kannst du alles in der Wikipedia nachlesen. Falls ich was nicht richtig erklärt habe bitte ich um Entschuldigung.

GNU Compiler Collection

http://de.wikipedia.org/wiki/GNU_Compiler_Collection

Mikrokernel

http://de.wikipedia.org/wiki/Microkernel

Linux

http://de.wikipedia.org/wiki/Linux

Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
Borlander KarstenW „Kannst du alles in der Wikipedia nachlesen. Falls ich was nicht richtig erklärt...“
Optionen
Falls ich was nicht richtig erklärt habe bitte ich um Entschuldigung.
Du hast schlicht und einfach mal wieder am Thema vorbeigeschrieben. Wie so oft :-(

(Ich habs mir nicht alles durchgelesen, dafür ist mir meine Zeit zu schade, inbesondere da sich der Inhalt Deiner Postings doch sehr regelmäßig wiederholt...)
bei Antwort benachrichtigen
KarstenW Borlander „ Du hast schlicht und einfach mal wieder am Thema vorbeigeschrieben. Wie so oft...“
Optionen

Wie soll man beispielsweise ein Programm, welches auf einem Ultra 3 Sparc Prozessor übersetzt worden ist (oder crosscompiliert) ,mit einem Programm , welches auf einem AMD64 Prozessor übersetzt worden ist, miteinader vergleichen ?
Ein Ultra 3 Sparc Prozessor läuft mit 2 GHz Taktfrequenz wahrscheinlich viel schneller als ein AMD 64 bit Prozessor mit 4 oder 6 GHz.
Und dann kommt es auch noch darauf an ob der Compiler den Binärcode so gut optimieren kann. Solche Sachen kann man nur schlecht vergleichen.

Die Linuxdistributuion Debian gibt es beispielsweise für diese schweineteuren Sparc Prozessoren von Sun Microsystems:

Debian etch läuft auf elf verschiedenen Prozessorarchitekturen:

http://www.de.debian.org/CD/torrent-cd/

Wobei ich mir privat nur diese preiswerten AMD Prozessoren leisten kann.



Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
Borlander KarstenW „Wie soll man beispielsweise ein Programm, welches auf einem Ultra 3 Sparc...“
Optionen
Der Threadstarter hatte explizit nach einem Leistungsvergleich auf gleicher Hardware gefragt!

robinx99 hat unten einige sehr gute Anmerkungen zum Thema Aussagekraft von (synthetischen) Benchmarks gemacht. Es spricht absolut nichts den eigenen konkreten Anwendungsfall auf verschiedenen Systemen incl. aller Optimierungen zu testen. Je nach Aufgabe kann mal das eine mal das andere System von Vorteil sein.
bei Antwort benachrichtigen
usernull Acader „Linux - Contra Windows“
Optionen

Hi,

Aufgaben wie Audio/Video transcodieren oder Grafik rendern lassen sich gut vergleichen. Natürlich darf weder die Software noch das jeweilige System optimiert sein. Sonst sind solche Vergleiche Zeitverschwendung.

bei Antwort benachrichtigen
Xdata usernull „Hi, Aufgaben wie Audio/Video transcodieren oder Grafik rendern lassen sich gut...“
Optionen

Einen Unterschied scheint es bei der Verwendung von RAM zu geben.
Linux nimmt die Auslagerungsdatei wohl nur wenn es nicht anders geht.
Xp aber sogar bei GB RAM.

Bei Linux hat man die Wahl einen etwas schlankeren Windowmanager zu verwenden.
Ein höherer Ressourcen Verbrauch der Gui bedeutet aber nicht Zwangsläufig ein langsames Linux. KDE braucht zB. mehr, ist dann aber nicht wesentlich langsamer als die flachen Window-Manager.

Mit genug Speicher ist Linux auch mit einer alten CPU noch schnell.

Wirklich einfach ob denn - beispielsweise Xp oder Linux schneller ist,
ist die Frage aber nicht.

Linux kann aber wohl auch als 32Bit Version mehr RAM nutzen als Xp,
-- falls die CPU es kann.

bei Antwort benachrichtigen
robinx99 usernull „Hi, Aufgaben wie Audio/Video transcodieren oder Grafik rendern lassen sich gut...“
Optionen

warum darf denn die software nicht optimiert sein, bzw. das betriebssystem?
Vorallem was umfassen die optimierungen, reicht da jetzt schon das abschalten des index dienstes unter windows?
Und software optimierungen beziehen die sich jetzt auf den quellcode oder sind bestimmte compiler optionen jetzt schon relevant?

Klar ist jedenfalls man kann windows und linux nur schlecht miteinander vergleichen.
Klar man kann ein spiel mal unter windows starten und dann unter linux mit wine und sich die fps anschauen. Man kann auch mal 1gb daten mit 7-zip packen und vergleichen welches system länger braucht. Ebenso kann man auch videos encoden.

Letztendlich sind dies aber alles nur synthetische werte die häufig durch nebenfaktoren beeinflußt werden (z.B: Virenscanner unter windows der performance "klaut")

Letztendlich dürfte es für normale anwender uninteressant sein und alle anderen können sich anschaun was sie tuen und expliziet die programme die es dafür gibt auf den unterschiedlichen systemen vergleichen

bei Antwort benachrichtigen
Xdata robinx99 „warum darf denn die software nicht optimiert sein, bzw. das betriebssystem?...“
Optionen

Da ist etwas Wahres dran, robinx99.
Solche Vergleiche hat es früher schon zwischen Windows und Apple gegeben.
Meist von Windows -Fachzeitschriften wo dann ein Mac als - nicht wesntlich schneller oder gar langsamer als Windows dargestellt wurde.

Oft wurde da das "Gesamtsystem" aus dem Auge verloren.
-- Wenn man überhaupt Objektive Vergleiche ziehen konnte und kann.

bei Antwort benachrichtigen
usernull robinx99 „warum darf denn die software nicht optimiert sein, bzw. das betriebssystem?...“
Optionen
warum darf denn die software nicht optimiert sein, bzw. das betriebssystem?

Die Testerei nimmt ja nur auf sich, um ein optimiertes System zu erhalten.

Dass man Linux in vieler Hinsicht trimmen kann, ist ja kein Geheimnis. Deswegen ist es in Puncto Leistung Windows immer überlegen. Man muss eben wissen, welche Hebel man umlegen muss.

Deshalb sollte man bei einem frisch installierten System ausgehen. Testen, etwas optimieren, dann wieder testen. Schritt für Schritt. Ist was für Leute mit Zeit und einer Tabellenkalkulation ;-)

Wäre interessant zu erfahren, was der OP im Sinn hat.
bei Antwort benachrichtigen
Acader usernull „warum darf denn die software nicht optimiert sein, bzw. das betriebssystem? Die...“
Optionen

>Wäre interessant zu erfahren, was der OP im Sinn hat
Erst einmal danke für die ausführlichen Kommentare vor allem jene von Karsten.
Mir ging oder geht es eigentlich darum die Rechenkraft eines Programmes zu überprüfen welches auf dem gleichen Rechner einmal unter WindowsXP sowie unter inux/Ubuntu läuft. Da es sich aber bei den Rechenprogrammen um unterschiedliche Software handelt (einmal für Windows und einmal für Linux) ist somit schon kein reeller Vergleich gegeben. Deshalb war meine Frage in Bezug auf die Betriebssysteme Linux und Windows auf gleicher Hardware.
Wahrscheinlich kann man aber Beide doch nicht miteinander messen oder vergleichen weil sie eben anders sind.
Man kann dann nur eigentlich die laufende Software auf dem jeweiligen Betriebssystem messen oder auch vergleichen.

Gruß Acader

bei Antwort benachrichtigen
KarstenW Acader „ Wäre interessant zu erfahren, was der OP im Sinn hat Erst einmal danke für...“
Optionen

Man könnte es schon miteinander vergleichen, aber nur schlecht.
Die Programmiersprache C mit dem ANSI- und dem C99 Standard gibt es bei beiden Betriebsystemen.
Das größte Problem wird der Compiler selbst sein und natürlich die Prozessorarchitektur.
Für den Compiler gcc gibt es eine Menge an Optionen , mit denen man den Binärcode für die eingebaute CPU optimieren kann.

http://gcc.gnu.org/

Das heißt man übersetzt beispielsweise ein Programm , welches in der Programmiersprache C geschriebe ist, und übergibt dem gcc eine Option um den Binärcode (Linux verwendet das Binärformat ELF) für einen Petium 3 zu optimieren. Dann versucht der gcc vorwiegend Maschinenbefehle und Instruktionen in die Binärdatei zu schreiben die der Pentium 3 auch verarbeiten kann. Dieses Programm würde auf dem Petium 2 gar nicht mehr laufen , aber auf einem Pentium 4. (die Prozessoren sind abwärtskompatibel).
Ich habe nur gehört das die Entwicklung der Prozessoren sehr schnell vorran geschritten ist , aber der gcc nicht mehr so gut den Binärcode für die jeweilige CPU optimieren kann.
Ich habe keine Erfahrung mit dem gcc unter Windows und weiß nicht ob er unter Windows genau so läuft wie unter Linux.
Und dann kommen natürlich immer wieder die Unterschiede zwischen Linux und Windows zum Tragen. Beispielsweise bietet der Linuxkernel 3 verschiedene I/O Scheduler an. Wenn du den Linuxkernel selbst übersetzen willst , dann kannst du auch selbst entscheiden welchen Scheduler du im Kernel aktivieren willst. Der CFQ ist beispielsweise für Desktoprechner interessant. Solche Einstellungsmöglichkeiten hat man gar nicht unter Windows.

I/O Scheduler im Linuxkernel , die zur Auswahl stehen:

Anticipatory, Deadline , CFQ

PS: Wenn dich Programmiern interessiert, dann kannst du auch sehr schöne Lehrbücher für die Programmiersprache C bekommen:
In diesem Lehrbuch wird der gcc vorgestellt:

http://wwwuser.gwdg.de/~kboehm/ebook/inhalt.html

http://www.galileocomputing.de/katalog/openbook/?GPP=opc







Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
Borlander Acader „ Wäre interessant zu erfahren, was der OP im Sinn hat Erst einmal danke für...“
Optionen
Da es sich aber bei den Rechenprogrammen um unterschiedliche Software handelt (einmal für Windows und einmal für Linux) ist somit schon kein reeller Vergleich gegeben.
Du könntest z.B. Java-Anwendungen heranziehen. Wobei da natürlich die Leistungsfähigkeit der genutzten JVM eine sehr große Rolle spielen würde.

Oder zumindest Software die auf beiden Plattformen verfügbar ist: Z.B. GIMP, OpenOffice, Firefox. Liefert aber alles immer nur einen Anhaltspunkt für den getesteten Anwendungsfall.

Wenn Du z.B. eine größere Videosammlung konvertieren willst spräche auch nichts dagegen Dein bevorzugtes Windows-Programm mit Deinem bevorzugten Linux-Programm zu vergleichen und anschließend dann einfach die schnellere Umgebung für diese Aufgabe laufen lässt.


Gruß
Borlander
bei Antwort benachrichtigen
slap882 Acader „ Wäre interessant zu erfahren, was der OP im Sinn hat Erst einmal danke für...“
Optionen

Hi,

na ja, ein bisschen vergleichen kann man schon, um Beispiel Apfelmännchen mit hoher Iteration rechnen oder ein Video transcodieren.

Für den normalen Nutzer hilfreich könnte auc hilfreich sein: Mal ein Dutzend gleichartige Programme gleichzeitig aufzumachen, die alle auch etwas tun, und dann schauen wie die BS sich benehmen. (Ok, das ist unfair gegenüber Windows ;-) )

LG

slap

bei Antwort benachrichtigen