- Tiny386 emulira i386 na ESP32-S3 i pokreće ga. Windows 95 sa videom, mrežom i zvukom.
- Skromne performanse: boot ~4 minute; Notepad, Solitaire i IE rade.
- Kod u C99 (~6k LOC), BSD-3 licenca; Dostupna je WebAssembly demo verzija.
- Trenutna podrška za JC3248W535; moguća prenosivost na druge mikrokontrolere.

Ono što je do nedavno izgledalo kao šala na forumu, postalo je istina: Pokretanje Windowsa 95 na ESP32-S3 Zahvaljujući minimalističkom x86 emulatoru pod nazivom Tiny386, na malom devkitu sa 3,5-inčnim ekranom osjetljivim na dodir, Microsoftov sistem se pokreće, traje nekoliko minuta i jedva radi, ali otvara Notepad, igra Solitaire, pa čak i učitava starinsku web stranicu preko mreže.
Odgovorna osoba je programer He Chunhui (hchunhui), koji je izgradio i386 emulator od nule na C99 i prenio ga je na Espressif mikrokontroler. Izvanredno je ne samo to što radi, već je, prema informacijama objavljenim na GitHub-u, Hackster/Hackaday-u i specijaliziranim medijima, ovo vjerovatno prvi put da je neko uspio pokrenuti Windows na Espressif-u. hardver ESP32, nakon prethodnih prekretnica kao što je pokretanje Linux 5.0 na drugim ESP32 pločama i Linux 6.3 slika na Olimex ESP32-S3-DevKit-LiPo.
Šta je Tiny386 i ko stoji iza toga?
Tiny386 je, u suštini, Virtuelni x86 računar, napisan u C99 jeziku i dizajniran da bude prenosivNjegova jezgra je emulator CPU-a. Intel i386 „jednostavan i glup“ — riječima samog autora — s vrlo jasnim ciljem: pokrenuti što više 16-bitnog i 32-bitnog softvera bez opterećivanja ogromnom složenošću.
Virtuelni CPU implementira skup instrukcija 80386 i dodaje Instrukcije 486 i 586 gdje su potrebni za pokretanje modernih Linux kernela i Windows sistema savremenih iz tog doba. Kernel ima oko 6.000 linija koda (LOC), što je iznenađujuće s obzirom na to šta je sposoban obraditi, a opcionalno uključuje Emulacija x87 FPU-a za softver kojem je to potrebno.
Kao i kod svakog mladog projekta, postoje praznine koje treba popuniti. U stvari, Nedostaju funkcije poput otklanjanja grešaka, hardverskih zadataka i određenih provjera dozvola.Uprkos tome, pretpostavka i dalje važi: za većinu klasičnog DOS/Windows 3.x/95 softvera, pa čak i za pokretanje modernog Linux sistema, trenutna implementacija je dorasla zadatku.
Kako emulirati i386 računar na ESP32-S3
Da bismo shvatili njegovu vrijednost, vrijedi se prisjetiti šta je bio 80386: 32-bitni x86 procesor sa šestostepenim cjevovodom i MMU-om integrirani, lansiran sredinom 80-ih. Bio je osnova cijele ere personalnih računara, laptopi pa čak i serveri, sa stvarnim i zaštićenim načinima rada koji su obilježili evoluciju softvera.
Na suprotnoj strani, ESP32-S3 Radi se o trenutnom, jeftinom mikrokontroleru sa dvije Tensilica Xtensa LX7 jezgre na 240 MHz, Wi-Fi/Bluetooth povezivošću i vrlo niskom potrošnjom energije. Iako poređenje nije direktno (emulacija uvijek ima nedostatak), sirova snaga ovog SoC-a i podrška za eksternu PSRAM memoriju čine ga jakim konkurentom. Omogućavaju vam simulaciju funkcionalne 386 mašine sa osnovnom grafikom, mrežom i zvukom, sve unutar samog mikrofona.
Trik leži u pragmatičnom pristupu: CPU se emulira na jednostavan način, Dodate su osnovne upute koji su nedostajali u modernim kućištima, a ostatak PC iskustva je izgrađen na virtuelnim perifernim uređajima koji su već testirani u drugim projektima. Ova mješavina minimalizma i pametnog recikliranja omogućava sistemu da pokrene Windows 95 bez rušenja sistema.
Emulirani periferni uređaji i firmver
Da bi upotpunio PC ekosistem, Tiny386 posuđuje kod od TinyEMU i QEMU kako bi emulirao klasične komponente ISA mašine s početka 90-ih. BIOS VGABIOS, s druge strane, dolazi iz SeaBIOS projekta, koji olakšava pokretanje sistema bez oslanjanja na vlasničke ROM-ove.
Lista podržanih perifernih uređaja uključuje dijelove vrlo poznate svima koji su se igrali s klasičnom emulacijom računara: kontroleri prekida, tajmeri, tastatura, video, disk, mreža i audioDetaljno:
- Kontroler prekida 8259 (PIC) i tajmer 8254 (PIT), neophodni za sistemsko podešavanje vremena.
- 8042 i kontroler tastature CMOS RTC za sat i osnovne postavke.
- VGA ISA sa Bosch VBE kako bi ponudio kompatibilne video načine rada.
- IDE kontroler diska za skladištenje.
- NE2000 ISA mrežna kartica, veteran koji je široko rasprostranjen i jednostavan za emulaciju.
- DMA ISA 8257, zvučnik za računar, Adlib OPL2 i Sound Blaster 16 za zvuk.
Zahvaljujući ovom katalogu, sistem ne samo da prikazuje grafiku i pokreće Windows okruženje sa interfejsom, već i Ima mrežnu povezivost i može reproducirati zvuk sa vozači pogodno, što zaokružuje iskustvo "starog računara" na iznenađujuće kompletan način.
Referentni hardver: JC3248W535 sa ESP32-S3
Demonstracije koje su privukle svu pažnju odvijaju se preko Vodič JC3248W535To je razvojna ploča sa ESP32-S3 čipom i 3,5-inčnim LCD ekranom osjetljivim na dodir. Ovaj devkit se može naći za oko 25-30 dolara na stranicama poput AliExpressa, i koliko smo vidjeli, uključuje sve što vam je potrebno za igranje igara "džepnih PC-a iz 90-ih".
Jedan važan detalj: USB-C port na ovoj matičnoj ploči izgleda da je dizajniran za programiranje i profinjenne kao periferni domaćin USB standard ESP32-S3. Uprkos tome, sa USB OTG perifernim uređajem čipa, moglo bi se zamisliti podešavanje sa čvorište USB na koji možete povezati tastaturu i miš, stvarajući mini-386 sa direktnim žičnim ulazom.
Trenutno se službena podrška projektu fokusira na ovu specifičnu ploču, a autor navodi da Samo ESP32-S3 Izvorno je podržan. Međutim, arhitektura emulatora daje prioritet prenosivosti: uz razuman napor, mogao bi se prenijeti na druge mikrokontrolere i platforme, otvarajući vrata većem broju formata i ekrana.
Performanse i korisničko iskustvo
Pitanje koje svi postavljaju: kako ide? Kratak odgovor je „Funkcioniše, uz strpljenje.Potpuno pokretanje Windowsa 95 traje oko 4 minute u javnoj demonstraciji. Nakon pokretanja, sistem je spor, ali upravljiv: možete otvoriti Notepad, igrati Solitaire, pa čak i pokrenuti Internet Explorer.
Mrežna povezivost je implementirana, tako da emulator može Učitaj osnovne web straniceDemonstracija pokazuje kako se otvara info.cern.ch, prva web stranica u historiji, što dodaje divan dodir nostalgije sceni Windowsa 95 koji radi na mikročipu koji košta manje od 30 eura.
Što se tiče performansi, razumljivo je da je sistem doveden do svojih granica: emulacija dodaje opterećenje, a ESP32-S3 nedostaje grafičko ubrzanje PC nivoa. Uprkos tome, opći osjećaj je „upotrebljivost na ivici“ To je više od običnog "pokrene se i zamrzne". Ako reproducirate video dvostrukom brzinom - popularan savjet među onima koji su ga već vidjeli - postaje mnogo podnošljivije.
Zanimljivo je da Tiny386 može raditi sudbinaTaj klasični test "ako ne pokreće Doom, nije dobar". A zahvaljujući virtualiziranim zvučnim uređajima (PC zvučnik, Adlib OPL2 i SB16), audio aspekt je također pokriven koliko je to moguće u okviru hardverskih ograničenja.
Podržani operativni sistemi i softver
Katalog, koji je već prikazan u videu, uključuje Windows 3.1 / 3.2 (s kineskom varijantom 3.1) i Windows 95. Osim toga, autor naglašava da Tiny386 „Trebalo bi da pokreće većinu 16/32-bitnih softvera”, i da je s proširenjem 486/586 instrukcija moguće pokrenuti i relativno moderne Linux kernele i Windows NT tog vremena.
Jedan veoma zanimljiv detalj je da je Tiny386 sposoban direktno pokretanje Linux kernelabez prolaska kroz tradicionalni BIOS, što pojednostavljuje neke radne procese testiranja. Za istraživanje bez sastavljanja hardvera, projekat također nudi Demo u WebAssembly-ju koji pokreće Windows 3.2 u pregledniku i spominje alternative poput FreeDOS-a ili JSLinuxa za one koji žele usporediti iskustva emulacije na webu.
U oblasti primjene, pored spomenutog Dooma, osnovni Windows 95 programi (Notepad, Solitaire i Internet ExplorerOvo se pokazalo kao funkcionalno, uz očigledna ograničenja performansi. Ovo je dovoljan dokaz da se zaključi da su grafika, ulazno/izlazni i mrežni stek razumno dobro integrirani.
Kako se rukuje ulazima i portovima
Na ploči JC3248W535, upotreba fizičkih periferija je uslovljena... USB-C programski orijentisanDa bi se prevazišla ova prepreka, u trenutnoj implementaciji tastatura i miš mogu biti preusmjeravanje preko Wi-Fi mreže prema emulatoru, nudeći kontrolu bez potrebe za namjenskim portovima u devkitu.
Gledajući unaprijed, ne bi bilo iznenađujuće vidjeti konstrukcije koje iskorištavaju prednosti ESP32-S3 USB OTG kao host, i omogućavajući kreiranje čvorišta za priključivanje konvencionalnih tastatura i miševa. Ovaj skok bi uveliko olakšao interakciju bez oslanjanja na ekrane osjetljive na dodir ili rješenja za daljinski unos.
Resursi za licencu, kod i testiranje
Projekat je objavljen pod 3 klauzula BSD licencaOvo podstiče njegovu ponovnu upotrebu i prenosivost. Kompletan izvorni kod je dostupan u GitHub repozitoriju. osnovne upute za kompilacijudokumentaciju konfiguracijskih datoteka i, za one kojima se žuri, prethodno kompajlirane slike spreman za blic.
Pored tehničke dokumentacije, postoji i demo u pregledniku (GitHub Pages) koji vam omogućava da steknete predstavu o tome kako se Windows 3.2 pokreće i kako sistem reaguje, bez potrebe za bilo kakvim hardverom. Oni koji žele dublje istražiti mogu pronaći informacije i diskusije na stranicama poput Hackster.io i Hackaday.io, te u zajednicama poput /r/hardver, gdje ovi retro-tehnološki podvizi često generiraju žive razgovore.
Mediji poput CNX Softwarea i Tom's Hardwarea izvještavali su o razvoju događaja, ističući detalje poput... lista emuliranih perifernih uređajaOvisnost SeaBIOS-a za BIOS/VGABIOS i trenutno stanje podrške za ploču JC3248W535. U stvari, dio širenja informacija došao je zahvaljujući podsticaju zajednice - zahvaljujući savjetima poput Zoobabovih - što objašnjava brzinu kojom je projekat skočio u prvi plan scene proizvođača.
Od Linuxa na AVR-u do Windowsa 95 na ESP32‑S3
Da bismo stvari stavili u perspektivu, oni koji se sjećaju pokušaja da Pokretanje Linuxa na 8-bitnim mikrokontrolerima (kao AVR) znaju koliko bi to moglo trajati. U poređenju s tim, vidjeti ESP32-S3 koji emulira 386 sa Windowsom 95 djeluje "brzo" i, svakako, mnogo praktičnije.
Prethodna dostignuća su također uočena u ekosistemu ESP32: Linux 5.0 na ESP32 pločama i, nedavno, slika Linuxa 6.3 u Olimex ESP32‑S3‑DevKit‑LiPoAli dolazak Windowsa u ovu porodicu mikroračunara označava prekretnicu u istraživanju granica, zbog specifičnosti cilja i zahtjevnosti pokretanja klasičnog grafičkog okruženja.
Trenutna ograničenja i mogućnosti za poboljšanje
Lista "još ne" uključuje integrirani program za ispravljanje pogrešakaHardversko zadavanje zadataka i određene provjere dozvola, pored neizbježnih uskih grla u performansama koja dolaze s čistom emulacijom, također su nedostaci. Nedostatak je i to što je, za sada, službena podrška ograničena na JC3248W535Ovo ograničava raznolikost ekrana i dodatne opreme dostupne kao standard.
S pozitivne strane, pristup Tiny386 je toliko jednostavan da postoje slobodan prostor za optimizacijuPoboljšanja eksterne memorije (latencije PSRAM-a), fino podešavanje emulacije CPU-a, adresiranje potencijalnih kritičnih putanja u grafici ili perifernim uređajima diska i korištenje USB OTG-a za poboljšanje iskustva sa stvarnim uređajima. Svaka sitnica pomaže kada je budžet za razvojni ciklus tako ograničen.
Očuvanje, edukacija i retro zabava
Pored premise "jer možemo", projekti poput ovog imaju značajnu obrazovnu i konzervatorsku vrijednost. Sa Tiny386, programeri i nastavnici Mogu reproducirati historijska x86 okruženja bez originalnog hardvera, koji je sve rijeđi i krhkiji, i to na ultra jeftinoj platformi niske potrošnje energije.
Za zajednicu, to otvara vrata ka testirajte stari softver, dokumentirajući ponašanje naslijeđenih sistema i postavljajući radionice gdje se objašnjava, uz opipljive primjere, kako su stvarni i zaštićeni načini rada 386 uvjetovali dizajn operativni sistemi kao što su Windows 3.x/95 i evolucija Linuxa.
Postoji i kulturni aspekt koji ne treba podcijeniti: paradoksalno je – i vrlo zabavno – da danas moramo da se „osjećamo moćno“ emulirajte CPU iz 80-ih na modernom mikrofonu, kada u džepovima nosimo mobilne telefone hiljadama puta sposobnije od onih originalnih računara. Taj kontrast pomaže da shvatimo koliko smo daleko stigli i zašto je emulacija tako moćan alat.
Unutrašnja arhitektura: načini rada, memorija i BIOS
Pravi kombinovani režimi i386 stvarni i zaštićeni, paginacija i MMU koji je postavio temelje za virtualna memorija Na računarima, Tiny386 replicira kritične aspekte tog ponašanja kako bi se operativni sistemi osjećali "kao kod kuće", kombinirajući emulaciju CPU-a sa skupom perifernih uređaja koji reagiraju tamo gdje softver očekuje dobre stare ISA signale.
Ovdje je stub SeaBIOSBIOS i VGABIOS koji se koriste potiču iz ovog izvora. Ovo osigurava kompatibilnost sa široko podržanim rutinama pokretanja i izbjegava oslanjanje na zatvorene ROM-ove. Istovremeno, kada je to potrebno, emulator može zaobići BIOS i učitavanje Linux kernela direktno, veoma korisna prečica za testiranje.
Prenosivost i ekosistem
Budući da je napisan u C99 i sa tako konciznim CPU jezgrom, nositi Tiny386 Za ostale platforme, zadatak postaje jednostavan: jednostavno implementirati I/O sloj i prilagoditi integraciju sa prikazom, ulazom i pohranom. Sam autor ističe prenosivost kao najveću snagu projekta.
Ovo ne koristi samo onima koji žele da ga prenesu na druge mikro ili male biznise, već i olakšava trećim stranama. dodajte periferne uređaje, isprobajte optimizacije ili čak izgradite specifične frontendove (na primjer, za direktno pokretanje različitih Windows slika ili retro DOS/Linux distribucija).
Šta je do sada dokazano
"Dokaz života" Windowsa 95 sa Pokretanje za ~4 minute To je glavna atrakcija, ali nije jedina. Predstavljeni su i Windows 3.1/3.2, osnovno pregledavanje weba (uključujući info.cern.ch), sistemske aplikacije i kultni softver poput Dooma.
Paralelno s tim, postoji i Demo verzije WebAssemblyja Pokreće Windows 3.2 u pregledniku, što je odličan način za emulaciju bez lemljenja ili flešovanja. A za one koji su tehnološki potkovaniji, repozitorij nudi konfiguracije i unaprijed kompajliranu sliku za početak rada na JC3248W535 uz minimalne probleme.
Poređenje s drugim iskustvima na ESP32

U poređenju sa drugim demonstracijama poput Linuxa na ESP32 "bez hardvera", skok ka Emuliran Windows 95 To dodaje posebnu zanimljivost: prisiljava reprodukciju hirovitije grafike i skupa drajvera, te se nosi s očekivanjima interfejsa koja nisu postojala u konzolnom pokretanju.
Iskustvo sa Olimex ESP32‑S3‑DevKit‑LiPo i Linux 6.3 To pokazuje da ekosistem ESP32-S3 ima prostora za iznenađenja. Tiny386 pomiče tu granicu na teritoriju Windowsa, zatvarajući krug koji je izgledao rezervisan za moćnije SBC-ove poput Raspberry Pi-ja.
Na kraju, ono što je jasno jeste da, uz malo domišljatosti, mikrofon niske cijene Može postati prilično uvjerljiva retro mašina, sposobna pokrenuti kompletne sisteme i pružiti nam majstorsku klasu računarske arhitekture 90-ih.
Posmatrano u cjelini, priča o Tiny386 obuhvata nekoliko dostignuća: koncizna emulacija i386Ključni periferni uređaji su dobro integrirani, BIOS je otvorenog koda, prenosivost je dizajnirana od prvog dana, a demo koji, iako spor, uči onome što je važno: da Windows 95 i Linux mogu raditi na ESP32-S3 s više nego pristojnom vjernošću.
I da, ima određenu poetsku kvalitetu to što, kako bismo ponovo proživjeli "magiju" Windowsa 95 2025. godine, nećemo dirati stari Pentium, već ćemo koristiti... emulator sa 6.000 linija I devkit sa ekranom osjetljivim na dodir koji stane u džep. Računarstvo je ponekad mnogo zabavnije kada se nostalgija pomiješa sa domišljatošću.
Strastveni pisac o svijetu bajtova i tehnologije općenito. Volim dijeliti svoje znanje kroz pisanje, a to je ono što ću raditi na ovom blogu, pokazivati vam sve najzanimljivije stvari o gadžetima, softveru, hardveru, tehnološkim trendovima i još mnogo toga. Moj cilj je pomoći vam da se krećete u digitalnom svijetu na jednostavan i zabavan način.