Unix-Epoche in der Internationalen Raumstation

Die Internationale Raumstation befindet sich in einem anderen Gravitationsfeld als wir auf der Erdoberfläche. Fast alle Computer / Protokolle sind darauf angewiesen, dass die Unix-Epoche überall konsistent ist. Die Unix-Epoche ist für alle Computer auf der Erdoberfläche gleich, da sie sich im gleichen Gravitationsfeld befinden. Müssen die Computer auf der ISS für den Unterschied im Gravitationsfeld korrigiert und die Epoche ebenfalls geändert werden?

Noch wichtiger ist, was passiert, wenn uns im Jahr 2038 in einer 32-Bit-Ganzzahl die Sekunden ausgehen?
@geoffc glücklicherweise sind die ISS-Laptops 64-Bit-cnet.com/products/lenovo-thinkpad-t61p/specs
CTIME/Unix Epochenzeit ist in das Betriebssystem eingebettet. Es ist nicht so, dass die Hardware 64-Bit nicht unterstützt, sondern dass das Betriebssystem 64- oder 32-Bit-Zeit verwendet. Active Directory verwendet FILETIME (64-Bit-Int mit Vorzeichen, Zählung von 100-Nanosekunden-Intervallen seit dem 1. Januar 1601. Läuft im Jahr 2510 oder so aus). CTIME ist seit dem 1. Januar 1970 vor 2 Milliarden Sekunden signiert. Sie können es unsigniert verwenden, also bis 2108. (Was wir wahrscheinlich alle in den meisten Betriebssystemen tun werden). Was ich nicht weiß, ist, was VxWorks verwendet oder was die russische Seite verwendet.
@geoffc Auf der positiven Seite werde ich mich 2038 aus der Softwareentwicklung zurückziehen. Auf der dystopischen Seite werde ich wahrscheinlich von einer Menge medizinischer Technologie abhängig sein, die auf eingebetteten 32-Bit-Systemen basiert.
@RussellBorogove Als ich die ISS-Laptop-Spezifikationen in meinem alten Schulungshandbuch nachschlug, hieß es, dass sie auf Windows 98 Second Edition basierten (das war, bevor sie auf Unix umgestellt wurden).
Es ist interessant, dass sich bei einem umlaufenden Objekt die GR-Korrektur (Allgemeine Relativitätstheorie) für die Gravitationspotentialdifferenz und für die Bewegung mit hoher Geschwindigkeit teilweise aufhebt. Mehr hier und hier und vor allem hier und hier
Aus dem dritten Link: "Der doppelte Unterschied zwischen Bahnverschiebung und Oberflächenverschiebung ist also:
Δ F Ö R B Δ F S u R F F G M C 2 ( 1.5 H + R E 1 R E ) " .
Wir haben G M = 3,986E+14 m^3/s^2, C = 2,9979E+08 m/s, R E = 6378137 Meter und H ist die Höhe über der Erde oder ungefähr 400.000 Meter für die ISS. Der F Werte sind Taktfrequenzen.
Die relativistischen Auswirkungen auf das Timing auf der ISS sind extrem gering, eine Drift von etwa 25 Mikrosekunden pro Tag oder etwa 0,3 Teilen pro Milliarde. Die Taktdriftrate eines typischen Laptops liegt in der Größenordnung von 10 bis 20 Teilen pro Million.
"Fast alle Computer / Protokolle hängen davon ab, dass die Unix-Epoche überall konsistent ist." Nein, tun sie nicht.
@geoffc Y2K38??
G ist auf der Erdoberfläche nicht konstant.
Du hast ein kleines Nomenklaturproblem. Die Unix-Epoche ist ein fester Zeitpunkt, der 1.1.1970 00:00:00 UTC. Was Sie wahrscheinlich meinen, ist "Unix-Zeit", die (ungefähr) die Anzahl der Sekunden seit der Epoche ist. Die Unix-Zeit ist jedoch eine schlechte Annäherung an die tatsächliche Zeit, da sie beispielsweise Schaltsekunden nicht berücksichtigt: Jeder Tag hat 86400 Sekunden, nicht eine mehr und nicht eine weniger. Wenn also Schaltsekunden auftreten, muss die Unix-Zeit angepasst werden entsprechend. Siehe die Diskussion unter en.wikipedia.org/wiki/Unix_time und den Vergleich zwischen Unix-Zeit, UTC und TAI in verschiedenen Fällen.
Wie würde ein Epochenwechsel helfen?
@geoffc zumindest Alpine Linux mit Musl-C-Bibliotheken verwendet bereits 64-Bit-time_t. Ich halte es für höchst unwahrscheinlich, dass es bis 2038 Unices geben wird, die noch 32-Bit-time_t haben, oder dass irgendjemand jemals eine vorzeichenlose 32-Bit-Ganzzahl für time_t verwendet. (Ich habe gerade nachgesehen, und GNU libc kann auch mit 64-Bit-time_t erstellt werden, aber ich weiß noch nicht, wie weit verbreitet die Verwendung davon ist.)
Die neuesten (~2014) ISS-Laptops sind alle HP ZBook G2s und sie führen Windows 10 auf einem Long Term Support-Zweig und/oder eine von einer Vielzahl von benutzerdefinierten Linux-basierten Lasten aus.

