Forum: Programera 32/64-bit

Forum huvudsida -> Programmering -> Programera 32/64-bit

Sidor: 1

Till botten

ELF 19:03 - 15:e Juli 2008 | Post #1
Medlem
Inlägg: 73


Skicka PM
Jag har på många ställen läst att folk inte utvecklar 32- och 64-bit mjukvara bara för att det är svårt att underhålla båda. Så dom håller sig hällre bara till 32-bit.
Men jag har funderat, funderat, funderat, funderat och funderat. Nämde jag förresten att jag har funderat?
Jag kan inte förstå vad som är så svårt. ,,r det inte så lätt som jag tror eller är folk bara väldigt lata?
Någon kanske har någon bra sida där jag kan läsa lite mer om detta?

En annan sak. Det är skönt att Microsoft har satsat lite mer på att utveckla 64-bit Operativ som är lite mer Up to Date. För då kanske programvaruutvecklare fatta att det är 64-bit applikationer som gäller och inte dom här gamla 32-bit. Har bara använt XP Pro 64-bit i några månader och börjar tycka 32-bit är gammaltSmiley

-------------------------
May the Elf be with you

Senast redigerad 19:52 - 15:e Juli 2008


Vitdom 08:08 - 16:e Juli 2008 | Post #2
Medlem
Inlägg: 71


Skicka PM
Jag har hört om 64-bit och att det är det senaste, men jag förstår inte vad som är bättre med det, vad det har för extra funktioner och hur man programmerar i olika(32/64)?

När jag bygger en ny dator har jag tänkt att köpa en 64-bitars processor(och operativsystem). Smiley

,,r tacksam om någon skulle kunna förklara detta lite kort för mig.

Tack i förhand.

-------------------------



Senast redigerad 08:12 - 16:e Juli 2008


ELF 10:49 - 16:e Juli 2008 | Post #3
Medlem
Inlägg: 73


Skicka PM
Tja Vitdom. Har du hittat hit... TheDarkElf på fuska.seSmiley

Jo, fördelen är ju den att mer data kan hanteras sammtidigt. Operativsystemet kan allokera mer RAM. Ett 64-bit operativ ska i praktiken kunna allokera 16 exabyte. Ett 32-bit operativ kan bara allokera 4 GB. Om det stämmer så ska ett 16-bit operativ bara kunna allokera 65kb.
Så du förstår nog vad som är så bra med det.

-------------------------
May the Elf be with you



sdac 17:32 - 19:e Juli 2008 | Post #4
Medlem
Inlägg: 235


Skicka PM
Det finns många anledningar till att folk har svårt att få sina program att fungera under 64-bitars miljö. Den vanligaste orsaken är väl att folk antagit att minnesadresser är 32-bitars när de utvecklat sina program. Med det i tanke har de utfört pekararitmetik med datatypen int, som i sig vanligtvis är 32-bitars både under 64-bitars och 32-bitars operativssystem. När man sedan ska få det att fungera under 64-bitars ger kompilatorn inga felmeddelanden, utan bara varningar (och inte ens det om man castat ordentligt). Slutligen när man kör det kompilerade programmet så blir det massvis av segmenteringsfel för att pekare förlorat 4 byte av de 64-bitars pekare som det utförts aritmetik på.

Stora projekt kan behöva mycket tid på sig att hitta alla småfel. gcc är ganska vänlig på den delen i och med att den varnar när 64-bitars pekare castas till 32-bitars integertal om man kompilerar med -Wall, vilket kan underlätta det hela en aning. Men det är ändå mycket som behöver fixas.

Andra orsaker till problem kan vara när utvecklaren lekt trollkarl med datatyper som är olika stora på 32- och 64-bitars system, t.ex. size_t i C.

Att det skulle vara svårt att underhålla både 32- och 64-bitars är nog lite överdrivet. Kan man programmera ordentligt är det inget som går fel, men är man lite bakom flötet och antar för mycket kan mycket gå fel. Ett enkelt sätt att vara på den säkra sidan och veta vad man gör (i C) är att använda sig utav typer definierade i stdint.h, t.ex. uint32_t och uint64_t, och så självklart uintptr_t för att utföra aritmetik på pekare.




ELF 23:15 - 19:e Juli 2008 | Post #5
Medlem
Inlägg: 73


Skicka PM
Ska man ex. skriva ett 64-bit VB.NET program så ska man helst använda int64 istället för int eller har jag fattat fel?

-------------------------
May the Elf be with you



FunkyChicken 11:54 - 20:e Juli 2008 | Post #6
Nyhetsredaktör
Inlägg: 800


Skicka PM
Nej, det finns ingen anledning att använda så stora datatyper i onödan.




ELF 13:37 - 20:e Juli 2008 | Post #7
Medlem
Inlägg: 73


Skicka PM
Ok, men vad menar han då med att använda (minnesadresser)

-------------------------
May the Elf be with you



FunkyChicken 14:47 - 20:e Juli 2008 | Post #8
Nyhetsredaktör
Inlägg: 800


Skicka PM
.Net är managed code. Du kompilerar till MSIL och det är CLR:ens problem att köra koden. Du behöver i princip inte bry dig om vilken proccessor som används, du ska inte ens behöva kompilera om för att köra på olika 32/64 bit.

Det sdac skriver om pekare behöver du inte bry dig om i VB.NET där man inte använder pekare, och vad gäller datatyper i allmänhet så är en int i .Net alltid en Int32. Problem uppstår i språk där vissa av datatyperna varierar från dator till dator.




Sabbath 23:07 - 20:e Juli 2008 | Post #9
Medlem
Inlägg: 26


Skicka PM
Hur är det med Java? Går det att programmera specielt för 64 bit där eller kör den alltid på 32 (eller anpassar det sig)?

-------------------------
(double)42/Math.pi==13,37



ozamosi 23:24 - 20:e Juli 2008 | Post #10
Administratör
Inlägg: 1129


Skicka PM
Du blandar ihop helt olika saker...

Storleken på en int är ointressant. Int är en datatyp - ett smeknamn på en viss mängd minne (vanligen 4 bytes). ,,r det inte tillräckligt behöver man en long eller något. ,,r det överdrivet mycket kan man använda en short. Det spelar ingen roll om du har en 16-, 32-, 64- eller något-helt-annat-bitarsprocessor - minne är minne.

Det som är intressant är vilka register och instruktioner som går att använda på processorn.

Java, precis som .Net, kompileras till bytekod. Bytekod är ingen arkitektur alls (eller egentligen är det en arkitektur som inte finns på riktigt), utan kompileras om till maskinkod vid körning. Följaktligen kompileras java vid körning till den plattformen man har - 64-bitar om man kör ett 64-bitars-OS, 32-bitar om man kör ett 32-bitars-OS, osv...

-------------------------
Ljusblå



ELF 00:57 - 21:a Juli 2008 | Post #11
Medlem
Inlägg: 73


Skicka PM
Ok. Men behöver man då tänka på att skriva för 32/64bit när man programerar i .NET?

-------------------------
May the Elf be with you



FunkyChicken 12:51 - 21:a Juli 2008 | Post #12
Nyhetsredaktör
Inlägg: 800


Skicka PM
Nej, inte om du bara använder .NET. (Faktum är att du inte ens KAN anpassa dig särskilt mycket även om du skulle vilja.) Använder du däremot färdigkompilerade dll:er som är dåligt skrivna i ditt projekt kan det bli problem, men det lär du ju märka.




ELF 12:06 - 22:a Juli 2008 | Post #13
Medlem
Inlägg: 73


Skicka PM
hmm,ok.

-------------------------
May the Elf be with you



Sidor: 1

Forum huvudsida -> Programmering -> Programera 32/64-bit
Atom feed

Du får inte posta i den här tråden | Till toppen