* Thomas Hertweck wrote on Sat, Dec 17, 2005 at 12:12 +0000:
Steffen Dettmer wrote:
[...] Dann muss man sich aber merken, dass 0-1.000.000 ein 100Hz war, 1.000.001-2.456.789 bei 1000 weil der "Mplayer" lief, ab 2.456.790 war er wieder aus bis... ach, da war die Tabelle voll :-)
Das ist Unsinn. Der Parameter wird beim Booten gesetzt und gilt damit solange Dein Linux-Kernel laeuft.
Ich fing ja an mit:
"Obwohl uptime vermutlich eh nicht mehr funktioniert, wenn man die Zählfrequenz ändert"
Schön, dass wir uns einig sind, dass es kein Problem ist, wenn man die Frequenz nicht ändert, sondern nur einmalig einstellt oder einkompiliert. :-)
Er ist nicht von einer Anwendung abhaengig und wird im laufenden Betrieb nicht geaendert.
Hast Du einen Link da, der den Kernel-boot-parameter dokumentiert? Du schriebst ja, der sei SuSE-spezifisch; google konnte mir nicht helfen. http://kerneltrap.org/node/464 sieht ja auf den ersten Blick nicht so "konfigurierbar" aus, sondern eher nach "einkompiliert". Hast Du da was zur Hand? Danke! google fand jemand, dessen "uptime" den Überlauf irgendwie korrekt handhabte. Vielleicht ist da doch ein Schutz implementiert?
[...] wieso, wenn beim inc eax (oder was auch immer da genau gemacht wird) ein Überlauft passiert (da reicht ja schon ein Zeroflag), erhöht man halt noch einen Wert.
Der Gag an einem Overflow ist ja gerade der, dass es nicht auffaellt und *keinen* Error produziert bzw. triggert:
(kommt darauf an, welche Programmiersprache man gerade zufällig
verwendet, aber mir ist schon klar, dass Linux C ist :))
Ich war wohl zu knapp mit meiner Aussage, sorry. Ich versuche es nochmal
ausführlicher.
[... Overflow Beispiel C++ Programm ...]
"dass es nicht auffaellt" - Disziplin muss vom Programmierer kommen, C
erzwingt da nichts, ok. Kann man aber ganz einfach machen, hier zwei
Beispiele (basierend auf Deinem, nur in C):
#include
[...] Ja, den Kernel interessiert auch nicht, ob X läuft, also kann man den Computer auch auslassen... (?!)
Hmm, wohl nen Clown gefruehstueckt, was...?
Ja, sorry für den Sarkasmus, aber ist schon klar, dass den Kernel "selbst" das "nicht interessiert", wie ihn überhaupt die uptime nicht interessiert. Sorry, aber ich fand Deinen Hinweis nicht so wirklich produktiv - meiner Meinung nach IST es interessant. Auch andere scheinen diesem Überlauf Wert beizumessen und suchen ihn zu vermeiden, beispielsweise durch Vergrösserung des Datentypes um ein paar Millionen Jahre zu verschieben oder so - es gibt also durchaus Leute, die das interessiert. Da gibts für Linux mindestens patches. Vielleicht hab ich das ein bisschen "persönlich" genommen, weil wir mal ein Problem mit Windows und so einem Überlauf hatten - und zwar genau das "analoge" in Win - und ein Weilchen suchen mussten, um das zu finden. Ein klassisches Beispiel ist ja ein kurzes sleep (warten, bis wert grösser aktueller wert plus 10 ist - klappt natürlich nur, wenn die Overflows zusammen passen bzw nicht passieren). Irgendsowas war da im Code, trat selten auf, hatte aber manchmal Folgen. Hatte den Urprogrammierer in dem Moment wohl auch "nicht interessiert"... oki, teffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel.