Ovako Windows 95 radi na ESP32-S3 zahvaljujući Tiny386

Zadnje ažuriranje: 17/11/2025
Autor: Isaac
  • Tiny386 emulira i386 na ESP32-S3 i pokreće ga Windows 95 s videom, mrežom i zvukom.
  • Skromne performanse: čizma ~4 minute; Notepad, Solitaire i IE rade.
  • Kod u C99 (~6k LOC), BSD-3 licenca; dostupna je demo verzija WebAssemblyja.
  • Trenutna podrška za JC3248W535; moguća prenosivost na druge mikrokontrolere.

Windows 95 na ESP32-S3

Ono što se do nedavno činilo kao forumska šala, postalo je stvarnost: Pokretanje sustava Windows 95 na ESP32-S3 Zahvaljujući minimalističkom x86 emulatoru pod nazivom Tiny386. Na malom devkitu s 3,5-inčnim zaslonom osjetljivim na dodir, Microsoftov sustav se pokreće, traje nekoliko minuta i jedva radi, ali otvara Notepad, igra Solitaire, pa čak i učitava starinsku web stranicu putem 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 GitHubu, Hacksteru/Hackadayu i specijaliziranim medijima, ovo vjerojatno prvi put da je netko uspio učitati Windows na Espressif. hardver ESP32, nakon prethodnih prekretnica poput pokretanja Linux 5.0 na drugim ESP32 pločama i Linux 6.3 slika na Olimex ESP32-S3-DevKit-LiPo.

Što je Tiny386 i tko stoji iza njega?

Tiny386 je, u biti, virtualno x86 računalo, napisano u C99 i dizajnirano za prijenosNjegova 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.

Virtualni CPU implementira skup instrukcija 80386 i dodaje Upute 486 i 586 gdje su potrebni za pokretanje modernih Linux kernela i Windows sustava suvremenih iz tog doba. Kernel ima oko 6.000 linija koda (LOC), što je iznenađujuće s obzirom na to što 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. Zapravo, Nedostaju značajke poput otklanjanja pogrešaka, hardverskih zadataka i određenih provjera dopuštenja.Unatoč tome, pretpostavka i dalje vrijedi: za većinu klasičnog DOS/Windows 3.x/95 softvera, pa čak i za pokretanje modernog Linux sustava, trenutna implementacija je dorasla zadatku.

Kako emulirati i386 računalo na ESP32-S3

Da bismo shvatili njegovu vrijednost, vrijedi se prisjetiti što je bio 80386: 32-bitni x86 procesor sa šesterofaznim cjevovodom i MMU-om integrirani, lansiran sredinom 80-ih. Bio je osnova cijele ere osobnih računala, prenosiv pa čak i poslužitelji, sa stvarnim i zaštićenim načinima rada koji su obilježili evoluciju softvera.

Na suprotnoj strani, ESP32-S3 Riječ je o trenutnom, jeftinom mikrokontroleru s dvije Tensilica Xtensa LX7 jezgre na 240 MHz, Wi-Fi/Bluetooth povezivošću i vrlo niskom potrošnjom energije. Iako usporedba nije izravna (emulacija uvijek ima nedostatak), sirova snaga ovog SoC-a i podrška za vanjsku PSRAM memoriju čine ga jakim konkurentom. Omogućuju vam simulaciju funkcionalnog 386 stroja s osnovnom grafikom, mrežom i zvukom, sve unutar samog mikrofona.

Trik leži u pragmatičnom pristupu: CPU se emulira na jednostavan način, Dodaju se bitne upute koji su nedostajali u modernim kućištima, a ostatak PC iskustva izgrađen je na virtualnim perifernim uređajima koji su već testirani u drugim projektima. Ova mješavina minimalizma i pametnog recikliranja omogućuje sustavu pokretanje sustava Windows 95 bez rušenja.

Emulirani periferni uređaji i firmver

