Re: Sommerzeit - Woher weiss BSD das?

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Mon, 30 Mar 2009 10:16:36 +0200 (CEST)

Heino Tiedemann wrote:
> mal aus interesse: Woher weiss man FreeBSD eigentlch das heute die Uhr
> umgestellt werden musste?

Die korrekte Information scheint in dem länglichen Thread
ein wenig untergegangen zu sein, daher nochmal:

Es hat weder mit NTP noch mit adjkerntz(8) zu tun. Dem
Kernel ist die Zeitzone völlig egal, er rechnet nur mit
UTC. Auch Userland-Programme rechnen normalerweise mit
"time_t"-Werten, die keine Informationen über die Zeitzone
enthalten.

Die Umrechnung in die lokale Zeitzone (mit Berücksichtigung
von Sommer-/Winterzeit) wird erst dann vorgenommen, wenn
eine Ausgabe für den Benutzer aufbereitet wird, etwa wenn
syslogd(8) eine Meldung generiert oder date(1) eine Ausgabe
macht.

Diese Umrechnung wird von Funktionen in der libc durchge-
führt (z.B. localtime(3)). Dazu liest die libc die Datei
/etc/localtime, die in der Regel bei der Installation von
FreeBSD ausgewählt wird. Nachträglich kann man das mit dem
Tool tzsetup(8) machen. Die Datei /etc/localtime enthält
auch Informationen darüber, an welchen Tagen der Wechsel
zwischen Sommer- und Winterzeit stattfindet. Es ist eine
Binärdatei, die mit zic(8) (zone info compiler) aus einem
Quelltext erzeugt wurde. Die Quelltexte kann man sich
unter /usr/src/share/zoneinfo ansehen; die Dateien sind
ausführlich kommentiert.

Historisch wurde die Zeitzone auf UNIX-Systemen mit der
Umgebungsvariablen TZ festgelegt, was aber weitaus weniger
flexibel ist und mit den zahlreichen Sonderregeln nicht
darstellbar ist (oder die Syntax heillos überfrachtet).
Man sollte daher TZ nicht setzen, damit der korrekte
Mechnismus mit /etc/localtime verwendet wird. Man kann
aber (zum Experimentieren oder Testen) vorübergehend TZ
setzen:

$ date
Mon Mar 30 10:16:11 CEST 2009
$ TZ=EST date
Mon Mar 30 03:16:14 EST 2009
$ TZ=UTC-07 date
Mon Mar 30 15:16:17 UTC 2009

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
"To this day, many C programmers believe that 'strong typing'
just means pounding extra hard on the keyboard."
        -- Peter van der Linden
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 30 Mar 2009 - 10:17:04 CEST

search this site