Այս կիրակի GPSD-ում սխալ թույլ կտա ժամանակը 19 տարով հետ բերել:

«GPSD» փաթեթում բացահայտվել է կարևոր խնդիր, որն օգտագործվում է GPS սարքերից ճշգրիտ ժամանակի և դիրքի տվյալներ հանելու համար, ինչի պատճառով հոկտեմբերի 24-ին ժամանակը կտեղափոխվի 1024 շաբաթ, այսինքն. ժամը կփոխվի 2002 թվականի մարտի։ Խնդիրը հայտնվում է 3.20-ից 3.22 ներառյալ թողարկումներում և լուծվում է GPSD 3.23-ում: GPSD օգտագործող համակարգերի բոլոր օգտվողները պետք է անմիջապես տեղադրեն թարմացումներ կամ պատրաստ լինեն ձախողման:

Սխալի հետևանքը կարող է հանգեցնել անկանխատեսելի խափանումների տարբեր համակարգերում, ներառյալ նրանց, որոնք ուղղակիորեն չեն օգտագործում GPSD, քանի որ այս հավելվածը օգտագործվում է ժամանակի համաժամացման համար օգտագործվող որոշ NTP սերվերների վրա ճշգրիտ ժամանակային տվյալներ ստանալու համար: Երբ համակարգերում ժամանակային տեղաշարժեր են տեղի ունենում, նույնականացման հետ կապված խնդիրներ կարող են առաջանալ (օրինակ՝ մեկանգամյա գաղտնաբառերը, Kerberos-ը և մուտքի ստուգման այլ մեխանիզմները, որոնք ունեն ժամկետի ավարտ, այլևս չեն աշխատի), վկայականի ստուգման և ժամանակային միջակայքերը կառավարող հաշվարկների հետ ( օրինակ՝ օգտագործողի նիստի ժամանակի հաշվարկը): GPSD-ը հասանելի է նաև մի շարք ներկառուցված և շարժական սարքերի վրա, որոնցից շատերն այլևս չեն ստանում որոնվածի թարմացումներ:

GPS արձանագրությունը ներառում է շաբաթական հաշվիչ, որը հաշվում է 5 թվականի հունվարի 1980-ից սկսած շաբաթները: Խնդիրն այն է, որ հեռարձակման ժամանակ այս հաշվիչին հատկացվում է ընդամենը 10 բիթ, ինչը նշանակում է, որ այն լցվում է 1023 շաբաթը մեկ (19.7 տարի): Առաջին արտահոսքը տեղի է ունեցել 1999 թվականին, երկրորդը՝ 2019 թվականին, երրորդը՝ 2038 թվականին։ Այս իրադարձությունները վերահսկվում են արտադրողների կողմից և նրանց համար նախատեսված են հատուկ մշակողներ: Ներկայումս զուգահեռ ներդրվել է GPS հաղորդագրության նոր ձևաչափ (CNAV), որում հաշվիչի համար հատկացվում է 13 բիթ (այսինքն՝ արտահոսք է սպասվում միայն 2137 թվականին)։

GPSD-ում հավելյալ վայրկյանի տեսքը կարգավորելու տրամաբանության մեջ (ավելացվել է աշխարհի տեղեկատու ատոմային ժամացույցները Երկրի աստղագիտական ​​ժամանակի հետ համաժամեցնելու համար), թույլ է տրվել սխալ, որի պատճառով 24 թվականի հոկտեմբերի 2021-ին 1024-ը ժամանակից շուտ կհանվի շաբաթվա հաշվիչ. Օրենսգրքի հեղինակի խոսքով՝ հերթափոխը պետք է տեղի ունենար 31 թվականի դեկտեմբերի 2022-ին, սակայն այս ամսաթվի թարգմանությունը շաբաթների թվի ճիշտ չի կատարվել, և իրականում չեկում նշված շաբաթների թիվը ընկել է 2021 թվականի հոկտեմբերին։ (նշված արժեքը 2180 է 2600-ի փոխարեն): /* ողջախոհության ստուգման շաբաթվա համարը, GPS-ի դարաշրջանը, ընդդեմ նահանջ վայրկյանների * Լավ չի աշխատում ռեգրեսիաների հետ, քանի որ թռիչք_sconds * կարող է լինել ստացողից կամ BUILD_LEAPSECONDS-ից: */ if (0 < session->context->leap_seconds && 19 > session->context->leap_seconds && 2180 < շաբաթ) { /* ենթադրենք թռիչք երկրորդ = 19-ը 31թ. , թույլ մի տվեք */ շաբաթ -= 2022; GPSD_LOG(LOG_WARN, &session->context->սխալ, "GPS շաբաթվա շփոթություն: Ճշգրտված շաբաթ %u համար թռիչք %d\n", week, session->context->leap_seconds); }

Source: opennet.ru

Добавить комментарий