آخرالزمانی که رخ نداد: داستان فاجعه باگ Y2K در سال 2000
باگ سال ۲۰۰۰ (Y2K) چگونه جهان را در آستانه وحشت قرار داد؟ بررسی تاریخچه، ابعاد فاجعه و تلاش شبانهروزی برنامهنویسان
تیکتاک بمب ساعتی در شب سال نو…
فهرست مطالب
شامگاه ۳۱ دسامبر ۱۹۹۹ بود. در حالی که مردم در میدان تایمز نیویورک، کنار برج ایفل در پاریس و در سراسر جهان برای ورود به هزاره جدید آماده میشدند و لیوانهایشان را به هم میکوبیدند، گروهی دیگر از انسانها در زیرزمینهای خنک، اتاقهای سرور و مراکز فرماندهی دولتی با چشمانی خسته و مضطرب به مانیتورهایشان خیره شده بودند. آنها منتظر آتشبازی نبودند؛ آنها منتظر پایان جهان دیجیتال بودند.
ترس از «باگ سال ۲۰۰۰» یا Y2K ، سایهای تاریک بر جشنهای ورود به قرن بیستویکم انداخته بود. شایعات وحشتناکی دهان به دهان میچرخید: هواپیماها از آسمان سقوط خواهند کرد، سیستمهای بانکی تمام پسانداز مردم را صفر خواهند کرد، شبکههای برق از کار خواهند افتاد و حتی موشکهای هستهای ممکن است بهطور خودکار شلیک شوند. اما چه چیزی باعث شده بود که پیشرفتهترین دستاوردهای بشری تا این حد آسیبپذیر بهنظر برسند؟ پاسخ به طرز خندهداری ساده بود: دو رقم صفر! در این مقاله، به کالبدشکافی یکی از جذابترین و پرالتهابترین بحرانهای تاریخ تکنولوژی میپردازیم؛ روزی که برنامهنویسان، در سکوت، جهان را از یک فروپاشی قطعی نجات دادند.

ریشه مشکل: وقتی صرفهجویی چند بایتی، میلیاردها دلار خرج برداشت
برای درک باگ Y2K، باید به دهههای ۱۹۶۰ و ۱۹۷۰ میلادی برگردیم؛ دوران طلایی کامپیوترهای Mainframe. در آن زمان، حافظه کامپیوتر (Storage و RAM) به شدت گرانقیمت بود. برای مثال، خرید یک مگابایت حافظه میتوانست دهها هزار دلار هزینه داشته باشد. برنامهنویسان برای بهینهسازی کدهایشان و کاهش هزینهها، باید در استفاده از هر بایت خساست به خرج میدادند.
یکی از ترفندهای رایج برای صرفهجویی در فضای ذخیرهسازی، کوتاه کردن تاریخها بود. برنامهنویسان به جای اینکه سال را به صورت چهار رقمی (مثلاً 1975) ذخیره کنند، تنها دو رقم آخر آن را (یعنی 75) ذخیره میکردند. در ذهن سیستم، قرن همیشه «۱۹» بود. این راهکار هوشمندانه در آن زمان باعث صرفهجویی میلیونها دلار شد و به خوبی کار میکرد.
اما مشکل از جایی شروع شد که کسی به آینده دور فکر نکرده بود. وقتی سال 1999 به پایان میرسید، سیستمها باید سال را از 99 به 00 تغییر میدادند. در منطق کامپیوتری، 00 به معنای سال 2000 نبود، بلکه به معنای سال 1900 بود!
این اشتباه محاسباتی ساده، میتوانست فاجعهبار باشد. تصور کنید کامپیوتری بخواهد سن یک فرد، میزان سود بانکی یا تاریخ انقضای یک داروی حیاتی را محاسبه کند. اگر یک وام در سال 1998 (98) گرفته شده باشد و در سال 2000 (00) سررسید شود، کامپیوتر زمان سپری شده را اینگونه محاسبه میکرد: 00−98=−98. زمان منفی برای نرمافزارها تعریف نشده بود و این یعنی «کرش کردن» کامل سیستم یا تولید دادههای کاملاً اشتباه.

