[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: