Indledning
Jeg har i et års tid haft en lille bitte hjemmeside,
www.win64.dk, oppe at køre. Men interessen for den har været minimal og antallet af besøgende ligeså. Derfor har jeg besluttet at nedlægge den og i stedet samle mine erfaringer og råd omkring 64-bit Windows i en teknisk artikel her på
www.lyngvig.org. Denne artikel indeholder stort set hele www.win64.dk siden.
Inden vi går videre skal du lige have nogle hurtige forklaringer:
- Windows x86 er identisk med 32-bit Windows. Navnet er åndssvagt, men sådan er det bare.
- Windows x64 er identisk med 64-bit Windows.
Der findes grundlæggende tre grunde til at opgradere til Windows x64 (som 64-bit Windows også kaldes):
- Nørdethed; lysten til at lege med ny teknologi når den kommer på markedet.
- Hastighed; 64-bit Windows er ca. 10 procent hurtigere end Windows x86.
- Størrelse; 64-bit Windows kan behandle fire milliarder gange så store mængder data som x86.
Forudsætninger
Jeg vil antage at du slet intet ved om computere og derfor ikke ved, hvorfor du måske kan få glæde af at skifte til 64-bit Windows. Derudover vil jeg forsøge at skrive artiklen så den ikke forudsætter nogen bestemt 64-bit udgave af Windows: du burde altså kunne bruge Windows XP, Windows Vista og Windows 7, om end jeg selv klart anbefaler Windows 7 – den kan fås for omkring kr. 650,- i en såkaldt OEM udgave, og det må siges at være rørende billigt for et moderne, opdateret, lækkert operativsystem. Jeg vil ikke anbefale at du bruger tid på Windows XP i 64-bit udgaven; af hvad jeg har forstået, så er der en del problemer med den i forhold til de nyere udgaver af Windows, men hvis du absolut vil, så vær velkommen.
Hvis du ikke ved hvad 32-bit og 64-bit betyder, så kan forskellen bedst forstås ved at tænke på antal cylindere i en bil: en 64-bit maskine har dobbelt så mange ”cylindere” som en 32-bit maskine, hvorfor den kan trække fænomenalt meget mere end en 32-bit maskine. Hvor en 32-bit maskine kun kan rumme ca. 1,5 times video i hukommelsen, der kan en 64-bit maskine teoretisk rumme ca. 24 milliarder timer ditto. Dette afhænger dog af den mængde hukommelse der er installeret i maskinen, hvorfor en typisk 64-bit maskine blot har langt større muskler end den tilsvarende 32-bit maskine.
Baggrund
De fleste PC’er kører i dag Windows. Og ud af alle de mange PC’er der kører Windows, kører langt størstedelen en 32-bit udgave af Windows. Det gør de fordi kun få har orket, magtet og villet bruge den energi der skal til for at gøre sig erfaringer med 64-bit udgaver af Windows. Få har tiden, pengene og lysten til det. Derudover har 64-bit Windows også fået et ufortjent, men ganske udbredt ry som værende meget inkompatibelt med 32-bit Windows. Derfor holder mange igen og udsætter opgraderingen til 64-bit Windows i nogle år endnu, eller indtil de nærmest bliver tvunget til at opgradere af praktiske årsager. Ved hjælp af denne artikel kan du måske få øjnene op for, at skiftet slet ikke er så vanskeligt endda. Fordi sandheden er, at når først man har et system hvortil man kan skaffe de nødvendige 64-bit enhedsdrivere (hvilket gælder rigtigt mange systemer nu om dage), så kan man nemt skifte til en 64-bit udgave af Windows. Og man vil kun opleve ganske få problemer med software der ikke kan køre på 64-bit Windows.
Det mest problemfyldte område er helt klart spil: nogle ældre spil kører ikke godt på 64-bit Windows, hvilket opleves som at de går ned hvert andet øjeblik. Dette gælder f. eks. Oblivion og Sacred 2. Men hovedparten af spil der kan køre på en 32-bit Windows kan også køre på en 64-bit Windows. Jeg har dog efter flere års puslen med dette problem fundet ud af den egentlige årsag dertil: dårlige nVIDIA drivere. Nu om dage kører jeg kun med ATI grafikkort og der er
ingen problemer med dem.
Det er dog, desværre, endnu ganske almindeligt, at 32-bit udgaver af software tilbyder enkelte funktioner som ikke kan køre på 64-bit platforme. I store træk, så er der næsten ingen forskel mellem at køre en 32-bit udgave af Windows og en 64-bit udgave af Windows – andet end at 64-bit udgaven af Windows kører mærkbart hurtigere end 32-bit udgaven af samme. Min oplevelse af at have skiftet fra Win32 til Win64 er ganske enkelt, at det føles som om jeg har fået en ny og meget hurtigere PC. Forklaringen på dette er nok at Microsoft har brugt en hel del energi på at optimere 64-bit udgaven af Windows, hvor de ikke har brugt helt så meget energi på at optimere 32-bit udgaven af Windows. F. eks. Overfører 64-bit udgaven sine interne parametre i registre frem for via stakken. Dette betyder en meget, meget mærkbar forøgelse af maskinens responstid.
Forskellen
Hvad er så forskellen på en 32-bit udgave af Windows og en 64-bit udgave af samme? Forskellene er ca.:
- En 32-bit udgave af Windows kan kun bruge op til ca. 3 gigabytes hukommelse (afhængigt af hvor meget hukommelse der er på skærmkortet). En 64-bit udgave af Windows kan bruge op til ca. 17 milliarder gigabytes hukommelse. Det er jo noget af en forskel, og det er en forskel som betyder, at 32-bit Windows snart ikke vil være med os længere, hvor 64-bit Windows nok vil være med os indtil engang i midten af dette århundrede – hvis ikke længere. 32-bit Windows er altså ved at være pensionsklar, hvor 64-bit Windows er den helt sikre fremtid. Forskellen kan forstås med følgende billede: et 32-bit system kan kun huske, i hukommelsen, et enkelt tegns information for hver af ca. 4 milliarder borgere på planeten, hvor et 64-bit system kan gemme op til 3 gigabyte information (en ca. 1 time lang videofilm) om hver enkelt borger på planeten i hukommelsen på en gang!
- En 32-bit udgave af Windows kan naturligt kun arbejde med 32-bit værdier. Det vil sige, at man som software udvikler, skal tage diverse tricks i brug for at arbejde med 64-bit værdier. Dette betyder ikke det helt store i de flestes hverdag, men for nogle få faggrupper betyder det en hel del. F. eks. matematikere der regner på store tal, f. eks. database brugere der kører med store databaser, f. eks. spilbrugere der snart vil komme ud for, at deres spil kræver 8 gigabytes hukommelse for at kunne køre og så videre.
- En 64-bit Windows kan køre 64-bit programmer. En 32-bit Windows kan ikke køre 64-bit programmer. I praksis betyder dette næsten intet på nuværende tidspunkt, men om 5-10-15 år vil det være stort set altafgørende ved nyanskaffelse af programmer – med mindre vi kommer til at opleve, at udviklerne derude understøtter 32-bit systemer i endnu et årti eller to.
- En 32-bit Windows kan køre 16-bit programmer. En 64-bit Windows kan ikke køre 16-bit programmer. Det betyder, at hvis man er så uheldig at endnu køre oldgamle 16-bit programmer, som ikke direkte emuleres af en emulator (f. eks. DOSBox), så vil man ikke kunne køre dem på en 64-bit Windows. Men det er virkeligt de færreste af de færreste der kører 16-bit programmer i dag. Og de få der har brug for at køre 16-bit programmer gør det oftest i en DOS emulator som f. eks. DOSBox – som fint kan køre på en 64-bit Windows, da det i sig selv er et 32-bit program.
- En 32-bit Windows (Windows x86) kører med 32-bit enhedsdrivere, hvor en 64-bit Windows (Windows x64) kører med 64-bit enhedsdrivere. Dette betyder i praksis at 64-bit system kan køre lidt hurtigere og effektivt med megen af den hardware der findes derude på markedet i dag, men også at man skal have fundet 64-bit drivere til alle de enheder man ønsker at bruge under 64-bit Windows.
- Windows x64 opleves som værende hurtigere end Windows x86 fordi Windows x64 er ca. 10 procent hurtigere end Windows x86. Der er nogle designmæssige ændringer i 64-bit Windows der gør, at det burde køre en del hurtigere end 32-bit Windows, om end man nok må forvente, at 32-bit software generelt kører en umærkeligt lille smule langsommere på 64-bit Windows end på 32-bit Windows pga. systemet skal bruge (meget lidt) tid på at konvertere 32-bit systemkald om til 64-bit systemkald. Men til gengæld kører 64-bit software meget hurtigere på en 64-bit Windows end 32-bit software kører på en 32-bit Windows. Teknisk kan dette forklares med, at Win32 bruger en stakbaseret kaldekonvention, hvor Win64 bruger en registerbaseret kaldekonvention, hvilket betyder at Win32 trækker meget hårdt på hukommelsen (stakken), hver gang der skal laves et systemkald, hvor Win64 ikke trækker særligt meget på stakken, hvorfor Win64 kører en hel del (måske 10-20 procent) hurtigere end Win32.
- Derudover er der faktisk ikke de store forskelle på de to udgaver af Windows. Selve oplevelsen af at køre en 64-bit Windows er præcist som at køre en 32-bit Windows, bortset fra at man kan have mere hukommelse i systemet og at man kan køre tungere programmer. Men den eneste måde hvorpå man kan se, at man faktisk bruger en 64-bit Windows er ved, at gå ind i Kontrolpanelet og vælge System, hvor der så står ”64-bit operativsystem” i stedet for ”32-bit operativsystem”. Microsoft har, med overlæg, lavet de to, således at der for brugeren stort set ingen forskel er på at bruge den ene eller den anden. Så er du kyndig i en 32-bit udgave af Windows, så er du det også i den tilsvarende 64-bit udgave af Windows.
Hvorfor skifte?
Du spørger måske dig selv hvorfor du skulle skifte fra 32-bit Windows til 64-bit Windows? Det er der en række grunde til:
- Din maskine, hvis en Intel Core 2 eller Core i7 eller AMD 64 processor, er bygget til at køre 64-bit, men med et 32-bit operativsystem udnytter du kun halvdelen af systemets potentiale. Det er da lidt synd, at sådan kun udnytte ”halvdelen” af den kapacitet som maskinen har, ikke? At køre en 64-bit PC i 32-bit tilstand er lidt ligesom at køre en firehjulstrækker med træk på kun to af hjulene – det er ligesom lidt spild af det udstyr du har til rådighed og som du har betalt for. Hvis du ikke forstår hvad de 32-bit gør versus 64-bit, så kan du tænke på dem som cylindere i en bilmotor: en 32-bit maskine har således 32 ”cylindre”, hvor en 64-bit maskine har 64 ”cylindere”. Det giver lidt et indtryk af hvor fænomenalt stor forskel der er i de to systemers ydeevne. En 64-bit maskine kan til enhver tid banke en 32-bit maskine ud af banen, hvis ellers den kører 64-bit software, hvor en 32-bit maskine bare aldrig nogensinde vil kunne komme til at yde så rå kraft som en 64-bit maskine har.
- Du vil måske gerne have at din maskine kører en del hurtigere. Pga. den måde som Win64 er lavet på, hvor parametre til systemkald overføres i registre frem for på stakken, så kører Windows x64 en del hurtigere end Windows x86. Derudover ser Microsoft ud til at mere målrettet optimere og videreudvikle deres 64-bit produkter end deres 32-bit produkter. F. eks. er det ikke ualmindeligt at 64-bit udgaver af Microsofts produkter er meget avancerede og har indbygget meget smarte og brugbare funktioner som ikke tilbydes til deres 32-bit produkter. Dette betyder at blandt andet .NET applikationer kører en hel del hurtigere på Windows x64 end på Windows x86.
- Du har måske 4 gigabytes hukommelse i maskinen men har bemærket, at dit 32-bit operativsystem kun kan udnytte de ca. 3 gigabytes hukommelse: den sidste gigabyte hukommelse ses slet ikke af systemet. Hvis du er en lidt krævende type som gerne vil have at hele din maskine bliver udnyttet til det fulde, så er 64-bit lige sagen for dig.
- Du kører måske ofte hypervisors (VirtualBox eller VMware, m.m.) på din PC. Du er begyndt at løbe ind i at det er en praktisk begrænsning, at du kun kan have 4 gigabytes hukommelse i din maskine – fordi hver virtuel maskine jo også bruger en gigabyte hukommelse eller mere. Med et 64-bit operativsystem kan du installere 8 gigabytes hukommelse, eller mere, i dit system og dermed give hver enkelt virtuel maskine rigeligt med hukommelse, uden at det går ud over ydeevnen af dit system.
- Du kører måske store database eller laver tunge tekniske beregninger der kræver mere end 4 gigabytes hukommelse. I så fald er 64-bit Windows også lige sagen for dig.
- Du er måske en software udvikler der gerne, så småt, vil begynde at ruste sig til det nært forestående skift fra 32-bit platforme til 64-bit platforme. Koder du f. eks. i C, Pascal, Ada, assembler eller lignende, så er der meget at lære og især gøre for den der vil til at kode til 64-bit. Koder du f. eks. i C# for .NET, så har Microsoft allerede taget byrden med at skifte til 64-bit systemer for dig og du behøver ikke rigtigt foretage dig andet end at teste din kode på 64-bit Windows.
- Du er måske en software tester der gerne vil kunne teste et eller flere programmer under 64-bit Windows. Formodentligt er det forholdsvist få software udviklingsvirksomheder der tester deres software med 64-bit Windows, men faktisk burde alle gøre det. Fordi 64-bit Windows er helt klart fremtiden – og de fleste vil jo gerne have, at deres programmer også kan køre i fremtiden.
- Du er måske en glad IT entusiast der gerne vil kigge nærmere på 64-bit systemer og selv danne dig et indtryk af fordele og ulemper derved (dette gælder denne artikels forfatter).
- En 64-bit computer kan teoretisk set behandle dobbelt så meget data pr. tidsenhed end en 32-bit computer. I mange hverdags programmer, som ikke bruger CPU’en intensivt, betyder dette ikke særligt meget, men i f. eks. videoredigering betyder dette virkeligt meget (såfremt de pågældende videoredigeringsprogrammer er lavet som 64-bit programmer).
- Før eller siden bliver du, nærmest ufravigeligt, tvunget til at skifte – om end dette nok ligger en del år ude i fremtiden. Men om 5-10-15 år vil alle køre 64-bit operativsystemer, da flere og flere er begyndt at løbe ind i, at 4 gigabytes hukommelse er for lidt til f. eks. store spil og deslige. Og så er spørgsmålet bare om du vil være på forkant med udviklingen eller om du hellere vil vente indtil teknologien er mere moden. Selv har jeg haft 64-bit systemer i nogle år nu, men har altså først nu valgt at opgradere til 64-bit Windows – fordi jeg ikke syntes at teknologien var moden nok tidligere. F. eks. kunne man ikke nemt få fat i alle de nødvendige 64-bit enhedsdrivere.
Hvorfor ikke skifte?
Der findes skam også en række gode grunde til at ikke skifte – endnu:
- Du bruger ofte systemnære værktøjer som endnu ikke er lavet i 64-bit udgaver.
- Du har en maskine der fysisk kun kan rumme mindre end 4 gigabytes hukommelse.
- Du bruger endnu ofte 16-bit Windows programmer.
- Du vil ikke bruge penge på at købe en 64-bit udgave af Windows.
- Du vil ikke have unødigt besvær i dit liv eller med din PC (”If it works, don’t break it!”).
- Du interesserer dig slet ikke for computere, men bruger dem bare som et redskab.
- Du har et system hvori ikke alle dele endnu er understøttet med 64-bit enhedsdrivere.
- Du har et 32-bit system (Intel Celeron, Intel P4, AMD Duron, etc.).
- Du ved hvad dit nuværende 32-bit system kan og frygter for hvad dit kommende 64-bit system ikke kan.
- Du vil gerne have adgang til alle funktioner i alle 32-bit programmer og kan ikke affinde dig med, at nogle få funktioner her og der kobles fra når de køres på en 64-bit Windows. Dette gælder f. eks. Værktøjer der udvider Windows Stifinder, værktøjer der udvider Mozilla Firefox og så videre. Indtil videre er det lidt småt med 64-bit udgaver af de fleste add-ons til de fleste programmer.
Denne artikel henvender sig kun til folk der har tænkt sig at opgradere til Windows x64, og ikke til folk der har tænkt sig at holde fast i Windows x86 så længe som overhovedet muligt. På sigt, altså om 2-5 år, må du påregne, at du nærmest bliver tvunget til at skifte til Windows x64. F. eks. vil flere og flere nye maskiner komme med Windows x64 præinstalleret, hvorfor du ikke har det store valg – og færre og færre maskiner vil komme med 32-bit enhedsdrivere i fremtiden.
Krav
Du spørger måske dig selv, hvilke problemer og udfordringer du står overfor i dine overvejelser med at skifte til 64-bit Windows. Kort fortalt er der tre krav til at kunne
køre med 64-bit Windows:
- Du skal have en 64-bit Intel-kompatibel CPU i dit system. Det vil sige at CPU’en skal hedde enten Intel Core 2 eller Intel i7 eller AMD 64. Processorer såsom Intel Celeron, gamle Intel P4 og så videre er ikke 64-bit processorer. Indtil videre er den nemmeste måde at se om du har en 64-bit processor, at du downloader og kører programmet CPU-Z og så ser om der står enten AMD64 eller EM64T ud for Instructions feltet på CPU fanen. Hvis der gør dette, så er dit system et ægte 64-bit system. Ellers er det et 32-bit system og du kan så ikke skifte til 64-bit Windows.
- Du skal have et 64-bit operativsystem. Der findes både 64-bit Windows, Linux og Solaris, men da denne artikel udelukkende handler om Windows, så vil jeg ikke behandle 64-bit Linux og Solaris yderligere. Dine alternativer er forholdsvist få: a) Windows 7 x64, b) Windows Vista x64 og c) Windows XP x64 (når man ikke medtager Microsofts server operativsystemer).
- Du skal have enhedsdrivere til alle de enheder du ønsker at anvende under Windows x64. Det vil sige, at du skal have fat i 64-bit drivere til a) bundkortet, b) skærmkortet, c) lydkortet og evt. andre enheder du har i dit system, som du gerne vil bruge under Windows x64. Enhedsdrivere skaffes ved at gå ind på producenten af den enkelte enheds hjemmeside og der finde 64-bit drivere. Har du f. eks. købt en Asus bærbar med 64-bit CPU, så kan du gå ind på Asus’ hjemmeside, vælge Support, vælge Download, og der vælge dit system. Det vigtige er, at du får angivet ”Windows Vista x64” (…) som dit operativsystem. Så får du en liste over tilgængelige drivere og kan bare downloade dem alle sammen (ingen sagde, at det ikke tager lidt tid, at skifte til Windows x64!). Tilsvarende gør du for hvilken som helst enhed du har i dit system.
Bemærk: jeg er i skrivende stund ikke klar over om man behøver 64-bit drivere til printere og andet eksternt udstyr. Det må jeg uddybe senere, som jeg får lidt mere erfaring og viden om netop disse enheder. Dog er de fleste printerdrivere en fast del af Windows nu om dage. Du kan dog ikke forvente at kunne opgradere din flere år gamle printers kontrolsoftware da de fleste printerproducenter, undtaget Brother, ser ud til at blæse højt og flot på deres 64-bit Windows kunder og forventer at disse køber en ny printer.
Det er vigtigt at du finder alle enhedsdrivere inden du sletter dit gamle operativsystem! Fordi det er træls at slette sin gamle Windows, med alle dens installerede programmer og indlejrede konfigurationsdata, blot for at sidenhen opdage, at du mangler en nødvendig driver til et stykke uundværligt hardware. Derfor må du slå lidt koldt vand i blodet og lige bruge et par dage på at finde 64-bit drivere til al din hardware. Hvis du ikke kan finde drivere til al din hardware, så må du decideret træffe en beslutning om hvorvidt du vil købe ny hardware til at erstatte den gamle hardware der ikke kan bruges under Windows x64. F. eks. måtte jeg købe mig et nyt TV tuner kort pga. min gamle Hauppauge kort ikke virker ordentligt under Windows x64.
Bemærk, at der er, pga. Microsofts visdom, intet krav om at du har 64-bit applikationssoftware til dit nye 64-bit operativsystem. Windows x64 kører næsten alle 32-bit applikationer lige så effektivt og lige så godt som en ægte 32-bit udgave af Windows gør.
VirtualBox
Hvis du gerne vil prøve Windows x64 inden du lægger dit eksisterende 32-bit operativsystem ned og nyinstallerer Windows x64, så kan du hente programmet VirtualBox fra www.virtualbox.org og installere det på dit 32-bit system (med en 64-bit processor i). VirtualBox er en såkaldt hypervisor: en slags PC emulator der tillader dig at installere operativsystemer, og tilhørende programmer, i en virtuel maskine som kun findes som en fil på din computer’s harddisk. Med VirtualBox kan du installere det nye 64-bit Windows i en såkaldt virtuel maskine og så prøve at lege med Windows x64 inden du tager den store, tunge beslutning at nedlægge din velfungerende 32-bit Windows og geninstallere al software m.m. Jeg har skrevet en hel artikel om VirtualBox,
VirtualBox for begyndere, som er tilgængelig i biblioteket her på siden. Den beskriver nøje hvordan man henter, installerer og bruger VirtualBox. Når du kører Windows x64 i en virtuel maskine i VirtualBox, så behøver du ikke enhedsdrivere – den virtuelle maskine simulerer en helt anden hardware end den du har i din PC, hvorfor du ikke har brug for dine egne drivere til dit eget system. Problemet med VirtualBox metoden er netop, at du ikke kan afprøve dine centrale enhedsdrivere (såsom skærmkortdrivere, lydkortdrivere og bundkortdrivere) men alene må begrænse dig selv til at afprøve printerdrivere, programmer, spil m.v. som du gerne vil kunne køre på Windows x64. Men metoden er god til at lynhurtigt kunne gå ind og få afklaring på om et givent stykke software kører på Windows x64. Det normale er dog, at næsten al software kører på Windows x64, så der er ikke så meget at være bekymret for igen.
Generelt
Det er min klare oplevelse at .NET applikationer kører betydeligt hurtigere under Windows x64 end på Windows x86. Derudover føles Windows også selv som værende betydeligt hurtigere i 64-bit udgaven end i 32-bit udgaven. Der kan være mange forklaringer på dette, lige fra at jeg tager fejl over til at Microsoft målrettet har optimeret Windows x64 mere end Windows x86. Selv tror jeg på det sidste. Kigger man på Microsoft dokumentation for Windows x64, så ser man blandt andet at de har lavet en meget genial globalt optimerende C/C++ compiler til x64, men altså ikke til x86. Dette kunne tyde på, at Microsofts interne strategi er, at lægge hovedvægten på udviklingen af x64 og så evt. opgradere x86 sidenhen. I hvert tilfælde er det min klare fornemmelse, at mit system kører en del hurtigere med Vista x64 end med Vista x86.
Nærmere studier af Win64 API’et har afsløret hvorfor det føles som om min PC kører hurtigere under Windows x64 end under Windows x86: parametre til system API’er overføres vha. registre frem for via stakken. Det betyder i praksis, at man får en mere jævn afvikling og at systemet føles mere responsivt fordi tingene ikke først skal en tur forbi hukommelsen for at kunne blive behandlet af systemet. Faktisk kan man undre sig over, at Microsoft ikke gjorde dette allerede for Win32, men mon ikke det er bagud kompatibilitet med Win16 der gjorde udslaget, dengang man fastlagde systemets måde at håndtere parametre på?
For lægmand kan jeg bare sige: jeg bliver gladere og gladere for mit skift til Windows x64 for hver dag der går. Det er spændende. Det belønnes med en hurtigere, kraftigere computer. Og det er lige så stabilt og pålideligt som Windows x86. I det daglige mærker man ikke at man kører et 64-bit operativsystem, andet end på at alt går lidt hurtigere – og nogle få spil her og der ikke vil køre stabilt på Windows x64 med nVIDIA grafikkort.
Software
Her plejede at være en ikke opdateret liste over software som jeg havde prøvet på Vista x64. Men da næsten al software kører godt på en x64 ATI-baseret maskine, så synes jeg ikke længere at der er grund til at bibeholde denne liste her.
Nogle spil, især mere eksotiske og knapt så udbredte spil, kører med StarForce kopibeskyttelse. Denne består af en driver der installeres under installationen, hvorefter maskinen skal genstartes, og som så tjekker om den originale disk er gyldig, hver gang spillet startes. Desværre kommer en del af den slags StarForce kopibeskyttede spil med en gammel driver der ikke kan køre på Windows x64. Det kan have fatale følger for det system hvorpå spillet installeres. I et tilfælde oplevede jeg, at jeg slet ikke kunne boote min Windows x64 længere – efter at have installeret et StarForce beskyttet spil – hvorfor jeg blev nødt til at boote på Windows x64 installationsdisken, vælge reparere Windows, vælge at åbne et konsolvindue og der slette alle StarForce drivere i mit Windows bibliotek, hvorefter jeg lukkede konsolvinduet og genstartede Windows, hvorefter det hele kørte som det skulle (undtaget det StarForce beskyttede spil). Skulle du selv komme i den situation, at du ikke længere kan starte din Windows x64 fordi du har installeret et StarForce beskyttet spil, så er der to ting du skal gøre:
- Indsæt den originale Windows x64 disk i DVD-drevet, boot maskinen derfra, vælg Reparer Windows, åben et konsolvindue og skriv følgende kommando: del c:\Windows\sf*.sys /s /a. Det får Windows til at slette alle StarForce enhedsdriver filerne, hvorefter du igen kan starte din Windows.
- Hent filen SFDRVUP.ZIP fra http://www.starforce.com. Dobbeltklik på den hentede fil og kør programmet SFDRVUP.EXE. Det installerer en nyere udgave af StarForce driveren; en udgave som også kan køre under Windows x64.
Det bedste er, at du installerer de nyere StarForce drivere lige så snart spillet har registreret sine egne, oprindelige, forældede drivere. Typisk er proceduren som følger:
- Installér spillet.
- Kør spillet (StarForce kræver at du kører det som Administrator).
- Lad spillet installere sine forældede drivere.
- UNDLAD AT GENSTARTE!
- Kør da SFDRVUP.EXE der ligger indeni SFDRVUP.ZIP. Dette gøres inden du genstarter maskinen!
- Genstart maskinen.
- Prøv at køre spillet. Det burde nu kunne køre, efter at have valideret installationsdisken, men hvis ikke, så kør SFDRVUP.EXE endnu engang.
- Du skulle nu kunne køre spillet på Windows x64 uden nogle problemer.
==Hardware
Her plejede at være en forældet liste af enheder jeg havde afprøvet på Windows Vista x64 (dansk), men netop da den var forældet, så har jeg valgt at slette den.
Videoredigering
Dette kapitel handler om videoredigering på Windows x64. Kort fortalt kan man opsummere det til:
Skal du redigere video på en Windows x64 platform, så brug 32-bit programmer!Fordi der findes næsten ingen codecs (coder/decoder) til Windows x64. Nedenfor vil jeg dele mine erfaringer med videoredigering på Windows x64. Bemærk at da jeg har et godt princip om at kun have lovlig software på mit system, så kører jeg kun med gratis programmer eller software som jeg har en lovlig licens til.
Avidemux
Avidemux, fra
www.avidemux.org, findes desværre ikke i en 64-bit udgave til Windows. Men Avidemux er meget, meget nemmere at bruge end VirtualDub, hvorfor du nok bør starte ud med Avidemux og så først gå til VirtualDub når Avidemux bliver for begrænset til dine formål. Avidemux kommer med indbyggede codecs til de fleste filformater, hvorfor du ikke behøver at have alskens codecs installeret på dit system. Til gengæld kan Avidemux kun skrive filer i ganske få formater, herunder Xvid, men det betyder normalt ikke det store, hvis man gerne vil nøjes med at bruge lovlig software. Xvid er en udmærket codec som kan komprimere næsten lige så godt som DivX – og Xvid er gratis.
Virtualdub
Virtualdub, fra
www.virtualdub.org, findes både i en 32-bit udgave og en 64-bit udgave. I teorien er det rigtigt lækkert, at man kan få et gratis 64-bit videoredigeringsprogram til Windows x64, men i praksis er det stort set ubrugeligt fordi man ikke kan få 64-bit codecs dertil. Den eneste encoder jeg har fundet som virker under Windows x64 er ”ffdshow Video Encoder”, som er en del af ”K-Lite Codec Pack 64-bit”, men jeg har aldrig prøvet den, så jeg ved ikke hvor godt og hvor hurtigt den virker. Nej, den eneste realistiske løsning er, at foretage al sin videoredigering med 32-bit software – selv på x64 systemer.
Til VirtualDub kan man få nogle meget nyttige 32-bit plug-ins:
- MPEG2 Import Filter. Dette filter tillader dig at importere MPEG2 filer i VirtualDub.
- ASF/WMV Import Filter. Dette filter tillader dig at importere ASF/WMF filer i VirtualDub.
- AC3 Audio Import Filter. Dette filter tillader dig at importere film med AC3 lyd i VirtualDub.
Hvert filter installeres ved at du åbner arkivet som indeholder det pågældende filter, vælger Kopier .DLL filen og så åbner et Explorer vindue i VirtualDub\plugins. Hvis biblioteket ikke allerede findes, så skal du selvfølgeligt lave det først.
Derudover har du brug for en codec, nærmere betegnet en encoder, og der findes der Xvid som er en udmærket, gratis codec. Xvid kan hentes fra
www.xvid.org.
Microsoft .NET
Microsoft .NET er navnet på en ”ny” teknologi fra Microsoft. Den er nu ikke så ny igen, men den har endnu ikke vundet særlig stor udbredelse, hvorfor det er rimeligt at kalde den ”ny”. Microsoft .NET er især interessant for os 64-bit Windows brugere – af grunde som jeg skal forklare i det følgende. Bemærk at hvis du kører Windows Vista eller Windows 7, så behøver du ikke at foretage dig yderligere for at kunne bruge .NET teknologien. Hvis du derimod kører XP, så skal du sørge for at lade Windows Update installere .NET teknologien eller selv hente den fra
Microsoft. Alternativt kan du bruge open source og freeware Mono fra
www.mono-project.com.
Overblik
Traditionelt skriver man software til en bestemt computer arkitektur (hvoraf der findes et utal; IBM PC med Microsoft Windows er bare den allermest populære computer arkitektur på planeten). Det software kan så kun afvikles på den givne arkitektur. Skal man flytte det til en anden arkitektur, så skal man igennem en lang, og ofte ganske smertefuld, proces med at portere programmet til den nye arkitektur. At portere et program fra arkitektur A til arkitektur B kan sammenlignes med at oversætte en bog fra sprog A til sprog B: nogle ting er nemme at udtrykke i sprog A, men meget vanskelige at udtrykke i sprog B. Andre ting er nemme at udtrykke i sprog B, men findes slet ikke i programmet fordi det oprindeligt er skrevet i sprog A. Nogle ting er næsten uoversættelige, men hovedparten af programmet skal bare oversættes manuelt, hvilket er dyrt og meget besværligt. Derfor udvikler de fleste software huse kun programmer til en enkelt platform, nemlig Microsoft Windows på IBM PC computerne, og ignorerer helt alle andre platforme end den primære platform de arbejder på. Samme problem findes med hensyn til 32-bit og 64-bit software: de fleste udvikler 32-bit software fordi det er der pengene, indtil videre, er og fordi det er hvad de fleste er dygtige til. Det betyder i praksis at der et meget lille udvalg af ægte 64-bit software til 64-bit Windows.
Alt det har Microsoft kigget på i et stykke tid og har så forsøgt at komme op med en varig løsning på problemet med at næsten ingen skriver software til 64-bit Windows. Den løsning hedder .NET. Det skal lige siges, at der er meget mere i .NET end hvad jeg lige beskriver her, men her fokuserer jeg på .NET for 64-bit Windows brugere. .NET kan også ses fra en programmørs synsvinkel, hvor .NET så betyder en masse fordele såsom et godt fundament, stor portabilitet og såkaldt ”Rapid Application Development”, hvilket betyder at dygtige .NET udviklere kan udvikle en færdig .NET applikation på langt kortere tid end samme antal dygtige C eller C++ udviklere kan udvikle en færdig C/C++ applikation.
Microsoft .NET er Microsofts bud på en portabel, generel og holdbar teknologi til at udvikle og afvikle software med. ”dot NET”, som det kaldes i dagligdagen, tillader en software udvikler at skrive sit program på en 32-bit maskine eller på en 64-bit maskine og så sidenhen afvikle det på begge typer maskiner. Hvor man førhen skulle være meget dygtig og arbejde ekstra hårdt i lang tid for at lave software der kan afvikles både på 32-bit og 64-bit maskiner, så kan man med .NET bare sætte sig hen og kode, så virker resultatet automatisk både på 32-bit og 64-bit maskiner.
Computere har mange lag indeni sig. Vi skal ikke gå dem alle igennem, men blot snakke om to forskellige lag: det nederste (maskinkode) og det øverste (kildetekst). Det nederste lag, maskinkoden, er maskinens eget sprog. Det er et meget kryptisk lag hvor tingene går ufatteligt hurtigt (en typisk PC kan afvikle omkring 3 milliarder maskinkodekommandoer i sekundet), men som også er ganske vanskeligt at udvikle software på – fordi det hele foregår på en så maskinnær måde, at programmøren skal arbejde ekstra hårdt for at udtrykke de ting han gerne vil udtrykke. På det øverste lag er programmørens kildekode. I et hvilket som helst programmeringssprog. Her sidder programmøren og udtrykker hvad det er han vil have computeren til at gøre; på alle mulige underlige og vidunderlige måder. Der findes lige så mange programmeringssprog som der findes byer i Danmark. Men fælles for alle disse programmeringssprog er, at de altid, ultimativt, bliver omsat til maskinkode, som er det eneste sprog computeren kan forstå. Normalt oversætter man et givent program (altså en given samling kildekode) til maskinkode inden man giver kunden en kopi af programmet. Det vil sige, at programmøren kompilerer sit program, hvilket får computeren til at omsætte kildekoden til maskinkode, som så sidenhen kan afvikles af den type computer hvis maskinkode der er tale om (der findes et utal af forskellige slags maskinkode derude: de afhænger 100 procent af den enkelte type CPU der sidder i maskinen). Med .NET gør man tingene helt anderledes. Her skriver man sit program, altså sin kildekode, og så oversætter man programmet til en mellemliggende form for kode som kaldes ”Intermediate Language” (altså ”mellemliggende sprog”). Og så først i det øjeblik hvor programmet startes oversættes det til maskinkode. Derved opnår man den store fordel, at den nye slags pseudo-maskinkode, det mellemliggende sprog, kan køres på alle maskiner. Fordi de skal bare kunne oversætte programmet, som nu er udtrykt i det mellemliggende sprog, til deres eget sprog, hvorefter de kan afvikle programmet.
Eksempel
Der findes et rigtigt godt eksempel på en .NET applikation: Paint.NET. Paint.NET er et avanceret alternativ til Windows Paint programmet. Windows Paint er, mildest talt, noget elendigt skod som Microsoft burde skamme sig meget over. Det har så fået nogen til at gå i gang med at lave et bedre alternativ: Paint.NET. Og Paint.NET er skrevet til .NET platformen. Og det betyder i praksis, for os 64-bit Windows brugere, at vi bare kan hente Paint.NET (som er et gratis program), installere det og køre det på vores 64-bit Windows – og det kører som et ægte 64-bit program. Årsagen er den, at Paint.NET, når det startes, oversættes til 64-bit maskinkode, hvorefter vores 64-bit CPU kan køre det uden problemer. Og sådan er det med alle .NET programmer: de kan køre både på 32-bit maskiner og på 64-bit maskiner (og på 128-bit maskiner, etc., når de engang bliver en realitet), uden at hverken udvikler eller afvikler (os selv) skal gøre mere.
Et andet godt eksempel er mit eget projekt NutBox (fra http://www.nutbox.org): det består af en samling af de mest gængse POSIX (Unix) værktøjer og nogle andre værktøjer som jeg har haft brug for eller lyst til at lave igennem tiderne. NutBox er lavet rent til .NET v2.0, hvorfor det kan køres uændret på alle Windows siden Windows 2000, på Linux, på Macintosh og også på Solaris (både i SPARC og Intel udgaverne). Ved at jeg har skrevet mine programmer på .NET, så har jeg sikret mig, at de kan køres på et utal af forskellige maskiner derude. Og mon ikke der kommer endnu flere maskiner med senere? I hvert tilfælde forestiller jeg mig, at vi vil have .NET teknologien også om 25 år, hvorfor den er et godt bud på en langtidsholdbar teknologi som samtidigt er utroligt nem at anvende og som en gang for alle løser et hav af de mange tekniske problemer vi software udviklere ellers har skullet knokle og bakse med (såsom afsindigt primitive programmeringssprog der gjorde, at vi skulle skrive i en evighed blot for at opnå de mindste resultater).
Konklusion
Konklusionen er ganske enkelt den, at vi 64-bit Windows brugere vil få stor gavn af .NET applikationer. Fordi de kan køres direkte på vores 64-bit Windows, uden at vi behøver at bekymre os om hvorvidt de er ægte 64-bit applikationer eller ej (det er de). Og uden at vi behøver at lede længere efter en 64-bit udgave af .NET applikationen. Så alle .NET programmer er at regne for ægte 64-bit programmer – fordi det er hvordan vores eget 64-bit Windows system vil opfatte og opleve dem.
Udvikling
Dette afsnit skrives rent for software udviklere. Det har således ingen brugsværdi for folk der ikke udvikler software til 64-bit Windows.
.NET programmering
Der findes et utal af .NET compilere: C#, Boo, J#, A#, etc. Det væsentlige omkring .NET er, at denne teknologi allerede er forberedt på at blive brugt sammen med 64-bit miljøer. Skriver du et program i .NET, bygger det og udgiver det, så vil det køre uændret på 64-bit maskiner. Derfor er det nemmeste, hvis du gerne vil udvikle både til Win32 og Win64, at bare udvikle til .NET. Derudover indeholder .NET platformen et rigtigt fornuftigt sammensat fundament (foundation) af forskellige biblioteker der gør det rigtigt nemt at lynhurtigt kode en given løsning. F. eks. kan man skrive et færdigt konsolværktøj på mellem 2 og 8 timer! Jeg forstår på Internettet, at det samme gælder for GUI applikationer; som jeg dog ikke har en fis tjek på.
C/C++ programmering
Der findes mindst tre gratis C/C++ compilere til Windows x64:
- Microsofts command-line compiler der er en del af Windows Resource Kit. Den kan hentes gratis fra Microsoft. Søg på Google efter ”Windows Resource Kit”. Compileren bliver installeret i ”C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin”. Miljøet (engelsk: environment) sættes op ved at kalde filen ”VCVARS64.BAT” fra kommandolinjen.
- Microsoft_Visual_C++_Express_Edition_Søg_på_wwwgoogledk|Google] efter den. Den inkluderer et udviklingsmiljø (et IDE) og er en let udgave af Microsofts kommercielle Visual Studio løsning.
- GNU Compiler Collection (GCC) til MINGW64. MINGW64 betyder “Mini-Windows 64” og hentyder til at MINGW64 tilbyder en delmængde af Win64 API’et. Søg på www.google.dk efter ”MINGW64”. Jeg har dog endnu ikke fået denne compiler til at køre – den rapporterer altid: ”g++: CreateProcess: No such file or directory”, hvorfor den er praktisk ubrugelig – dette til trods for at jeg kører Service Pack 1 (som ellers angives at være kravet for at få den til at virke).
Med lidt held kommer OpenWatcom.org også en dag med en 64-bit udgave af sin excellente compiler, men indtil da må man nøjes med Microsofts gratis compilere. Derudover findes der også Microsofts kommercielle 64-bit compiler som er en del af Visual Studio 2008. Den er dog dyr, hvorfor jeg ikke vil behandle den yderligere på disse sider.
Det skal lige bemærkes, at Windows Resource Kit og Visual C++ Express Edition ikke kan sameksistere – den sidstnævnte afinstallerer den førstnævne når den installeres. Det er lidt bøvet, men så må man installere Windows Resource Kit først, kopiere det et andet sted hen og så installere Visual C++ Express Edition.
Assembler programmering
Der findes mindst tre gratis 64-bit assemblere til Win64:
- Microsofts 64-bit MASM (som er en del af ”Windows Resource Kit” som beskrevet ovenfor).
- YASM (søg på www.google.dk efter denne). Denne kræver Microsoft linker for at virke.
- FASM (Flat ASseMbler). Denne kræver Microsofts linker for at virke.
Jeg har afprøvet YASM og FASM: jeg husker endnu med afsky hvor elendig MASM er fra mine dage som linker udvikler i en amerikansk virksomhed. FASM er lidt enklere og mere ligetil end YASM, hvor YASM er meget avanceret og kan en masse ting. Overall må jeg dog sige, at FASM er mere behagelig at arbejde med end YASM – blandt andet fordi FASM tillader komplekse udtryk i RB (Reserve Byte) kommandoen.
Henvisninger
Nu opremses en række links til 64-bit programmer. Formålet er ganske enkelt at spare dig for en masse tid med at finde alskens 64-bit software. At et program nævnes her er ikke en garanti for dets anvendelighed, funktionalitet eller pålidelighed.
Egne programmer
NutBox (.NET-2.0)
En langsomt voksende samling af .NET 2.0 konsolværktøjer til alle formål. Licens: Public Domain (alles eje). NutBox inkluderer p.t. omkring 50 kommander, herunder: datecopy, dircmp, dirsize, diskfill, exectime, ext, fileedit, filefind, filename, filesplit, head, htm2html, rm, showtime, tail, which. Flere bliver tilføjet løbende.
Gratis programmer
Arctic
En lille og utroligt enkel 64-bit bittorrent klient. Kan kun anbefales hvis man insisterer på at køre så mange 64-bit programmer som muligt eftersom der findes massevis af langt mere avancerede og smarte 32-bit bittorrent klienter derude.
AVAST! Free Edition
En gratis virusscanner i både 32-bit og 64-bit udgaver.
InfraRecorder
InfraRecorder, et gratis CD/DVD brænderprogram, findes både i 32-bit og 64-bit udgaver. Det virker fortrinligt, lige med undtagelse af diskkopieringsfunktionen der ikke ser ud til at være pålidelig.
Mozilla Firefox & Thunderbird x64
Både Mozilla Firefox og Thunderbird findes i 64-bit udgaver på ovenstående side. 64-bit udgaven af Firefox kører rigtigt godt, og hurtigt ifølge nogle. Dog kører jeg med 32-bit udgaven fordi der er enkelte problemer med at 64-bit udgaven får tegnet siderne forkert. Derudover virker de fleste plugins ikke med x64 udgaven.
Paint.NET
En gratis alternativ til Windows Paint. Paint.NET er, som navnet siger, en .NET applikation, hvilket betyder at den kører optimalt på både 32-bit og 64-bit operativsystemer. Alle .NET applikationer kan således bruges på både 32-bit og 64-bit platforme uden at man mister effektivitet deraf. Det skyldes at .NET programmer først oversættes, til maskinkode, i det øjeblik programmet startes, hvorfor det kan tilpasse sig den aktuelle platform uden problemer.
TrueCrypt
TrueCrypt er et diskkrypteringsprogram som kan lave et virtuelt drev der tilgås med sit eget drevbogstav. Alle filerne i det virtuelle drev ligger fysisk i en enkelt fil på harddisken. TrueCrypt er et blandet 32-bit/64-bit program således at driverne er 64-bit og selve brugerinterfacet er 32-bit. Men det betyder intet for programmets funktionalitet og er såmænd blot den smarteste måde at lave programmer der kan køre på både 32-bit og 64-bit platforme på.
VirtualBox
VirtualBox er en slags PC emulator. Ved hjælp af VirtualBox kan du installere og afprøve alskens operativsystemer uden at skulle slagte din primære Windows installation. F. eks. kan man afprøve Windows 7 i en VirtualBox virtuel maskine – og på den måde danne sig et indtryk af Windows 7, uden at først skulle slagte sit eget primære operativsystem eller på nogen måde risikere at smadre det.
Kommercielle programmer
O&O Defrag Professional
Et rigtigt godt disk defragmenteringsprogram der findes i både x86 (32-bit) og x64 (64-bit) udgaver. Licensnøglen virker til begge platforme, så man behøver ikke at betale igen, hvis man skifter platform.
Spil
Far Cry x64
Hvis man køber 32-bit spillet Far Cry kan man hente og installere en 64-bit patch der gør, at spillet bliver meget flottere og som også tilføjer et par baner.
Crysis
Spillet Crysis kommer allerede med en 64-bit udgave af spillet på installationsdisken. Brugeren skal bare installere spillet, så får man den rette udgave til sit operativsystem: 64-bit til Windows x64 og 32-bit til Windows x86.
Programmering
Windows Resource Kit
Indeholder både en 32-bit og en 64-bit C/C++ compiler.
Efterskrift
Hvis du bare vil have et nemt, ubesværet liv, så hold dig til 32-bit Windows i endnu nogle år – især hvis du spiller en del. Hvis du gerne vil have frigjort alle de kræfter du har ”under the hood”, så skift til 64-bit Windows. Men vær beredt på at programmer der kører fint på 32-bit Windows volder besvær under 64-bit Windows. Sådan er det desværre bare, også selvom det teoretisk set ikke burde være sådan.
Versioner