به گزارش خبرآنلاین، به نقل از زومیت، ریشه مشکل سال ۲۰۳۸ در قلب بسیاری از سیستمهای عامل، بهویژه سیستمهای مبتنیبر یونیکس (مانند لینوکس، اندروید و macOS قدیمی) و نرمافزارهای ۳۲ بیتی نهفته است. این سیستمها، زمان را به صورت تعداد ثانیههای سپری شده از یک مبدأ مشخص، یعنی ساعت ۰۰:۰۰:۰۰ (UTC) روز یک ژانویه ۱۹۷۰ (معروف به Unix Epoch)، محاسبه میکنند.
چالش اصلی اینجا است که این شمارشگر ثانیه در سیستمهای ۳۲ بیتی، در یک متغیر عددی «علامتدار» ذخیره میشود. این نوع متغیر محدودیت ظرفیت دارد و میتواند حداکثر تا عدد ۲,۱۴۷,۴۸۳,۶۴۷ را در خود جای دهد.
لحظهی سرریز
این سقف عددی، دقیقاً در ساعت ۰۳:۱۴:۰۷ (UTC) روز سهشنبه، ۱۹ ژانویهی ۲۰۳۸ (۳۰ دی ۱۴۱۶) پر خواهد شد. یک ثانیه بعد (۰۳:۱۴:۰۸)، شمارشگر اصطلاحاً «سرریز» میکند. بیت علامت آن (که مثبت یا منفی بودن عدد را تعیین میکند) از صفر (مثبت) به یک (منفی) تغییر خواهد کرد و مقدار متغیر ناگهان به منفیِ ۲,۱۴۷,۴۸۳,۶۴۸ تبدیل میشود.
در این لحظه، سیستمعامل بهجای خواندن یک تاریخ در سال ۲۰۳۸، ناگهان به گذشته پرتاب میشود و تاریخ را ۱۳ دسامبر ۱۹۰۱ (۲۲ آذر ۱۲۸۰) تفسیر میکند. این اتفاق میتواند باعث از کار افتادن سیستمهای حیاتی، بروز خطاهای محاسباتی در تراکنشهای مالی، اختلال در مسیریابی و هر فرآیندی شود که به زمانبندی دقیق وابسته است.
کامپیوترهای شخصی و گوشیهای هوشمند مدرن شما در امان هستند. آنها همگی به معماری ۶۴ بیتی مهاجرت کردهاند. در یک سیستم ۶۴ بیتی، ظرفیت شمارشگر آنقدر بزرگ است که سرریز بعدی تا حدود ۲۹۲ میلیارد سال دیگر رخ نخواهد داد (یعنی سالها پس از پایان عمر خورشید).
خطر اصلی متوجه سیستمهای ۳۲ بیتی قدیمی است؛ میلیونها دستگاهی که شاید فراموش شده باشند اما هنوز در زیرساختهای حیاتی، روترها، سیستمهای کنترل صنعتی، تجهیزات بانکی قدیمی و حتی برخی قطعات خودروها در حال کار هستند.
مسابقهی مهندسان نرمافزار، یافتن و بهروزرسانی تمام این کدهای ۳۲ بیتی پنهان، پیش از رسیدن به آن سهشنبهی سرنوشتساز در سال ۲۰۳۸ است.
۵۸۵۸

















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