Nii töötab Windows 95 ESP32-S3 peal tänu Tiny386-le

Viimane uuendus: 17/11/2025
Autor: Isaac
  • Tiny386 emuleerib i386-t ESP32-S3-l ja käivitub Windows 95 koos video, võrgu ja heliga.
  • Tagasihoidlik sooritus: saabas ~4 minutit; Notepad, Solitaire ja IE töötavad.
  • Kood C99 keeles (~6k LOC), BSD-3 litsents; WebAssembly demo saadaval.
  • Praegune tugi JC3248W535-le; võimalik teisaldatavus teistele mikrokontrolleritele.

Windows 95 ESP32-S3-l

See, mis hiljuti tundus fooruminaljana, on nüüdseks teoks saanud: Windows 95 käivitamine ESP32-S3-l Tänu minimalistlikule x86 emulaatorile nimega Tiny386. Väikesel 3,5-tollise puutetundliku ekraaniga arenduskomplektil käivitub Microsofti süsteem, see võtab paar minutit ja töötab vaevu, kuid avab Notepadi, mängib Solitaire'i ja laadib võrgu kaudu isegi vana veebisaidi.

Vastutav isik on arendaja He Chunhui (hchunhui), kes on ehitanud i386 emulaator nullist C99-l ja on selle portinud Espressifi mikrokontrollerile. Tähelepanuväärne pole mitte ainult see, et see töötab, vaid GitHubis, Hacksteris/Hackaday's ja erialameedias avaldatud teabe kohaselt on see ilmselt esimene kord, kui kellelgi on õnnestunud Windows Espressifile laadida. riistvara ESP32, pärast varasemaid verstaposte, nagu ettevõtte käivitamine Linux 5.0 teistel ESP32 plaatidel ja Linux 6.3 kujutis Olimex ESP32-S3-DevKit-LiPo-l.

Mis on Tiny386 ja kes selle taga on?

Tiny386 on sisuliselt virtuaalne x86-arvuti, mis on kirjutatud C99-s ja loodud kaasaskantavaksSelle tuum on protsessori emulaator Intel i386 on autori enda sõnade kohaselt „lihtne ja rumal” – väga selge eesmärgiga: käitada võimalikult palju 16- ja 32-bitist tarkvara ilma seda tohutu keerukusega koormamata.

Virtuaalne protsessor rakendab 80386 käskude komplekti ja lisab 486 ja 586 juhised kus neid on vaja tolleaegsete moodsate Linuxi tuumade ja Windowsi süsteemide käivitamiseks. Tuum on umbes 6.000 koodirida (LOC), mis on üllatav, arvestades selle võimet hakkama saada, ja valikuliselt sisaldab see x87 FPU emuleerimine tarkvara jaoks, mis seda vajab.

Nagu iga noore projekti puhul, on ka siin lünki, mida täita. Tegelikult Puuduvad sellised funktsioonid nagu silumine, riistvaraülesannete täitmine ja teatud lubade kontrollimine.Sellegipoolest peab eeldus paika: enamiku klassikalise DOS/Windows 3.x/95 tarkvara ja isegi moodsa Linuxi süsteemi käivitamiseks on praegune implementatsioon ülesande kõrgusel.

Kuidas jäljendada i386 arvutit ESP32-S3-l

Selle väärtuse hindamiseks tasub meeles pidada, mis oli 80386: a 32-bitine x86 protsessor kuueastmelise konveieri ja MMU-ga integreeritud, toodi turule 80ndate keskel. See oli terve personaalarvutite ajastu aluseks, kaasaskantavad ja isegi serverid, millel olid nii reaalsed kui ka kaitstud režiimid, mis tähistasid tarkvara arengut.

Vastasküljel ESP32-S3 See on kaasaegne ja odav mikrokontroller, millel on kaks Tensilica Xtensa LX7 südamikku taktsagedusel 240 MHz, WiFi/Bluetooth-ühenduvus ja väga madal energiatarve. Kuigi võrdlus pole otsene (emuleerimisel on alati oma puudused), teeb selle kiibistiku toores võimsus ja välise PSRAM-mälu tugi sellest tugeva konkurendi. Need võimaldavad teil simuleerida funktsionaalset 386 masinat põhilise graafika, võrgu ja heliga – kõik see mikrofonis endas.

