เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™ GPSD เบงเบฑเบ™เบญเบฒเบ—เบดเบ”เบ™เบตเป‰เบˆเบฐเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™ 19 เบ›เบต.

เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เป„เบ”เป‰เบ–เบทเบเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบŠเบธเบ” GPSD, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เป€เบงเบฅเบฒเปเบฅเบฐเบ•เปเบฒเปเบซเบ™เปˆเบ‡เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบˆเบฒเบเบญเบธเบ›เบฐเบเบญเบ™ GPS, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเป€เบงเบฅเบฒเบˆเบฐเบ›เปˆเบฝเบ™เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™ 24 เบญเบฒเบ—เบดเบ”เปƒเบ™เบงเบฑเบ™เบ—เบต 1024 เบ•เบธเบฅเบฒ, i.e. เป€เบงเบฅเบฒเบˆเบฐเบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เป€เบ”เบทเบญเบ™เบกเบตเบ™เบฒ 2002. เบšเบฑเบ™เบซเบฒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ›เบฐเบเบปเบ”เบขเบนเปˆเปƒเบ™เบฅเบธเป‰เบ™ 3.20 เบซเบฒ 3.22 เบฅเบงเบกเบเบฑเบ™ เปเบฅเบฐเบ–เบทเบเปเบเป‰เป„เบ‚เปƒเบ™ GPSD 3.23. เบœเบนเป‰เปƒเบŠเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ—เบตเปˆเปƒเบŠเป‰ GPSD เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ—เบฑเบ™เบ—เบต, เบซเบผเบทเบเบฝเบกเบžเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบง.

เบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰เปƒเบ™เบฅเบฐเบšเบปเบšเบ•เปˆเบฒเบ‡เป†, เบฅเบงเบกเบ—เบฑเบ‡เบœเบนเป‰เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰ GPSD เป‚เบ”เบเบเบปเบ‡, เป€เบžเบฒเบฐเบงเปˆเบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ™เบตเป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบ‚เปเป‰เบกเบนเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปƒเบ™เบšเบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ NTP เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ synchronization เป€เบงเบฅเบฒ. เป€เบกเบทเปˆเบญเบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบงเบฅเบฒเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบฅเบฐเบšเบปเบš, เบšเบฑเบ™เบซเบฒเบญเบฒเบ”เบˆเบฐเป€เบเบตเบ”เบ‚เบทเป‰เบ™เบเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบ„เบฑเป‰เบ‡เบ”เบฝเบง, Kerberos เปเบฅเบฐเบเบปเบ™เป„เบเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบกเบตเบงเบฑเบ™เบซเบกเบปเบ”เบญเบฒเบเบธเบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ), เบ”เป‰เบงเบเบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™, เปเบฅเบฐเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเบˆเบฑเบ”เบเบฒเบ™เบŠเปˆเบงเบ‡เป€เบงเบฅเบฒ ( เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเป€เบงเบฅเบฒเบ‚เบญเบ‡เป€เบŠเบ”เบŠเบฑเบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰). GPSD เบเบฑเบ‡เบกเบตเบขเบนเปˆเปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบเบฑเบ‡ เปเบฅเบฐเบญเบธเบ›เบฐเบเบญเบ™เบกเบทเบ–เบทเบซเบผเบฒเบเบซเบผเบฒเบเบŠเบฐเบ™เบดเบ”, เป€เบŠเบดเปˆเบ‡เบซเบผเบฒเบเบญเบฑเบ™เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เป€เบŸเบตเบกเปเบงเบญเบตเบเบ•เปเปˆเป„เบ›.

เบญเบฐเบ™เบธเบชเบฑเบ™เบเบฒ GPS เบ›เบฐเบเบญเบšเบกเบตเบ•เบปเบงเบ™เบฑเบšเบญเบฒเบ—เบดเบ”เบ—เบตเปˆเบ™เบฑเบšเบญเบฒเบ—เบดเบ”เบ•เบฑเป‰เบ‡เปเบ•เปˆเบงเบฑเบ™เบ—เบต 5 เบกเบฑเบ‡เบเบญเบ™ 1980. เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบญเบญเบเบญเบฒเบเบฒเบ”, เบžเบฝเบ‡เปเบ•เปˆ 10 bits เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ counter เบ™เบตเป‰, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบกเบฑเบ™ overflows เบ—เบธเบเป† 1023 เบญเบฒเบ—เบดเบ” (19.7 เบ›เบต). เบ™เป‰เบณโ€‹เบ–เป‰เบงเบกโ€‹เบ„เบฑเป‰เบ‡โ€‹เบ—เบณโ€‹เบญเบดเบ”โ€‹เป€เบเบตเบ”โ€‹เบ‚เบถเป‰เบ™โ€‹เปƒเบ™โ€‹เบ›เบต 1999, เบ„เบฑเป‰เบ‡โ€‹เบ—เบตโ€‹เบชเบญเบ‡โ€‹เปƒเบ™โ€‹เบ›เบต 2019, เปเบฅเบฐโ€‹เบ„เบฑเป‰เบ‡โ€‹เบ—เบต 2038 เบˆเบฐโ€‹เป€เบเบตเบ”โ€‹เบ‚เบถเป‰เบ™โ€‹เปƒเบ™โ€‹เบ›เบต 13. เป€เบซเบ”เบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบ•เบดเบ”เบ•เบฒเบกเป‚เบ”เบเบœเบนเป‰เบœเบฐเบฅเบดเบ”เปเบฅเบฐเบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบžเบดเป€เบชเบ”เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒ. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบ„เบงเบฒเบก GPS เปƒเบซเบกเปˆ (CNAV) เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™, เป€เบŠเบดเปˆเบ‡ 2137 bits เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เบชเปเบฒเบฅเบฑเบš counter (i. e., เบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเบกเบตเบžเบฝเบ‡เปƒเบ™เบ›เบต XNUMX).

