GNU/Linux >> LINUX-Kenntnisse >  >> Linux

In welchen Fällen ist CLOCK_MONOTONIC möglicherweise nicht verfügbar

Ist es vernünftig anzunehmen, dass die CLOCK_MONOTONIC-Uhr auf allen modernen Linux-Servern verfügbar ist?

Ja. Es ist vernünftig anzunehmen, dass.

Aus dem Wortlaut des manuellen Eintrags von gettime können wir schließen, dass wirklich alte Versionen von glibc CLOCK_MONOTONIC nicht unterstützen . (Ich versuche immer noch herauszufinden, wie alt ... aber wahrscheinlich, als glibc behauptete, POSIX 1003.1-konform zu sein.)

CLOCK_MONOTONIC wurde (mindestens) in IEEE Std 1003.1, 2004 Edition spezifiziert, obwohl es für eine konforme libc-Implementierung möglich bleibt, CLOCK_MONOTONIC nicht zu unterstützen .

Der Linux-Kernel-Quellcode hat Unterstützung für einen CLOCK_MONOTONIC gehabt Uhr mindestens seit Linux 3.0 (2011).

Bei anderen Quellen hängt es auch davon ab, wie die glibc Ihres Systems erstellt wurde. (Wenn mit "emulierten Timern" gebaut, CLOCK_MONOTONIC wird nicht unterstützt.)

Hier sind einige Fälle, in denen dies nicht unterstützt wird:

  • Es kann Probleme mit einigen alten CPU-Chips geben; z.B. https://bugzilla.redhat.com/show_bug.cgi?id=1499480

  • Es wird von einigen (allen?) Versionen von Cygwin nicht unterstützt.

  • Es wird für einige (alle?) Versionen von uCLibc auf ARM nicht unterstützt.

Es ist auch für CLOCK_MONOTONIC möglich wird unterstützt, ist aber fehlerhaft:

  • Linux clock_gettime(CLOCK_MONOTONIC) seltsames nicht-monotones Verhalten

Ist es vernünftig anzunehmen, dass die CLOCK_MONOTONIC-Uhr auf allen modernen Linux-Servern verfügbar ist?

Zu dieser Frage kann ich nur Stellung nehmen. Ja, es ist vernünftig, dass alle Produktionssysteme, die Sie verwenden, eine monotone Uhr haben, auf die Linux zugreifen kann. Dies gilt auch für virtuelle und Container-Server.

Gutes Engineering schreibt vor, dass Sie dies überprüfen und Fehler ausgeben, wenn eine Annahme nicht erfüllt ist, aber ich würde mich darauf während der Entwurfszeit verlassen.


Linux
  1. Linux vs. Unix:Was ist der Unterschied?

  2. Was ist ein Linux-Benutzer?

  3. Überprüfen Sie, welche Art von Hardware-Steckplätzen unter Linux verfügbar sind

  4. Was ist JingOS Linux?

  5. Der Linux-Befehl „ll“ funktioniert nicht

Linux-Audio - nur Lautsprecher oder Mikrofon verfügbar, nicht beides

Was ist die Login-Shell in Linux?

Was ist Load Average in Linux?

Was ist eine .bashrc-Datei unter Linux?

Top 10 Linux-Distributionen

Welche Videobearbeitungsanwendungen sind unter Linux verfügbar?