באגים הקשורים לשעה ותאריך

מתוך המכלול, האנציקלופדיה היהודית
קפיצה לניווט קפיצה לחיפוש

בתוכנה, באגים הקשורים לשעה ותאריך הם באגים הגורמים לחישוב שגוי של זמן, שעה או תאריך, שמתרחש לרוב במעבר בין ימים, חודשים או שנים, או במצב של גלישה מגבולות הזמן המקסימלי שהוגדר במערכת. לבאגים אלה יש השלכות על החישובים התלויים בנתוני הזמן, והם עלולים להוביל לשגיאות קשות ולשיתוק פעולה של מערכות.

המקרה הידוע ביותר הוא באג 2000, אבל ידועים מקרים נוספים לאורך ההיסטוריה של המחשוב ובעתיד.

באגים היסטוריים

Postscript-viewer-shaded.png ערך מורחב – באג 2000
שנה תיאור פתרון
1970 במהלך שנות ה-60 של המאה ה-20 במספר תוכנות היה נהוג לייצג את השנה באמצעות ספרה בודדת (0–9). כך היה יותר פשוט לרשום, למשל בשפות תכנות כמו COBOL. הבעיה אותרה ותוקנה עוד לפני 1970 ולא ידוע על נזק שנגרם כתוצאה מכך.
1975 טווח השדה של השנה במערכת ההפעלה PDP-10 לא היה מסוגל להכיל יותר מידע החל מ-4 בינואר באותה שנה. נרשמו מספר תקלות[1]. פותח פורמט חלופי.
1997 מערכת ההפעלה Domain/OS (אנ') שהתבססה על חישוב זמן לפי 4 מיקרושניות הגיעה לסיומה[דרושה הבהרה] ב-2 בנובמבר, עת הגיעה ל-47 סיביות.
1999 התרחשו מספר באגים בחודשים האחרונים של השנה, הקשורים בהתכוננות לקראת באג 2000. בנוסף, התאריך 9 בספטמבר 1999 (9/9/99) שימש כדי לייצג תאריך לא ידוע.
2000 בשנה זו נוצרה בעיה מאחר שעד אותה שנה ספרות השנה הוצגו באמצעות שתי ספרות בלבד, מטעמי נוחות וחיסכון. מפתחי הקודים מעשרות שנים מלפני כן תיקנו את הבעיה ובפועל לא נגרמו נזקים משמעותיים[2].
2001 ב-9 בספטמבר התרחש [דרוש מקור] באג במערכת ההפעלה Unix כאשר מספר השניות בזמן יוניקס הגיע למיליארד. הבאג יצר בעיה בחישוב תאריכים המשווים שניות לתאריכים לפי זמן יוניקס.
2010 במספר מקרים נרשמו בעיות [דרוש מקור] במעבר בין קידוד מספרים בבסיס הקסדצימלי לבין עשרוני בקידוד בינארי.
2013 הגשושית פגיעה עמוקה של סוכנות החלל נאס"א איבדה קשר עם כדור הארץ באוגוסט 2013, אחרי שהשעון שבה ספר 32^2 עשיריות שנייה מאז 1 בינואר 2000.
2015 חלק מהטלפונים הסלולריים של סמסונג שהכילו ערכת שבבים של חברת Agere מיאנו לעבור את התאריך 31 בדצמבר 2014. השנה השתנתה אוטומטית ל-2015, אבל חזרה לתאריך הבסיס אחרי כל הפסקת מתח (כגון הוצאת סוללה).
2017 הדקה האחרונה בשנת 2016 הייתה דקה מעוברת ועם כניסת השנה החדשה, נוצרו בעיות בגישה למספר שרתים[3]. טכנאים התגברו על הבעיה בתוך 90 דקות.

באגים צפויים

2038

Postscript-viewer-shaded.png ערך מורחב – באג 2038

מערכות יוניקס המקוריות מותאמות למחשבי 32 ביט, ומונה הזמן בהן הוא מספר מסומן (כלומר חיובי או שלילי) שבו רק 31 ביטים מיועדים למנייה וביט אחד לסימן. המונה סופר שניות מ-1 בינואר 1970 בחצות, והוא יתמלא כשיגיע ל-2,147,483,647 ב-19 בינואר 2038. מרגע זה הוא יהפוך סימן ויתחיל למנות מ--2,147,483,647 המייצג את 13 בדצמבר 1901[2].

בעיה זו אינה קיימת במערכות יוניקס מודרניות שעובדות ב-64 ביט. מערכות יוניקס ישנות של 32 ביט שמחשבות תאריכים עתידיים, ייתקלו בבאג עוד לפני 2038.

2040

במערכות של חברת אפל המבוססות על HFS (אנ') או על HFS Plus (אנ') (ברירת מחדל של מחשבי מקינטוש), טווח השעון הוא רק עד 6 בפברואר 2040. אפל מתכננת מערכת קבצים חדשה (אנ') שתחליף את המערכות האלו.

2042

ב-17 בספטמבר 2042 הזמן האטומי הבינלאומי יתהפך במחשבי IBM מיינפריים (IBM mainframe) וכן בדורותיהם הבאים, כולל הzSeries. הזמן אוניברסלי מתואם יהיה מספר שניות מוקדם יותר עקב אי-שיקלולה של דקה מעוברת בחישוב הזמן.

2079

תוכנות המחשבות ציון זמן לפי מספר ימים צפויות להיתקל בבאג, כאשר מספר הימים יגיע ל-32,768 (הם 215) מאז תחילת הספירה ב-1989. תוכנות אשר משתמשות בספירת זמן מאז 1 בינואר 1900 ייתקלו בבעיה ב-6 ביוני כאשר ייספרו 65,536 (216) ימים.

2100

מערכות DOS ו-Microsoft Windows תומכות בממשק תכנות יישומים עד לתחילת שנת 2100, כאשר דבר זה מוצהר על-ידם. הסיבה היא שמערכות אלו לא מתוכנתות לכל הכללים הייחודיים של שנה מעוברת שיחולו בשנה זו[4]. ייתכנו בעיות לא צפויות ב-1 בינואר של שנה זו.

2106

מערכות, קבצים וממשקים המשתמשים ב-Unix בפורמט זמן time_t מחשבים את הזמן לפי שניות שחלפו מאז 1 בינואר 1970 יסיימו את המקום בשדה המאפשר רישום. זה ייקרה בתאריך 7 בפברואר 2106.

2108

הזמן שמוגדר ב-File Allocation Table שמבוסס על DOS ייכנס לערך שלילי ב-31 בדצמבר 2107.

21 בספטמבר 2150

תוכנות המחשבות תאריכים של לוח השנה העברי עלולות לא להיות פעילות כאשר שדה השנה, המתחשב בארבע אותיות כציון השנה, יצטרך לחשב תאריך בן חמש אותיות בשנת ה'תתקי"א[4]. עלולים להיתקל בבעיה זו עוד לפני כן בחישוב של תאריכים עתידיים.

באגים של שנים רחוקות מאוד

כאשר נוצרת סביבת עבודה של מחשבים ובפרט תוכנות ויישומים מניחים כי בעתיד הרחוק כבר לא יהיה בהן שימוש, שכן כל המין האנושי ובפרט הטכנולוגיה ישנו פניהם ללא היכר. בנוסף, בעיות תיאורתיות יותר רחוקות מציבות סימן שאלה האם בכלל ייתכנו חיים על פני כדור הארץ ואף של היקום. למרות זאת, בסיסי נתונים עובדים על חישובים שונים ולכן, יש לדעת על אותם באגים צפויים.
יחד עם זאת, יש לקחת בחשבון כי בשנים יותר רחוקות אורך היממה צפוי להתארך אמנם רק בשינויים זעירים, אך במידה ועדיין יישאר זכר לתכנות של ימינו הרי שספירה לפי שניות עלולה להשתבש.

10,000

באג 10,000 (אנ') יתרחש כאשר המחשב יצטרך לזהות שנה בעלת חמש ספרות במקום ארבע. לפי הערכות, גם אם תתקיים האנושות עד אז, כל מערכות המחשבים ישתנו ללא היכר עד אז ולכן אין מה לדאוג בקשר לבעיה זו. עם זאת, בקרב מחקרים (בעיקר בפיזיקה ואסטרונומיה) נדרשים חישובים לתהליכים שאורכים אלפי שנים - למשל, בטיפול בפסולת גרעינית. במחשבי חברת אפל באג זה עלול להתרחש בשנת 10,001 בשל שיטת חישוב שונה של תאריכים.
ארגון בשם Long Now Foundation (אנ') פועל לשם הגברת המודעות לבאג ומנסה למצוא פתרונות מבעוד מועד[5].

קישורים חיצוניים

הערות שוליים

  1. ^ ידיעה בתוך אתר The RISKS Digest, פורסם במקור ב-11 בדצמבר 1985 (באנגלית)
  2. ^ 2.0 2.1 עידו גנדל, באג מחשבים, באתר של "רשת 13", 10 בנובמבר 2008 (במקור, מאתר "nana10")
  3. ^ באג 2017: השנייה הנוספת יצרה פאניקה בשרתים, באתר ynet, 3 בינואר 2017
  4. ^ 4.0 4.1 אריה סתר, ‏באג 2100 ובאג תתקי"א, באתר "הידען", 28 בספטמבר 2004
  5. ^ אתר הארגון, נצפה ב-3 בדצמבר 2016 (באנגלית)