เปƒเบ™ GPSD, เปƒเบ™เป€เบซเบ”เบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบฎเบนเบšเบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบงเบดเบ™เบฒเบ—เบตเบžเบดเป€เบชเบ” (เป€เบžเบตเปˆเบกเป€เบžเบทเปˆเบญ synchronize เป‚เบกเบ‡เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบญเป‰เบฒเบ‡เบญเบตเบ‡เบ‚เบญเบ‡เป‚เบฅเบเบเบฑเบšเป€เบงเบฅเบฒเบ—เบฒเบ‡เบ”เบฒเบฅเบฒเบชเบฒเบ”เบ‚เบญเบ‡เป‚เบฅเบ), เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เป„เบ”เป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเบฑเบ™เบ—เบต 24 เป€เบ”เบทเบญเบ™เบ•เบธเบฅเบฒเบ›เบต 2021, 1024 เบˆเบฐเบ–เบทเบเบฅเบปเบšเบญเบญเบเบเปˆเบญเบ™เป„เบงเบญเบฑเบ™เบ„เบงเบ™. เป€เบ„เบปเบฒเป€เบ•เบตเป‰เบญเบฒเบ—เบดเบ”. เบญเบตเบ‡เบ•เบฒเบกเบœเบนเป‰เบ‚เบฝเบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ„เบงเบ™เบˆเบฐเป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™เบงเบฑเบ™เบ—เบต 31 เป€เบ”เบทเบญเบ™เบ—เบฑเบ™เบงเบฒ 2022, เปเบ•เปˆเบเบฒเบ™เปเบ›เบงเบฑเบ™เบ—เบตเบ™เบตเป‰เป€เบ›เบฑเบ™เบˆเปเบฒเบ™เบงเบ™เบญเบฒเบ—เบดเบ”เบšเปเปˆเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบญเบฒเบ—เบดเบ”เปƒเบ™เป€เบŠเบฑเบเบซเบผเบธเบ”เบฅเบปเบ‡เบžเบฒเบเปƒเบ•เป‰เป€เบ”เบทเบญเบ™เบ•เบธเบฅเบฒ 2021. (เบ„เปˆเบฒเบ—เบตเปˆเบฅเบฐเบšเบธเปเบกเปˆเบ™ 2180 เปเบ—เบ™ 2600). /* เบเบฒเบ™เบเบงเบ”เบชเบธเบ‚เบฐเบžเบฒเบšเป€เบฅเบเบญเบฒเบ—เบดเบ”, GPS epoch, เบ•เปเปˆเบเบฑเบšเบงเบดเบ™เบฒเบ—เบตเบ—เบตเปˆเบเป‰เบฒเบงเบเบฐเป‚เบ”เบ” * เปƒเบŠเป‰เบšเปเปˆเป„เบ”เป‰เบ”เบตเบเบฑเบšเบเบฒเบ™เบ–เบปเบ”เบ–เบญเบเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ leap_sconds * เบญเบฒเบ”เบˆเบฐเบกเบฒเบˆเบฒเบเบ•เบปเบงเบฎเบฑเบš, เบซเบผเบทเบˆเบฒเบ BUILD_LEAPSECONDS. */ if (0 < session->context->leap_seconds && 19 > session->context->leap_seconds && 2180 < week) { /* เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ leap second = 19 by 31 Dec 2022 * so week > 2180 is the way in the future , เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบฑเบ™ */ เบญเบฒเบ—เบดเบ” -= 1024; GPSD_LOG(LOG_WARN, &session->context->errout, "GPS week confuse. เบญเบฒเบ—เบดเบ”เบ—เบตเปˆเบ›เบฑเบš %u เบชเบณเบฅเบฑเบšเบเบฒเบ™เบเป‰เบฒเบงเบเบฐเป‚เบ”เบ” %d\n", เบญเบฒเบ—เบดเบ”, session->context->leap_seconds); }

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™