Nipp peitub pragmaatilises lähenemises: protsessorit emuleeritakse lihtsal viisil, Olulised juhised on lisatud mis tänapäevaste arvutite puhul puudusid, ja ülejäänud arvutikogemus on üles ehitatud virtuaalsetele välisseadmetele, mida on juba teistes projektides testitud. See minimalismi ja nutika taaskasutuse segu võimaldab süsteemil Windows 95 krahhideta käivitada.

Emuleeritud välisseadmed ja püsivara

PC ökosüsteemi täiustamiseks laenab Tiny386 koodi TinyEMU ja QEMU et jäljendada 90. aastate alguse ISA masina klassikalisi komponente. BIOS VGABIOS pärineb aga SeaBIOS-projektist, mis lihtsustab süsteemide käivitamist ilma patenteeritud ROM-idele lootmata.

Toetatud välisseadmete loend sisaldab osi, mis on väga tuttavad kõigile, kes on klassikalise arvuti emuleerimisega tegelenud: katkestuste kontrollerid, taimerid, klaviatuur, video, ketas, võrk ja heliTäpsemalt:

  • Katkestuskontroller 8259 (PIC) ja taimer 8254 (PIT), mis on süsteemi ajastuse jaoks hädavajalikud.
  • 8042 ja klaviatuurikontroller CMOS-i reaalajas mõõtmine kella ja põhiseadete jaoks.
  • VGA ISA koos Bosch VBE ühilduvate videorežiimide pakkumiseks.
  • IDE kettakontroller ladustamine.
  • NE2000 ISA võrgukaart, veteran, mis on laialt levinud ja mida on lihtne jäljendada.
  • DMA ISA 8257, arvutikõlar, Adlib OPL2 ja Sound Blaster 16 heli jaoks.
  Mikrofoni kaja või robotheli: põhjused ja tõestatud lahendused

Tänu sellele kataloogile ei kuva süsteem mitte ainult graafikat ja käivitab Windowsi keskkonna liidesega, vaid ka Sellel on võrguühendus ja saab heli esitada draiverid sobib, mis täiendab "vana arvuti" kogemust üllatavalt terviklikul viisil.

Viide riistvarale: JC3248W535 koos ESP32-S3-ga

Meeleavaldus, mis on köitnud kõigi tähelepanu, kulgeb üle Juhend JC3248W535See on arendusplaat ESP32-S3 kiibi ja 3,5-tollise puutetundliku LCD-ekraaniga. Selle arenduskomplekti saab osta umbes 25–30 dollari eest sellistelt saitidelt nagu AliExpress ja meie kogemuse põhjal sisaldab see kõike, mida vajate "90ndate taskuarvuti" mängude mängimiseks.

Üks oluline detail: selle emaplaadi USB-C port tundub olevat mõeldud programmeerimine ja rafineeritudmitte perifeerse peremeesorganismina USB ESP32-S3 standard. Sellegipoolest võiks kiibi USB OTG välisseadmega ette kujutada seadistust, millel on hub USB mille külge saab ühendada klaviatuuri ja hiire, luues mini-386 otsejuhtmelise sisendiga.

Praegu keskendub ametlik projektitoetus just sellele tahvlile ja autor märgib, et Ainult ESP32-S3 See on natiivselt toetatud. Emulaatori arhitektuur seab aga esikohale kaasaskantavuse: mõistliku pingutusega saaks seda portida teistele mikrokontrolleritele ja platvormidele, avades ukse rohkematele vormingutele ja ekraanidele.

Jõudlus ja kasutajakogemus

Küsimus, mida kõik küsivad: kuidas läheb? Lühike vastus on „See toimib, kannatlikkusega.Windows 95 täielik käivitamine võtab avalikus demos umbes 4 minutit. Pärast laadimist on süsteem aeglane, kuid hallatav: saate avada Notepadi, mängida Solitaire'i ja isegi käivitada Internet Exploreri.

Võrguühendus on rakendatud, nii et emulaator saab Laadi põhilisi veebisaiteDemonstratsioon näitab, kuidas avatakse info.cern.ch, ajaloo esimene veebisait, mis lisab Windows 95-st, mis töötab alla 30 euro maksval mikrokiibil, meeldiva nostalgiahõngu.

