Relation entre l'horloge matérielle et l'horloge système à l'arrêt [fermé]

1

J'utilise Centos 7 avec le noyau 3.10 et ai installé et fonctionne hwclock et Chrony. Il est écrit que l'horloge système est définie à partir de l'horloge matérielle au moment du démarrage. (ici http://tldp.org/HOWTO/Clock-2.html )

“L’autre est l’horloge système (parfois appelée horloge du noyau)   ou "horloge logicielle") qui est un compteur logiciel basé sur la minuterie   interrompre. Il n’existe pas lorsque le système ne fonctionne pas, il a donc   à initialiser à partir du RTC (ou d’une autre source de temps) au démarrage   temps."

et qu’il puisse être défini par le script init (remplacé par systemd) ou par le noyau lui-même (ici https://wiki.gentoo.org/wiki/System_time ):

“En général, l’horloge matérielle est utilisée pour configurer l’horloge système   démarrage. Cela peut être fait par le noyau lui-même ou par un service de démarrage (init   scénario)."

Bien qu’il soit mentionné plus tard que sur le noyau moderne (l’article semble un peu dépassé), Linux le gère lui-même (ici https://wiki.gentoo.org/wiki/System_time ).

“Sur un noyau suffisamment moderne (3.9 ou plus récent), Linux peut être   configuré pour gérer le réglage automatique de l'heure système. ”

J'ai vérifié le fichier / var / log / dmesg et cela semble être mon cas, c'est-à-dire que le noyau lui-même a défini l'horloge système à partir de l'horloge temps réel au démarrage.

2.596137] rtc_cmos 00:00: réglage de l'horloge système à 2018-05-08 14:49:58 UTC (1525790998)

Bien qu'il existe un certain nombre d'informations concernant le temps de démarrage, j'ai trouvé très peu d'informations (et assez controversées, comme pour moi) sur le temps d'arrêt. C'est écrit (ici https://wiki.gentoo.org/wiki/System_time ) cette horloge système est remise sur RTC à l’arrêt. Comme le noyau définit l'heure du démarrage au démarrage du système, j'ai supposé que ce dernier pouvait être responsable de la réinitialisation de l'heure du système sur RTC à l'arrêt, mais je ne pouvais y trouver aucune information précise.

Mes questions sont donc les suivantes: le temps est-il vraiment réglé depuis l’horloge système jusqu’à l’arrêt de la RTC ou s’il peut y avoir des exceptions? (exceptions peut-être comme la version du noyau ou des drapeaux spéciaux) Et si oui, qui est responsable de cela, du noyau ou d'un script?

Au fait j'ai lu la question Relation entre l'horloge matérielle et l'horloge système mais ma question est un peu plus spécifique et si différente.

// ---------------------------------------------------- -------------------------------------------------- -------------- // Ma question est en suspens alors j'écris ici

selon la discussion sur les bogues ici (bien qu'un peu vieux) ( https://bugzilla.redhat.com/show_bug.cgi?id=753487 ) RTC est bien réglé sur l’heure du système à l’arrêt et c’est fait par le noyau

hwclock --systohc utilisé soit appelé à chaque arrêt, mais ce n'est pas   plus.

Réaffectation au noyau.

Il semble donc que les questions concernant le réglage des valeurs de temps système sur RTC soient résolues.

Dmitriy Kormulev
la source
Il semble que j'ai trouvé la réponse à ma question. selon la discussion sur les bogues ici (bien qu'un peu vieux) ( bugzilla.redhat.com/show_bug.cgi?id=753487 ) RTC est bien réglé sur l’heure du système et c’est fait par le noyau
Dmitriy Kormulev
Sachez que toute réponse que vous trouvez est spécifique à la distribution. IOW, ces opérations sont lancées dans l'espace utilisateur et non sous le contrôle du noyau Linux. "c'est fait par le noyau" - Bien sur I / O is "terminé" par le noyau, mais à la demande de l'espace utilisateur.
sawdust
sciure de bois merci pour votre réponse. Vous avez écrit que "Bien sûr, les E / S sont" effectuées "par le noyau, mais à la demande de l'espace utilisateur", voulez-vous dire qu'un indicateur spécial doit être défini par un utilisateur pour activer ce noyau "E / S" (dans notre cas, RTC à l'heure du système)?
Dmitriy Kormulev
Non, il n'y a pas "drapeau spécial" . L'espace d'E / S est demandé par l'espace utilisateur en émettant simplement une demande read () ou write (), qui appelle un appel système au noyau. Le RTC est simplement un autre périphérique et le noyau est responsable de l'exécution des E / S avec tous les périphériques (à l'exception de certains périphériques anormaux / atypiques).
sawdust