با کشف باگ ۳۴ ساله مک کلاسیک ۲ مشخص شد که شبیهساز MAME رفتار واقعی پردازنده را فاش و خطا را آشکار کرده است.
به گزارش سرویس نرمافزار تکناک، در کشفی شگفتانگیز که تاریخ محاسبات شخصی را بازنویسی میکند، باگی ۳۴ ساله در کد کامپیوترهای مک کلاسیک ۲ اپل شناسایی شد. باگ یادشده بهطور معجزهآسایی هرگز باعث ازکارافتادن سیستمهای واقعی نشد؛ زیرا پردازنده موتورولا ۶۸۰۳۰ آن با قابلیتی مخفی و ثبتنشده، بیسروصدا از این فاجعه جلوگیری میکرد.
داستان این کشف به داگ براون، یکی از علاقهمندان به دنیای کامپیوتر، بازمیگردد. او حین کار با شبیهساز «مِیم» (MAME) متوجه رفتار عجیبی شد: نسخهای شبیهسازیشده از کامپیوتر مک کلاسیک ۲ هنگام بوتشدن در حالت آدرسدهی ۳۲ بیتی، بلافاصله از کار میافتاد و آیکون معروف «مک غمگین» (Sad Mac) را نمایش میداد. این درحالی بود که سختافزار اصلی مک کلاسیک ۲ هرگز چنین مشکلی نداشت.
این تضاد کنجکاوی براون را برانگیخت. درحالیکه اولین گمانهزنیها میتوانست به خطای خود شبیهساز اشاره کند، او با مهندسی معکوس کد «رام» (ROM) اپل و اشکالزدایی دقیق، به نتیجهای باورنکردنی رسید: مقصر اصلی باگی در کد خود اپل بود که ۳۴ سال از چشمها پنهان مانده بود.
راز حل این معما در قلب سختافزار واقعی، یعنی پردازنده موتورولا ۶۸۰۳۰، نهفته بود. تحقیقات براون نشان داد که کد معیوب اپل دستورالعملی خاص را به پردازنده ارسال میکرد که طبق مستندات رسمی، باید به کرش سیستم منجر میشد. شبیهساز مِیم که براساس همین مستندات رسمی و با دقت زیاد طراحی شده بود، دقیقاً همین رفتار را شبیهسازی میکرد و از کار میافتاد.
پردازنده فیزیکی ۶۸۰۳۰ یک ویژگی مخفی داشت. این پردازنده هنگام مواجهه با این دستورالعمل خاص، آن را نادیده میگرفت و به کار خود ادامه میداد؛ گویی هیچ اتفاقی نیفتاده است. این قابلیت ثبتنشده و خوششانس، بهطور ناخواسته باگ نرمافزاری اپل را خنثی میکرد. براون این ویژگی را هوشمندانه به چسبی تشبیه میکند که بهطور تصادفی کلاسیک ۲ را سرپا نگه داشته بود.

این کشف نشان میدهد که توسعهدهندگان اصلی اپل احتمالاً هرگز از وجود این باگ مطلع نشدهاند؛ زیرا پردازنده «مزاحم» موتورولا همیشه آن را پنهان میکرد. براون معتقد است اگر این ویژگی مخفی وجود نداشت، مهندسان اپل قطعاً این مشکل را در همان زمان پیدا و برطرف میکردند.
تامزهاردور مینویسد که این ماجرا پیامدهای گستردهتری نیز دارد. به گفته براون، بسیار محتمل است که هیچ شبیهساز یا کپی کاملی از موتورولا MC68030 وجود نداشته باشد؛ زیرا ممکن است ویژگیهای ثبتنشده دیگری نیز در این تراشه وجود داشته باشد. این سؤال نیز مطرح میشود که چه تعداد نرمافزار دیگر در آن دوران بهواسطه این قابلیتهای پنهان پردازنده، بیآنکه کسی بداند، از خطاها نجات یافتهاند.
در نهایت، توسعهدهندگان مِیم برای حل این مشکل، شبیهساز خود را اصلاح کردهاند تا رفتار غیرمستند، اما واقعی پردازنده ۶۸۰۳۰ را تقلید کند و بدینترتیب، به کامپیوتر مک کلاسیک ۲ شبیهسازیشده اجازه بوتشدن بدهد.

