Antworten (7)

Die POSIX-Zeit enthält keine Schaltsekunden und ist nicht in jedem UNIX auf die gleiche Weise implementiert, sodass sie routinemäßig alle paar Jahre für einige Sekunden inkonsistent wird. Es ist keine hochpräzise Zeitskala, und es macht wenig Sinn, sie um relativistische Effekte zu korrigieren, die kleiner sind, als sie darstellen können. GPS muss korrigiert werden – insbesondere müssen die Uhren am Boden langsam laufen, damit sie im Orbit auf die richtige Rate beschleunigen – aber GPS-Uhrfehler werden in Nanosekunden gemessen, und GPS-Satelliten umkreisen viel weiter weg als die ISS. Zeitbasierte Netzwerkprotokolle müssen viel fehlertoleranter sein, sonst wird ihre Fehlalarmrate zu hoch.

POSIX-Zeit möglicherweise nicht, aber Unix-Zeit kann. Es gibt einen Unterschied zwischen dem POSIX- Standard und den tatsächlich möglichen Verhaltensweisen von Unix- Systemen, die richtig tickende Schaltsekunden beinhalten können. Wenn Sie argumentieren wollen, dass die Unix-Zeit schlampig genug ist, dass allgemeine relativistische Effekte die geringste Sorge sind, dann ist die Unterstützung von Schaltsekunden der falsche Haken, um sie daran zu hängen. Die weitaus besseren Argumente sind die in anderen Antworten hier, nämlich dass die Nettoeffekte klein sind und PC-Hardware ohnehin nicht so genau ist. unix.stackexchange.com/a/294715/5132
"GPS-Satelliten umkreisen viel weiter entfernt als die ISS" ist nicht wirklich ein Argument - beachten Sie, dass relativistische Effekte in beiden Umlaufbahnen fast die gleiche absolute Größe haben, aber entgegengesetzte Vorzeichen haben!

NEIN.

Computeruhren sind ungenau. Sie verlassen sich auf ständige Korrekturen, um die korrekte Zeit beizubehalten. Da ihre Ungenauigkeit viel größer ist als der Zeitgeschwindigkeitsunterschied zwischen Erde und ISS, spielt es wirklich keine Rolle.

