Windows RT je nieco uplne ine (v zasade iba nove API). Toto ma byt komplet emulacia na urovni instrukcnej sady. A nieje to zasa nic extremene, ono podobne veci su tu uz aj dnes. Qemu to dokaze akurat je to nechutne pomale (na tom je aj postaveny Google Android emulator - na x86 bezi ARM Android vo virtuale). Cele to bude o tom ako sa podari MS to zoptimalizovat aby to bolo aspon ako tak pouzitelne na highend SoC (sak to predvadzali na Snapdragone 830). Rozhodne to nebude pre nejaky mainstram alebo lowend a aj na takomto SoC to neubde asi nejaky zazrak.
Tak spíš bych to viděl tak, že Microsoft by zaplatil Qualcommu, aby tento implementoval opak toho, co implementoval Intel v Atomech pro mobily (http://www.anandtech.com/show/5365/intels-medfield-atom-z2460-arrive-for-smartphones/5) s tím, že by oni trochu obalili některá API, aby to lépe spolupracovalo s ARM architekturou.
Nebylo to ideální řešení, ale většina věcí by se nativním překladem z x86 na ARM dala jistě vyřešit. Jistě by tam mohly být spory kvůli licenci na x86/ AMD64 atd. Intel to měl z hlediska licence ARM asi ošetřené, pokud vím, tak Intel má licence na architekturu ARM a sám kdysi StrongARM vyvíjel než to nějak přešlo tuším do Marvellu (https://en.wikipedia.org/wiki/StrongARM, https://en.wikipedia.org/wiki/XScale), nicméně nějaké licence a patenty jistě zústaly nebo na ně měli nějaké smlouvy k užívání.
Obecně by ale bylo prostě lepší, kdyby Windows byl systém otevřený více platformám. Třeba ReactOS na ARM a pokud vím i PowerPC běží. Možná je čas na to, aby Microsoft prostě Windows otevřel a vyvíjel nějakou Core variantu v open source modelu. Nějaké jejich legacy klikátka by klidně mohli prodávat jako jakýsi business pack. Firmy by si koupily business pack, Microsoft by za OEM stejně inkasoval nějaký poplatek za certifikaci a support a koho by nějaký problém trápil opravdu tak moc, mohl by poslat patch.
Možná by ale bylo jednodušší, kdyby Microsoft prostě zapracoval na Wine a jádře a Windows byly nakonec Linux + .NET + PowerShell + Wine + Microsoft Tools&Services adapted to Linux :-)
Prostě taková slátanina, podobně jako Android.
Intel má emulaci ARMu zvanou HAXM. Využívá virtualizaci, ale nejde o HW implementaci kompatibility s ARMem. O technologii emulace x86 na ARMu toho ještě není moc známo. Ale jsou tu historické příklady: emulace x86 na Itaniu, MIPS na Itaniu, PowerPC na x86, x86 na POWER5/6, SPARC na x64, SPARC na Itaniu, PA-RISC na Itaniu, 68k na PowerPC atd. Samozřejmě to vždycky stojí nějaký výkon.
Jádro Windows, stejně jako API, nemají problém s podporou více platforem. Historicky byly Windows k dispozici na Alpha AXP, MIPS, Itanium, PowerPC (ze kterého vychází verze Windows která poháněla Xbox 360) a ARM (Windows RT). Připravovaly se i porty na SPARC a Clipper. Jenže k čemu je podpora platformy, když jí lidé nekupují a vývojáři pro ní nepíšou SW? Kdo si koupil třeba Windows pro Itanium, mohl na něm běžet aplikace od MS (SQL Server, Exchange, Visual Studio), a k tomu jen pár dalších aplikací. Všechno ostatní běželo jen v emulaci x86, a na zvlášť na prvních modelech Itania měla ta HW emulace mizerný výkon (ta pozdější SW byla lepší).
Jinak MS má velmi kvalitní kernel, API poskytující obrovskou spoustu funkcionality, pro jeho platformu existuje obrovská spousta aplikací, a vyvíjí pro ní obrovská spousta vývojářů. Co by získal přechodem na Linux + .NET + PowerShell + Wine + Microsoft Tools&Services adapted to Linux? Kernel který je 1:1 opisem tradičních Unixů z počátku osmdesátých let, a navíc je zatížený virální GPL licencí? A k tomu reimplementaci Win32 která více než 27% Win32 API úplně ignoruje?
Mimochodem i Google se na Androidu izoloval od GPL licence pomocí Bionic libc, a nyní se chystá sjednotit svoje platformy pro telefony, tablety, Chromebooky, a možná časem i servery a desktop, do jediné nové platformy. A tu novou platformou nestaví na Linuxu, ale na úplně novém OS, který není pod GPL.
https://en.wikipedia.org/wiki/Google_Fuchsia
O technologii emulace x86 na ARMu toho ještě není moc známo
komu? tobe? nebo saskum/kolegum v PR oddeleni Microsoftu pro ktere pracujes?
uz nejakou dobu komercne nabizena emulace x86 pro ARM...
https://www.root.cz/zpravicky/microsoft-a-qualcomm-pracuji-na-emulaci-x86-na-snapdragon/899204/
nebo pomalejsi, ale opensource qemu(-system-x86) pro ARM ktere uz je tu s nami nejakych 10let ;)
infoemace v souvislosti s Win32 app pres WINE: https://wiki.winehq.org/ARM
Ad O technologii emulace x86 na ARMu toho ještě není moc známo; komu? tobe? nebo saskum/kolegum v PR oddeleni Microsoftu pro ktere pracujes - nedělejte ze sebe blba. Je řeč o emulaci x86 na ARMu ve Windows. Vývojáři v MS o tom asi něco vědí, když už to píšou :), ale veřejně toho moc známo není. Našel jsem minimum detailů o použité technologii. Jestli máte něco konkrétního vy, tak zkuste místo trollování dát konkrétní link.
Ad uz nejakou dobu komercne nabizena emulace x86 pro ARM - nemá podporu 3D akcelerace, jinak by to technicky nemuselo být špatné. Otázka je co a jak implementuje MS a Qualcomm.
Ad pomalejsi, ale opensource qemu(-system-x86) pro ARM ktere uz je tu s nami nejakych 10let - to z hlediska výkonu asi nepřichází v úvahu. Navíc QEMU je pod virální licencí GPL, tj. nelze ho použít v komerčním projektu.
Navíc QEMU je pod virální licencí GPL, tj. nelze ho použít v komerčním projektu.
Lež jako věž, FOSS věci pod GPL komečním věcem nebrání. Dokonce nemusíte napsat ani čárku, můžete vzít to, co stvořil někdo jiný a používat to ke komerčním účelům. Komerce = obchod(ování). Klidně si to prodávejte, zahrňte do svého projektu. Dělejte si s tím jak je libo. Samozřejmě za podmínek, daných licencí. Ale tím se neliší GPL od jakékoli jiné, u všech musíte dodržovat podmínky dané licencí, že?!
Ad klidně si to prodávejte, zahrňte do svého projektu. Dělejte si s tím jak je libo. Samozřejmě za podmínek, daných licencí - bohužel podmínkou té licence je to že uvolníte váš zdroják, pokud i jen dynamicky linkuje GPL kód. A to prodej vašeho SW "nakaženého" GPL licencí velmi komplikuje. První zákazník dostane k vaší aplikaci zdroják, a smí ho bez omezení šířit. Fakt tohle nevidíte jako poměrně zásadní problém?
Ad tím se neliší GPL od jakékoli jiné, u všech musíte dodržovat podmínky dané licencí, že - to jistě ano. Akorát podmínky licence GPL jsou prostě špatné pro business. Proč myslíte že i milovníci open source jako Google, IBM a Oracle neuvolňují zdrojáky svých klíčových aplikací jako Google Search, DB2, Lotus Domino/Notes, Oracle RDBMS atd.? Protože dobře vědí, že když si jejich SW může každý stáhnout zdarma, tak se zákazníkům nebude chtít platit. A když třeba Oracle nalinkuje ve svém RDBMS jedinou GPL knihovnu, musí uvolnit zdroják. To je jako minové pole, a použití nějaké GPL knihovny "zdarma" pak vyjde zatraceně draho.
Jinak MS má velmi kvalitní kernel, API poskytující obrovskou spoustu funkcionality, pro jeho platformu existuje obrovská spousta aplikací, a vyvíjí pro ní obrovská spousta vývojářů. Co by získal přechodem na Linux + .NET + PowerShell + Wine + Microsoft Tools&Services adapted to Linux? Kernel který je 1:1 opisem tradičních Unixů z počátku osmdesátých let, a navíc je zatížený virální GPL licencí? A k tomu reimplementaci Win32 která více než 27% Win32 API úplně ignoruje?
Ten je dobry daj este jeden... rad sa zasmejem hned z rana
Ozaj uz vyriesily ten windows update? Na jednom stroji mi ich hlada uz tyzden a nepomohly ani tie dobre rady z technetu...
No vyzera to dobre, konecne sa mozno dockame prenosneho desktopu v telefonoch. Aj ked je otazne ci toto chce mainstream a ci to bude tah na predajnost (skor asi nie). Druha vec je ale , boli tie windowsy nativne skompilovane pre ARM alebo tiez bezali v emulacii ?? (podal videa by som povedal ze boli prekompilovane pre arm). Aky bude vykon aplikacii prekladanych na tom ARMe? Je to realtime alebo system offline nejak preklada binarky a potom si ich cachuje ? A aky to bude mat dopad na spotrebu. Uz samotny android je dost pazravy a aj ked mame 4-8 jadrove 2-3 GHz SoC cpu v telefonoch, vecsinou casu koli spotrebe bezia tak 3-4 jadra na 400-600MHz. Ono realne ani dnesne telefony nezvladnu bezat kontinualne na maximalke osadeneho SoC, povedzme 4 jadra na 2.5 GHz. To by sa ten telefon roztopil. Ta ukazka asi skor bezala na nejakom dev tablete/notebooku alebo dev boarde. Ale ved uvidime.
Technicke omezeni to neni. To je umysl od microsoftu. Ano ono to ve vysledku pomoci hacku slo, ale podporu to nemelo. Muzu snad ve visual studiu zkopilovat winapi aplikaci pro arm ? Ne nemuzu. Muzu na aktualnich arm windows (mimo iot) pustit aplikaci z jinyho zdroje nez z windows store ? Ne nemuzu.
Ano, to je úmysl MS. Na běžných Windows běží aplikace na pozadí, používají busy-looping, instalace aplikace může udělat se systémem v podstatě cokoliv, a laik může počítač poměrně snadno rozbít. Proto se MS rozhodl stroje na ARMu postavit výhradně pro Windows Store, udělat je blbovzdorné a "nerozbitné". Technicky to vyšlo, marketingově ne.
Obávám se, že tady je něco špatně. Software byl vytvořen proto, aby nebylo třeba kvůli různému HW všechno předrátovávat. Je to právě SW, který má být flexibilní a přizpůsobit se. M$ to evidentně za těch několik desítek let existence nedokázal a tak nutí výrobce HW aby jim udělal instrukční sadu na které jediné jejich OS jede. To je proti všem zvyklostem.
Myslím, že takto zkostnatělá firma už nemá na softwarovém poli co dělat. Drží je tam jenom jejich prachy.
Tak ony se jistě plnohodnotné Arm aplikace postupně objeví, ale Microsoft rozhodně nechce další debakl. Jejich hlavní výhoda na trhu je obrovské množství aplikací. Pokud to neposkytnou (i za cenu emulace), nikdo po ARM Windows ani neštěkne.
Ostatně, stejnou cestou šel i Apple při přechodu na Intel. Staré PPC programy emulovali, dokud nevyšly nové verze pro x86.
Ale on po tom nikdo nestekne ani tak, proc by si nekdo proboha daval na neco takovyho widle, a mel z toho 286tku. Nehlede na to, ze pokud se bavime o ARM, tak se bavime o tabletech, pripadne nejakych pidikrabkach/televizich/...
Widle v mobilnim zeleze neumej fungovat. A nikdy to umet nebudou, uz proto jak sou koncipovany. Na dotykaci musis mit uplne jiny UI, ne "nejak upraveny" ale proste uplne jiny. Mel sem par widlotabletu v ruce (s plnotucnejma widlema) ... nejradostnejsi je, kdyz se ti spusti desktopovy okno nejaky konfigurace (trebas ovladaci panely). Nenastavis v tom NIC, jednoduse proto, ze je fyzicky nemozny se trefit do tech prvku.
Pricemz na zeleze, na kterym tux/android vpohode a bez problemu beha, sou ty widle liny jak svin, a naprosto bezny sou vytuhy na desitky vterin, (pripadne to chcipne uplne).
Uvedom si laskave, ze 100% vsech widloapek je navrzenych ... pro desktop. Tzn ovladani mysi s presnosti na jeden px. Programatorovi appky je pak uz u rite, jestli bude predelavat celou appku proto, aby sla spustit pod widlema na arm ... nebo proto, aby bezela na arm nativne.
BTW: Prvni pentia nazvladaly (vykonostne) emulovat 8mibity. Bavime se o rekneme 5MHZ vs 100+MHz cpu. Jakz takz ty emulatory chodily az na procesorech od 500Mhz vejs. HW emulace bude trochu lepsi, ne ale o moc.
<i>BTW: Prvni pentia nazvladaly (vykonostne) emulovat 8mibity. Bavime se o rekneme 5MHZ vs 100+MHz cpu. Jakz takz ty emulatory chodily az na procesorech od 500Mhz vejs. HW emulace bude trochu lepsi, ne ale o moc.</i>
Ale to není úplně pravda. Problém není emulovat 8 bitový procesor. Problém byl emulovat všechny ty obvody, co 8 bitové počítače měly. U 8 bitových PC totiž díky slabému výkonu CPU byly běžné obvody, které každý něco dělaly aniž by se to muselo složitě ovládat softwarově. Na PC architektuře byly běžné softwarové modemy :D.
Z vašeho příspěvku teď víme, jak byste úlohu řešil vy. Naštěstí se našlo dost lidí, kteří byli tak hloupí, že nevěděli, že lépe to nejde. A tak používají věci jako je https://en.wikipedia.org/wiki/Dynamic_recompilation
Jestli vás tato oblast trochu zajímá, tak vás možná zaujme https://en.wikipedia.org/wiki/QEMU
– Widle v mobilnim zeleze neumej fungovat.
Ale uměj. Windows Mobile mi nesedí, ale svižné to je. A jestli půjdou cestou hybridního řešení jako Ubuntu, kdy se na plnohodnotné rozhraní systém přepne až po připojení monitoru / zasazení tabletu do docku, nevidím problém ani s dekstopovými windows na Armu.
– sou ty widle liny jak svin
Měla jsem v ruce mobil s Windows Phone 8, 700 Mhz jednojádrem a 512 MB RAM. Android by na tom hardware byl celkem líný, Windows Phone v pohodě. Jen to (překvapivě) neudrželo moc běžících aplikací v paměti.
– Uvedom si laskave, ze 100% vsech widloapek je navrzenych ... pro desktop.
Oni vážně nechtějí provozovat dekstopové aplikace na mobilu bez monitoru.
– První pentia nezvládaly emulovat osmibity
To vyprávěj někomu jinému :) Měla jsem jak osmibity, tak 486 a následně 166Mhz Cyrix, což bylo někde na úrovni pentia P45. V pohodě jsem na tom pařila hry pro osmibitový NES, Gameboy, rozchodila emulátor Commodore 64 a ZX Spectrum. A fíha, 5 Mhz osmibit? Takových moc nebylo :) Přes tu hranici se osobní počítače přehouply spíš později (pokud nepočítám 8bit mikrořadiče, u kterých vývoj pokračuje dodnes) 16 bit počítače typu Atari ST. Tam už bych si menší obtíže v emulaci představit dovedla.
Microsoft opravdu nemám ráda, ale rozhodně ho nechci podceňovat.
Měla jsem v ruce mobil s Windows Phone 8, 700 Mhz jednojádrem a 512 MB RAM. Android by na tom hardware byl celkem líný, Windows Phone v pohodě. Jen to (překvapivě) neudrželo moc běžících aplikací v paměti.
no vidis, ja mam v ruce 1GHz (dobre je to dual) s 390MB RAM a beha na tom svizne Android 6.0.1 a v pameti to udrzi bezproblemu nekolik programu co pouzivam ;)
A fíha, 5 Mhz osmibit?
jecko se asi trochu seklo no... jiste myslel Amigu 16bit co bezela na 7MHz, tu sem pouzival a PIII-450 to stale neumela emulovat na fullspeed, jinak c64 a emulace sid take byla celkem narocna :)
Hm, těžko si to dovedu představit :) Třeba na Galaxy S3 mi běhá 6.0.1 dost… Náhodně, občas si člověk chvilku počká než může zvednout hovor. Ale teď mám Xperii Z3 Compact a je krásně svižná, to jo :) Každopádně rychlost a odezva systému je rozhodně jedna z věcí, které se Windows Phone vytknout nedají.
A ano, emulace Sidu tuším nefungovala nejlíp (nebo vůbec), ale má paměť na tu dobu tak dobře neslouží. Nejlíp si pamatuju, že jsem na tom dohrála Legends of Zelda a Pokémon Red :D
Emulace Amigy už byla úplně jinde, natožpak 32b Amig, které PC ani dobře emulovat nemohl, když měly samy o sobě lepší multimediální schopnosti než prakticky cokoliv IBM Compatible :) Můj Cyrix se 166 Mhz vypadal vedle otcovy služební Amigy 1200 ve hrách jako ze středověku.
tak na Galaxy S3 zkus take Slim6 ;) https://slimroms.org/#/download
jecko se asi trochu seklo no... jiste myslel Amigu 16bit co bezela na 7MHz, tu sem pouzival a PIII-450 to stale neumela emulovat na fullspeed, jinak c64 a emulace sid take byla celkem narocna :)
Kam se to hrabe na 8 bit ZX Sprinter na 21 MHz https://cs.wikipedia.org/wiki/Sprinter_(po%C4%8D%C3%ADta%C4%8D)
(závorku na konci přidat do adresy, na Rootu to tady nikdy nefungovalo správně)
Parila si leda kulovy ... protoze to na tom nefungovalo. Respektive spustit to slo, coz bylo asi tak vsechno.
Mimochodem, takovej 8bit jako reknema Atari 800 ma 6502, necely 2MHz, jenze k tomu ma jeste ANTIC obvod, coz je defakto GPU a pak jeste POKEY, coz je zvukovka (a dalsi veci). Proto sem napsal 5MHz, emulovat se to neprekvapive musi vsechno.
> Měla jsem v ruce mobil s Windows Phone 8, 700 Mhz jednojádrem a 512 MB RAM.
Asi těžko. Nic takového totiž neexistuje. _Všechny_ WP8 telefony měly 2 jádra nebo více a vždy aspoň 1 GHz pokud vím. Možná se jednalo o WP7.x, který vypadá podbně jako WP8, ale není to Windows NT jádro, ale ořezané resp. hodně upravené Windows CE, což je ta věc, kterou jinak nasazují do těch minidisplejů v letadlech a většinou jim to tam padá, takže se potom nemůžete dívat na nic.
Jinak Windows Phone 7.x jsem extensivně používal ai 2 roky. Bylo to rychlé a plynulé, ale kromě poměrně dobré aplikace na email a RSS čtečky NextGen Reader to prakticky nic neumělo a problém byl dokonce i vzít nějakou mp3 a nastavit si ji jiko vyzvánění, když byla delší než 40 sekund a to bylo i tak možné až po updatu. Obecně to byla celkem tragédie, protože když vcelku nemůžete nic dělat, ale je to plynulé... škoda poměrně kvalitního hardware, který ve své době byl poměrně výkonný. Android tehdy skutečně vykresloval na podobném hardware mizerně pomalu a animace se sekaly. Měl ale aplikace, které lidé chtěli. Proto se prosadil. iPhone skloubil relativní plynulost a časem aplikace dohromady, proto to byla celkem revoluce.
Dnes je ale Linux a Android jinde než v roce 2011. Hodně věcí je samozřejmých, které tehdy nebyly. Android je asi efektivnější, hardware lepší, Windows Phone/ Windows Mobile pořád padal a vstával až to lidi přestalo bavit.
Ad Widle v mobilnim zeleze neumej fungovat - Windows Phone/Mobile fungují na mobilním železe velmi dobře, rychle a plynule.
Ad Na dotykaci musis mit uplne jiny UI, ne "nejak upraveny" ale proste uplne jiny - proč nestačí třeba přeházet prvky a změnit jejich velikost? Settings z Windows 10, MS Office a další aplikace tak fungují bez problémů. A pokud je někde vhodné vyměnit UI "úplně", tak je to jen o přidání pár XAML souborů pro jiný typ zařízení.
Ad na zeleze, na kterym tux/android vpohode a bez problemu beha, sou ty widle liny jak svin, a naprosto bezny sou vytuhy na desitky vterin, (pripadne to chcipne uplne) - já zatím viděl akorát telefony s Androidem, které jsou pomalé a škubou se jako epileptik při záchvatu, a to na HW daleko silnějším, než na jakém Windows Phone/Mobile fungují bez problémů a plynule.
Ad 100% vsech widloapek je navrzenych ... pro desktop - v daném scénáři jde o možnost běžet Win32 aplikace na monitoru, ne na mobilu. Ne že by to na mobilu technicky nešlo, ale dopadlo by to jako když v Ubuntu demonstrovali LibreOffice na telefonu: dalo se to ovládat leda párátkem.
Ad Prvni pentia nazvladaly (vykonostne) emulovat 8mibity. Bavime se o rekneme 5MHZ vs 100+MHz cpu - protože bylo potřeba emulovat i HW, a to dost specifický HW.
Nebylo by efektivnejsi napsat zdrojovy kod k SW (v tomto pripade OS/jadro NT a na ne navazujici API atd.) tak aby po kompilaci pro tu kterou architekturu (x86-x64, arm, mips) bezel bez problemu? Tzn. aby byl HW-multiplatformni?
Stejne za tim bude mit prsty s Microsoftem i Intel. Jemu samotnemu se na mobilnim trhu nepodarilo prorazit, necha ARM (Qualcomm) si vylamat zuby na tom aby tak nejak chodil OS Windows a SW pro nej na ARM, samozrejme to nebude kdovijak vykone, pujde o to aby si "svet" (stejne tak jak na desktopu) "zvyknul" na ty jedinne a spravne aplikace, aby pak vitezoslavne prisel s tim ze na jeho x86 zeleze (jenz tou dobou bude na mensich nm dostatecne vykonny a pritom nezravy) to bezi mnohem lepe a ...
Kod neni problem napsat hw-multiplatforme. Problem jsou v tomhle pripade microsofti api. Na armu jsou pristupny pouze dlazdice a konzole. Normalni desktopova win aplikace na arm zkompilovat nejde. A nikdo se nebude prepisovat s aplikaci do dlazdicoidnich api. Uz jen pro to, ze je silene omezeny a u vetsiny aplikaci v nem nejde napsat stejnou funkcionalitu.
Psal jste "nikdo se nebude prepisovat s aplikaci do dlazdicoidnich api. Uz jen pro to, ze je silene omezeny a u vetsiny aplikaci v nem nejde napsat stejnou funkcionalitu". To se netýká Win32 na ARMu, ale UWP na ARMu. Jaká jsou u UWP konkrétně omezení, které většině aplikací vadí?
BTW: podobne(?) reseni (i kdyz closedsource a placene) existuje v podobe ExaGear Desktop jiz delsi dobu, tady jde o ciste sw reseni a rychlost neni (z videa co jsem videl) spatna... navic jde o arm=>linux=>exagear=>wine=>w32app :)
Rychlost muze byt bez nejmensiho problemu na 1/4 "vykonu" CPU (kazda instrukce x86 se zapise v prumeru cca 4mi instrukcemi), prostou translaci bez optimalizaci. K tomu kdyz pripocitame nativni API, tak vetsina beznych aplikaci muze chodit naprosto bez nejmensich problemu.
Pokud translator nejede po basic blocich ale necem delsim, jsou tu obrovske moznosti optimalizace.