orm@doc-tcpip.org

Erstellt: Mai 2001 - Letzte Modifikation: November 2002

[ Main | Local ]


Zeit unter Unix

UTC - GMT - Zeitzonen

Ein paar Links zum Thema

Physikalisch Technische Bundesanstalt in Braunschweig (www.ptb.de)
Bundesanstalt für Materialforschung in Berlin (www.bam-berlin.de)
NIST - National Institute of Standards (www.nist.gov)
NPL - National Physical Laboratory (www.npl.co.uk)
Da diese Organismen vielfältige Aufgaben haben, muß man ein wenig suchen.
Alle Zeitzonen der Welt (grafisch) (www.worldtimezone.com)
Wer es ganz genau wissen will:
"The Science of Timekeeping", Application Note 1289, D. W. Allan, N. Ashby and C. C. Hodge, Hewlett-Packard - Jetzt wahrscheinlich HPC.
Hier findet man alles, um glücklich zu werden - samt vielen Verweisen auf Relativität und GPS sowie Cäsium-Uhren und Schwarz-Körper Strahlung.

Was ist DCF77 und wo kommt es her?

DCF77 ist das offizielle Zeitsignal der PTB (Physikalisch-Technische Bundesanstalt), also die gesetzliche Zeit für die Bundesrepublik Deutschland. Gemessen wird die Zeit mit mehreren Cäsium-Atomuhren, die so gewonnene Schätzung wird mit anderen nationalen Organismen verglichen und ergibt TAI bzw. UTC nach einem langen Rechenprozess (etwa 60 Tage). Diese erste Zeit-Schätzung gilt in Deutschland als verbindliche Zeitinformation. Gegen die Uhren der PTB synchronisiert und syntoniert (Abgleich gegen Zeit (Phase!) und Frequenz - Das sind zwei paar Schuhe!) sich der 50kW-Sender in Mainflingen bei Frankfurt, der auf der Frequenz 77.5 kHz sendet und in ganz Europa zu empfangen ist.

Gibt es neben DCF77 noch eine Möglichkeit, an eine exakte Zeit zu kommen?

Mit einem Empfänger des GPS (Global Positioning System). Um die Erde schwirren eine Reihe Satelliten (um die 30 Stück), die exakte Uhren tragen - eine kleine PTB. Die Satelliten unterhalten sich untereinander und mit den Bodenstationen, die Zeit ist also sehr gut. Mit so einem System hat man eine genaue Zeit und zugleich die genaue Position - falls man mal vergisst, wo man ist.

Interessant ist, daß die GPS-Zeit ein Eigenleben führt, also nicht synchron mit TAI geht und auch nicht korrigiert wird. Diese Zeit ist weiterhin speziell, weil wegen der Satelliten relativistische Effekte zum tragen kommen. Die eigentliche Positionsmessung erfolgt mit dieser GPS-Zeit, das GPS-Signal wird aber zusätzlich mit einem Korrektur-Term gesendet, der das Ermitteln von UTC ermöglicht.

Die oben genannten Institutionen unterhalten Server, die im Internet die Zeit anbieten - auch eine gute Möglichkeit, setzt aber einen dauerenden Zugang vorraus.

TAI - Temps Atomique International

Man ist heutzutage in der Lage, eine physikalische reale Zeit zu messen. Das ist zugleich die festgelegte Methode zur Ermittlung des Weltweit eindeutigen Sekundennormals - wie lange also eine Sekunde dauern darf. Dazu wird ein Zeitnormal aus der Schwingung des emitierten Lichtes eines bestimmten Überganges im Cäsium-Atom abgeleitet. Das ergibt die erste, für uns wichtige Zeit: TAI. Für TAI ist ein Tag genau 86400 Sekunden lang - wobei das natürlich normierte Sekunden sind.

UTC - Coordinated Universal Time

Das weltweit geläufige Zeitnormal ist seit dem 1. Januar 1972 UTC (was früher GMT war). Es bezieht sich auf die Rotation der Erde um ihre Achse. Danach bestimmt sich der Tag, und die Abfolge der Tage wird durch den Gregorianischen Kalender bestimmt, der seinerseits die Rotation der Erde um die Sonne als Festpunkte nutzt. Astronomen kennen noch ein paar UTC "Unterklassen" wie UT0 (Sonnenzeit mit Korrekturen für den Erdumlauf und die Erdneigung), UT1 (mit weiteren Korrekturen aufgrund der Präzessions-Bewegung der Erde) und UT2 (mit weiteren Korrekturen, weil die Periodizität der Erdbewegung zu wünschen läßt - fragt jemand anderen..). Jedenfalls folgt UTC UT1.