Kako bi upotpunio PC ekosustav, Tiny386 posuđuje kod iz TinyEMU i QEMU kako bi se oponašale klasične komponente ISA stroja s početka 90-ih. BIOS VGABIOS, s druge strane, dolazi iz SeaBIOS projekta, koji olakšava pokretanje sustava bez oslanjanja na vlasničke ROM-ove.

Popis podržanih perifernih uređaja uključuje dijelove vrlo poznate svima koji su se igrali s klasičnom emulacijom računala: kontroleri prekida, timeri, tipkovnica, video, disk, mreža i audioDetaljno:

  • Kontroler prekida 8259 (PIC) i timer 8254 (PIT), bitni za sistemsko tempiranje.
  • 8042 i kontroler tipkovnice CMOS RTC za sat i osnovne postavke.
  • VGA ISA s Bosch VBE ponuditi 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čunalo, Adlib OPL2 i Sound Blaster 16 za zvuk.
  Jeka mikrofona ili robotski zvuk: uzroci i dokazana rješenja

Zahvaljujući ovom katalogu, sustav ne samo da prikazuje grafiku i pokreće Windows okruženje sa sučeljem, već i Ima mrežnu povezivost i može reproducirati zvuk s vozači prikladno, što zaokružuje iskustvo "starog računala" na iznenađujuće cjelovit način.

Referentni hardver: JC3248W535 s ESP32-S3

Demonstracija koja je privukla svačiju pažnju odvija se preko Vodič JC3248W535To je razvojna ploča s ESP32-S3 čipom i 3,5-inčnim LCD zaslonom osjetljivim na dodir. Ovaj devkit može se pronaći za oko 25-30 dolara na stranicama poput AliExpressa, a prema onome što smo vidjeli, uključuje sve što vam je potrebno za igranje igara za "džepne PC" iz 90-ih.

Jedan važan detalj: čini se da je USB-C priključak na ovoj matičnoj ploči dizajniran za programiranje i profinjenne kao periferni domaćin USB standard ESP32-S3. Unatoč tome, s USB OTG perifernom jedinicom čipa, moglo bi se zamisliti postavljanje s čvorište USB na koji možete spojiti tipkovnicu i miš, stvarajući mini-386 s izravnim žičnim ulazom.

Trenutno se službena podrška projektu usredotočuje 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 zaslona.

Performanse i korisničko iskustvo

Pitanje koje svi postavljaju: kako ide? Kratak odgovor je „Radi, uz strpljenje.Potpuno pokretanje sustava Windows 95 traje oko 4 minute u javnoj demonstraciji. Nakon što se pokrene, sustav 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 povijesti, što dodaje ugodan 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 sustav doveden do svojih granica: emulacija dodaje opterećenje, a ESP32-S3 nedostaje grafičko ubrzanje na razini računala. Unatoč tome, opći dojam je „upotrebljivost na rubu“ To je više od pukog "pokrene se i zamrzne". Ako reproducirate video dvostrukom brzinom - popularan savjet među onima koji su ga već vidjeli - postaje puno 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 unutar hardverskih ograničenja.

Podržani operativni sustavi 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 „Trebao bi pokretati većinu 16/32-bitnih programa”, te da je s proširenjem 486/586 instrukcija moguće pokrenuti i relativno moderne Linux kernele i Windows NT tog vremena.

