Gå til innhold

Windows 8 på ARM kjører ikke vanlige programmer


Anbefalte innlegg

Videoannonse
Annonse

Alle dagens programmer må skrives på ny for å fungere på de letteste nettbrettene.

 

Det sier jeg jo selv, vi snakker jo om en helt annen arkitektur, men det holder vel forhåpentligvis å rekompilere. Har selv skrevet mye programvare for ARM de siste par årene der utviklingen har foregått på en x86_64 linux PC før jeg har krysskompilert til ARM (C/C++).

Lenke til kommentar

Dette her har vi da vært klar over hele tiden. Ikke bare må selve programmene rekompileres for den nye arkitekturen, men alle støttebibliotekene som er en langt større oppgave. Mange av disse bibliotekene er ikke særlig portable, og det enkleste er kanskje å skrive de på nytt i de verste tilfellene. Vi som har drivet med kryssplattformutvikling en stund visste om at MS kom til å skyte seg selv i foten med dette.

 

Men det kan komme noe veldig positivt ut av dette, nemlig at MS får mer konkurranse. Frem til nå har de to store hovedargumentene for å beholde Windows vært at grensesnittet har vært det som brukerne er vant til og at programmene de bruker finnes der. Windows sitt grensesnitt har endret seg så mye nå at mange GNU/Linux-distribusjoner leveres med et skrivebord som ligner med på typisk Windows, og nå får altså ARM-varianten den store fordelen med programvareutvalget. Denne anledningen må nå benyttes til å få alternativer utbredt, det er noe som vi alle vil tjene på i det lange løp der også MS blir presset til å lage bedre produkter, samtidig som vi får frihet til å velge.

  • Liker 1
Lenke til kommentar
Gjest Slettet-Pqy3rC

.NET stoff burde jo i teorien kunne flyttes over siden det benytter CLR, det burde jo la seg gjøre å lage en just-in-time compiler for CIL til ARM også.

Win32 programmer (eller "Apps" i disse dager) er det antagelig værre med.

 

Batteritid er en dårlig unnskylding, det kan jo etterhvert fikses av de utviklerne som bruker unødvendig for mye krefter. Det bør jo være opp til sluttbruker å avgjøre hvorvidt det enkelte program skal kjøre eller ei.

Lenke til kommentar

Dette her har vi da vært klar over hele tiden. Ikke bare må selve programmene rekompileres for den nye arkitekturen, men alle støttebibliotekene som er en langt større oppgave. Mange av disse bibliotekene er ikke særlig portable, og det enkleste er kanskje å skrive de på nytt i de verste tilfellene. Vi som har drivet med kryssplattformutvikling en stund visste om at MS kom til å skyte seg selv i foten med dette.

 

Men det kan komme noe veldig positivt ut av dette, nemlig at MS får mer konkurranse. Frem til nå har de to store hovedargumentene for å beholde Windows vært at grensesnittet har vært det som brukerne er vant til og at programmene de bruker finnes der. Windows sitt grensesnitt har endret seg så mye nå at mange GNU/Linux-distribusjoner leveres med et skrivebord som ligner med på typisk Windows, og nå får altså ARM-varianten den store fordelen med programvareutvalget. Denne anledningen må nå benyttes til å få alternativer utbredt, det er noe som vi alle vil tjene på i det lange løp der også MS blir presset til å lage bedre produkter, samtidig som vi får frihet til å velge.

Den største grunnen til å velge Windows er at det er såpass mange programmer skrevet for det. Windows har lenge hatt en veldig stor gruppe av utviklere som velger plattformen. MS er flink til å passe på utviklerne sine.

Derfor har de i mange år nå pushet .NET som utviklingsplattformen for Windows. Programmer skrevet for .NET som ikke eksplisitt avhenger av tredjeparts native code biblioteker vil fint kjøre på Windows 8 for ARM.

 

Det er vel heller få som var overrasket over at x86 programmer ikke kjører på ARM.

Lenke til kommentar

