Veröffentlicht 8. Juni 20223 j 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 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!
8. Juni 20223 j 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
8. Juni 20223 j 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.
8. Juni 20223 j 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 8. Juni 20223 j von Interrupt
8. Juni 20223 j Fang doch mal damit an dass Du Dir ein ausführbares Programm mit einem Hexdump Tool ansiehst. Das mache ich immer gerne mit Viren um zu sehen, welchen Compiler ein Dummbatz da benutzt hat.
8. Juni 20223 j 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 8. Juni 20223 j von Whiz-zarD
8. Juni 20223 j 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.
9. Juni 20223 j 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
9. Juni 20223 j vor 2 Stunden schrieb charmanta: Kann ich bei Bedarf auch mal stellen. Am Prinzip hat sich ja nichts geändert Ich bitte darum!
9. Juni 20223 j wird ein bisschen dauern, muss ich erst suchen ... steht irgendwo in meinen Tonnen Doku EDIT: das hier geht in dieselbe Richtung: https://www.edv-lehrgang.de/bios-basic-input-output-system/
9. Juni 20223 j 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 9. Juni 20223 j von tkreutz2
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.