gleicher code auf unterschiedlicher hardware



  • hallo,

    hab mich gefragt, wie software auf meinem windows pc laufen kann, wenn doch mal eine amd athlon xy oder eine intel duo core oder eine i7 CPU verwendet wird.

    ich verwende also denselben maschinencode (exe) auf unterschiedlichen CPUs oder?

    habe ich einen denkfehler? muesste man nicht pro cpu eine cpu spezifische exe erstellen?

    danke



  • Befehlssaetze von AMD und Intel sind gleich. Will man jedoch besondere Erweiterungen nutzten, so benoetigt man in der Tat verschiedene exe-Dateien.



  • achso so einfach...

    danke



  • knivil schrieb:

    Befehlssaetze von AMD und Intel sind gleich. Will man jedoch besondere Erweiterungen nutzten, so benoetigt man in der Tat verschiedene exe-Dateien.

    Dieter Nuhr schrieb:

    wenn man keine Ahnung hat...

    Eines der wichtigsten Features von Windows NT war damals dass Windows mit einem Hardware-Abstraction-Layer kam, diese HAL setzt sich individuell auf deiner Prozessor-Architektur auf und gibt dem Microkernel und Executive Layer eine uniforme Schnittstelle. Es ist etwas viel dass jetzt alles zu schreiben. Setze dich einfach mal mit Windows-Internals auseinander.



  • AP0LL0 schrieb:

    bla bla bla...

    wenn man keine ahnung hat einfach mal die fresse halten



  • _-- schrieb:

    AP0LL0 schrieb:

    bla bla bla...

    wenn man keine ahnung hat einfach mal die fresse halten

    In wie fern habe ich keine Ahnung von was genau _--?



  • AP0LL0 schrieb:

    In wie fern habe ich keine Ahnung von was genau _--?

    Das Design des Windows NT Kernels (HAL und whatnot) hat absolut und rein gar nichts mit der Frage hier zu tun, knivils Antwort dagegen schon. Daher wird man entweder zu dem Schluss kommen dass du die Frage nicht verstanden hast oder eben keine Ahnung hast von was du da oben redest 😉



  • dot schrieb:

    AP0LL0 schrieb:

    In wie fern habe ich keine Ahnung von was genau _--?

    Das Design des Windows NT Kernels (HAL und whatnot) hat absolut und rein gar nichts mit der Frage hier zu tun, knivils Antwort dagegen schon 😉

    Du ich kann dir gerne ein Buch empfehlen in dem dass alles nett und ausführlich erklärt wird.
    "Windows NT Device Driver Development" von Peter G. Viscarola.



  • ja, dann lies dir das doch nochmal durch! evtl. nochmal und nochmal bis du verstanden hast, was da drin steht und nicht einfach mit iwelchen komischen fachbegriffen rumschleuderst, die du nicht verstanden hast.



  • Ich kann dir nur empfehlen die Frage nochmal zu lesen und zu versuchen zu verstehen warum deine Aussagen absolut nichts damit zu tun haben bevor du dich hier noch weiter lächerlich machst...



  • dot schrieb:

    Ich kann dir nur empfehlen die Frage nochmal zu lesen und zu versuchen zu verstehen warum deine Aussagen absolut nichts damit zu tun haben bevor du dich hier noch weiter lächerlich machst...

    Oh wow, ich spüre mich von der Welle der rationalen Gegenargumente glatt überrollt.

    Wikipedia schrieb:

    A hardware abstraction layer (HAL) is an abstraction layer, implemented in software, between the physical hardware of a computer and the software that runs on that computer. Its function is to hide differences in hardware from most of the operating system kernel, so that most of the kernel-mode code does not need to be changed to run on systems with different hardware.

    Jetzt bring mal deine eigenen Argumente, bin ich mal gespannt. 😉



  • Die Argumente lieferst du dir eh schon selber:

    AP0LL0 schrieb:

    Wikipedia schrieb:

    Its function is to hide differences in hardware from most of the operating system kernel, so that most of the kernel-mode code does not need to be changed to run on systems with different hardware.

    Aber auch der HAL in einem OS Kernel wird zwischen x86 CPUs von Intel und AMD keinen großen Unterschied machen da beide eben die selbe Architektur implementieren wie knivil schon gesagt hat. Der Sinn von einem HAL ist es eben architekturspezifische Dinge möglichst vom restlichen Code zu isolieren um die Portierung auf eine andere Architektur möglichst einfach zu machen. Mit der ursprünglichen Frage hat das alles nach wie vor nichts zu tun...



  • dot schrieb:

    Die Argumente lieferst du dir eh schon selber:

    AP0LL0 schrieb:

    Wikipedia schrieb:

    Its function is to hide differences in hardware from most of the operating system kernel, so that most of the kernel-mode code does not need to be changed to run on systems with different hardware.

    Alle Applikationen kommunizieren mit den Hardware-Ressourcen (z.B.: CPU) über das Betriebssystem.

    Wiki schrieb:

    Kernel
    The kernel sits between the HAL and the Executive and provides multiprocessor synchronization, thread and interrupt scheduling and dispatching, and trap handling and exception dispatching



  • @AP0LL0: Wenn ich eine ausfuehrbare Datei habe, die die Erweiterung SSE4 benutzt, mein Prozessor aber kein SSE4 hat, dann wird sie zweifelsohne abstuerzen (im guenstigsten Fall).

    Alle Applikationen kommunizieren mit den Hardware-Ressourcen (z.B.: CPU) über das Betriebssystem.

    Nein, das ist falsch. Du missinterpretierst die Fakten auf wikipedia.



  • knivil schrieb:

    @AP0LL0: Wenn ich eine ausfuehrbare Datei habe, die die Erweiterung SSE4 benutzt, mein Prozessor aber kein SSE4 hat, dann wird sie zweifelsohne abstuerzen (im guenstigsten Fall).

    Alle Applikationen kommunizieren mit den Hardware-Ressourcen (z.B.: CPU) über das Betriebssystem.

    Nein, das ist falsch. Du missinterpretierst die Fakten auf wikipedia.

    Dass musst du mir jetzt mal beweisen.



  • Welche der Aussagen? Fange aber bitte selbst bei meinem SSE4-Beispiel an. Wie soll ein Programm, das SSE4 benutzt, auf einer CPU laufen, die kein SSE4 zur Verfuegung stellt?



  • knivil schrieb:

    Welche der Aussagen? Fange aber bitte selbst bei meinem SSE4-Beispiel an.

    Nein, das Code-Execution nicht vom Kernel/HAL gemacht wird.



  • Nur um das klarzustellen: In diesem Forum hier tummeln sich großteils Leute die Ahnung von ihrem Handwerk haben und keine Scriptkiddies die man mit Büchern über Treiberprogrammierung und ein paar Buzzwords die man irgendwo mal aufgeschnappt hat beeindrucken kann. Wir wissen was ein HAL ist und wie ein Betriebssytem funktioniert, viele hier haben sicher selbst schon an dem ein oder anderen OS Kernel Hand angelegt. Ich wiederhole einfach mal meine Empfehlung an dich einen Schritt zurück zu treten und die ursprüngliche Frage in diesem Thread zu lesen. Aber wenn du unbedingt alles auf OS Kernel Ebene diskutieren musst, folgender Hinweis: Die Kernelkomponente die mit der Frage hier am ehesten zu tun hat ist der Loader und nicht der HAL.

    Ansonsten hätt ich vielleicht mal eine Buchempfehlung für dich, gibts sogar auf deutsch...



  • dot schrieb:

    Nur um das klarzustellen: In diesem Forum hier tummeln sich großteils Leute die Ahnung von ihrem Handwerk haben und keine Scriptkiddies die man mit Büchern über Treiberprogrammierung und ein paar Buzzwords die man irgendwo mal aufgeschnappt hat beeindrucken kann. Wir alle Hier wissen was ein HAL ist und wie ein Betriebssytem funktioniert, viele hier haben sicher selbst schon an dem ein oder anderen OS Kernel Hand angelegt. Ich wiederhole einfach mal meine Empfehlung an dich einen Schritt zurück zu treten und die ursprüngliche Frage in diesem Thread zu lesen. Aber wenn du unbedingt alles auf OS Kernel Ebene diskutieren musst vielleicht folgender Hinweis: Die Kernelkomponente die mit der Frage hier am ehesten zu tun hat ist der Loader und nicht der HAL.

    Ach ich soll mich nicht von Büchern, die von langjährig erfahrenen Treiber-Entwicklern geschrieben wurden, nicht beeindrucken lassen, aber vom TypenXYZ auf ForumABC doch?

    Wenn du so ein Profi bist, was hast du denn gelesen. Welche Dokumente hast du die mein Wissen widerlegen können?



  • Ich hab es nicht notwendig mich hier mit irgendwelchen Büchern die ich gelesen hab zu profilieren. Wenn du es tatsächlich so drauf anlegst dich lächerlich zu machen dann bitte, go ahead, ich werd nichtmehr versuchen dich vor dir selbst zu bewahren...



  • AP0LL0 schrieb:

    Nein, das Code-Execution nicht vom Kernel/HAL gemacht wird.

    Eben, genau das versuchen wir dir hier die ganze Zeit klarzumachen...


Anmelden zum Antworten