Noen hevder at applikasjoner skrevet i .NET vil fungere som før. Det er ikke tilfelle. Alt må skrives om og rekompileres for WinRT og Metro. Noe annet ville ført til et kompatibilitets-helvete.

 

ARM-versjonen vil ikke ha et Win32-API. Mye av .NET er jo bygget på Win32, GDI osv. Derfor vil ikke typiske Windows-applikasjoner som basert på vanlig .NET kunne kjøre på Win8ARM.

Win8ARM vil ha en .NET CLR, men kun et subset av bibliotekene vil være inkludert. Det vil si kun det som er nødvendig for WinRT og Metro. Blandt annet vil det si ikke noe Windows Forms, ingen mulighet for COM-wrapping, osv. Da forsto jeg også poenget Microsoft gjorde ut av hvor enkelt det var og skrive om en Silverlight-applikasjon til Metro som benyttet XAML. Så da forsvinner nok hele "desktop-mode" også.

Lenke til kommentar

Noen hevder at applikasjoner skrevet i .NET vil fungere som før. Det er ikke tilfelle. Alt må skrives om og rekompileres for WinRT og Metro. Noe annet ville ført til et kompatibilitets-helvete.

 

ARM-versjonen vil ikke ha et Win32-API. Mye av .NET er jo bygget på Win32, GDI osv. Derfor vil ikke typiske Windows-applikasjoner som basert på vanlig .NET kunne kjøre på Win8ARM.

Win8ARM vil ha en .NET CLR, men kun et subset av bibliotekene vil være inkludert. Det vil si kun det som er nødvendig for WinRT og Metro. Blandt annet vil det si ikke noe Windows Forms, ingen mulighet for COM-wrapping, osv. Da forsto jeg også poenget Microsoft gjorde ut av hvor enkelt det var og skrive om en Silverlight-applikasjon til Metro som benyttet XAML. Så da forsvinner nok hele "desktop-mode" også.

Jeg kan ikke finne noen steder hvor det hevdes at WPF eller Windows Forms er droppet fra Windows 8 for ARM, så hvis du har en referanse på dette så hadde det vært fint.

WPF kjører forøvrig også på Direct3D, ikke GDI.

Endret av GeirGrusom
Lenke til kommentar

Her har Linux en stor fordel. Linux er fra grunnen av laget for å kunne kompileres mot hvilken som helst arkitektur, og alt av programvare ligger tilgjengelig som kildekode og kan kompileres mot det man skulle ønske av hardware. Videre vil det bli vanskeligere for Microsoft å ha sine egne proprietære standarder, da det er letere å reverse-engineere ting som finnes til to forskjellige arkitekturer enn det som er låst til en enkelt. Spennende hvor dette vil bringe oss.

Lenke til kommentar

Jeg kan ikke finne noen steder hvor det hevdes at WPF eller Windows Forms er droppet fra Windows 8 for ARM, så hvis du har en referanse på dette så hadde det vært fint.

WPF kjører forøvrig også på Direct3D, ikke GDI.

 

Jeg har heller ingen kilde som sier dette eksplisitt, men hvis du tenker over det sier det seg egentlig selv. Microsoft sier ARM vil kun kjøre Metro. Metro er WinRT. WinRT har ikke hverken WPF eller WinForms. Så da kan ikke skjønne noe annet. Men det virkelige svaret får vi vel etterhvert..

 

Kan lese litt om WinRT her: http://www.itwriting.com/blog/4866-a-few-facts-about-microsofts-new-windows-runtime.html

Lenke til kommentar

He-he, jeg må nesten humre og le litt. Hva skulle da være poenget med W8 på ARM ? Vi kan jo alt nå (og har en stund allerede) kunnet kjøre Linux på ARM om vi ønsket det ? Nei, dette har jeg ikke tro på.

 

Vel, jeg tror Microsoft sin plan er og smelte sammen Windows med Win Phone. For og gjøre dette, er de helt avhengig og ha mye bedre kontroll over hardware. Det får de nå med WinRT. Win8ARM er nok laget med tanke på tablets (og mobil i fremtiden). Win32 var aldri designet med tanke på mobilitet, strømforbruk osv. Hadde de lagt til støtte for og kjøre vanlige Windowsprogrammer i Win8ARM tror jeg de hadde skutt selv i foten.

 