Wie wahr – ich besaß einmal ein Low-End-Tablet, dessen Uhrzeit um mehrere Sekunden pro Tag abweichen würde, wenn es nicht mit dem Internet verbunden wäre (um eine erneute Synchronisierung von einer Master-Timing-Quelle zu erhalten).
@CarlWitthoft Weißt du zufällig, warum Computer- und Telefonuhren so schlecht sind? Anekdotisch scheinen sie viel schlimmer als eine typische Quarzarmbanduhr.
@ user2705196 Telefonuhren können ihre Zeit von Basisstationen (die Atomuhren verwenden, daher die Allgegenwart des FE-5680A im Überschuss) oder dem Internet abrufen, sodass sie keinerlei Langzeitstabilität aufweisen müssen Der Hersteller übernimmt alle Einsparungen, die er erzielen kann
@llama Ja, definitiv wahr! Meine Frage lautete eher: "Ich bin überrascht, dass Computer- / Telefonhersteller mit einer beschisseneren RTC Geld sparen können". Ich bin naiv davon ausgegangen, dass gute so billig und standardisiert sind, dass niemand eine billigere und beschissenere Version herstellt. Aber klar liege ich falsch!
@ user2705196 Ich vermute, dass, da ein Computer in erster Linie alles mit seinen internen Taktimpulsen ausführt, die genaue Frequenz, die diese Rechteckwelle erzeugt, für das Design nicht wichtig ist, insbesondere wenn erwartet wird, dass eine externe Quelle die Uhrzeit aktualisiert.
@user2705196 Uhren haben normalerweise einen Trimmkondensator und werden durch die Nähe zum Körper des Benutzers auf einer ziemlich konstanten Temperatur gehalten: Beides gilt nicht für Tablets usw. Es ist eine lange und komplexe Geschichte, die an anderer Stelle erzählt werden muss, aber mein Vater baute Zeitmaschinen für sie, die einige beeindruckende Bearbeitungen beinhalteten.
@CarlWitthoft Nur um sicherzugehen, dass es klar ist: Ihre CPU-Uhr (diejenige, die jeden Tick antreibt und die MHz-Bewertung angibt) ist völlig unabhängig von derjenigen, die Zeit gibt.
@ user2705196 Öfen verwenden normalerweise die Netzfrequenz als Zeitquelle, da sie zu billig sind, um eine speziell gebaute Uhr aufzunehmen ...
@Antzi: sinnloser Nitpick / lustige Tatsache: Ja, Linux zum Beispiel aktualisiert die aktuelle Systemzeit in einem Timer-Interrupt, aber für hochpräzise Zeitstempel (wie oder clock_gettime) gettimeofdayinterpoliert es auf x86 einen Offset zu diesem rdtscmit einem Skalierungsfaktor (und Code ) vom Kernel in User-Space-Prozesse auf den VDSO-Seiten exportiert. Die konstante TSC-Referenzfrequenz ist von der Kerntaktfrequenz getrennt (was sie für die Wanduhrzeit nützlich macht, selbst wenn die CPU hoch-/runterturboisiert), wird aber vom selben Taktsignal abgeleitet, so dass sie tatsächlich als a ins Spiel kommt Zeitquelle.
@Antzi Die Gitterfrequenz weist über kurze Zeitspannen eine gewisse Abweichung auf, ist jedoch über längere Zeitspannen genauer als ein Kristalloszillator. Es wird gelegentlich angepasst, um den Durchschnitt auf dem richtigen Weg zu halten.
@PeterCordes Ich kann keine Informationen zur clock_gettimeVerwendung finden, rdtscum etwas zu interpolieren. Im Allgemeinen hält die "Wanduhr" auf dem Motherboard die Zeit relativ gut über Monate, ist jedoch für das Timing von Millisekunden ungenau, und die CPU-Uhr hält die Zeit weit über Mikrosekunden, ist aber über Stunden ungenau. Wenn Sie eine Wanduhr machen, die die CPU-Uhr verwendet, würde sie bald eine sehr große Drift im Vergleich zur Echtzeit haben, sie ist nur für sehr kleine Intervalle gut.
@Quantic: Haben Sie den Asm für einen Anruf in einem Schritt ausgeführt? Ich habe. Ja, es ist ungenau, deshalb wird es nur für einen Offset mit Nanosekunden-Präzision relativ zum Zeitstempel verwendet, der vom letzten Timer-Interrupt aufgezeichnet wurde, wie ich sagte. HZDieser genaue Zeitstempel wird alle , z. B. 10 ms, in einem Timer-Interrupt aktualisiert , also ja, der TSC wird nur für dieses kleine Intervall verwendet. Diese SO-Antwort erwähnt auch einige dieser Details und Links zur Quelle.

Für die meisten praktischen Zwecke spielt es noch keine Rolle. Die Verlangsamung durch schnellere Bewegung und Beschleunigung durch ein schwächeres Gravitationsfeld heben sich teilweise auf, und der Nettoeffekt ist, dass die Zeit auf der ISS nur 0,0000000014 % langsamer ist als die Zeit auf der Erde , sodass sie in ihrer gesamten 22-jährigen Geschichte etwa ein Hundertstel verloren hat von einer Sekunde.

Computer auf der ISS verlassen sich nicht auf die UNIX/POSIX-Zeit, sie verlassen sich auf die GPS-Zeit.

Sendezeit ist die von ISS-Computern gesendete Zeit, die die aktuelle Zeit anzeigen soll.
Die Sendezeitnachricht bezieht sich auf die GPS-Zeitskala, nicht auf die Zeitskala der koordinierten Weltzeit (UTC).

Die Zeit ist auf ±1 s genau:

Aus verschiedenen Gründen dürfen die Computeruhren von C&C [Command and Control] in Bezug auf die Zeit des integrierten GPS/Trägheitsnavigationssystems (INS) (SIGI) des Raumfahrzeugs um bis zu ±1 Sekunde abweichen. Alle anderen ISS-Computer synchronisieren sich mit dem C&C-Computer.

