Zum Inhalt springen

Wie/Wo wird ein Programm in binäre Zahlen konvertiert?


kimura

Empfohlene Beiträge

Hallo zusammen,

also die Frage ist vlt. etwas blöd und ihre Antwort wahrscheinlich (im besten Fall) sehr ausführlich. Mich interessiert, wie der Ablauf eines Programmes so zu sagen auf Hardware Ebene funktioniert. So wie ich es grob verstehe wird ein Programm von einem Compiler (auch noch auf Software Ebene) in 1 und 0 interpretiert. Diese werden dann vom Prozessor verarbeitet und stellen so beispielsweise Sachen da, oder verändern Daten auf anderen Ebenen. All das passiert durch Magie :D

Genau diese Magie möchte ich verstehen!

  • Wie wird der Strom an welcher Stelle in 1 und 0 konvertiert?
  • Wie interpretiert Hardware (bspw. CPU) Software und umgekehrt?
  • Gibt es hier für eine Art Modell, wie beispielsweise das OSI Modell auf Netzwerk Ebene?
  • Habt ihr Quellen für mich?
  • Woher weiss ein Prozessor, dass er Strom in bits konvertieren soll?

Ich möchte einfach so detailliert wie möglich verstehen, wie so einer Kiste oder einem Programm Leben ein gehaucht wird. Ich bin mir sicher, dass die Fragen von mir zu unspezifisch sind, Fachlichkeiten fehlen und eine Antwort auf diese Fragen sehr ausführlich zu sein vermag. Es scheint mir außerdem, als könnte ich die Frage die hinter all den kleinen Fragen steht nicht formulieren kann. Ihr würdet mir also sehr stark helfen, meinen inneren detailverliebten Monk mit Wissen zu füttern! 

 

Vielen vielen Dank!

Sendung Mit Der Maus Ard GIF by WDR

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich glaube, um diese Frage konkret beantworten zu können, müsstest du sowas wie "Computational Engineering" (mir fehlt das deutsche Pendant dazu) studieren... alternativ eventuell die "History of IBM" und Assembler lernen/lesen

 

Ist aber auch etwas, was ich gerne noch tiefgründiger verstehen wollen würde :D 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich sehe keinen wirklichen Mehrwert darin, sowas heutzutage zu verstehen, es sei denn, man arbeitet wirklich mit C(++), Assembly oder vlt. Rust.

Ich würde mir Kurse ansehen in denen es generell um CS geht, oder sowas hier https://www.edx.org/course/compilers

Da geht es wohl nur im Compiler...ist allerdings "Introducy"...was auch immer Anfänger 10 Wochen lang über Compiler lernen mögen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gast Interrupt
vor 21 Minuten schrieb DoctorB:

Ich glaube, um diese Frage konkret beantworten zu können, müsstest du sowas wie "Computational Engineering" (mir fehlt das deutsche Pendant dazu) studieren... alternativ eventuell die "History of IBM" und Assembler lernen/lesen

Nein, ein Fachinformatiker sollte die Grundlagen von Elektrotechnik sowie Digitaltechnik eigentlich in der Berufsschule behandelt haben. Wer sich in das Thema vertiefen möchte, der sollte eine E-Technik Ausbildung oder Studium machen. 

Hier mal einige Quellen in das Thema:

http://www.netzmafia.de/skripten/digitaltechnik/intro.html
https://www.elektronik-kompendium.de/sites/dig/index.htm

vor 56 Minuten schrieb kimura:

Wie wird der Strom an welcher Stelle in 1 und 0 konvertiert?

Um das zu verstehen brauchst du Grundkenntnisse in der Elektrotechnik (einschließlich in die Bauelemente und deren Physik) sowie die Grundlagen der Signalverarbeitung (Quantisierung und Sampling).

vor 56 Minuten schrieb kimura:

Wie interpretiert Hardware (bspw. CPU) Software und umgekehrt?

Woher weiss ein Prozessor, dass er Strom in bits konvertieren soll?

Das findet rein auf der Ebene der Digitaltechnik statt. Schau dir diesbezüglich die Boolesche Algebra an sowie die Schaltnetze mit den Logikbausteinen (Multiplexer, Register, FlipFlops usw).

MfG

Bearbeitet von Interrupt
Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 4 Stunden schrieb kimura:

Wie wird der Strom an welcher Stelle in 1 und 0 konvertiert?

Nicht Strom, sondern Spannung ist entscheidend. Liegt eine Spannung an, ist es eine 1. Wenn nicht, dann eine 0. Du kannst es wie eine Lampe vorstellen. Ist die Lampe an, liegt eine Spannung an und der Strom kann fließen. Somit repräsentiert die Lampe eine 1. Ist sie wieder aus, liegt keine Spannung an und somit ist sie dann eine 0.

vor 4 Stunden schrieb kimura:

Wie interpretiert Hardware (bspw. CPU) Software und umgekehrt?

