                       Suporte do FreeBSD a Leap Seconds

   2018-09-06 00:37:28 +0000 por Edson Brandi.
   [ Documento HTML em partes / Documento HTML completo ]

     ----------------------------------------------------------------------

   Indice

   1. Introduc,ao

   2. Manipulac,ao padrao do leap seconds no FreeBSD

   3. Cuidados

   4. Testando

   5. Conclusao

1. Introduc,ao

   Um leap second e o ajuste de um segundo feito em momentos especificos do
   ano para sincronizar a escala atomica de tempo do UTC com a variac,ao da
   rotac,ao da terra. Esse artigo descreve como o FreeBSD interage com o leap
   seconds.

   No momento em que este artigo esta sendo escrito, a proxima ocorrencia do
   leap second ira acontecer em 30 de junho de 2015 as 23:59:60 UTC. Esse
   leap second ira ocorrer durante um dia util para as Americas do Norte e do
   Sul e a regiao da Asia/Pacifico.

   Leap Seconds sao anunciados pelo IERS no Bulletin C.

   O comportamento padrao do leap Seconds e descrito na RFC 7164. Veja tambem
   em time2posix(3).

2. Manipulac,ao padrao do leap seconds no FreeBSD

   A maneira mais facil de manipular o leap seconds e com a regra de tempo
   POSIX que e utilizada por padrao pelo FreeBSD, combinada com o NTP. Quando
   o ntpd(8) esta sendo executado e o tempo e sincronizado com os servidores
   NTP de upstream que gerenciam o leap seconds corretamente, o leap second
   causara a repetic,ao do ultimo segundo do dia de forma automatica. Nenhum
   outro ajuste sera necessario.

   Se os servidores de NTP upstream nao gerenciarem o leap seconds
   corretamente, o ntpd(8) ira avanc,ar em um segundo apos o servidor se
   corrigir.

   Se o NTP nao esta sendo utilizado, sera necessario um ajuste manual do
   relogio do sistema apois o leap seconds ter passado.

3. Cuidados

   Os Leap seconds sao inseridos no mesmo instante em todo o mundo a meia
   noite UTC. No Japao sera no meio da manha e no Pacifico ao meio dia, nas
   Americas a tarde e na Europa `a noite.

   Nos acreditamos e esperamos que o FreeBSD, se provido de um servic,o de
   NTP estavel, ira funcionar como foi especificado durante o leap second,
   como aconteceu nos anteriores.

   Enrtetanto, nos alertamos que praticamente nenhum aplicativo nunca
   questionou o kernel sobre leap seconds. Nossa experiencia e que, como
   projetado, leap seconds sao, essencialmente, a repetic,ao do ultimo
   segundo antes do leap second, e isso e uma surpresa para a maioria dos
   programadores.

   Outros sistemas operacionais e computadores podem ou nao manipular o leap
   seconds da mesma maneira que o FreeBSD e sistemas sem um servic,o correto
   e estavel de NTP nao terao conhecimento algum sobre a ocorrencia de leap
   seconds.

   Nao e inetido que os computadores travem por causa do leap seconds, e a
   experiencia mostra que uma grande parte de todos os servidores publicos de
   NTP podem manipular e anunciar o leap seconds de forma incorreta.

   Por favor, tente garantir que nada horrivel acontecera por causa do leap
   seconds.

4. Testando

   E possivel testar se um leap seconds sera utilizado. Devido a natureza do
   NTP, o teste deve funcionar ate 24 horas antes do lead seconds. Algumas da
   principais fontes de referencia de tempo somente anunciam o leap seconds
   uma hora antes do evento. Consulte o daemon do NTP:

 % ntpq -c 'rv 0 leap'

   Uma saida que inclua leap_add_sec indica o suporte adequado ao leap
   second. Antes de 24 horas ate a ocorrencia do leap second, ou depois dele
   ja ter ocorrido, a saida do comando ira mostrar leap_none.

5. Conclusao

   Na pratica, o leap seconds nao e um problema do FreeBSD. Esperamos que
   esta visao geral, ajude-o a esclarecer oque esperar e como tornar o evento
   de leap seconds o menos traumatico possivel.
