Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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 

 

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.

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

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

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.