Wir bestimmen unsere Zeit also nicht nach dem Geleuchte einiger Atome, sondern nach der Sonne, also nach Tag und Nacht, Hell und Dunkel. Je nach Jahreszeit und eigenem Standort schwankt das, aber in jeder Zeitzone steht die Sonne um 12 Uhr Mittags im Zenit (Zenit meint hier den höchsten Punkt der Sonnenbahn, nicht aber senkrecht über dem Betrachter) - das wird zumindest angestrebt. Die normierte Zeit hat jetzt einen großen Nachteil - sie ist perfekter als die Welt. Da die Erde ja nun um ihre Achse eiert, ist die so ermittelte Erdzeit nicht gleich TAI - obwohl die Länge der Sekunde immer gleich war. Die Erde hängt hinterher. Das führt dazu, daß man UTC mit Hilfe von TAI dizipliniert. Das geschieht, indem man in die UTC Zeitskala etwa alle 18 Monate eine leap second einführt, sodaß die Erdzeit erhalten bleibt, also die Schwankung des Erd-Tages berücksichtigt wird. Momentan ist UTC etwa 35 Sekunden hinterher. Im Prinzip bedeutet das: TAI gibt die konstante Sekunden Frequenz vor, und UTC hat eine Verschiebung gegenüber TAI, die auf Schwankungen in der Erdneigung und Erdbahn, Verschiebung der Pole sowie Frequenzschwankungen beruht. Die Sprungsekunden werden im letzten Tag des Juni und des Dezember eingefügt, und es gibt keine Möglichkeit, sie vorrauszubestimmen.

Hier wird der Unterschied zwischen Syncronisation und Syntonisation klar: Ich kann meine Sekunde immer ganz exakt bestimmen (ich wäre also synton), aber die Anzahl trotzdem falsch zählen (ich wäre nicht syncron).

Die Zeitzonen - GMT, CET etc.

TAI und UTC wird für einen Ort ermittelt. Die Zeitzonen werden nun aus dieser Vorgabe für die örtlichen geographischen und politischen Gegebenheiten abgeleitet. So gilt in der Europäischen Union - mit Ausnahme von England und Portugal - CET, Central Europeen Time (Auch MEZ, Mitteleuropäische Zeit). Das ist sicher eine gute Zeit für Berlin, aber eher ungeeignet für Griechenland, Polen, Finnland oder Spanien. Dort wird man die Sonne Mittags nicht im Zenit sehen und das Tageslicht-Fenster als eigenartig verschoben empfinden. Die geograpischen Bedingungen sind festgelegt: pro Längengrad etwa 15 Minuten Zeitunterschied. Das wird gegen die politischen Gegebenheiten abgewägt, und man gelangt zu den bekannten Zeitzonen, die man einmal mit ihrem Namen oder mit ihrer Abweichung (in Stunden) von GMT (Greenwich Mean Time, die Zeit am Nullmeridian) angibt.

Was bedeutet das alles für Unix?

Das Betriebssystem hat von Zeit im menschlich-gesellschaftlichen Sinn ersteinmal gar keine Ahnung. Die meisten Rechner haben einen HW-Zähler, einen Oszillator, der in regelmäßigen Abständen einen Interrupt an den Prozessor sendet und so den nächsten Arbeitsschritt anstößt. Das wird als Tick beziechnet. Die Größenordnung sind Millisekunden, je nach Prozessor Geschwindigkeit. Diese Ticks werden vom Prozessor gezählt und eine geeignete Anzahl wird auf eine (menschliche) Sekunde geeicht. Das ist dann die Systemzeit, die Anzahl der Sekunden seit einem defnierten Moment. Der gültigen Zeit wird sich ein System erst bei Angabe einer Referenz bewußt. Das ist im Fall von Unix "epoch", also der 1. Januar 1970 GMT. Das ist etwas dumm, weil mit GMT ein ganzer Haufen astronomische Zeitskalen miteingeschloßen sind - leider gab es UTC damals noch nicht. Jedenfalls hat jedes System eine Möglichkeit, aus dem Prozessortakt eine Sekunde abzuleiten und diesen Wert hochzuzählen. Das ist für die meisten Programme ideal, da es in der Regel nicht auf die gültige Zeit ankommt, sondern nur auf Zeitdifferenzen. Darüber hinaus ist es einfach, mit Hilfe von "epoch" die aktuelle Zeit zu ermitteln.

Wie richte ich es es am Besten ein auf meinem System?

Jedes vernünftige Unix-System sollte als Systemzeit UTC benutzen. Das erspart sehr viel Ärger mit einer Reihe von Diensten und Programmen, speziell wenn man sich in einem weltumspannenden Netzwerk befindet. Die lokale Zeit ist dann leicht mit der Zeitzonen-Variable zu ermitteln. Diese Variable fängt dann auch die Hohlbirnen-Sommerzeit ab.

Die heute eingesetzte Hardware hat meist einen Clock-Chip, der eine Quarzuhr mit eingener Batterie darstellt. Beim booten fragt das Betriebssystem diese Uhr ab, und setzt seine eigene Systemzeit nach der Hardware-Zeit. Die Hardware-Zeit ist dann nicht mehr wichtig, es wird nur die Systemzeit anhand des Taktgebers des Prozessors weitergeführt (beide können also unterschiedlich sein...). Es sollte die Hardware-Clock immer auf GMT stehen. So initialisiert das System GMT/UTC. Die Zeitzonen-Variable sollte auf die lokale Zeit eingestellt sein, entweder mit dem Namen oder dem Offset zu GMT. Man kann dann mit dem Kommando date die lokale Zeit abfragen, und mit dem Kommando date -u GMT/UTC checken. Auf PC-basierenden Unixen gibt es meist Kommandos, um die Hardwareclock direkt zu manipulieren (unter Linux das Kommando hwclock).


[ Main | Local ]

[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | RPi | SMTP | Tracing | GPS | LW ]

Copyright 2001-2021 by Orm Hager - Es gilt die GPL
Feedback bitte an: Orm Hager (orm@doc-tcpip.org )