Wie funktionieren Computer eigentlich?
Ein Überblick über die Funktionsweise von Computern mit binären Zahlen für neugierige Nicht-Techniker.
Wie Computer funktionieren, hat mich schon immer interessiert, aber ich hätte nie gedacht, dass ich über das nötige Grundwissen verfügen würde, um es zu verstehen, nicht einmal auf hohem Niveau. Die Nachforschungen, die ich angestellt habe, um diesen Blog-Beitrag zu schreiben, und die Erkenntnis, dass es gar nicht so schwer zu verstehen ist, haben sich sehr gelohnt. Außerdem ist das Verständnis der Funktionsweise von Computern, selbst auf hohem Niveau, ziemlich überwältigend.
Die grundlegendste Art, sich einen Computer vorzustellen, ist die einer Eingabe-/Ausgabemaschine. Das ist ein ziemlich grundlegender Gedanke: Computer nehmen Informationen aus externen Quellen auf (Ihre Tastatur, Maus, Sensoren oder das Internet), speichern sie, verarbeiten sie und geben das Ergebnis (Output) dieses Prozesses zurück. Übrigens, wenn man darüber nachdenkt, entsteht in dem Moment, in dem Computer über das Internet miteinander verbunden sind, eine Endlosschleife von Eingaben und Ausgaben, da die Ausgabe eines Computers (z. B. einer Website) zur Eingabe eines anderen wird und so weiter(!!).
Nun sind wir alle ziemlich gewöhnt und vertraut mit den Möglichkeiten, die ein Computer hat, um Eingaben zu empfangen und Ausgaben zu machen, wir alle haben eine Maus oder eine Tastatur benutzt oder sogar mit einem Computer gesprochen und wir alle haben einen Artikel auf einer Website gelesen, Musik gehört oder durch alte Bilder gestöbert, usw. Womit wir nicht so vertraut sind und was wir in der Regel nicht verstehen, ist, wie ein Computer tatsächlich Informationen verarbeitet.
Also ja, auf einer sehr grundlegenden Ebene versteht ein Computer nur Einsen und Nullen, was bedeutet, dass jede einzelne Eingabe und Ausgabe irgendwann in oder aus Einsen und Nullen übersetzt wird. Das Besondere an den 1en und 0en (auch Bits genannt – von BInary digiT) ist, dass wir damit jede Information in elektrische Signale (EIN/AUS) umwandeln können. Bitte nehmen Sie sich einen Moment Zeit, um darüber nachzudenken: ALLES, was Sie sehen, denken oder womit Sie interagieren, kann in elektrische Signale(!!!) umgewandelt und dargestellt werden. Die Darstellung von Informationen als elektrische Signale ermöglicht es Computern, diese Informationen tatsächlich zu verarbeiten und umzuwandeln.
Wie funktioniert also das binäre Zahlensystem? Binäre Zahlen bedeuten, dass alle Zahlen mit der Basis 2 gerechnet werden. Die meisten von uns sind es zum Beispiel gewohnt, an Zahlen mit der Basis 10 zu denken. Wenn Sie an eine beliebige Zahl denken, sagen wir 2561, können Sie sehen, dass die Zahl je nach der Position, die sie von rechts nach links einnimmt, einen anderen Wert hat, der ein Vielfaches von zehn ist. In diesem Beispiel steht die 1 an der 1er-Position, die 6 an der 10er-Position, die 5 an der 100er-Position und die 2 an der 1000er-Position. Auf diese Weise ergibt sich (2×1000) + (5×100) + (6×10) + (1×1) = 2561. Binäre Zahlen funktionieren genau so, aber jeder Schritt bedeutet eine Erhöhung um x2 gegenüber dem vorherigen Schritt. Hier ein Beispiel für die Darstellung der Zahl 12:
Mit 8 Bits kann man also jede Zahl zwischen 0 und 255 darstellen, und mit 32 Bits kann man jede Zahl zwischen 0 und 4 Milliarden darstellen. Sie denken jetzt vielleicht: Sicher, aber was ist mit Zeichenketten und Interpunktion? Nun, heute folgen wir immer noch dem ASCII, dem American Standard Code for Information Interchange, der im Grunde jedes Zeichen oder Satzzeichen, einschließlich Großbuchstaben, einer der 8-Bit-Zahlen zuordnet. Und so verwenden wir Zahlen, um Buchstaben darzustellen.
Sicher, aber was ist mit Bildern? Nun, ein Bild kann auch auf 0 und 1 reduziert werden. Wie Sie wissen, hat jeder Bildschirm eine bestimmte Anzahl von Pixeln, und jedes Pixel hat eine Farbe, und wie Sie wissen, können wir mit RGB- oder HEX-Farbcodes Farben als Zahlen darstellen, was bedeutet, dass wir einem Computer im Grunde sagen können, welche Farbe jedes Pixel haben muss. Das Gleiche gilt für Musik, Video und jede andere Art von Information, die Sie sich vorstellen können.
Aber wie zum Teufel „berechnen“ wir elektrische Signale? Hier kommen elektrische Schaltkreise ins Spiel. Auf einer sehr grundlegenden und stark vereinfachten Ebene können wir elektrische Schaltungen als „logische Maschinen“ verwenden. Wir können Schaltkreise verwenden, die bei einem bestimmten Eingang einen Ausgang liefern, der von der Logik abhängt, mit der sie aufgebaut wurden (Not, And, Or), aber auch Summen, Subtraktionen, Multiplikationen und Divisionen. Das Interessante daran ist, dass wir mit diesen sehr elementaren Formen der Darstellung und Verarbeitung von Informationen tatsächlich „funktionale Vollständigkeit“ erreichen können, ein Begriff, der in der Logik verwendet wird, um sich auf eine Reihe von booleschen Operatoren zu beziehen, die alle möglichen Wahrheitstabellen darstellen können, was eine schicke Art ist, mit der Mathematiker sagen, dass der Himmel die Grenze ist. All diese Berechnungen finden in einer Einheit innerhalb der CPU statt, die ALU (Arithmetic Logic Unit) genannt wird.
Wie Sie wahrscheinlich wissen, sind CPUs – Central Processing Unit – die Gehirne von Computern und hier finden alle Berechnungen statt. Das Interessante an CPUs ist, dass sie keinen Speicher haben, was bedeutet, dass sie sich absolut nichts merken können. Ohne Speicher würde jede Berechnung sofort nach ihrer Ausführung verloren gehen. Grob gesagt, und wie Sie vielleicht schon wissen, gibt es zwei Arten von Speicher, die unsere Computer verwenden: RAM, was für Random Access Memory und Persistent Memory steht. Sie können sich den RAM-Speicher als ein riesiges Gitter (Matrix) vorstellen, in dem 8-Bit-Zahlen gespeichert werden. Der RAM-Speicher merkt sich die „Adressen“ in der Speichermatrix für jede beliebige 8-Bit-Zahl, wenn die CPU sie braucht. Und wissen Sie was? Um diese Operationen durchzuführen, verwenden wir genau dieselbe Schaltungslogik wie zuvor. Das heißt, wir verwenden genau dieselbe Logik, um eine bestimmte Eingabe an einem bestimmten „Ort“ im Speicher abzulegen oder auf eine beliebige Information zuzugreifen, die dort gespeichert ist.
Ich weiß, dass ich hier kaum an der Oberfläche der Funktionsweise von Computern kratze, aber allein um das zu verstehen, habe ich schon einige Zeit gebraucht, und es hat mich schon mehr als ein paar Mal umgehauen. Was mich daran fasziniert, ist, wie leistungsfähig Computer sind und wie sehr sie in unser tägliches Leben eingebettet sind, deshalb denke ich, dass es wichtig ist, zumindest eine Vorstellung davon zu haben, wie sie funktionieren. Außerdem, wie immer, wenn du irgendeinen Fehler entdeckst, lass es mich bitte wissen.
Ich beende diesen Beitrag mit einem Video, das ich wirklich mag, in dem Steve Jobs Computer mit Fahrrädern vergleicht:
Hier ist eine Liste von erstaunlichen Ressourcen, die ich bei der Recherche für diesen Beitrag gefunden habe:
Khan Academy’s 5 kurze Videos darüber, wie Computer funktionieren: https://www.khanacademy.org/computing/computer-science/how-computers-work2/v/khan-academy-and-codeorg-introducing-how-computers-work
Die Crash Course-Reihe über Informatik ist absolut erstaunlich: https://www.youtube.com/watch?v=O5nskjZ_GoI
Eine Einführung in Logik und Wahrheitstabellen: https://medium.com/i-math/intro-to-truth-tables-boolean-algebra-73b331dd9b94
NAND-Logik, um ein besseres Verständnis dafür zu bekommen, wie elektrische Schaltungen logische Operationen durchführen können: https://en.wikipedia.org/wiki/NAND_logic
Die Wikipedia-Seite für ASCII: https://en.wikipedia.org/wiki/ASCII
Wikipedia-Seite für Binärcode mit einer kurzen Geschichte der binären Arithmetik: https://en.wikipedia.org/wiki/Binary_code
Wenn Sie tiefer einsteigen wollen, finden Sie hier einen guten Startpunkt: https://softwareengineering.stackexchange.com/questions/81624/how-do-computers-work/81715
Danke, dass Sie bis hierher gelesen haben.