Jõudluse osas on mõistetav, et süsteem on viidud piirini: emuleerimine lisab koormust ja ESP32-S3-l puudub arvutitasemel graafikakiirendus. Sellest hoolimata... üldine tunne on "kasutatavus äärel" See on enamat kui lihtsalt "see käivitub ja hangub". Kui videot esitada topeltkiirusel – populaarne nipp nende seas, kes on seda juba näinud –, muutub see palju talutavamaks.

Huvitava faktina saab Tiny386 joosta HukatusSee klassikaline test, kus Doomi ei käivitata, pole sellest kasu. Ja tänu virtualiseeritud heliseadmetele (arvuti kõlarid, Adlib OPL2 ja SB16) on heli aspekt riistvaraliste piirangute piires võimalikult hästi kaetud.

Toetatud operatsioonisüsteemid ja tarkvara

Kataloog, mida on juba videos näidatud, sisaldab Windows 3.1 / 3.2 (koos Hiina versiooniga 3.1) ja Windows 95-ga. Lisaks rõhutab autor, et Tiny386 „See peaks käivitama enamiku 16/32-bitise tarkvara” ja et 486/586 käskude laiendamisega on võimalik käivitada nii suhteliselt moodsaid Linuxi tuumasid kui ka tolleaegseid Windows NT-sid.

Üks väga huvitav detail on see, et Tiny386 on võimeline käivitage Linuxi kernel otseilma traditsioonilist BIOS-i läbimata, mis lihtsustab mõningaid testimisprotsesse. Riistvara kokkupanekuta uurimiseks pakub projekt ka WebAssembly demo mis käivitab brauseris Windows 3.2 ja mainib alternatiive nagu FreeDOS või JSLinux neile, kes soovivad veebis emuleerimiskogemusi võrrelda.