ابعاد فاجعه و وحشت جهانی: پیشگوییهای آخرالزمانی در عصر دیجیتال
با نزدیک شدن به اواخر دهه ۹۰ میلادی، متخصصان فناوری اطلاعات زنگ خطر را به صدا درآوردند. جهان به شدت به کامپیوترها وابسته شده بود. از سیستمهای کنترل ترافیک هوایی و شبکههای توزیع آب و برق گرفته تا بازار بورس و سیستمهای پزشکی، همگی بر پایه کدهایی بنا شده بودند که تاریخ انقضایشان شب سال نو بود.
رسانهها به سرعت این موضوع را بو کشیدند و موجی از وحشت جهانی به راه افتاد. مجلاتی مانند Time و Newsweek تیترهای آخرالزمانی چاپ کردند. مردم عادی شروع به ذخیره کردن آب معدنی، کنسرو، باتری و ژنراتورهای برق کردند. برخی از افراد پولهای خود را از بانکها بیرون کشیدند و زیر تشکهایشان پنهان کردند، زیرا میترسیدند موجودی حسابشان در روز اول ژانویه صفر شود.
صنعت هوانوردی در مرکز این وحشت قرار داشت. بسیاری از مسافران پروازهای شب سال نو را لغو کردند، مبادا سیستمهای ناوبری هواپیماها در آسمان خاموش شوند. دولتها ستادهای بحران تشکیل دادند و ارتشها به حالت آمادهباش درآمدند تا در صورت بروز شورشهای ناشی از قطعی برق و کمبود مواد غذایی وارد عمل شوند.

قهرمانان خاموش: بزرگترین تیم تکنولوژیک در دوران صلح
در حالی که مردم در حال ساختن پناهگاه بودند، جامعه فناوری اطلاعات در حال انجام بزرگترین و پرهزینهترین عملیات نگهداری نرمافزار در تاریخ بشریت بود. برآوردها نشان میدهد که دولتها و شرکتهای خصوصی در سراسر جهان بیش از 300 میلیارد دلار برای مقابله با Y2K هزینه کردند.
اما مشکل اینجا بود که بسیاری از سیستمهای حیاتی (مانند بانکها و موسسات دولتی) با زبان برنامهنویسی COBOL نوشته شده بودند؛ زبانی که در دهه ۹۰ منسوخ شده محسوب میشد. ناگهان، برنامهنویسان بازنشستهای که دههها پیش این کدها را نوشته بودند، به باارزشترین افراد روی زمین تبدیل شدند. شرکتها با پیشنهاد حقوقهای نجومی، این متخصصان را از دوران بازنشستگی بیرون کشیدند تا خط به خط کدهای قدیمی را بررسی و اصلاح کنند.
این یک کار طاقتفرسا، خستهکننده و به شدت استرسزا بود. برنامهنویسان باید میلیونها خط کد را به صورت دستی میخواندند، هر جا که فیلد تاریخ وجود داشت آن را پیدا میکردند، منطق برنامهنویسی را به سیستم چهار رقمی (یا روشهای جایگزین مانند Windowing) تغییر میدادند و سپس سیستم را بارها و بارها تست میکردند تا مطمئن شوند بخشهای دیگر نرمافزار از کار نمیافتد.

شب موعود: ژانویه ۲۰۰۰ و سکوتی که دنیا را فرا گرفت
سرانجام عقربههای ساعت به نیمهشب ۳۱ دسامبر ۱۹۹۹ رسید. در سراسر جهان، متخصصان IT نفسهایشان را در سینه حبس کردند. نیوزلند و استرالیا به دلیل موقعیت جغرافیایی، اولین کشورهایی بودند که وارد سال ۲۰۰۰ شدند. جهان با اضطراب به آنها نگاه میکرد.
ساعت از ۱۲ گذشت… و هیچ اتفاقی نیفتاد!
چراغها روشن ماندند. هواپیماها به سلامت به زمین نشستند. بانکها کار خود را به درستی انجام دادند. صبح روز بعد، وقتی خورشید در یک قرن جدید طلوع کرد، جهان همچنان سر جای خود بود.
این آرامش باعث شد تا بسیاری از مردم عادی و رسانهها به سرعت تغییر موضع دهند. آنها ادعا کردند که Y2K از ابتدا یک دروغ، یک اغراق رسانهای یا یک کلاهبرداری از سوی شرکتهای کامپیوتری برای کسب درآمد بوده است. اما واقعیت چیز دیگری بود.

