Tiny386: اجرای Windows 95 و Linux روی برد ESP32‑S3

Tiny386: اجرای Windows 95 و Linux روی برد ESP32‑S3
4 بازدید
۱۴۰۴-۰۸-۱۷
3 دقیقه
  • نویسنده: آرویدتک
  • درباره نویسنده: www.arvidtek.com | گروه مهندسی آرویدتک | فعال حوزه الکترونیک و مخابرات | فروشگاه تخصصی قطعات الکترونیک

به گفته hackster

پروژه Tiny386 از He Chunhui یک شبیه‌ساز x86 در C99 است که برد ESP32‑S3 را به رایانه‌ای مبتنی بر i386 تبدیل می‌کند. اجرای Windows 95، نرم‌افزارهای 16/32 بیتی و حتی هسته Linux با VGA، Ethernet و صدا در حدود 6k LOC ممکن شده.

دوست دارید 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

Tiny386 روی خودِ ریزکنترلر اجرا می‌شود ــ هرچند برای حمل‌پذیری به پلتفرم‌های دیگر طراحی شده و Chunhui یک دموی در مرورگر (in‑browser) هم منتشر کرده است. با وجود حذف برخی قابلیت‌ها، طیف وسیعی از نرم‌افزارها را اجرا می‌کند؛ طبیعتاً کلاسیک 1993 شرکت Id Software یعنی Doom نیز از جمله آن‌هاست. برای کامل کردن سیستم، Tiny386 از لوازم جانبی شبیه‌سازی‌شده در پروژه‌های دیگر بهره می‌گیرد و قابلیت‌های گرافیک VGA، یک رابط شبکه Ethernet و حتی سه گزینه صوتی را فراهم می‌کند.

  • گرافیک: VGA
  • شبکه: رابط Ethernet (کارت شبکه شبیه‌سازی‌شده)
  • صدا: PC speaker، Adlib OPL2، و Creative Labs SoundBlaster 16

این شبیه‌ساز هم نرم‌افزارهای 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 متکی‌اند نیز راه‌اندازی شوند. در عین حال، برخی امکانات سیستم‌عامل مانند «وظیفه سخت‌افزاری» یا بررسی‌های پیچیده دسترسی که کمتر برای اجرای نرم‌افزارهای عمومی لازم‌اند، به‌صورت عمدی حذف شده‌اند تا هزینه زمان اجرا و پیچیدگی کاهش یابد.

فهرست قابلیت‌ها و محدودیت‌های کلیدی پروژه به‌طور خلاصه:

  • پردازنده شبیه‌سازی‌شده: i386 با افزودنی‌های منتخب از 486/586
  • واحد محاسبات اعشاری (x87 FPU): اختیاری
  • BIOS/VGABIOS: برگرفته از SeaBIOS
  • بوت مستقیم هسته Linux بدون BIOS سنتی
  • قابلیت حمل: اجرا روی ESP32‑S3 و دمو در مرورگر
  • کاستی‌های عمدی: عدم پشتیبانی از دیباگ داخلی، وظیفه سخت‌افزاری و بخشی از بررسی‌های مجوز

از منظر سخت‌افزار میزبانی، 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 روی یک ریزکنترلر ارزان‌قیمت نه‌تنها یادآور تاریخ رایانش شخصی است، بلکه نشان می‌دهد با طراحی کارآمد شبیه‌ساز و انتخاب دقیق مجموعه دستورالعمل‌ها و پیرامونی‌ها، می‌توان روی پلتفرم‌هایی با منابع محدود هم به نتایج چشمگیر رسید.

اطلاعات
4
0
0
اشتراک و حمایت
profile نویسنده: آرویدتک متخصص الکترونیک

وبسایت: http://www.arvidtek.com

www.arvidtek.com | گروه مهندسی آرویدتک | فعال حوزه الکترونیک و مخابرات | فروشگاه تخصصی قطعات الکترونیک


مقالات بیشتر

slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله

خانواده سیسوگ

سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله