به گفته hackster
دوست دارید Microsoft Windows 95 را روی یک ریزکنترلر (microcontroller) ارزان اجرا کنید؟ حالا میتوانید.
توسعهدهنده He Chunhui با Tiny386، ریزکنترلر کمهزینه Espressif ESP32 را به یک رایانه شخصی (PC) دهه ۹۰ میلادی تبدیل کرده است؛ شبیهسازی (emulation) کارآمدی که میتواند Windows 95 و طیفی از نرمافزارهای 16 و 32 بیتی را روی این چیپ اقتصادی اجرا کند.
به گفته Chunhui، «Tiny386 یک شبیهساز x86 PC نوشتهشده با C99 است. نقطه قوت آن قابلیت حمل (portability) است؛ اکنون روی MCUهایی مانند ESP32‑S3 بوت Windows 9x/NT را انجام میدهد. هسته پروژه یک شبیهساز ساده و سرراستِ i386 است که از پایه نوشته شده. برخی قابلیتها حذف شدهاند، مثل دیباگ، وظیفهی سختافزاری و بخشی از کنترلهای دسترسی، اما باید بتواند بیشتر نرمافزارهای 16/32 بیتی را اجرا کند.»
80386 که بیشتر با نام 386 یا i386 شناخته میشود، در 1985 بهعنوان جانشین 80286 عرضه شد و توانمندیهای معماری x86 را با یک خط لوله (pipeline) ششمرحلهایِ دستورالعمل (instruction) و پشتیبانی از عملیات 32 بیتی همراه با واحد مدیریت حافظه (MMU) روی خودِ تراشه گسترش داد. برای زمان خود تراشه قدرتمندی بود و در رایانههای رومیزی، لپتاپها و حتی سرورها جا گرفت.
در مقابل، Espressif ESP32‑S3 یک ریزکنترلر (microcontroller) کمهزینه اما توانمند است؛ بخش ناچیزی از قیمت 386 در اوج خود را دارد و مصرفش هم بسیار کمتر است. با این حال، از نظر توان پردازشی جلوتر است: 386 با کلاک 12MHz تا 40MHz عرضه میشد؛ ESP32‑S3 دو هسته Tensilica Xtensa LX7 با فرکانس 240MHz دارد. همین اختلاف باعث میشود ــ شگفتآور اما عملی ــ بتوان یک PC تقریباً کاملِ مبتنی بر 386 را تنها با ESP32‑S3 و کمی PSRAM (pseudo‑static RAM) خارجی شبیهسازی کرد.

Tiny386 روی خودِ ریزکنترلر اجرا میشود ــ هرچند برای حملپذیری به پلتفرمهای دیگر طراحی شده و Chunhui یک دموی در مرورگر (in‑browser) هم منتشر کرده است. با وجود حذف برخی قابلیتها، طیف وسیعی از نرمافزارها را اجرا میکند؛ طبیعتاً کلاسیک 1993 شرکت Id Software یعنی Doom نیز از جمله آنهاست. برای کامل کردن سیستم، Tiny386 از لوازم جانبی شبیهسازیشده در پروژههای دیگر بهره میگیرد و قابلیتهای گرافیک VGA، یک رابط شبکه Ethernet و حتی سه گزینه صوتی را فراهم میکند.
این شبیهساز هم نرمافزارهای 16 بیتی و هم 32 بیتی را اجرا میکند و حتی به لطف افزودن مجموعهای از دستورالعملهای 486 و Pentium (586)، بوت هستههای Linux را نیز ممکن کرده است. بهگفته Chunhui، هسته شبیهساز CPU در حدود ~6k LOC (تعداد خطوط کد) نگه داشته شده؛ افزونه اختیاریِ واحد محاسبات اعشاری (x87 FPU) هم وجود دارد. از سمت فریمور (firmware)، BIOS/VGABIOS از پروژه SeaBIOS تأمین میشود. Tiny386 همچنین بوت مستقیم هسته Linux را بدون BIOS سنتی پشتیبانی میکند.
نگه داشتن شبیهساز CPU در ~6k LOC دو پیامد مهم دارد: نخست، خوانایی و سادهبودن مسیرهای اجرای دستورالعمل برای اشکالیابیهای بعدی؛ دوم، قابلحمل بودن و امکان پورت روی محیطهای محدود منابع. Tiny386 در C99 نوشته شده است؛ زبانی که همگنی زیادی در زنجیرههای ابزار تعبیهشده (امبدد) و دسکتاپ دارد و پورت را ساده میکند.
در Tiny386، اجرای سیستمعاملهای دهه ۹۰ و نرمافزارهای آنها نیازمند شبیهسازی دقیق حالتهای 16 و 32 بیتی، مدیریت رجیسترها، آدرسدهی و وقفههاست. افزودن بخشی از دستورالعملهای 486/586 این امکان را میدهد که بوتلودرها و کرنلهای جدیدتر که به پیشنیازهای بعد از 386 متکیاند نیز راهاندازی شوند. در عین حال، برخی امکانات سیستمعامل مانند «وظیفه سختافزاری» یا بررسیهای پیچیده دسترسی که کمتر برای اجرای نرمافزارهای عمومی لازماند، بهصورت عمدی حذف شدهاند تا هزینه زمان اجرا و پیچیدگی کاهش یابد.
فهرست قابلیتها و محدودیتهای کلیدی پروژه بهطور خلاصه:
از منظر سختافزار میزبانی، ESP32‑S3 با دو هسته Tensilica Xtensa LX7 در 240MHz پایهای سریع برای شبیهسازی فراهم میکند. افزودن PSRAM خارجی فضای حافظه را برای اجرای سیستمعاملها و برنامههای 16/32 بیتی فراهم میسازد. هرچند در Tiny386 بسیاری از دستگاههای جانبی مانند VGA، شبکه و صدا بهصورت نرمافزاری شبیهسازی میشوند، همین رویکرد اجازه میدهد با حداقل قطعات بیرونی، یک تجربه PC قدیمی اما کاربردی ساخت.
پروژه Tiny386 با مجوز BSD سهبندی (BSD three‑clause) روی GitHub متنباز شده است. Chunhui نمایش موفق بوت آن را روی برد LCD توسعه مبتنی بر ESP32‑S3 مدل Guition JC3248W535 نشان داده است. اطلاعات تکمیلی در Hackaday.io موجود است و یک دمو در مرورگر نیز از طریق GitHub Pages در دسترس قرار دارد.
برای علاقهمندان، تجربه اجرای Windows 95، بازیهای کلاسیک مانند Doom، یا بوت یک هسته Linux روی یک ریزکنترلر ارزانقیمت نهتنها یادآور تاریخ رایانش شخصی است، بلکه نشان میدهد با طراحی کارآمد شبیهساز و انتخاب دقیق مجموعه دستورالعملها و پیرامونیها، میتوان روی پلتفرمهایی با منابع محدود هم به نتایج چشمگیر رسید.
وبسایت: http://www.arvidtek.com
www.arvidtek.com | گروه مهندسی آرویدتک | فعال حوزه الکترونیک و مخابرات | فروشگاه تخصصی قطعات الکترونیک
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.