Webserver - software

  • Hallo leute,


    Ich interessiere mich wirklich derbst für die kleinsten bestandteile von PC => software mäßig^^


    Wenn ich jetzt in php folgendes script habe

    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br />md5</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"wort"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">?><br /></span></span>


    dann wird dieser Code auf dem server ja in C(++) umgewandelt, soweit klar.


    Ein C(++) Compiler setzt das ganze dann in Maschienensprache. Das ist doch dann der uns allen bekannte Binäre Code. (zum Beispiel: 01101)
    Woher weiß jetzt aber ein Computer, dass er mit zum Beispiel 01101 etwas nach einem vorgegebenen Muster verschlüsseln soll und nicht zwei Zahlen addieren?
    Einen compiler auf eine Niedrigerere Stufe gibt es ja nun nicht mehr.


    Woher weiß der Computer den nun, was zu tun ist?
    Ich verstehe das nicht und finde ehrlich gesagt dazu auch nix :(


    Kann mich bitte wer erleuchten?

  • Der Webserver wandelt den PHP Code nicht in C++ Code um und kompiliert ihn dann, der Webserver hat eine ganz eigene Art PHP zu kompilieren, PHP wird nicht in C++ umgewandelt sondern wurde lediglich auf dem selben Prinzip wie C++ entwickelt (Syntax, Funktionalität, etc.)


    Warum der Computer weiß was zu tun ist?


    Dafür muss man natürlich wissen wie ein Prozessor arbeitet.


    Der Prozessor an sich kann eigentlich nur: addieren, subtrahieren und verketten (Bytes aneinander hängen).


    Der Maschinencode heißt übrigens nicht Maschinencode weil irgend ein Entwickler das witzig fand, der Maschinencode ist ein für Maschinen lesbarer Code.
    Ein Prozessor kann kein "a" lesen, aber der Prozessor kennt die Zustände: Strom / kein Strom (1 / 0).
    Nehmen wir jetzt das a, das a, genauer das A.
    Das große A hat eine nDezimalwert von 65 (das kleine a 97), im Maschinencode sieht 65 so aus: 1000001, siehe dazu folgende Tabelle:



    Ein Prozessor arbeitet aber mit Bytes, jede 1 oder 0 in unserem neuen String ist ein Bit, ein Byte fasst 8 Bit und man käme insgesamt auf einen Dezimalwert von 255, ein Byte kann also 255 Zeichen auffassen (Achtung, heutzutage sprechen wir allerdings von 32 Bit Systemen, das heißt 4294967295 Zeichen, oder sogar 64 Bit: Zahl nicht so wirklich nachvollziehbar, wer hier eine PHP Aufgabe möchte: erstelle eine Schleife welche nach oben genannten Muster mit 64 Bit den Dezimalwert ausrechnet).


    Da unser String (1000001) nur 7 Stellen hat, addieren wir für unser 8 Bit System noch eine 0 davor: 01000001


    Der Prozessor bekommt nun diesen Code (noch nicht ganz). Wie auf dem Arbeitsamt kommt der Code erst mal ins Wartezimmer, hier ist das der RAM-Speicher (Random Access Memory, Speicher zum lesen, schreiben, überschreiben und löschen).
    Von dort aus kommt er ins 1. Büro des Arbeitsamtes, dem Hauptteil des Prozessors, dieser liest den Code und weiß nun indirekt das es ein A werden soll, jedoch weiß der Prozessor nicht was damit zu tun ist, also spuckt er Fehler aus (meist ein Alert Fenster in dem der Speicherplatz auf dem RAM-Speicher benannt wird welcher Fehlerhaften Code sendet).


    Kommt nun aber eine ganze Feriengruppe aus dem RAM-Speicher in den Prozessor (ein Willkürliches Beispiel: 00000010, 00110011, 00000001 [es stimmt zwarn icht unbedingt aber diese Kette an Bytes soll jetzt mal 2 + 1 heißen]).
    Der Sachbearbeiter auf dem Arbeitsamt (der Prozessor) sieht jetzt 2 Zahlen und einen Operator (das +) und weiß somit: Diese Gruppe schicke ich in die Abteilung für + Rechnung, also macht sich die Reisegruppe auf in den 3. Stock auf das Addieramt, dort angekommen wird ein Sachbearbeiter herausfinden das 2 + 1 = 3 ist und wird mit einem neuen Operator (z.B. =) die Reisegruppe zuückschicken, diese sähe dann z.B. so aus: (00000000, 11110000, 00000011 [ = 3 ]).
    Nun wird die Reisegruppe wieder zum 1. Sachbearbeiter zurückgeschickt, der sieht: ein ausgebbares Ergebnis und setzt die Gruppe in den Rückgabebus (interessant: eine Gruppe würde man in einen Bus setzen, zum verreisen, ein Ergebnis der CPU setzt man in den Return Bus, heißt auch so..).
    Der Bus fährt zurück zum Programm und wird dort wieder in für das Programm lesbaren Code verwandelt (dieses mal eben von 00000011 zu 3).


    So grob lässt sich das erklären :!:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!