svn commit: r46873 - in head: en_US.ISO8859-1/articles en_US.ISO8859-1/articles/leap-seconds en_US.ISO8859-1/htdocs/docs share/xml

Warren Block wblock at FreeBSD.org
Sat Jun 27 00:25:35 UTC 2015


Author: wblock
Date: Sat Jun 27 00:25:33 2015
New Revision: 46873
URL: https://svnweb.freebsd.org/changeset/doc/46873

Log:
  Add a short article on how FreeBSD handles leap seconds.  Thanks for
  contributions from Peter Jeremy, Poul-Henning Kamp, Ian Lepore, Xin LI,
  and Warner Losh.  Requested by Bartek Rutkowski.

Added:
  head/en_US.ISO8859-1/articles/leap-seconds/
  head/en_US.ISO8859-1/articles/leap-seconds/Makefile   (contents, props changed)
  head/en_US.ISO8859-1/articles/leap-seconds/article.xml   (contents, props changed)
Modified:
  head/en_US.ISO8859-1/articles/Makefile
  head/en_US.ISO8859-1/htdocs/docs/books.xml
  head/share/xml/urls.ent

Modified: head/en_US.ISO8859-1/articles/Makefile
==============================================================================
--- head/en_US.ISO8859-1/articles/Makefile	Fri Jun 26 23:03:20 2015	(r46872)
+++ head/en_US.ISO8859-1/articles/Makefile	Sat Jun 27 00:25:33 2015	(r46873)
@@ -17,6 +17,7 @@ SUBDIR+= gjournal-desktop
 SUBDIR+= hubs
 SUBDIR+= ipsec-must
 SUBDIR+= ldap-auth
+SUBDIR+= leap-seconds
 SUBDIR+= linux-emulation
 SUBDIR+= linux-users
 SUBDIR+= mailing-list-faq

Added: head/en_US.ISO8859-1/articles/leap-seconds/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/en_US.ISO8859-1/articles/leap-seconds/Makefile	Sat Jun 27 00:25:33 2015	(r46873)
@@ -0,0 +1,19 @@
+#
+# $FreeBSD$
+#
+# Article: Leap Seconds
+
+DOC?= article
+
+FORMATS?= html
+WITH_ARTICLE_TOC?= YES
+
+INSTALL_COMPRESSED?= gz
+INSTALL_ONLY_COMPRESSED?=
+
+SRCS=	article.xml
+
+URL_RELPREFIX?=	../../../..
+DOC_PREFIX?=	${.CURDIR}/../../..
+
+.include "${DOC_PREFIX}/share/mk/doc.project.mk"