...kann aber auf ±55 ms korrigiert werden:

Der GN&C-Computer [Führung, Navigation und Steuerung] berechnet den Zeitfehler des C&C-Computers im Vergleich zur SIGI-GPS-Zeit und liefert diesen Zeitfehler in Broadcast-Ancillary-Data(BAD)-Daten. Der Zeitstempel jedes Datenpakets kann durch Hinzufügen des Zeitfehlers angepasst werden, um einen Zeitstempel zu erstellen, der auf ±55 Mikrosekunden genau ist.

Dies geht aus dem External Payloads Proposer's Guide to the International Space Station (SSP 51071) hervor .

Gilt dies für die Linux PCS- und SSC-Laptops? "Computer auf der ISS" ist eine ziemlich weit gefasste Kategorie.

Die Unix-Zeit basiert (nachlässig) auf UTC, die wiederum auf TAI (internationale Atomzeit) basiert. TAI ist eine Koordinatenzeit , eine Implementierung von TT (terrestrische Zeit), die so definiert ist, dass sie der eigentlichen SI-Zeit einer stationären Uhr auf Meereshöhe der Erde entspricht, und erweitert wird, um überall in erdzentrierten Koordinaten synchron zu sein.

Sogar Uhren auf der Erdoberfläche müssen höhenkorrigiert werden, um mit TAI übereinzustimmen. Uhren auf GPS-Satelliten erfordern eine viel größere Korrektur. Die GPS-Zeit wird so genau wie möglich mit der TAI synchron gehalten.

Für eine präzise Zeitmessung auf der ISS verwenden wir die GPS-Zeit, sodass präzise ISS-Uhren nicht genau eine Sekunde pro richtiger SI-Sekunde ticken. Zum Beispiel verwendet das NICER-Pulsar-Instrument eine schlampige Uhr (100 ppm) in jeder Messeinheit, kalibriert die Uhr jedoch einmal pro Sekunde gegen GPS und erreicht so nach der Verarbeitung eine Genauigkeit von wenigen Nanosekunden relativ zu TAI.

Gilt dies für die Linux PCS- und SSC-Laptops?
@OrganicMarble Ohne eine Art externe Zeitsynchronisierung driften die Uhren in PCs und Laptops schnell sowohl von der richtigen Zeit als auch von der TAI ab. Soweit ich weiß, ist die Situation auf der ISS die gleiche wie in jedem Büro, in dem es eine Mischung aus Computern gibt, die in verschiedenen Epochen für unterschiedliche Zwecke konfiguriert sind und auf denen unterschiedliche Software ausgeführt wird.

Nur um eine Vorstellung von der Größenordnung zu haben:

„Die Zeitdilatation erklärt, warum zwei funktionierende Uhren nach unterschiedlichen Beschleunigungen unterschiedliche Zeiten anzeigen. Zum Beispiel vergeht die Zeit auf der ISS langsamer und verzögert sich alle 12 verstrichenen Erdmonate um etwa 0,01 Sekunden.“

sagt https://en.wikipedia.org/wiki/Time_dilation

In ähnlicher Weise vergeht zwischen Erdoberfläche (1 g) und Marsoberfläche (1/3 g) die Zeit auf dem Mars, indem die Dinge auf dem Mars um 555 Sekunden pro 1e12 Sekunden schneller sind als auf der Erde (1e12 Sekunden auf der Erde sind mehr als 31688 Erdjahre!). Sie werden also das Erdneujahr auf der Erde etwas früher feiern als auf dem Mars, aber die Marsmenschen werden sich nicht darum kümmern, sie werden das Marsneujahr feiern!

Zeitdilatation zwischen Mars und Erde aufgrund unterschiedlicher Masse

Das Gravitationsfeld spielt für praktische Zwecke keine Rolle - die Leistung von Computern wird nicht messbar durch die Schwerkraft beeinflusst. Was messbar sein könnte, ist, dass die ISS schneller fliegt (sicherlich in Bezug auf die Bodengeschwindigkeit) als terrestrische Computer. Die Erde ist jedoch nicht stationär, sondern umkreist die Sonne, die Galaxie usw. Daher kann (a) der Unterschied sehr gering sein, und (b) wenn Sie die ISS als Bezugsrahmen verwenden, ist sie stationär und die Erde bewegt sich . Wie auch immer, CD ein paar Sekunden Drift in beide Richtungen zu haben, ist im Allgemeinen kein Problem für die Kommunikation.