In einem Prozessor sind Befehle implementiert. Für jeden Befehl gibt es einen sog. Opcode. Über diese Opcodes gibt man dann den Prozessor mit, was er tun soll. Alle Opcodes zusammen ergeben den Befehlsssatz. Es gibt z.B. den Befehlssatz für x64-Prozessoren, den z.B. AMD und Intel in ihren Prozessoren implementieren müssen, damit Programme, die für diese Prozessoren kompiliert worden sind, auch zuverlässig laufen.

Außerdem: Assembler != Maschinensprache.
Assemblercode ist nur eine lesbare Form der Maschinensprache. Im Assemblercode hat jeder Opcode einen Namen (sog. Mnemonics). Maschinensprache ist hingegen nur eine Reihe von 1 und 0.

vor 4 Stunden schrieb kimura:

Gibt es hier für eine Art Modell, wie beispielsweise das OSI Modell auf Netzwerk Ebene?

Nein. Das ist sehr speziell, da die Kompilierung nicht nur vom Prozessor, sondern auch vom Betriebssystem abhängig sein kann. Für Windows komplierte x64-Anwendungen laufen ja nicht nativ auf Linux-Systeme und umgekehrt, da man ja auch noch auf Funktionalitäten des Betriebssystem abhängig ist.

Bei Mikroprozessoren wird der Maschinencode direkt in den Speicher geladen und wird dann sofort ausgeführt.

vor 4 Stunden schrieb kimura:

Habt ihr Quellen für mich?

https://computer.howstuffworks.com/microprocessor.htm

https://computer.howstuffworks.com/ram.htm

Wäre vielleicht ein anfang, um grob die Funktionsweise zu verstehen. Im allgemeinen würde ich im Mikroprozessoren anfangen, wenn du die Funktionsweise besser verstehen möchtest, da diese vom Aufbau und Umfang überschaulicher sind, als die "großen" Prozessoren.

Wenn du ganz tief gehen möchtest, dann schaue dir die sog. Logikgatter an. Die Gatter sind die Grundlagen der Digitaltechnik und somit auch die Grundlagen aller Prozessoren, da ein Prozessor im Grunde nur aus diesen Gattern besteht.

vor 4 Stunden schrieb kimura:

Woher weiss ein Prozessor, dass er Strom in bits konvertieren soll?

Siehe erste Frage. ;)

vor 3 Stunden schrieb Interrupt:

Um das zu verstehen brauchst du Grundkenntnisse in der Elektrotechnik (einschließlich in die Bauelemente und deren Physik) sowie die Grundlagen der Signalverarbeitung (Quantisierung und Sampling).

Quantisierung ist hier überhaupt nicht nötig weil es darum geht, ein analoges Signal in ein mehrstufiges, digitales Signal zu überführen. Wir haben aber schon ein digitales Signal.

Bearbeitet von Whiz-zarD
Link zu diesem Kommentar
Auf anderen Seiten teilen

Falls es wirklich interessiert, kann ich die (englische) Seite und Videoserie von Ben Eater emfpehlen: https://eater.net/8bit

Er erklärt auf seinem YouTube Kanal relativ vom Anfang an, wie ein Computer funktioniert. Vom Halbleiter zum Transistor über D-/SR-Latch zum FlipFlop, etc. bis zum fertigen 8-bit Breadboard Computer aus TTL-Bausteinen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich hab von einem sog "Clean Computer" aus den 80ern noch Serviceunterlagen. Da steht fein drin was die Kiste beim Einschalten macht, wie RAM geprüft wird und dass die CPU dann ab Adresse 0x0000 anfängt den Code auszuführen. Kann ich bei Bedarf auch mal stellen. Am Prinzip hat sich ja nichts geändert

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zu AD/DA Wandler

https://www.rohm.de/electronics-basics/ad-da-converters/what-are-ad-da-converters

Ich glaube man lernt am Besten über Praxis. Leider ist es heute gar nicht mehr so einfach, z.B. einen alten Computer nachzubauen, um die Funktionsweise zu verstehen, da die entsprechenden Teile gar nicht mehr so einfach zu beschaffen sind. In der Apple Gruppe versucht gerade jemand einen Apple I zu rekonstruieren und eine Kleinstückzahl (50) zum 50sten Geburstag heraus zu bringen. Zeitfenster ist wohl die nächsten 5 Jahre)

Also FPGA-Systeme erlauben ein Re-Design der kompletten Schaltungen, die z.B. die Homecomputer früher ausgemacht haben. Der Spass ist allerdings nicht ganz billig.

Beispiel:

https://www.mister-fpga.de

https://de.wikipedia.org/wiki/Field_Programmable_Gate_Array

Bei Lego Mindstorms (Robotik Kit) war eine Version von National Instruments dabei, damit kann man visuell elektrotechnische Schaltungen testen und entwerfen.

https://www.ni.com/de-de/shop/labview/how-do-i-use-labview-to-teach-engineering-students.html

Leider ist Mindstorms mittlerweile sehr teuer, wenn man es überhaupt bekommt.

Ich würde mir einfach einen Elektronik Baukasten oder Roboter Kit bestellen, um E-Grundlagen zu lernen. Da gibt es ja viele Produkte im Markt.

Bearbeitet von tkreutz2
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...