Jeg tror Microsoft har gjort noe veldig lurt her. Det var et nødvendig steg for og kunne konkurrere i et marked som Apple blir større og større. De har et pre-beta-produkt som flere mener er bedre enn Android Honeycomb. Så dette blir spennende :)

Lenke til kommentar

Windows NT har vært, og er fortsatt et operativsystem som kjører på flere forskjellige prosessorarkitekturer (tidligere støttet NT Itanium, og på et tidspunkt også MIPS) og de har ikke hatt for vane å droppe støtte for enkelte API-er. Jeg vil anta at både Win32, WPF og Windows Forms er støttet på ARM versjonen med mindre det kommer noe konkret om at kun .NET og WinRT (som er et .NET bibliotek) er støttet.

Lenke til kommentar

Jeg vil anta at både Win32, WPF og Windows Forms er støttet på ARM versjonen med mindre det kommer noe konkret om at kun .NET og WinRT (som er et .NET bibliotek) er støttet.

 

Du må gjerne anta det, men kanskje du skal lese artikkelen du svarer i først.

 

WinRT er IKKE et .NET bibliotek. WinRT lever over kernel, og erstatter Win32.

 

Da ARM-versjonen kun vil støtte WinRT-apps (aka Metro-style apps), betyr det at gamle progammer må konverteres til WinRT for og fungere.

Endret av dizx
Lenke til kommentar
Gjest Slettet-Pqy3rC

Siden .NET språkene ikke lager eksekverbar kode, men isteden et CIL som benytter en JIT compiler så kan Microsoft få den til å virke på hvilket som helst underliggende OS. Det er jo hele vitsen med .NET

Lenke til kommentar

Siden .NET språkene ikke lager eksekverbar kode, men isteden et CIL som benytter en JIT compiler så kan Microsoft få den til å virke på hvilket som helst underliggende OS. Det er jo hele vitsen med .NET

 

Det at det JIT gir ikke alene plattform-uavhenghet, da så mange av bibliotekene er basert på Wi32-API'et, COM osv. På Windows 8 og .NET4.5 får man muligheten til og utvikle såkalte legacy-apps. Da får man tilgang til Win32 som før, men app'en kan ikke kjøre på ARM. Men om du velger og starte et Metro-prosjekt, får du kun et subset av "gamle" bibliotekene tilgjengelig, men får i tillegg WinRT.

Lenke til kommentar

Jeg vil anta at både Win32, WPF og Windows Forms er støttet på ARM versjonen med mindre det kommer noe konkret om at kun .NET og WinRT (som er et .NET bibliotek) er støttet.

 

Du må gjerne anta det, men kanskje du skal lese artikkelen du svarer i først.

 

WinRT er IKKE et .NET bibliotek. WinRT lever over kernel, og erstatter Win32.

 

Da ARM-versjonen kun vil støtte WinRT-apps (aka Metro-style apps), betyr det at gamle progammer må konverteres til WinRT for og fungere.

Leste en artikkel som hevdet at det var .NET, men det er ikke helt sant. All metadata som brukes for reflection og lignende i .NET er innebygget. Og ettersom .NET støtter COM mer eller mindre direkte, kan du laste WinRT i .NET uten store problemer.

 

Men ja, ser ut til at Win32 ikke er tilgjengelig på Windows 8 for ARM.

http://stackoverflow.com/questions/7426492/can-old-native-applications-run-on-windows8-tablet-version

Endret av GeirGrusom
Lenke til kommentar

Fint at det blir mer fokus på kryssplattform kompatibilitet. Alt som gjør det enklere å migrere bort fra x86 er et steg i riktig retning. Regner med ARM og MIPS vil være standarden på små datamaskiner om ikke lenge, med mindre AMD eller Intel trekker en kanin opp av hatten. Da er det lurt for bedrifter og organisasjoner som lever for eller av programvare å være forberedt.

  • Liker 1
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...