Rakenduste valdkonnas on lisaks eelmainitud Doomile olemas ka Windows 95 põhiprogrammid (Notepad, Solitaire ja Internet ExplorerNeed on osutunud toimivaks, ilmselgete jõudluspiirangutega. See on piisav tõend järeldamaks, et graafika, sisend/väljund ja võrgupinu on mõistlikult hästi integreeritud.

  Kõik Windowsi ajutiste failide kohta: mis need on, milleks neid kasutatakse ja kuidas neid õigesti kustutada.

Kuidas sisendit ja porte käsitletakse

JC3248W535 plaadil sõltub füüsiliste välisseadmete kasutamine USB-C programmeerimiseksSelle takistuse ületamiseks saab praeguses rakenduses klaviatuuri ja hiirt kasutada ümbersuunamine WiFi kaudu emulaatori suunas, pakkudes juhtimist ilma, et oleks vaja spetsiaalseid porte arenduskomplektis.

Tulevikku vaadates poleks üllatav näha ehitisi, mis seda ära kasutavad ESP32-S3 USB OTG hostina ning võimaldades luua jaoturi tavapäraste klaviatuuride ja hiirte ühendamiseks. See hüpe hõlbustaks oluliselt suhtlust ilma puutetundlike ekraanide või kaugsisestuslahendusteta.

Litsentsi-, koodi- ja testimisressursid

Projekt on avaldatud all 3 klausli BSD litsentsSee soodustab selle taaskasutamist ja kaasaskantavust. Täielik lähtekood on saadaval GitHubi repositooriumis. põhilised kompileerimisjuhisedkonfiguratsioonifailide dokumentatsioon ja kiirustajatele eelnevalt kompileeritud pildid vilkumiseks valmis.

Lisaks tehnilisele dokumentatsioonile on olemas ka demo brauseris (GitHubi lehed), mis võimaldab teil saada aimu, kuidas Windows 3.2 käivitub ja kuidas süsteem reageerib, ilma et oleks vaja riistvara. Need, kes soovivad süveneda, leiavad teavet ja arutelusid ka sellistelt saitidelt nagu Hackster.io ja Hackaday.io ning kogukondadest nagu /r/riistvara, kus need retrotehnoloogilised saavutused tekitavad sageli elavaid vestlusi.

Meediaväljaanded nagu CNX Software ja Tom's Hardware on arendust kajastanud, tuues esile selliseid üksikasju nagu emuleeritud välisseadmete loendSeaBIOS-i sõltuvus BIOS-ist/VGABIOS-ist ja JC3248W535 plaadi toe praegune seis. Tegelikult on osa levitamisest tulnud kogukonna tõukejõul – tänu sellistele näpunäidetele nagu Zoobabi oma –, mis selgitab kiirust, millega projekt on tootjate seas esiplaanile tõusnud.

Linuxilt AVR-il Windows 95-le ESP32-S3-l

Asjade perspektiivi seadmiseks need, kes mäletavad katseid Linuxi käivitamine 8-bitistel mikrokontrolleritel (nagu AVR) teavad, kui kaua see aega võtta võib. Võrreldes sellega tundub ESP32-S3 nägemine 386-ga, millel töötab Windows 95, "kiire" ja kindlasti palju praktilisem.

ESP32 ökosüsteemis on nähtud ka varasemaid saavutusi: Linux 5.0 ESP32 plaatidel ja hiljuti Linux 6.3 kujutis Olimex ESP32‑S3‑DevKit‑LiPo akuKuid Windowsi tulek sellesse mikroarvutite perekonda tähistab pöördepunkti piiride uurimisel, mis on tingitud eesmärgi eripärast ja sellest, kui nõudlik on klassikalise graafilise keskkonna käitamine.

Praegused piirangud ja parendusvõimalused

Nimekiri "veel mitte" sisaldab järgmist: integreeritud silurLisaks puhta emuleerimisega kaasnevatele paratamatutele jõudlusprobleemidele on puudusteks ka riistvaraülesannete ja teatud lubade kontrollimine. Samuti on puuduseks see, et praegu on ametlik tugi piiratud JC3248W535See piirab standardvarustuses saadaolevate ekraanide ja lisatarvikute valikut.

Positiivse poole pealt on Tiny386 lähenemisviis nii lihtne, et on olemas selge ruumi optimeerimiseksVälise mälu täiustused (PSRAM-i latentsused), protsessori emuleerimise peenhäälestus, graafika- või kettaseadmete potentsiaalselt kriitiliste radade käsitlemine ja USB OTG kasutamine reaalsete seadmetega töötamise kogemuse parandamiseks. Iga väike abinõu on abiks, kui arendustsükli eelarve on nii piiratud.

Säilitamine, haridus ja retrohõng

Lisaks eeldusele „sest me saame” on sellistel projektidel oluline hariduslik ja säilitamise väärtus. Tiny386-ga arendajad ja õpetajad Nad suudavad taasluua ajaloolisi x86-keskkondi ilma originaalriistvarata, mis on üha haruldasem ja hapram, ning teha seda üliodaval ja väikese energiatarbega platvormil.

Kogukonna jaoks avab see ukse testi vana tarkvara, dokumenteerides pärandsüsteemide käitumist ja korraldades töötubasid, kus selgitatakse käegakatsutavate näidete abil, kuidas 386 reaalsed ja kaitstud režiimid mõjutasid ... disaini. operatsioonisüsteemide näiteks Windows 3.x/95 ja Linuxi evolutsioon.

Samuti on olemas kultuuriline aspekt, mida ei tohiks alahinnata: on paradoksaalne – ja väga lõbus –, et tänapäeval „võimsaks tundmiseks“ peame emuleeri 80ndate protsessorit tänapäevasel mikrofonil, kui me kanname taskus mobiiltelefone, mis on tuhandeid kordi võimekamad kui algsed arvutid. See kontrast aitab mõista, kui kaugele me oleme jõudnud ja miks emuleerimine on nii võimas tööriist.

  Allalaadimiste kaust ei avane Windows 11-s: põhjused ja lõplikud lahendused

Sisemine arhitektuur: režiimid, mälu ja BIOS

Päris i386 kombineeritud režiimid päris ja kaitstud, lehekülgede nummerdamine ja MMU, mis pani aluse virtuaalne mälu PC-des kopeerib Tiny386 selle käitumise kriitilisi aspekte, et operatsioonisüsteemid tunneksid end "kodus", kombineerides protsessori emuleerimist välisseadmete komplektiga, mis reageerivad seal, kus tarkvara ootab vanu häid ISA-signaale.

Siin on sammas SeaBIOSKasutatav BIOS ja VGABIOS pärinevad sellest allikast. See tagab ühilduvuse laialdaselt toetatud käivitusrutiinidega ja väldib suletud ROM-ide kasutamist. Samal ajal saab emulaator vajadusel BIOS-ist mööda minna ja laadige Linuxi kernel otse, väga kasulik otsetee testimiseks.

Kaasaskantavus ja ökosüsteem

Olles kirjutatud C99-s ja nii lühikese protsessori tuumaga, kandma Tiny386 Teiste platvormide puhul muutub ülesanne lihtsaks: tuleb lihtsalt rakendada sisend-/väljundkiht ja kohandada integratsiooni kuvari, sisendi ja salvestusruumiga. Autor ise toob projekti suurima tugevusena esile kaasaskantavuse.

See ei ole kasulik mitte ainult neile, kes soovivad seda teistele mikro- või väikeettevõtetele viia, vaid lihtsustab seda ka kolmandate osapoolte jaoks. lisa lisaseadmeid, proovige optimeeringuid või isegi looge spetsiifilisi kasutajaliideseid (näiteks erinevate Windowsi piltide või retro-DOS/Linuxi distributsioonide otsekäivitamiseks).

Mida on seni näidatud

Windows 95 "elu tõestus" koos Käivitamine ~4 minutiga See on küll peamine vaatamisväärsus, aga mitte ainus. Esitleti ka Windows 3.1/3.2, veebibrauseri põhifunktsioonid (sh info.cern.ch), süsteemirakendused ja ikooniline tarkvara nagu Doom.

Paralleelselt on olemas ka WebAssembly demo See käivitab brauseris Windows 3.2, mis on suurepärane viis emuleerimise kogemiseks ilma midagi jootmata või vilkimata. Ja tehnikatundlikumatele kasutajatele pakub repositoorium konfiguratsioone ja eelkompileeritud image'i, et JC3248W535-ga minimaalse vaevaga alustada.

Võrdlus teiste ESP32 kogemustega

ajastada ülesandeid Linuxis croni ja aadressil

Võrreldes teiste demodega, näiteks Linux ESP32 peal "ilma riistvarata", on hüpe Windows 95 emuleeritud See lisab erilise huvi: see sunnib taastootma kapriissemat graafikat ja draiveripinu ning tegelema liidese ootustega, mida konsooli käivitamisel ei eksisteerinud.

Kogemus sellega Olimex ESP32‑S3‑DevKit‑LiPo ja Linux 6.3 See näitab, et ESP32-S3 ökosüsteemil on ruumi üllatada. Tiny386 nihutab seda piiri Windowsi territooriumile, sulgedes ringi, mis tundus olevat reserveeritud võimsamatele SBC-dele nagu Raspberry Pi.

Lõppkokkuvõttes on selge see, et teatava leidlikkusega odav mikrofon Sellest võib saada üsna veenev retromasin, mis on võimeline käivitama terveid süsteeme ja andma meile meistriklassi 90ndate arvutiarhitektuuris.

Tervikuna vaadatuna hõlmab Tiny386 lugu mitmeid saavutusi: lühike i386 emuleeriminePeamised välisseadmed on hästi integreeritud, BIOS on avatud lähtekoodiga, kaasaskantavus on kavandatud esimesest päevast peale ja demo, mis, ehkki aeglane, õpetab, mis on oluline: et Windows 95 ja Linux saavad ESP32-S3-l töötada enam kui korraliku täpsusega.

Ja jah, sellel on teatav poeetiline väärtus, et Windows 95 "maagia" taaselustamiseks aastal 2025 ei puuduta me vana Pentiumit, vaid kasutame... 6.000-realine emulaator Ja puutetundliku ekraaniga arenduskomplekt, mis mahub taskusse. Arvutiga töötamine on vahel palju lõbusam, kui nostalgia on segunenud leidlikkusega.

Arduino CLI õpetus
Seotud artikkel:
Täielik Arduino CLI õpetus: paigaldamine, kasutamine ja näpunäited