Re: e-mail verpasst wegen github
Hallo Matthias!
Am Dienstag, 21. Februar 2012 schrieb Matthias Böttcher:
> Am 20. Februar 2012 14:47 schrieb SchmiTTT <cv.schmitt@googlemail.com>:
> > Stimmt nicht ganz, dass der Code "garnichts" macht.
> > Gucke genau hin. Jede einzelne Adresse im RAM-Speicher wird auf den
> > boolean - Wert TRUE gesetzt.
> > Nachdem der RAM-Speicher dann mit TRUE aufgefuellt ist, wird ein
> > chip-Reset gemacht mit dem bios-chip.
> > (der RAM-Speicher wird losgelassen.)
>
> Hallo SchmiTTT,
>
> ich habe mir mal die Mühe und den Spaß gemacht, mir den von Dir
> geschrieben C-Code anzusehen, der hier
> http://lists.debian.org/debian-mentors/2012/02/msg00453.html
> veröffentlicht wurde.
> .
> Er macht effektiv: NICHTS.
> Nicht mal ein memory leak ist drin. Wirklich nur: nichts.
>
> Ich habe den Verdacht, dass Du nicht weißt, was Du da programmiert
> hast und dass Du nicht weißt, was Du mit dem Compiler tust.
>
> Also los:
> > #include <stdio.h>
> > #include <stdbool.h>
[… treffende Analyse des Quelltextes …]
> Dein Programm erzeugt 8388611 ( 2 + 2*4194304 + 1) Zeilen Ausgabe auf
> stdout, sonst nichts.
>
> Es wird nie in den Speicher geschrieben, außer in die von Dir
> deklarierten Variablen.
Also Du kapierst das nicht, Matthias. Wenn durch die vielen Ausgaben der
Puffer vom Terminal-Emulator überläuft schreibt das Programm darüberhinaus
und füllt damit den Speicher mit ganz viel "Addresses are here" und "now
them resetted" und ein paar Zahlen.
Die virtuelle Speicherverwaltung im Linux erkennt dann eine sogenannte
Unwahrscheinlichkeits-Situation - da es ja sehr unwahrscheinlich ist, dass
der gesamte Speicher mit diesem Text vollgeschrieben ist -, sendet dem
Prozess ein SIGFANTASTIC (42) und weist den Prozessor an, das Programm
rückwärtsherum abzuarbeiten. Da gängige Architekturen das Prozessor-Flag
aber nur CPU-granular unterstützen, arbeitet nun auch Brasero rückwärts,
sofern es auf der gleichen CPU läuft, was in Ein-Sockel-Systemen ja der
Fall ist. Und das gleich einen Bug in der Medien-Erkennung des Programms
aus.
Nur wenn eine Maschine mehr RAM hat als der Text lang ist und genügend
Speicher in seinem momentanen Zustand verbleibt, läßt Linux den Prozess
einfach so weiterlaufen.
CNR.
Ciao,
--
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7
Reply to: