Wie funktionieren Computer? Literatur?

Status
Für weitere Antworten geschlossen.
Was wäre das denn fürn Studiengang, aus dem ich mir Informationen beschaffe? Digitaltechnik?
Wo ich finde ich denn jetzt Aufzeichnungen, die jetzt auch nicht irgendwo mittendrin anfangen, sondern mir in irgendeiner Form einen Einstieg verschaffen.
Nächstbeste Uni ist die Uni Frankfurt. Ist als Schüler aber denke ich nicht so einfach, noch nebenbei die Uni zu besuchen. Dann vll. eher als Schülerstudium in der 10.
 
Noch nicht mal in der 10? Junge Junge, lern doch erstmal deinen Dreisatz.
 
Und trotzdem Mathe aus der 12?! Bzw. hab ich auch die Möglichkeit, wirklich nächstes Jahr zu studieren, jedoch bewerbe ich mich erst noch an ner andern Schule.
 
Mach erstmal dein Abi und wähl dabei, wenn möglich, ein IT-basiertes Profil. Dann lernst du schon, was nötig ist.
 
Informatik LK auf die anderen beiden. Mehr ist da nicht zu holen. Kann ich denn nicht ein bisschen voraus lernen? Les' ich eben das Buch auf englisch, im Internet ist doch eh schon alles auf englisch.
 
Zuletzt bearbeitet:
Ich glaube einfach, du hast ganz andere Probleme als Wissen auf Uni-Niveau... Bin mal gespannt, wie weit du mit englischer Technik-Literatur kommst. Ich bin wirklich ziemlich gut in Englisch, inklusive 2 Semestern technisches Englisch und n paar Zertifikaten... und trotzdem müsst ich mich da am Kopf kratzen.
 
Also es sollte schon klar sein, dass englische Fachliteratur etwas Anderes sind als englische Kinderbücher (Ich hatte vorher nur Harry Potter auf englisch gelesen :D). Aber was die englische Sprache angeht sind die Tannenbaum-Bücher schon eher verständlich gehalten. Wenn du das Geld für so was übrig hast: warum nicht? Falls du später an der uni etwas in Richtung Informatik studieren möchtest, dann ist das sicher nicht verkehrt sich schonmal etwas daran zu gewöhnen.
Die Frage ist nur: ist es das was du willst?

Also würde ich hier gern nochmal ganz konkret die Frage stellen: was genau erhoffst du dir denn jetzt von deinem Selbststudium? Also was interessiert dich, warum interessiert es dich und was willst du damit erreichen?

Vielleicht können wir dir dann noch zielgerichteter Tipps geben. Denn es gibt wirklich viele spannende, faszinierende Dinge auf dieser Welt und im Moment müssen wir noch ein bisschen raten, was für dich das Richtige sein könnte ;)
 
OT: Lies mal Herr der Ringe auf Englisch, da wirste blöde gucken. 'Alas! Alas!' cried Legolas...
Noch besser liest sich nur H. P. Lovecraft. Der konstante Gebrauch von Vokabeln wie "cyclopean" oder "gargantuan" erweitert den eigenen Wortschatz auf eine höchst sinistre Weise.
 
Als ich mit C++ anfing, dachte ich dass ich am Ende "alles verstehen würde" und dass alles schließlich "plötzlich Sinn ergibt". Aber C++ != Visual Basic ... Je weiter ich also gekommen bin, desto mehr Fragen haben sich mir eigentlich gestellt. Ich will endlich wissen, was alles dahinter steckt. Wie ein Compiler funktioniert, sozusagen eine Stufe runter gehen. Mir die Details anschauen. Vielleicht hätten sich mir diese Fragen nicht gestellt, wenn ich einfache weiter Visual Basic aus der Schule programmiert hätte, und weiterhin schöne Windows Forms angemalt hätte ... Wow, mit Streams u.a. kann ich Text ausgeben, aber wie kommt der Text erst auf den Monitor. Wie kann ich erst etwas programmieren. Und ich glaube außerdem mit dem Wissen, dass ich mir aneignen kann (!), ich auch automatisch besser programmieren kann, weil ich die internen Vorgänge auch richtig nachvollziehen kann, nicht mehr "Der Compiler macht das schon". Ein Compiler wird doch auch programmiert, oder war der von Anfang an da?

