GNU/Linux >> Znalost Linux >  >> Linux

V jakých případech nemusí být CLOCK_MONOTONIC k dispozici

Je rozumné předpokládat, že hodiny CLOCK_MONOTONIC jsou dostupné na všech moderních linuxových serverech?

Ano. Je rozumné předpokládat, že.

Ze znění ručního zadání gettime můžeme odvodit, že opravdu staré verze glibc nepodporují CLOCK_MONOTONIC . (Stále se snažím zjistit, jak je starý ... ale pravděpodobně když glibc prohlásil soulad s POSIX 1003.1.)

CLOCK_MONOTONIC byl specifikován (alespoň) v IEEE Std 1003.1, 2004 Edition, i když je stále možné, že implementace vyhovující libc nebude podporovat CLOCK_MONOTONIC .

Zdrojový kód linuxového jádra má podporu pro CLOCK_MONOTONIC hodiny minimálně od Linuxu 3.0 (2011).

Z jiných zdrojů to také závisí na tom, jak byl vytvořen glibc vašeho systému. (Při sestavování s „emulovanými časovači“, CLOCK_MONOTONIC není podporováno.)

Zde je několik případů, kdy to není podporováno:

  • S některými starými CPU čipy mohou být problémy; např. https://bugzilla.redhat.com/show_bug.cgi?id=1499480

  • Není podporován pro některé (všechny?) verze Cygwin.

  • Není podporován pro některé (všechny?) verze uCLibc na ARM.

Je také možné pro CLOCK_MONOTONIC být podporován, ale chybný:

  • Linux clock_gettime(CLOCK_MONOTONIC) podivné nemonotónní chování

Je rozumné předpokládat, že hodiny CLOCK_MONOTONIC jsou dostupné na všech moderních linuxových serverech?

K této otázce se mohu pouze vyjádřit. Ano, je rozumné, že všechny produkční systémy, které používáte, budou mít monotónní hodiny, ke kterým Linux ví, jak přistupovat. To platí také pro virtuální a kontejnerové servery.

Dobré inženýrství velí, abyste toto provedli kontrolu a v případě porušení předpokladu vyloučili chybu, ale s tím bych počítal při návrhu.


Linux
  1. Co je uživatel Linuxu?

  2. Co nedávat na Ssd?

  3. Co je Red Hat Linux?

  1. Linux vs. Unix:Jaký je rozdíl?

  2. Linux – Co dělá Osx programy nespustitelné v Linuxu?

  3. Jaké znaky mám nebo nemám používat v uživatelských jménech v systému Linux?

  1. Co je Umask v Linuxu

  2. Zkontrolujte, jaké hardwarové sloty jsou k dispozici pro Linux?

  3. Co je JingOS Linux?