Added: head/en_US.ISO8859-1/articles/leap-seconds/article.xml
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/en_US.ISO8859-1/articles/leap-seconds/article.xml	Sat Jun 27 00:25:33 2015	(r46873)
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
+  "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
+
+<article xmlns="http://docbook.org/ns/docbook"
+  xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
+  xml:id="leapseconds">
+
+  <info>
+    <title>&os; Support for Leap Seconds</title>
+
+    <pubdate>$FreeBSD$</pubdate>
+  </info>
+
+  <sect1 xml:id="leapseconds-definition">
+    <title>Introduction</title>
+
+    <para>A <emphasis>leap second</emphasis> is an ad-hoc one-second
+      correction to synchronize atomic timescales with Earth rotation.
+      This article describes how &os; interacts with leap
+      seconds.</para>
+
+    <para>As of this writing, the next leap second will occur at
+      2015-Jun-30 23:59:60.  This particular leap second is unusual,
+      being in the middle of a business day for North and South
+      America and the Asia/Pacific region.</para>
+
+    <para>Leap seconds are announced by <link
+	xlink:href="http://datacenter.iers.org/"><acronym>IERS</acronym></link>
+      on <link
+	xlink:href="http://datacenter.iers.org/web/guest/bulletins/-/somos/5Rgv/product/16">Bulletin
+	C</link>.</para>
+
+    <para>Standard leap second behavior is described in <link
+	xlink:href="https://tools.ietf.org/html/rfc7164#section-3">RFC
+	7164</link>.  Also see &man.time2posix.3;.</para>
+  </sect1>
+
+  <sect1 xml:id="leapseconds-posix">
+    <title>Default Leap Second Handling on &os;</title>
+
+    <para>The easiest way to handle leap seconds is with the
+      <acronym>POSIX</acronym> time rules &os; uses by default,
+      combined with <link
+	xlink:href="&url.books.handbook;/network-ntp.html"><acronym>NTP</acronym></link>.
+      When &man.ntpd.8; is running and the time is synchronized with
+      upstream <acronym>NTP</acronym> servers that handle leap seconds
+      correctly, the leap second will cause the system time to
+      automatically repeat the last second of the day.  No other
+      adjustments are necessary.</para>
+
+    <para>If the upstream <acronym>NTP</acronym> servers do not handle
+      leap seconds correctly, &man.ntpd.8; will step the time by one
+      second after the errant upstream server has noticed and stepped
+      itself.</para>
+
+    <para>If <acronym>NTP</acronym> is not being used, manual
+      adjustment of the system clock will be required after the leap
+      second has passed.</para>
+  </sect1>
+
+  <sect1 xml:id="leapseconds-cautions">
+    <title>Cautions</title>
+
+    <para>Leap seconds are inserted at the same instant all over the
+      world: <acronym>UTC</acronym> midnight.  In Japan that is
+      mid-morning, in the Pacific mid-day, in the Americas late
+      afternoon, and in Europe at night.</para>
+
+    <para>We believe and expect that &os;, if provided correct and
+      stable <acronym>NTP</acronym> service, will work as designed
+      during this leap second, as it did during the previous
+      ones.</para>
+
+    <para>However, we caution that practically no applications have
+      ever asked the kernel about leap seconds.  Our experience is
+      that, as designed, leap seconds are essentially a replay of the
+      second before the leap second, and this is a surprise to most
+      application programmers.</para>
+
+    <para>Other operating systems and other computers may or may not
+      handle the leap-second the same way as &os;, and systems without
+      correct and stable <acronym>NTP</acronym> service will not know
+      anything about leap seconds at all.</para>
+
+    <para>It is not unheard of for computers to crash because of
+      leap seconds, and experience has shown that a large fraction
+      of all public <acronym>NTP</acronym> servers might handle and
+      announce the leap second incorrectly.</para>
+
+    <para>Please try to make sure nothing horrible happens because of
+      the leap second.</para>
+  </sect1>
+
+  <sect1 xml:id="leapseconds-testing">
+    <title>Testing</title>
+
+    <para>It is possible to test whether a leap second will be used.
+      Due to the nature of <acronym>NTP</acronym>, the test might work
+      up to 24 hours before the leap second.  Some major reference
+      clock sources only announce leap seconds one hour ahead of the
+      event.  Query the <acronym>NTP</acronym> daemon:</para>
+
+    <screen>&prompt.user; <userinput>ntpq -c 'rv 0 leap'</userinput></screen>
+
+    <para>Output that includes <literal>leap_add_sec</literal>
+      indicates proper support of the leap second.  Before the 24 hour
+      period before the leap second, or after the leap second has
+      passed, <literal>leap_none</literal> will be reported.</para>
+  </sect1>
+
+  <sect1 xml:id="leapseconds-conclusion">
+    <title>Conclusion</title>
+
+    <para>We hope this discussion of leap seconds on &os; has been of
+      use.  Now let us never speak of it again.</para>
+  </sect1>
+</article>

Modified: head/en_US.ISO8859-1/htdocs/docs/books.xml
==============================================================================
--- head/en_US.ISO8859-1/htdocs/docs/books.xml	Fri Jun 26 23:03:20 2015	(r46872)
+++ head/en_US.ISO8859-1/htdocs/docs/books.xml	Sat Jun 27 00:25:33 2015	(r46873)
@@ -170,6 +170,10 @@
       A practical guide about setting up an LDAP server on &os; and
       how to use it for authenticating users.</p>
 
+    <p><a href="&url.articles;/leap-seconds/index.html">&os; Support
+	for Leap Seconds</a> (leap-seconds)<br/>
+      A short description of how leap seconds are handled on &os;.</p>
+
     <p><a href="&url.articles;/linux-emulation/index.html">Linux
 	emulation in &os;</a> (linux-emulation)<br/>
       A technical description about the internals of the Linux

Modified: head/share/xml/urls.ent
==============================================================================
--- head/share/xml/urls.ent	Fri Jun 26 23:03:20 2015	(r46872)
+++ head/share/xml/urls.ent	Sat Jun 27 00:25:33 2015	(r46873)
@@ -75,6 +75,8 @@
 <!ENTITY url.articles.ipsec-must.en	"&url.doc.langbase.en;/articles/ipsec-must">
 <!ENTITY url.articles.ldap-auth		"&url.doc.langbase;/articles/ldap-auth">
 <!ENTITY url.articles.ldap-auth.en	"&url.doc.langbase.en;/articles/ldap-auth">
+<!ENTITY url.articles.leap-seconds	"&url.doc.langbase;/articles/leap-seconds">
+<!ENTITY url.articles.leap-seconds.en	"&url.doc.langbase.en;/articles/leap-seconds">
 <!ENTITY url.articles.linux-emulation	"&url.doc.langbase;/articles/linux-emulation">
 <!ENTITY url.articles.linux-emulation.en	"&url.doc.langbase.en;/articles/linux-emulation">
 <!ENTITY url.articles.linux-users	"&url.doc.langbase;/articles/linux-users">


More information about the svn-doc-all mailing list