Was bedeutet hardwarenah programmieren?

5 Antworten

Das ist meist eine sehr fließende Definition. In der Regel verwendet man den Begriff wenn man Hardware direkt (z.B. speicherbereiche, Register, cpu instructions) über die Sprache bzw. Mit asm snipets anspricht und nicht irgendwelche Frameworks der Sprache oder des Betriebssystems verwendet die den Zugriff abstrahieren. Pauschal gibt es aber auch die Aussage das es Sprachen gibt (z.B. C) die Hardware näher sind weil sie Konzepte der Hardware direkt in der Sprache abbilden (z.B. speicheradressen über pointe).

Computersysteme sind in mehreren Schichten aufgebaut:

  • Hardware – dazu gehören die CPU, RAM-Speicher, Festplatten- oder SSD-Speicher, Bildschirm, Graka, Soundkarte, Netzwerkkarte usw. Diesen Komponenten sind mehr oder weniger häufig sehr genaue Adressen oder Hausnummern zugeordnet.
  • Betriebssystem – damit die obigen Komponenten zusammenarbeiten, liefern Firmen wie Winzigweich oder Apfel ein Betriebssystem, das diese Komponenten mit „Leben“ erfüllt. Dafür werden dann Treiberprogramme geschrieben, über die sie angesprochen werden. Hat der Bildschirm den „Port 1“ wird dieser Port als Hausnummer im Programm übergeben und direkt auf der Hardware-Ebene (hardwarenah!) angesteuert.
  • JEDER Compiler begeht früher oder später den Schritt, dass er hardwarenah agieren muß. Schließlich ist eine Speicheradresse im RAM-Speicher auch in der Hardware hinterlegt. Allerdings sind mit „hardwarenah“ die weiter oben beschriebenen Hausnummern der diversen Controllerkarten gemeint, die vom Betriebssystem abgeschirmt werden, damit „normale“ Programme nur über bestimmte Schnittstellen und Umleitungen in das System eingreifen und nicht direkt einen Port ansprechen. Es können ja schließlich heutzutage mehrere Programme gleichzeitig (Multitasking!!) ablaufen und dann kann es sehr schnell zu Abstürzen des Computers kommen.

Hardwarenah programmieren heißt das man direkt mit der Hardware kommuniziert und nicht erst einen Compiler(Übersetzer) braucht, weil dies kostet wieder Zeit und Zeit sind FPS

benutzerFrage 
Fragesteller
 12.07.2015, 15:35

und wer übersetzt dann das hardwarenah programm wenn ei kein Compiler gibt

0
Jankplays2001  12.07.2015, 15:37

Das spricht direkt damit da brauchst du nix

0
Jankplays2001  12.07.2015, 15:38

Also der Cpu aber der braucht da nicht lange für alles läuft quasie über die CPU

0
ceevee  12.07.2015, 16:07

Und diese Antwort ist Quatsch. C wäre das klassische Beispiel für eine hardwarenahe Sprache und selbstverständlich wird C kompiliert. Ein Compiler arbeitet auch nicht zur Laufzeit eines Programms (das wäre ein Interpreter), sondern übersetzt das Programm in Maschinensprache. Und danach wird es erst ausgeführt und auch erst dann kommen die FPS ins Spiel, nicht zur Kompilierzeit.

1
benutzerFrage 
Fragesteller
 12.07.2015, 19:21

wenn du geschrieben hast man spricht die hardware direkt an... die Hardware kann gar nicht C nur Maschinencode

0

In C kannst z.B. direkt im Speicher rumwerkeln oder die Spannung an einem Pin der RS232 Schnittstelle abfragen. .NET oder Java haben einen Runtime-Interpreter dazwischen der das erschwert.

Hardwarenahes Programmieren bedeutet, dass man direkt mithilfe der Programmiersprache Hardwareschnittstellen anspricht, und nicht andere Software, welche dies dann übernimmt.