- Tiny386 emuluje i386 na ESP32-S3 a spúšťa ho Windows 95 s videom, sieťou a zvukom.
- Skromný výkon: topánka ~4 minúty; Poznámkový blok, Solitaire a IE fungujú.
- Kód v jazyku C99 (~6k LOC), licencia BSD-3; k dispozícii je demo verzia WebAssembly.
- Aktuálna podpora pre JC3248W535; možná prenositeľnosť na iné mikrokontroléry.

Čo sa ešte nedávno zdalo ako vtip na fóre, sa stalo skutočnosťou: Spustenie systému Windows 95 na ESP32-S3 Vďaka minimalistickému emulátoru x86 s názvom Tiny386 sa systém od Microsoftu na malom devkite s 3,5-palcovou dotykovou obrazovkou spustí, systém beží len pár minút a ledva, ale otvorí Poznámkový blok, zahrá Solitaire a dokonca načíta cez sieť aj vintage webovú stránku.
Zodpovednou osobou je developer He Chunhui (hchunhui), ktorý postavil Emulátor i386 od začiatku na C99 a portoval ho na mikrokontrolér Espressif. Pozoruhodné je nielen to, že to funguje, ale podľa informácií zverejnených na GitHub, Hackster/Hackaday a v špecializovaných médiách je to pravdepodobne prvýkrát, čo sa niekomu podarilo načítať Windows na Espressif. technické vybavenie ESP32, po predchádzajúcich míľnikoch, ako napríklad spustenie Linux 5.0 na iných doskách ESP32 a obraz Linuxu 6.3 na Olimex ESP32-S3-DevKit-LiPo.
Čo je Tiny386 a kto za tým stojí?
Tiny386 je v podstate virtuálny počítač x86, napísaný v jazyku C99 a navrhnutý tak, aby bol prenosnýJeho jadrom je emulátor CPU Intel i386 „jednoduchý a hlúpy“ – slovami samotného autora – s veľmi jasným cieľom: spúšťať čo najviac 16 a 32-bitového softvéru bez toho, aby ho zaťažoval enormnou zložitosťou.
Virtuálny procesor implementuje inštrukčnú sadu 80386 a pridáva Pokyny 486 a 586 kde sú potrebné na zavedenie moderných jadier Linuxu a systémov Windows súčasných z tej doby. Jadro má približne 6 000 riadkov kódu (LOC), čo je prekvapujúce vzhľadom na to, čo dokáže spracovať, a voliteľne obsahuje emulácia FPU x87 pre softvér, ktorý to potrebuje.
Ako v každom novom projekte, aj tu existujú medzery, ktoré treba vyplniť. V skutočnosti Chýbajú funkcie ako ladenie, hardvérové úlohy a určité kontroly povolení.Aj napriek tomu platí predpoklad: pre väčšinu klasického softvéru pre DOS/Windows 3.x/95 a dokonca aj pre zavedenie moderného systému Linux je súčasná implementácia dostatočne zvládnuteľná.
Ako emulovať počítač s procesorom i386 na ESP32-S3
Aby sme ocenili jeho výhody, stojí za to pripomenúť si, čo bol 80386: 32-bitový procesor x86 so šesťstupňovým pipeline a MMU integrovaný, uvedený na trh v polovici 80. rokov. Bol základom celej éry osobných počítačov, prenosný a dokonca aj servery so skutočnými a chránenými režimami, ktoré znamenali vývoj softvéru.
Na opačnej strane, ESP32-S3 Ide o súčasný, lacný mikrokontrolér s dvoma jadrami Tensilica Xtensa LX7 na 240 MHz, pripojením cez Wi-Fi/Bluetooth a veľmi nízkou spotrebou energie. Hoci porovnanie nie je priame (emulácia má vždy nevýhodu), hrubý výkon tohto SoC a podpora externej pamäte PSRAM z neho robia silného konkurenta. Umožňujú vám simulovať funkčný stroj 386 so základnou grafikou, sieťou a zvukom, to všetko v samotnom mikrofóne.
Trik spočíva v pragmatickom prístupe: CPU je emulované jednoduchým spôsobom, Pridávajú sa základné pokyny ktoré chýbali v moderných skrinkách, a zvyšok počítačového zážitku je postavený na virtuálnych perifériách, ktoré už boli testované v iných projektoch. Táto kombinácia minimalizmu a šikovnej recyklácie umožňuje systému spustiť systém Windows 95 bez pádu.
Emulované periférie a firmvér
Na dokončenie ekosystému PC si Tiny386 požičiava kód z TinyEMU a QEMU aby sa napodobnili klasické komponenty ISA stroja zo začiatku 90. rokov. BIOS VGABIOS medzitým pochádza z projektu SeaBIOS, ktorý uľahčuje bootovanie systémov bez spoliehania sa na proprietárne ROM.
Zoznam podporovaných periférií obsahuje časti, ktoré sú veľmi dobre známe každému, kto sa už niekedy pohrával s klasickou emuláciou PC: radiče prerušení, časovače, klávesnica, video, disk, sieť a zvukPodrobne:
- Radič prerušení 8259 (PIC) a časovač 8254 (PIT), nevyhnutné pre časovanie systému.
- 8042 a ovládač klávesnice CMOS RTC pre hodiny a základné nastavenia.
- VGA ISA s Bosch VBE ponúkať kompatibilné video režimy.
- IDE diskový ovládač pre skladovanie.
- Sieťová karta NE2000 ISA, veterán, ktorý je rozšírený a ľahko sa napodobňuje.
- DMA ISA 8257, reproduktor počítača, Adlib OPL2 a Sound Blaster 16 pre zvuk.
Vďaka tomuto katalógu systém nielen zobrazuje grafiku a spúšťa prostredie Windows s rozhraním, ale aj Má sieťové pripojenie a dokáže prehrávať zvuk s ovládače vhodné, ktoré prekvapivo kompletne dotvára zážitok zo „starého PC“.
Referenčný hardvér: JC3248W535 s ESP32-S3
Demonštrácia, ktorá upútala pozornosť všetkých, prebieha cez Sprievodca JC3248W535Je to vývojová doska s ESP32-S3 a 3,5-palcovým dotykovým LCD displejom. Túto vývojovú sadu možno zohnať za približne 25 – 30 dolárov na stránkach ako AliExpress a z toho, čo sme videli, obsahuje všetko, čo potrebujete na hranie hier z „vreckových PC 90. rokov“.
Jeden dôležitý detail: port USB-C na tejto základnej doske je zrejme navrhnutý pre programovanie a rafinovanénie ako periférny hostiteľ USB štandard ESP32-S3. Aj napriek tomu si s perifériou USB OTG čipu možno predstaviť zostavu s... rozbočovač USB ku ktorému môžete pripojiť klávesnicu a myš, čím vytvoríte mini-386 s priamym káblovým vstupom.
V súčasnosti sa oficiálna podpora projektu zameriava na túto konkrétnu dosku a autor uvádza, že Iba ESP32-S3 Je natívne podporovaný. Architektúra emulátora však uprednostňuje prenositeľnosť: s primeraným úsilím by sa dal portovať na iné mikrokontroléry a platformy, čím by sa otvorili dvere k ďalším formátom a obrazovkám.
Výkon a používateľská skúsenosť
Otázka, ktorú si všetci kladú: ako sa máš? Stručná odpoveď znie: „...S trpezlivosťou to funguje.Úplné spustenie systému Windows 95 trvá vo verejnej demoverzii približne 4 minúty. Po spustení je systém pomalý, ale zvládnuteľný: môžete otvoriť Poznámkový blok, hrať Solitaire a dokonca spustiť Internet Explorer.
Je implementované sieťové pripojenie, takže emulátor môže Načítať základné webové stránkyUkážka ukazuje, ako sa otvára stránka info.cern.ch, prvá webová stránka v histórii, ktorá dodáva scéne s Windowsom 95 bežiacim na mikročipe s cenou menej ako 30 eur príjemný nádych nostalgie.
Čo sa týka výkonu, je pochopiteľné, že systém je tlačený na svoje hranice: emulácia zvyšuje réžiu a ESP32-S3 chýba grafická akcelerácia na úrovni PC. Napriek tomu... celkový pocit je „použiteľnosť na hrane“ Je to viac než len obyčajné „spustí sa a zamrzne“. Ak prehráte video dvojnásobnou rýchlosťou – obľúbený tip medzi tými, ktorí ho už videli – stane sa oveľa znesiteľnejším.
Zaujímavosťou je, že Tiny386 môže bežať osudTen klasický test „ak na tom nespustí Doom, tak to nie je dobré“. A vďaka virtualizovaným zvukovým zariadeniam (PC reproduktor, Adlib OPL2 a SB16) je aj zvukový aspekt pokrytý v maximálnej možnej miere v rámci hardvérových obmedzení.
Podporované operačné systémy a softvér
Katalóg, ktorý už bol uvedený vo videu, obsahuje Windows 3.1 / 3.2 (s čínskou variantou 3.1) a Windows 95. Okrem toho autor zdôrazňuje, že Tiny386 „Mal by spustiť väčšinu 16/32-bitového softvéru“ a že s rozšírením inštrukcií 486/586 je možné zaviesť vtedajšie relatívne moderné jadrá Linuxu aj Windows NT.
Jeden veľmi zaujímavý detail je, že Tiny386 je schopný spustiť jadro Linuxu priamobez nutnosti prechádzať tradičným BIOSom, čo zjednodušuje niektoré testovacie pracovné postupy. Projekt tiež ponúka možnosť skúmania bez montáže hardvéru ukážka vo WebAssembly ktorý spúšťa systém Windows 3.2 v prehliadači a spomína alternatívy ako FreeDOS alebo JSLinux pre tých, ktorí chcú porovnať skúsenosti s emuláciou na webe.
V oblasti aplikácií, okrem spomínaného Doomu, aj základné programy pre Windows 95 (Poznámkový blok, Solitaire a Internet ExplorerTieto sa osvedčili, aj keď sú výkonnostné obmedzenia zjavné. To je dostatočný dôkaz na záver, že grafika, vstup/výstup a sieťový zásobník sú pomerne dobre integrované.
Ako sa spracovávajú vstupy a porty
Na doske JC3248W535 je použitie fyzických periférií podmienené USB-C na programovanieNa prekonanie tejto prekážky je v súčasnej implementácii možné použiť klávesnicu a myš presmerovanie cez Wi-Fi smerom k emulátoru, čo ponúka ovládanie bez potreby vyhradených portov v devkite.
Pri pohľade do budúcnosti by nebolo prekvapujúce vidieť zostavy, ktoré využívajú výhody ESP32-S3 USB OTG ako hostiteľa a umožnenie vytvorenia rozbočovača na pripojenie bežných klávesníc a myší. Tento krok by výrazne uľahčil interakciu bez spoliehania sa na dotykové obrazovky alebo riešenia diaľkového ovládania.
Zdroje informácií o licenciách, kóde a testovaní
Projekt je publikovaný pod 3 doložka BSD licenciaTo podporuje jeho opätovné použitie a prenosnosť. Kompletný zdrojový kód je k dispozícii v repozitári GitHub. základné pokyny na kompiláciudokumentáciu konfiguračných súborov a pre tých, ktorí sa ponáhľajú, predkompilované obrázky pripravené na blikanie.
Okrem technickej dokumentácie existuje aj ukážka v prehliadači (GitHub Pages), ktorý vám umožňuje získať predstavu o tom, ako sa systém Windows 3.2 spúšťa a ako systém reaguje, bez potreby akéhokoľvek hardvéru. Tí, ktorí sa chcú ponoriť hlbšie do problematiky, môžu nájsť informácie a diskusie aj na stránkach ako Hackster.io a Hackaday.io a v komunitách ako /r/hardvér, kde tieto retro-technologické výdobytky často vyvolávajú živé diskusie.
Médiá ako CNX Software a Tom's Hardware informovali o vývoji a zdôraznili detaily, ako napríklad zoznam emulovaných perifériíZávislosť SeaBIOSu pre BIOS/VGABIOS a súčasný stav podpory pre dosku JC3248W535. V skutočnosti časť šírenia prišla s impulzom komunity – vďaka tipom, ako sú tie od Zoobaba –, čo vysvetľuje rýchlosť, s akou sa projekt dostal do popredia scény výrobcov.
Z Linuxu na AVR na Windows 95 na ESP32‑S3
Aby sme to uviedli do perspektívy, tí, ktorí si pamätajú pokusy o bootovanie Linuxu na 8-bitových mikrokontroléroch (ako napríklad AVR) vedia, ako dlho by to mohlo trvať. V porovnaní s tým sa zdá, že ESP32-S3 emuluje 386 s Windows 95 a je „rýchly“ a určite oveľa praktickejší.
Predchádzajúce úspechy boli zaznamenané aj v ekosystéme ESP32: Linux 5.0 na doskách ESP32 a nedávno aj obraz Linuxu 6.3 v Olimex ESP32‑S3‑DevKit‑LiPoPríchod systému Windows do tejto rodiny mikropočítačov však predstavuje zlomový bod v skúmaní limitov, a to kvôli zvláštnosti cieľa a náročnosti spustenia klasického grafického prostredia.
Súčasné obmedzenia a príležitosti na zlepšenie
Zoznam „zatiaľ nie“ obsahuje integrovaný debuggerOkrem nevyhnutných problémov s výkonom, ktoré prináša čistá emulácia, sú nevýhodou aj hardvérové úlohy a určité kontroly povolení. Nevýhodou je tiež to, že momentálne je oficiálna podpora obmedzená na... JC3248W535To obmedzuje rozmanitosť obrazoviek a príslušenstva, ktoré je štandardne dostupné.
Na druhej strane je prístup Tiny386 taký priamočiary, že existujú voľný priestor pre optimalizáciuVylepšenia externej pamäte (latencie PSRAM), jemné doladenie emulácie CPU, riešenie potenciálnych kritických ciest v grafických alebo diskových perifériách a využitie USB OTG na zlepšenie zážitku so skutočnými zariadeniami. Každá maličkosť pomáha, keď je rozpočet vývojového cyklu taký obmedzený.
Ochrana, vzdelávanie a retro zábava
Okrem predpokladu „pretože môžeme“ majú projekty ako tento významnú vzdelávaciu a ochranársku hodnotu. S Tiny386, vývojári a učitelia Dokážu reprodukovať historické prostredia x86 bez pôvodného hardvéru, ktorý je čoraz vzácnejší a krehkejší, a to na ultralacnej platforme s nízkou spotrebou energie.
Pre komunitu to otvára dvere k testovanie starého softvéru, dokumentovanie správania starších systémov a zriadenie workshopov, kde sa na hmatateľných príkladoch vysvetľuje, ako reálne a chránené režimy systému 386 podmienili návrh OS ako napríklad Windows 3.x/95 a vývoj Linuxu.
Existuje aj kultúrny aspekt, ktorý by sa nemal podceňovať: je paradoxné – a veľmi zábavné – že aby sme sa dnes „cítili silní“, musíme emulovať CPU z 80. rokov na modernom mikrofóne, keď nosíme vo vreckách mobilné telefóny tisíckrát výkonnejšie ako tie pôvodné počítače. Tento kontrast pomáha pochopiť, ako ďaleko sme sa dostali a prečo je emulácia takým mocným nástrojom.
Vnútorná architektúra: režimy, pamäť a BIOS
Skutočné kombinované režimy i386 skutočné a chránené, stránkovanie a MMU, ktorá položila základy pre virtuálna pamäť Na počítačoch Tiny386 replikuje kritické aspekty tohto správania, aby sa operačné systémy cítili „ako doma“, a kombinuje emuláciu CPU so sadou periférií, ktoré reagujú tam, kde softvér očakáva staré dobré signály ISA.
Tu je stĺp SeaBIOSPoužitý BIOS a VGABIOS pochádzajú z tohto zdroja. To zaisťuje kompatibilitu so široko podporovanými bootovacími rutinami a zabraňuje spoliehaniu sa na uzavreté ROM. Zároveň v prípade potreby dokáže emulátor obísť BIOS a načítať jadro Linuxu priamo, čo je veľmi užitočná skratka na testovanie.
Prenosnosť a ekosystém
Keďže je napísaný v jazyku C99 a má taký stručný procesorový procesor, nosiť Tiny386 Pre iné platformy je úloha priamočiara: stačí implementovať I/O vrstvu a prispôsobiť integráciu so zobrazovaním, vstupom a úložiskom. Sám autor zdôrazňuje prenosnosť ako najväčšiu silnú stránku projektu.
To nielenže prospieva tým, ktorí to chcú využiť v iných mikropodnikoch alebo malých podnikoch, ale uľahčuje to aj tretím stranám. pridať periférie, vyskúšajte optimalizácie alebo dokonca vytvorte špecifické frontendy (napríklad na priame spustenie rôznych obrazov systému Windows alebo retro distribúcií systému DOS/Linux).
Čo sa doteraz preukázalo
„Dôkaz života“ systému Windows 95 s Spustenie za približne 4 minúty Je to hlavná atrakcia, ale nie je to jediné. Prezentované boli aj Windows 3.1/3.2, základné prehliadanie webu (vrátane info.cern.ch), systémové aplikácie a ikonický softvér ako Doom.
Súbežne existuje Demo verzie WebAssembly Spúšťa systém Windows 3.2 priamo v prehliadači, čo je skvelý spôsob, ako si vyskúšať emuláciu bez nutnosti spájkovania alebo flashovania. A pre technicky zdatnejších repozitár ponúka konfigurácie a predkompilovaný obraz, aby ste mohli začať s JC3248W535 s minimálnymi problémami.
Porovnanie s inými skúsenosťami na ESP32

V porovnaní s inými ukážkami, ako napríklad Linux na ESP32 „bez hardvéru“, je skok k Emulácia systému Windows 95 Pridáva to zvláštny záujem: núti reprodukciu rozmarnejšej grafiky a ovládačov a riešenie očakávaní rozhrania, ktoré pri bootovaní z konzoly neexistovali.
Skúsenosť s Olimex ESP32‑S3‑DevKit‑LiPo a Linux 6.3 Ukazuje to, že ekosystém ESP32-S3 má priestor na prekvapenie. Tiny386 posúva túto hranicu do územia Windowsu a uzatvára kruh, ktorý sa zdal byť vyhradený pre výkonnejšie SBC, ako je Raspberry Pi.
Nakoniec je jasné, že s trochou vynaliezavosti, lacný mikrofón Môže sa z neho stať celkom presvedčivý retro stroj, schopný spustiť kompletné systémy a poskytnúť nám majstrovskú triedu počítačovej architektúry 90. rokov.
Celkovo príbeh Tiny386 zahŕňa niekoľko úspechov: stručná emulácia i386Kľúčové periférie sú dobre integrované, BIOS je s otvoreným zdrojovým kódom, prenosnosť bola navrhnutá od prvého dňa a demo, ktoré, hoci pomalé, učí to, čo je dôležité: že Windows 95 a Linux môžu bežať na ESP32-S3 s viac než slušnou vernosťou.
A áno, má to určitú poetickú kvalitu, že aby sme si v roku 2025 znovu zažili „kúzlo“ systému Windows 95, nebudeme sa dotýkať starého Pentia, ale budeme ho používať... emulátor so 6 000 riadkami A vývojárska súprava s dotykovou obrazovkou, ktorá sa zmestí do vrecka. Práca s počítačom je niekedy oveľa zábavnejšia, keď sa nostalgia zmieša s vynaliezavosťou.
Vášnivý spisovateľ o svete bajtov a technológií všeobecne. Milujem zdieľanie svojich vedomostí prostredníctvom písania, a to je to, čo urobím v tomto blogu, ukážem vám všetko najzaujímavejšie o gadgetoch, softvéri, hardvéri, technologických trendoch a ďalších. Mojím cieľom je pomôcť vám orientovať sa v digitálnom svete jednoduchým a zábavným spôsobom.