Jedan vrlo zanimljiv detalj je da je Tiny386 sposoban izravno pokrenite Linux kernelbez prolaska kroz tradicionalni BIOS, što pojednostavljuje neke tijekove testiranja. Za istraživanje bez sastavljanja hardvera, projekt također nudi Demo u WebAssemblyju 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 području primjene, osim spomenutog Dooma, osnovni programi za Windows 95 (Notepad, Solitaire i Internet ExplorerDokazano je da ovo funkcionira, uz očita ograničenja performansi. To je dovoljan dokaz za zaključak da su grafika, ulazno/izlazni i mrežni stog razumno dobro integrirani.

  Sve o privremenim datotekama u sustavu Windows: što su, čemu služe i kako ih pravilno izbrisati.

Kako se obrađuju ulazni podaci i portovi

Na ploči JC3248W535, korištenje fizičkih periferija uvjetovano je USB-C programski orijentiranKako bi se prevladala ova prepreka, u trenutnoj implementaciji tipkovnica i miš mogu biti preusmjeravanje putem Wi-Fi-ja prema emulatoru, nudeći kontrolu bez potrebe za namjenskim portovima u devkitu.

Gledajući unaprijed, ne bi bilo iznenađujuće vidjeti gradnje koje iskorištavaju prednosti ESP32-S3 USB OTG kao domaćin, te omogućujući stvaranje čvorišta za spajanje konvencionalnih tipkovnica i miševa. Ovaj skok bi uvelike olakšao interakciju bez oslanjanja na zaslone osjetljive na dodir ili rješenja za daljinski unos.

Resursi za licencu, kod i testiranje

Projekt je objavljen pod 3 klauzula BSD licencaTo potiče njegovu ponovnu upotrebu i prenosivost. Cijeli izvorni kod dostupan je u GitHub repozitoriju. osnovne upute za kompilacijudokumentaciju konfiguracijskih datoteka i, za one kojima se žuri, unaprijed sastavljene slike spreman za bljeskanje.

Uz tehničku dokumentaciju, postoji i demo u pregledniku (GitHub Pages) koji vam omogućuje da dobijete ideju o tome kako se Windows 3.2 pokreće i kako sustav reagira, bez potrebe za ikakvim hardverom. Oni koji žele dublje istražiti mogu pronaći informacije i rasprave na stranicama poput Hackster.io i Hackaday.io, te u zajednicama poput /r/hardver, gdje ovi retro-tehnološki pothvati često potiču žive razgovore.

Mediji poput CNX Softwarea i Tom's Hardwarea izvještavali su o razvoju događaja, ističući detalje poput popis emuliranih perifernih uređajaOvisnost SeaBIOS-a za BIOS/VGABIOS i trenutno stanje podrške za ploču JC3248W535. Zapravo, dio širenja došao je zahvaljujući poticaju zajednice - zahvaljujući savjetima poput Zoobabovih - što objašnjava brzinu kojom je projekt skočio u prvi plan scene proizvođača.

S Linuxa na AVR-u na Windows 95 na ESP32‑S3

Da bismo stvari stavili u perspektivu, oni koji se sjećaju pokušaja da Pokretanje Linuxa na 8-bitnim mikrokontrolerima (poput AVR-a) znaju koliko bi to moglo trajati. U usporedbi s tim, vidjeti ESP32-S3 kako emulira 386 s Windowsima 95 osjeća se "brzo" i, svakako, puno praktičnije.

Prethodna postignuća također su uočena u ekosustavu ESP32: Linux 5.0 na ESP32 pločama i, u novije vrijeme, slika Linuxa 6.3 u Olimex ESP32‑S3‑DevKit‑LiPoNo dolazak Windowsa u ovu obitelj mikroračunala 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

Popis "još ne" uključuje integrirani program za ispravljanje pogrešakaZadavanje zadataka hardveru i određene provjere dozvola, uz neizbježna uska 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 JC3248W535To ograničava raznolikost ekrana i dodatne opreme dostupne kao standard.

S pozitivne strane, Tiny386 pristup je toliko jednostavan da postoje slobodan prostor za optimizacijuPoboljšanja vanjske memorije (latencije PSRAM-a), fino podešavanje emulacije CPU-a, rješavanje potencijalnih kritičnih putova 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 proračun za razvojni ciklus tako ograničen.

Očuvanje, edukacija i retro zabava

Osim premise "jer možemo", projekti poput ovog imaju značajnu obrazovnu i konzervatorsku vrijednost. S Tiny386, programeri i nastavnici Mogu reproducirati povijesna 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 testirajte stari softver, dokumentirajući ponašanje naslijeđenih sustava i postavljajući radionice gdje se, s opipljivim primjerima, objašnjava kako su stvarni i zaštićeni načini rada 386 uvjetovali dizajn OS kao što su Windows 3.x/95 i evolucija Linuxa.

Postoji i kulturni aspekt koji se ne smije podcijeniti: paradoksalno je - i vrlo zabavno - da se danas moramo "osjećati moćno" emulirati CPU iz 80-ih na modernom mikrofonu, kada u džepovima nosimo mobilne telefone tisuće puta sposobnije od onih originalnih računala. Taj kontrast pomaže nam da shvatimo koliko smo napredovali i zašto je emulacija tako moćan alat.

  Mapa preuzimanja se ne otvara u sustavu Windows 11: Uzroci i konačna rješenja

Unutarnja arhitektura: načini rada, memorija i BIOS

Pravi kombinirani načini rada i386 stvarni i zaštićeni, paginacija i MMU koji je postavio temelje za virtualna memorija Na računalima, Tiny386 replicira kritične aspekte tog ponašanja kako bi se operativni sustavi 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 stup SeaBIOSBIOS i VGABIOS koji se koriste potječu iz ovog izvora. To osigurava kompatibilnost sa široko podržanim rutinama pokretanja i izbjegava oslanjanje na zatvorene ROM-ove. Istovremeno, kada je potrebno, emulator može zaobići BIOS i učitavanje Linux kernela izravno, vrlo koristan prečac za testiranje.

Prenosivost i ekosustav

Budući da je napisan u C99 i s tako konciznom CPU jezgrom, nositi Tiny386 Za ostale platforme zadatak postaje jednostavan: jednostavno implementirati I/O sloj i prilagoditi integraciju s prikazom, ulazom i pohranom. Sam autor ističe prenosivost kao najveću snagu projekta.

To ne koristi samo onima koji to žele prenijeti u druge mikro ili mala poduzeća, već i olakšava trećim stranama. dodajte periferne uređaje, isprobajte optimizacije ili čak izradite specifične frontendove (na primjer, za izravno pokretanje različitih Windows slika ili retro DOS/Linux distribucija).

Što je do sada dokazano

"Dokaz života" sustava Windows 95 s 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širanja. A za one koji su tehnološki potkovaniji, repozitorij nudi konfiguracije i unaprijed kompajliranu sliku za početak rada na JC3248W535 uz minimalne probleme.

Usporedba s drugim iskustvima na ESP32

Raspored zadataka u Linuxu pomoću crona i na

U usporedbi s drugim demonstracijama poput Linuxa na ESP32 "bez hardvera", skok na Emuliran Windows 95 Dodaje posebnu zanimljivost: prisiljava reprodukciju hirovitije grafike i skupa upravljačkih programa te se nosi s očekivanjima sučelja koja nisu postojala u pokretanju konzole.

Iskustvo s Olimex ESP32‑S3‑DevKit‑LiPo i Linux 6.3 To pokazuje da ekosustav ESP32-S3 ima prostora za iznenađenja. Tiny386 pomiče tu granicu na teritorij Windowsa, zatvarajući krug koji se činio rezerviranim za snažnije SBC-ove poput Raspberry Pi-ja.

Na kraju, ono što je jasno jest da, uz malo domišljatosti, jeftin mikrofon Može postati prilično uvjerljiv retro stroj, sposoban pokrenuti cijele sustave i pružiti nam majstorsku klasu računalne arhitekture 90-ih.

Gledano u cjelini, priča o Tiny386 obuhvaća nekoliko postignuća: sažeta 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 da kako bismo ponovno proživjeli "magiju" Windowsa 95 2025. nećemo dirati stari Pentium, već ćemo koristiti... emulator od 6.000 linija I devkit s dodirnim zaslonom koji stane u džep. Računarstvo je ponekad puno zabavnije kada se nostalgija pomiješa s domišljatošću.

Arduino CLI tutorial
Povezani članak:
Potpuni vodič za Arduino CLI: Instalacija, korištenje i savjeti