آیا Y2K یک دروغ بود؟ حقیقت ماجرا و نکات جالب ناشنیده
دلیل اینکه فاجعهای رخ نداد، این نبود که مشکلی وجود نداشت؛ بلکه دلیلش این بود که صدها هزار متخصص در طول پنج سال بیوقفه کار کرده بودند تا مشکل را پیش از وقوع حل کنند. Y2K پارادوکسِ آمادگی است: وقتی شما برای جلوگیری از یک بحران به بهترین شکل ممکن عمل میکنید، دیگران فکر میکنند اصلاً بحرانی در کار نبوده است!
با این حال، باگهایی هم در روزهای اول سال ۲۰۰۰ رخ دادند که نشان میداد اگر آن تلاشهای جهانی نبود، چه فاجعهای میتوانست به بار بیاید. برخی از این اتفاقات جالب عبارتند از:
- قبضهای جریمه ۱۰۰ ساله: در ایالت نیویورک، یک فروشگاه کرایه ویدیو به سیستم قدیمی خود متکی بود. در روز اول ژانویه، سیستم محاسبه کرد که مشتریان فیلمها را در سال ۱۹۰۰ کرایه کردهاند و قبضهای جریمه ۹۹ هزار دلاری برای آنها صادر کرد!
- سقط جنینهای اشتباهی: در یک بیمارستان در بریتانیا، سیستم کامپیوتری سن مادران باردار را اشتباه محاسبه کرد و به دلیل ریسک بالای (و البته کاذبِ) سندروم داون، تستهای خطرناک و غیرضروری برای دهها مادر تجویز شد.
- ساعتهای رصدخانه نیروی دریایی آمریکا: رصدخانه نیروی دریایی ایالات متحده که مرجع رسمی زمانسنجی این کشور است، در وبسایت خود تاریخ اول ژانویه ۲۰۰۰ را به صورت 1 Jan 19100 نمایش داد!
- مشکلات در نیروگاههای هستهای: در ژاپن، سیستم هشدار تشعشعات در یکی از نیروگاههای هستهای از کار افتاد، هرچند خوشبختانه خطری ایمنی را تهدید نکرد.

جمعبندی: میراث ابدی یک باگ دو رقمی
باگ سال ۲۰۰۰، نقطه عطفی در تاریخ ارتباط انسان و تکنولوژی بود. این رویداد، برای اولین بار به رهبران جهان، مدیران عامل و مردم عادی نشان داد که چقدر به زیرساختهای دیجیتال وابستهاند و یک خطای کوچک در کدنویسی چگونه میتواند زنجیرهای از خرابیها را در سطح جهانی ایجاد کند.
میراث Y2K تنها در کدهای اصلاح شده خلاصه نمیشود. این بحران باعث شد تا شرکتها برای اولین بار مفاهیمی مانند «مدیریت ریسک در فناوری اطلاعات»، «بازیابی پس از فاجعه (Disaster Recovery)» و «حسابرسی نرمافزار» را جدی بگیرند. برنامهنویسانی که شبانهروز برای حل این مشکل تلاش کردند، قهرمانان بینام و نشانی بودند که از وقوع یک آخرالزمان مدرن جلوگیری کردند. دفعه بعد که تاریخ تولد خود را در یک وبسایت به صورت چهار رقمی وارد میکنید، به یاد داشته باشید که این دو رقمِ اضافه، یادگار روزهایی است که جهان از ترس دو عدد صفر، نفس خود را در سینه حبس کرده بود.




































دیدگاهتان را بنویسید