Wie bspw. Windows funktioniert, was geht, was nicht geht und warum. Lange genug habe ich immer einen PC benutzt, mich über so manches aufgeregt teilweise, aber mir nie Gedanken gemacht, wie viel dahinter steckt.

Btw: Eig. hatte ich vor, Mathe zu studieren, aber da ich mich grad eh beim Hansenberg bewerbe, ist alles grad n bisschen chaotisch ^.^
 
Fonce schrieb:
Ein gutes Buch wenn man auch mehr zur Hardware wissen möchte ist "Computerarchitektur" von Andrew S. Tanenbaum. Was Betriebssysteme angeht eben das von Daaron schon erwehnte "Moderne Betriebssysteme".

Mehr muss man diesem Thread eigentlich nicht hinzufügen, so sehe ich das nämlich auch.
Ich habe beide Bücher und kann sie beide zur Frage des TS empfehlen.




1337hAx' schrieb:
Ich habe gehört (Amazon Kundenrezensionen lol), das Buch sei nicht sehr gut übersetzt.
Kauf dir die beiden Bücher auf Deutsch, und halse dir nicht noch mit dem englischen Text ein weiteres Problem auf.
Die paar Übersetzungsfehler sind verschmerzbar.


(Außerdem konnte ich es nicht auf deutsch als Pdf "finden ^.^)
:rolleyes::


Ist die Sprache denn schwierig, wenn ich es mir auf englisch durchlese? Oder ist das im machbaren Rahmen?
Die Bücher sind etwa 1000 Seiten lang, wenn du dir das auf Englisch antun willst und bei manchen Wörtern ständig auf dict.cc nachschlagen willst, dann kannst du das natürlich tun. Da es die Bücher nun mal schon auf Deutsch gibt, würde ich dir aber dennoch zu den deutschen Büchern raten, insbesondere da du noch Schüler bist.

Aktuell lerne ich C++ und denke, dass es sehr hilfreich für das Verständnis sein kann, zu verstehen, wie ein Computer funktioniert. Bspw. Wie man von 0en und 1en bis zu Assembler über C++ zu C#/Java etc kommt.
Wenn du verstehen willst, was bei C++ unter der Haube passiert und warum die Sprache so ist, wie sie ist, wäre ein Buch über Assembler und Compilerbau eine gute Wahl.
Bezüglich Compilerbau würde ich dir hier aber eher raten, nach dem Abitur Informatik zu studieren und es erst dort zu lernen.

Mit Assembler kannst du auch schon vorher anfangen, das schadet nicht.
Auch würde ich bei x86 bleiben, weil es das Debuggen und Verstehen wesentlich vereinfacht.
Assembler läßt sich z.B. gut in C++ als Inline Assembler nutzen, dann kannst du auch bequem C++ Funktionen für die Ausgabe nutzen.


Und zu deiner Frage bezüglich Compiler.
Die wurden programmiert und waren nicht einfach da.

Vor dem Compiler wird normalerweise aber erst mal ein Assembler programmiert, der wandelt dann die Mnemonic in Opcodes um.
Hat man einen Assembler, dann programmiert man in Assembler einen Compiler.
Ist der erste Compiler fertig, macht es Sinn, den Compiler in der Hochsprache für den man den Compiler entwickelt hat neu zu schreiben und den Code mit dem zuvor entwickelten Compiler zu compilieren und später mit sich selbst.

So die Theorie. In der Praxis war das aber etwas vielschichtiger. Der x86 PC ist schließlich nicht der erste Computer. Man kann auch einen Compiler auf einer komplett anderen Computerarchitektur schreiben.
Das gleiche gilt für den Assembler.
Und bei den allerersten Computern gab es nicht mal Assembler, da wurden die Nullen oder Einsen in Lochkarten gestanzt und der Computer damit gefüttert.
 
Zuletzt bearbeitet:
Tigerass 2.0 schrieb:
Um zu verstehen, wie C++ funktioniert, musst du erstmal C verstehen.

Um zu verstehen, wie C funktioniert, würde ich mir Assembler anschauen.

Fonce schrieb:
Um zu verstehen wie C++ funktioniert brauchst du kein C. Das sind verschiedene Sprachen, wann lernen die Leute das endlich?
ich glaube, Tigerass meinte weniger, dass man erst C lernen müsse um C++ lernen zu können. Er meinte wohl eher dass C++ intern auf C-artige Konstrukte zurückgreift. Z.B. werden (oder wurden zumindest in früheren Umsetzungen von C++) Methoden so realisiert, dass es im Grunde einfache C-Funktionen sind, die versteckt als ersten Parameter immer einen this-Pointer auf die aktuelle Klasseninstanz übergeben bekommen.

Um in C++ programmieren zu können, muss man solche Sachen nicht wissen, das ist richtig (es sei denn, man verwendet Methodenpointer in seinem Code, da benötigt man das schon eher). Aber wenn man verstehen will, wie C++ funktioniert, also was da eigentlich im Hintergrund geschieht, ist so etwas durchaus nützlich.

@Threadtitel: Eine Antwort auf diese Frage, die nicht allzu ausufernd werden soll, würde ich folgendermaßen formulieren. Wie ein Computer funktioniert, macht man sich am besten anhand eines Schichtenmodells klar. Auf der untersten Schicht befinden bei heutigen Computern integrierte Schaltkreise aus Halbleiterbauelementen, so ziemlich das wichtigste Bauelement ist dabei der Transistor. Aus mehreren solcher Bauelemente baut man dann einen Schaltkreis, ein sog. Gatter zusammen, das eine logische Funktion, wie AND, OR, oder NOT, realisiert. Ein AND-Gatter hat z.B. zwei Eingänge und einen Ausgang, wobei an jedem der Eingänge ein Spannungssignal anliegt, das für eine 1 oder eine 0 steht. Stehen beide Eingänge auf 1, liefert der Ausgang als Ausgangssignal das Spannungssignal für 1, ansonsten das für 0.

Auf der nächsthöheren Schicht baut man dann aus mehreren solcher Gatter ein Rechenwerk zusammen, das z.B. zwei 64-Bit-Integer-Zahlen addieren, multiplizieren oder eine Reihe anderer mathematischer oder logischer Operationen darauf anwenden kann. Aus einem oder mehreren solcher Rechenwerke und anderen Komponenten, z.B. Registern zum Speichern der an das Rechenwerk weiterzugebenden Operanden (Zahlen, die zu verrechnen sind) oder zum Zwischenspeichern der vom Rechenwerk angelieferten Rechenergebnisse, kann man dann eine CPU zusammenbauen.

Eine CPU alleine macht allerdings noch keinen Computer aus, man braucht daneben zumindest noch einen Arbeitsspeicher (RAM), der heutzutage ebenfalls aus Halbleiterbauelementen besteht, die man ähnlich wie die Gatter in der CPU zu Schaltkreisen zum Speichern einzelner Bits, den Speicherzellen, zusammenschaltet. Bei SRAM, das meist bei Cache-Speichern zum Einsatz kommt, sind solcher Speicherzellen als Flip-Flops realisiert, bei DRAM mittels eines Kondensators. Üblicherweise sind solche Speicherzellen in einem Speicherchip in Matritzen aus Zeilen (Rows und Spalten (Columns) angeordnet. Mit den Spalten sind dann z.B. so Sachen die CAS Latency Time (kurz CL) verknüpft, wobei das C für Column steht.

Damit CPU und Speicher miteinander kommunizieren können, ist außerdem ein Bus erforderlich, über den beide Daten austauschen können. Bei Computern auf der Basis von x86-Prozessoren waren hier sogar gleich zwei Busse am Werk, einmal der Front Side Bus (FSB), der die CPU mit der Northbridge des Mainboards verband, und dann noch der Speicherbus, für die Verbindung Northbridge - Arbeitsspeicher. Neben CPU und Arbeitsspeicher braucht es dann außerdem noch Ein-/Ausgabe-Ports, damit der Computer mit der Außenwelt interagieren kann. Sollen die Daten auch nach einem Abschalten des Computers noch verfügbar sein, braucht es außerdem noch einen nicht-flüchtigen Speicher, etwa in Form einer Festplatte.

Das sind wohlgemerkt erst mal nur ein paar Grundprinzipien, moderne Computer sind i.d.R. noch weitaus komplizierter in ihrem Aufbau.
 
Ich habe mir mal in letzter Zeit ein paar Videos dazu angesehen. Bspw. den Transistor. Kann man sowas auch irgendwie selber machen? So 'ne Art Baukasten? ^^
Eins habe ich gelernt: Ohne Praxis geht nix!
Das ist eigentlich 'ne ganz interessante Sache. Mal so an die Leute, die sich vielleicht ein bisschen auskennen:
WER entwickelt denn Prozessoren? Ingenieure? Oder Displays o.ä. Ist es so, dass man sich die Forschung von der Physik abschaut und dann als Ingenieur in einem Unternehmen werkelt?
 
1337hAx' schrieb:
Ich habe mir mal in letzter Zeit ein paar Videos dazu angesehen. Bspw. den Transistor. Kann man sowas auch irgendwie selber machen? So 'ne Art Baukasten?
Nein. Ein Halbleiter zeigt nicht "mal eben so" das erwünschte verhalten, er muss dotiert werden. Diesen chemischen Prozess kannst du in deiner Küche nicht nachstellen.
Außerdem kannst du keine realistischen Integrationsdichten erreichen. Mit einer guten Uhrmacher-Ausrüstung udn einer geschulten & ruhigen Hand kommst du vielleicht auf auf 1-2 Millimeter pro Bauteil, aktuelle Halbleiter operieren im Nanometer-Bereich (dazwischen wären noch Mikrometer)...

Was du hingegen machen kannst: Verwende einfach Relais oder Röhren. Orientiere dich nicht an der aktuellen Halbleitertechnik, orientiere dich an der Technik des Zweiten Weltkriegs. Die kann man noch mit nem Lötkolben bauen. Die Theorie dahinter ist aber am Ende identisch.

WER entwickelt denn Prozessoren?
Ingenieure, und zwar sehr spezialisierte. Die physikalischen Grundlagen sind allen bekannt, aber die hauseigene Forschungsabteilung findet immer wieder mal neue Kniffe, wie man Dinge wieder etwas besser gestalten kann.
 
1337hAx' schrieb:
Eins habe ich gelernt: Ohne Praxis geht nix!

Alan Turing dreht sich gerade im Grabe um... :freak:

Wenn Du es wie Faust halten willst ("...was die Welt im Innersten zusammenhält..."), dann ist Kapitel 2 (2 Mathematische und technische Grundlagen) ab sofort Deine Bibel.
 
1337hAx' schrieb:
Ich habe mir mal in letzter Zeit ein paar Videos dazu angesehen. Bspw. den Transistor. Kann man sowas auch irgendwie selber machen? So 'ne Art Baukasten? ^^

Den Transistor? Eher nein, obwohl es auch schon einer Frau gelungen ist, einen Chip in ihrer Garage zu produzieren.
Allerdings brauchst du dafür Dinge, wie z. B. Flussäure zum Ätzen und sonstiges Equipment, an die du als Privatperson so ohne weiteres gar nicht rankommen wirst oder es sich von den Kosten schlichtweg nicht lohnt.

Was aber durchaus möglich ist, ist eine eine eigene CPU aus fertigen Bauteilen zu bauen.
Mit diskreten Bauteilen wie Transistoren, Widerständen und Kondensatoren wirst du aber selbst schon für eine 4 Bit Rechner sehr viel Platz benötigen, weswegen es hier wesentlich sinnvoller und kosteneffektiver ist, auf Logik ICs umzusteigen.
So ein NAND Baustein hat nämlich auf einem IC gleich mehrere NAND Gatter, was die ganze Angelegenheit vergleichsweise recht platzsparend macht.

Besonders sinnvoll ist das aber trotzdem nicht, denn mehr als ein 8 Bit Rechner wird das allein schon aufgrund der Kosten und vom Aufwand her nicht werden und dann wird dieser Rechner, sofern er denn funktioniert, vergleichsweise langsam sein.

Wenn du etwas sinnvolles machen möchtest, dann kaufe dir lieber fertige Mikrochips auf einem IC, wie z.B. einen MSP430 oder ATMega und baue darauf passierend deinen kleinen Rechner mit Eingabetasten und LC Display drum herum.

Von Röhren würde ich die Finger lassen, die sind verglichen mit diskreten Transistoren nicht nur schweineteuer, sondern brauchen noch wesentlich mehr Platz, Energie und besonders zuverlässig sind sie auch nicht. Der Eniac wurde aus Röhren gebaut, war so groß wie ein Haus und verbrauchte so viel Energie wie die einer ganzen Ortschaft.
Also vergiss die Röhren gleich mal ganz schnell.


Im Prinzip sieht's vom Platzbedarf, Kostenfaktor und Aufwand also so aus:

Röhrencomputer > Computer aus diskreten Halbleitern > Computer aus Logik ICs > Computer mit einem µC.

Ein Computer aus Relais ist irgendwo beim Röhrencomputer anzusiedeln, also auch schlechter als diskrete Halbleiter und im Gegensatz zum Röhrencomputer wäre der dann auch noch langsamer, da die Mechanik von Relais wesentlich langsamer schaltet als eine Röhre.
 
Zuletzt bearbeitet:
Er fragte nach einem Transistor... Eine Röhre oder ein kleines Relais (zur Not selbstgebaut aus ner kleinen Spule, nem Eisenkern,...) erfüllt den selben Zweck, ist aber deutlich größer und handhabbarer. Oh, und natürlich kann ein Relais oder Schütz deutlich höhere Leistungen schalten. Hier kann man tatsächlich mal sehen was passiert.
 
Eigentlich meinte ich nicht direkt einen Transistor, wie man ihn auch in 'nem richtigen PC verwendet (oder verwendet hat). Sondern eher die Schaltung dahinter. In 'nem Stromkreis z.B. wie wir das in Physik mal gemacht haben. Ich will nicht den nächsten Supercomputer bauen, sondern ein paar kleine Spielereien ausprobieren.

Ich hab schon immer die Leute bewundert, die in so'n winziges Ding so viel Leistung reinhauen.

Inwiefern spezialisierte Ingenieure? Ob das was für mich wäre, ist nochmal 'ne andere Sache, aber: Lernt man sowas im nach dem Diplom, bzw. nach heutigem Stand: macht man das im Master? Oder bei bestimmten Firmen?
Was macht denn so jemand den ganzen Tag?
Auf ein Blatt Papier viele Kritzeleien anfertigen, nach 3 Monaten" Heureka!" Schreien und dann seinem Chef aufgeregt erzählen: "Ich hab rausgefunden, wie wir die Leistung um 0.1% verbessern können?"
Wohl kaum.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben