Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/10/2019, à 19:47

Guig2000

Pourquoi linux considère l'heure matérielle comme étant en UTC?

Bonjour,

J'avais un petit problème de décalage de deux heures sur deux PC en dual boot windows/linux.

Je décide de régler le problème, Duckduckgo me trouve la solution sur le forum, et je comprends que depuis quelques années, sous linux, on considère que l’horloge matérielle est par défaut considérée en UTC, alors que sous windows on considère comme avant qu'il est en heure locale.

Je comprends cette idée, dans le cadre d'une utilisation serveur, avec des clients internationaux, ou un groupe de serveurs formant un "cloud", répartit sur plusieurs lieus d'heures différentes, d'avoir une heure matérielle en UTC et que l'heure locale dépende de la session utilisateur, mais même là cela me semble souvent contestable, on devrait pouvoir se contenter de l'heure du poste client. Par exemple, pour un serveur web, cela n'a pas beaucoup de sens.
Mais là où ça n'a vraiment aucun sens, c’est dans la cas des distributions destinées au grand public comme ubuntu et ses dérivés: la machine est à un endroit physique qui a son heure locale, autant avoir l'horloge matérielle (BIOS) directement en heure locale, non?

Es-ce qu'il a été décidé qu'une serveur particulière prévalait sur le reste? ou y a t'il des raisons plus profonde?

Mais pourquoi, quel est le sens de ce changement, n'est-ce pas une forme de snobisme techno-geek? A tel point que j'ai vu des messages "c'est windows qui a tords et Linux qui a raison".

Qu'en pensez-vous?

Dernière modification par Guig2000 (Le 14/10/2019, à 19:48)

Hors ligne

#2 Le 14/10/2019, à 21:18

Nuliel

Re : Pourquoi linux considère l'heure matérielle comme étant en UTC?

Honnêtement je trouve ça plus logique de considérer l'heure UTC plutôt que l'heure locale. L'heure UTC ne change pas, alors que l'heure locale peut si on bouge. L'heure UTC, c'est un standard.

Hors ligne

#3 Le 14/10/2019, à 21:24

Guig2000

Re : Pourquoi linux considère l'heure matérielle comme étant en UTC?

Donc tu pense que la prédominance des machines mobiles (ordinateurs embarqués, smartphone/tablettes Pc portable ets) (en nombre) sur les machines fixes est une des raisons qui justifie ce changement?
Et que ça ne sers à rien d'avoir la même heure dans le bios et dans le système?

Hors ligne

#4 Le 14/10/2019, à 21:33

Nuliel

Re : Pourquoi linux considère l'heure matérielle comme étant en UTC?

Déjà si le bios peut fournir l'heure UTC, c'est déjà pas mal je trouve. Après le système va bien se débrouiller pour corriger et récupérer l'heure locale.
Je pense pas forcément à la pré dominance de ces machines, mais plutôt que lorsqu'un standard est dispo (ici l'heure UTC), c'est toujours une bonne idée de le suivre smile

Hors ligne

#5 Le 15/10/2019, à 09:48

bruno

Re : Pourquoi linux considère l'heure matérielle comme étant en UTC?

Bonjour,

À ma connaissance les BIOS ne gèrent pas les fuseaux horaires et a fortiori les changements d'heure été/hiver s'il y a lieu. Le BIOS, ou plutôt l'horloge matérielle (CMOS), devrait donc toujours être réglé sur l'heure universelle UTC. C'est au système d'ajuster et de synchroniser l'heure. Et c'est extrêmement important sur tout type de serveur et sur les machines de bureau.

Je crois quel le seul système d'exploitation qui n'utilise pas l'heure UTC pour l’horloge matérielle est Windows. Et c'est stupide, même si cela est fait pour des raisons de compatibilité avec de très ancienne versions de Windows.

#6 Le 15/10/2019, à 10:35

diesel

Re : Pourquoi linux considère l'heure matérielle comme étant en UTC?

Ubuntu se fout de l'heure donnée par l'horloge matérielle, non ?

Il va récupérer une heure UTC via le protocole ntp, puis en fonction du fuseau choisi dans le système, il affiche une heure locale.

Ou je me trompes ?

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#7 Le 15/10/2019, à 16:53

Nuliel

Re : Pourquoi linux considère l'heure matérielle comme étant en UTC?

@diesel83140: oui je pense, sauf dans le cas où il n'y a pas internet, là ça doit être l'heure du bios qui est prise. Et j'imagine que l'heure du bios est utilisée avant qu'un serveur ntp soit joint

Hors ligne

#8 Le 15/10/2019, à 17:25

abecidofugy

Re : Pourquoi linux considère l'heure matérielle comme étant en UTC?

En tous les cas, je n’ai jamais eu de problème d’heure : le réglage étant toujours parfait sur les (x)Ubuntu que j’ai essayé. Par contre, ayant à installer un Windows 10 encore récemment, j’ai dû corriger manuellement cette donnée. D’ailleurs leur interface est mal foutue pour faire ça…

Hors ligne

#9 Le 15/10/2019, à 17:47

Guig2000

Re : Pourquoi linux considère l'heure matérielle comme étant en UTC?

Bonjour,
@diesel83140 Il ne s'en fout pas, il utilise l'heure matérielle en la considérant comme UTC, et calcule l'heure locale (celle affichée) en fonction des réglages de fuseau horaire de l'OS. Quand il joint un serveur ntp, il met à jour l'heure matérielle en conséquence ainsi que l'heure locale. C'est pour cela que si le fuseau horaire de ta machine linux est réglé sur Paris/Berlin, si tu vas dans son interface BIOS/UEFI, tu verra qu'il affiche actuellement un retards de deux heures, bien que linux affiche une heure correcte. Ce qui est contre-intuitif pour l'utilisateur.
Dans le cas d'un double-boot avec windows, le problème est accentué car windows considère que l'horloge matérielle est à l'heure locale, windows va donc afficher deux heures de retard à son démarrage. Bien sur, si tu change l'heure dans windows, ce dernier le répercute dans l'horloge matérielle, et au prochain boot sous linux, ce dernier va corriger à nouveau dans l'autre sens.
La solution pour l'utilisateur étant de changer les réglages UTC/RTC soit de windows soit de linux en modifiant la base de registre pour le premier ou en exécutant une commande pour le second.


Pour un smartphone ou une machine embarquée, l'utilisateur n'a pas accès visuellement à l'heure matérielle, alors là ok, si ça arrange les devs qu'elle soit en UTC ça n'a, pour l'utilisateur final, aucune conséquence négative, au contraire, sans doute.

Pour reformuler de manière plus sérieuse et moins trollesque ce que j'ai dit plus haut: On dirait qu'à un moment, à ce sujet, il y a des gens qui ont oublié qu'un OS reste un outil, et qu'en tant que tel, à la fin, c’est l'expérience utilisateur qui doit primer. Dans ce cas, à mon avis, cette dernière se voit dégrader, certes faiblement, pour ce qui me semble être une simple convention technique.


Pour répondre, plus précise:

Naziel a écrit :

Déjà si le bios peut fournir l'heure UTC,

oui, sauf que dans l'interface BIOS/UEFI, il n'y a pas écris heure UTC, juste "heure" d'un point de vue utilisateur, il s'agit donc implicitement de l'heure locale.

c'est déjà pas mal je trouve. Après le système va bien se débrouiller pour corriger et récupérer l'heure locale.
Je pense pas forcément à la pré dominance de ces machines, mais plutôt que lorsqu'un standard est dispo (ici l'heure UTC), c'est toujours une bonne idée de le suivre smile

Oui, bon argument, mais il faudrait que le standard soit appliqué pas seulement par l'OS mais aussi par les fabricants de cartes mères dans le bios. Là, ce serai explicite pour l'utilisateur.

bruno a écrit :

Bonjour,

À ma connaissance les BIOS ne gèrent pas les fuseaux horaires et a fortiori les changements d'heure été/hiver s'il y a lieu.

Oui, on s'en fout, non? Vu que comme tu le dit à la suite, l'OS va corriger (directement en changeant l'heure matérielle si c’est windows).

Le BIOS, ou plutôt l'horloge matérielle (CMOS), devrait donc toujours être réglé sur l'heure universelle UTC.

Pourquoi? 

C'est au système d'ajuster et de synchroniser l'heure. Et c'est extrêmement important sur tout type de serveur et sur les machines de bureau.

Je crois quel le seul système d'exploitation qui n'utilise pas l'heure UTC pour l’horloge matérielle est Windows. Et c'est stupide, même si cela est fait pour des raisons de compatibilité avec de très ancienne versions de Windows.

Pur jugement de valeur? non argumenté en tout cas.

EDIT: reformulation/Français.

Dernière modification par Guig2000 (Le 15/10/2019, à 18:03)

Hors ligne

#10 Le 16/10/2019, à 10:09

bruno

Re : Pourquoi linux considère l'heure matérielle comme étant en UTC?

On a un standard qui donne l'heure de manière absolue : UTC. Quel que soit l'endroit où l'on se trouve dans le monde et quelle que soit la date (été/hiver) on sait que c'est l'heure avec un décalage de 00:00.  La plupart des systèmes d'exploitation Linux, UNIX, MacOS choisissent d'utiliser le standard pour stocker une heure absolue dans l'horloge matérielle.
Un autre système, Windows, choisit de ne pas respecter le standard (tiens donc…) et de stocker une heure relative en RTC. C'est stupide parce que cette heure n'a de sens que si l'on connaît aussi le fuseau horaire et l’éventuel décalage saisonnier et ces données qui sont inconnues du BIOS. C'est comme si on stockait une position sans préciser le référentiel (du type je suis à 20 km au sud et 10 km à l'est).

Il y a un standard qui permet de donner l'heure de manière absolue, sans ambiguïté. C'est factuel, sans jugement ni opinion.
Dire que stocker l'heure en UTC est contre-intuitif par contre c'est une opinion ; c'est subjectif. Personnellement je trouve cela parfaitement logique et évident. Et le seul problème que cela pose c'est en cas de multiboot avec un OS qui ne respecte pas les standards.

Un peu de lecture sur comment l'horloge est gérée par Linux et pourquoi il est préférable d'avoir l'heure en UTC dans l'horloge matérielle : http://tldp.org/HOWTO/Clock-2.html

Maintenant si le comportement de Linux ne te convient pas, tout est configurable : cf. man timedatectl

#11 Le 16/10/2019, à 11:52

Guig2000

Re : Pourquoi linux considère l'heure matérielle comme étant en UTC?

Merci pour la doc.
Concernant la config de mes distro, c'est déjà fait comme indiqué dans le premier message du sujet.

Je crois que on ne voit juste pas le sujet sous le meme angle.

Hors ligne

#12 Le 16/10/2019, à 13:50

diesel

Re : Pourquoi linux considère l'heure matérielle comme étant en UTC?

Le BIOS, UNIX et NTP existaient déjà bien avant windows.

La bonne question à se poser, c'est pourquoi ces ... de Microsoft ont cru bon de ne pas faire comme tout le monde.

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#13 Le 16/10/2019, à 16:19

abecidofugy

Re : Pourquoi linux considère l'heure matérielle comme étant en UTC?

diesel83140 a écrit :

Le BIOS, UNIX et NTP existaient déjà bien avant windows.

La bonne question à se poser, c'est pourquoi ces ... de Microsoft ont cru bon de ne pas faire comme tout le monde.

Amicalement.

Jean-Marie

C’est parce que chez Microsoft, ils tournent sur Apple wink : think different

Hors ligne

#14 Le 18/10/2019, à 02:07

Béru

Re : Pourquoi linux considère l'heure matérielle comme étant en UTC?

Guig2000 a écrit :

Pourquoi? 

C'est au système d'ajuster et de synchroniser l'heure. Et c'est extrêmement important sur tout type de serveur et sur les machines de bureau.

Je crois quel le seul système d'exploitation qui n'utilise pas l'heure UTC pour l’horloge matérielle est Windows. Et c'est stupide, même si cela est fait pour des raisons de compatibilité avec de très ancienne versions de Windows.

Pur jugement de valeur? non argumenté en tout cas.
EDIT: reformulation/Français.

Ouch!
Cher Guig2000, poser une question sur un choix passé et sur sa rationalité actuelle, à fortiori si ce choix remonte à longtemps, c'est comme jeter un caillou dans un nid de guêpes! Bon courage.
big_smile
Y a t il une raison absolue d'avoir un courant de 220V 50Hz plutôt que 110V 60Hz? Y a t il une raison de conduire à droite plutôt qu'à gauche? A l'époque où le choix a été fait, ça a semblé une bonne raison. Même si elle a cessé d'être valide par la suite, il y a tellement de choses qui fonctionnent comme ça que le coût de changer est devenu trop élevé. On garde ce choix tant que c'est moins compliqué de le garder que de changer.
On a souvent tendance à vouloir expliquer des choix passés en ce basant sur nos connaissances actuelles et c'est une erreur. La meilleure raison d'un choix passé, c'est... qu'il a fallait choisir maintenant et pas demain, avec les éléments qu'on avait sous la main.

Je ne peux que faire des suppositions, surtout pour windows, mais je vois de bonnes raisons à des choix d'heure différente.

Linux dérive d'UNIX (1969) qui a probablement choisi comme référentiel l'UTC parce que les clients d'UNIX étaient des universitaires. Donc:

  • amenés à travailler sur de grosses machines (mini-ordinateurs) toujours ou presque branchées sur le courant

  • donc la synchronisation était importante et

  • il y avait un type dédié pour faire le réglage de l'heure et de la machine

  • et les universitaires qui bossaient dessus n'avaient pas à fourrer les mains dans le bios pour régler l'heure et s'ils avaient eu à le faire, il savaient parfaitement ce que c'est que l'UTC.

Qui plus est, les universitaires en question ont rapidement eu une bonne connexion réseau qui leur a permis d'avoir accès au NTP (1985), plus besoin de s'ennuyer à régler l'heure.

Windows (qui n'aura de succès qu'avec la version 3.x soit en 1990), ou plutôt Microsoft avec MS-DOS (mi années 80), ne ciblait pas les universitaires mais des particuliers avec des micro-ordinateurs. Avec notamment les "compatibles PC". C'est plus tardif, ça arrive dans les années 80.
Qui dit particulier dit:

  • connaissance très limitée de l'UTC (dans mon enfance, je connaissais vaguement l'existence du méridien de Greenwich, que j'appelais "l'heure anglaise" tongue.)

  • pas de connexion réseau. Ou peu. C'est plutôt les (la fin des) années 90. Donc pour le NTP, tu repasseras. Pour avoir l'heure exacte, il fallait appeler le 3699 au téléphone. Qui évidemment te donnait l'heure du méridien de Paris, pas l'UTC.

  • il n'y a pas de technicien expert qui va te mettre le BIOS à l'heure UTC, donc tu le règles à l'heure de ta montre. Et ça n'est pas grave parce que

  • tes besoins de synchronisation sont (quasi) nuls.

A partir de là, je pense que windows n'a pas voulu s'ennuyer et surtout ennuyer des tas de clients avec un système de synchronisation de l'heure différente. D'autant que windows devait supposer qu'il serait le seul sur ta machine. D'un autre coté, à priori, un système dual boot est une absurdité vu qu'un seul OS est censé faire tout le boulot dont tu as besoin (hélas non sad ).

Ceci dit, il est possible de régler windows pour qu'il utilise l'UTC. Je l'ai fait sur ma bécane il y a un bail, ça nécessitait pas mal de manip mais ça marche. En fouillant un peu tu dois pouvoir trouver comment faire.

Je pense surtout que la question d'utiliser UTC ou autre chose n'a eu de sens qu'avec l'arrivée d'Internet chez les particuliers et les entreprises. La question n'étant pas tellement UTC mais le besoin de synchronisation. A partir du moment où ce besoin de synchronisation devient mondial, un référentiel unique devient important, et UTC est un référentiel unique. Cf influence du chemins de fer sur la nécessité d'une heure commune pour tout un pays.


Actuellement sous buntu sauce mint (bien que pas anglais). Grande préférence pour les versions LTS qui ne changent pas toutes les 5minutes.
Ai testé fedora, debian. Aime bien aussi win, du moment que ça marche. Ai rien contre OSX.
Aime(ait?) bien le forum Ubuntu pour son esprit non élitiste.

Hors ligne