Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Iron
  • 32-bitni program na 64-bitnom sistemu. Upravljanje datotekama i postavkama registra u WOW64

32-bitni program na 64-bitnom sistemu. Upravljanje datotekama i postavkama registra u WOW64

Pojava 64-bitnog Windowsa pokrenula je mnoga pitanja. Podrška za 32-bitne aplikacije, drajvere i sve što je dizajnirano za x86 arhitekturu. Instalacija i karakteristike korištenja programa. Uvedena ograničenja za 32-bitne aplikacije. Podrška za stare modove i još mnogo toga. Sve ovo se nije moglo zanemariti. Na kraju krajeva, sloj 32-bitnog naslijeđa je prevelik, a u 64-bitnom okruženju malo je toga što ga može zamijeniti, čak i sada.

Ovaj članak pruža pregled Windows podsistema na Windows 64 (WOW64) i njegovih metoda koje omogućavaju Windows-u da podržava 32-bitne aplikacije na 64-bitnom sistemu.

Bilješka: Prvi pokušaj uvođenja 64-bitnih sistema bio je prilično neuspješan. Stroga ograničenja i nedostatak stvarnih prednosti su se osjetili. U to vrijeme, čak i drajvere za 64-bitne sisteme bilo je teško pronaći. Da ne govorimo o programima na kojima bi razlika bila nekako uočljiva. Uklanjanje ograničenja od 3GB RAM-a danas je svakako jaka prednost, ali u to vrijeme to je više ličilo na lijep slogan.

Uređaj za podršku 32-bitnim aplikacijama na 64-bitnom Windowsu

Windows 32 do Windows 64 (WOW64)

WOW64 emulira 32-bitni Windows

U Windows 64, 32-bitne aplikacije rade na emuliranom 32-bitnom operativnom sistemu koji se zove Windows 32 na Windows 64, ili skraćeno WOW64. Glavni zadatak WOW64 je da presretne i obradi sve sistemske pozive iz 32-bitnih aplikacija.

Za svaki sistemski poziv koji uhvati, WOW64 kreira 64-bitni sistemski poziv, pretvarajući 32-bitne strukture podataka u odgovarajuće 64-bitne. Nakon toga, 64-bitni sistemski poziv se prosljeđuje kernelu operativnog sistema na obradu. Sav primljeni izlaz iz 64-bitnog poziva biće konvertovan i prenet u formatu koji je aplikacija nameravala. Drugim riječima, stvarni zahtjevi prema kernelu sistema su uvijek 64-bitni. Podsistem WOW64 djeluje samo kao posrednik, pretvarajući podatke u odgovarajuće formate.

Kao i 32-bitne aplikacije, WOW64 radi kao korisnik, tako da će se greške koje se mogu pojaviti tokom konverzije sistemskih poziva pojaviti na nivou korisnika. A 64-bitni kernel operativnog sistema neće biti pogođen ni na koji način.

Činjenica da WOW64, poput 32-bitne aplikacije, radi u korisničkom modu objašnjava razlog nedostatka podrške za 32-bitne drajvere. Drugim riječima, da bi radili ispravno, drajverima je potreban režim kernela koji WOW64 ne može pružiti. Stoga, ako imate 64-bitni Windows, svi drajveri moraju biti 64-bitni.

WOW64 emulator se sastoji od sljedećih 64-bitnih biblioteka:

Bilješka: Ovo su jedine 64-bitne biblioteke koje se učitavaju u 32-bitni proces.

  • Wow64.dll je jezgro infrastrukture sistema za emulaciju. Povezuje pozive sa ulaznim tačkama Ntoskrnl.exe
  • Wow64Win.dll - povezuje pozive sa ulaznim tačkama Win32k.sys
  • Wow64Cpu.dll - Prebacuje CPU između 32-bitnog i 64-bitnog načina rada
  • Ntdll.dll je 64-bitna verzija Wow64.

Wow64.dll učitava 32-bitnu (x86) verziju Ntdll.dll i sve potrebne 32-bitne biblioteke, koje su uglavnom nepromijenjene. Međutim, neke od ovih 32-bitnih biblioteka su modifikovane da rade ispravno u WOW64. Obično su takve promjene napravljene zbog činjenice da koriste RAM zajedno sa 64-bitnim sistemskim komponentama.

Upravljanje datotekama i postavkama registra u WOW64

Pored presretanja i rukovanja sistemskim pozivima, WOW64 interfejs takođe mora osigurati da se datoteke i postavke registra za 32-bitne aplikacije drže odvojeno od datoteka i ključeva registratora za 64-bitne programe. Za postizanje ovog cilja, WOW64 koristi dva mehanizma. Preusmjeravanje datoteka i registra, kao i dupliciranje ključeva registratora. Preusmjeravanje održava logičan prikaz podataka i prikazuje ih kao da aplikacija radi na 32-bitnom Windowsu. Dupliranje ključeva registratora osigurava da promjene brojnih parametara koji ne zavise od bitnosti budu dostupne i 32-bitnim i 64-bitnim aplikacijama.

Preusmjeravanje fajla

Preusmjeravanje datoteka osigurava da se datoteke i direktoriji 32- i 64-bitnih aplikacija drže odvojeno i da ne ometaju jedni druge.

32-bitni fajlovi aplikacije se, prema zadanim postavkama, instaliraju u:

  • C:\Programski fajlovi (x86)

32-bitni sistemski fajlovi su instalirani u:

  • C:\WINDOWS\SysWOW64

Za 64-bitne aplikacije, fajlovi se instaliraju u:

  • C:\Programske datoteke
  • C:\WINDOWS\SYSTEM32

Mehanizam preusmjeravanja WOW64 osigurava da se zahtjevi iz 32-bitnih aplikacija u direktorije "C:\Program Files" i "C:\WINDOWS\SYSTEM32" preusmjeravaju u odgovarajuće direktorije za 32-bitne verzije.

Međutim, postoji jedan problem s preusmjeravanjem datoteka. Korisnici i programeri bi trebali biti svjesni ove funkcije.

Mnoge 64-bitne aplikacije još uvijek koriste 32-bitni način rada i procedure. I nemojte to uzeti u obzir prilikom kreiranja instalatera. Kako bi se aplikacija ispravno instalirala. one. u "C:\Program Files", instalater mora uputiti sistemski poziv operativnom sistemu da izazove sistem da suspenduje mehanizam preusmjeravanja Wow64 datoteka. I nakon instalacije, izvršite još jedan sistemski poziv da ponovo omogućite preusmjeravanje. Ako instalirate bez zaustavljanja preusmjeravanja, program će biti instaliran u "C:\Program Files (x86)". Klasičan primjer ove greške je 64-bitna verzija FireFox-a 3.5, kodnog naziva "Shiretoko", koja se instalira u "C:\Program Files(x86)\Shiretoko". Naravno, Firefox će i dalje normalno funkcionirati. Jedina stvar koju ne možete učiniti je promijeniti ikonu aplikacije.

Bilješka: Možda je Shiretoko sada ispravio ovu grešku. Međutim, to je bio slučaj u ranijim verzijama.

Preusmjeravanje registra

Ključevi registra specifični za 32-bitne aplikacije bit će preusmjereni iz grane:

  • HKEY_LOCAL_MACHINE\Softver
  • HKEY_LOCAL_MACHINE\Software\WOW6432Čvor

Također, ponekad možete pronaći unose u registru u drugoj grani (iako je to neobično):

  • HKEY_CURRENT_USER\Software\WOW6432Čvor

Ovaj pristup omogućava 32-bitnim i 64-bitnim aplikacijama da normalno koegzistiraju, bez problema međusobnog prepisivanja postavki.

Dupliciranje registra

Neki preusmjereni ključevi registra i vrijednosti moraju biti duplicirani. To znači da ako 32-bitna aplikacija napravi promjene u preusmjerenom ključu registratora, te promjene moraju biti primijenjene i na grane 64-bitne aplikacije. U ovom slučaju važi princip „ko je zadnji u pravu“. Na primjer, ako instalirate tri aplikacije koje se pridružuju istom ekstenzijom datoteke, tada asocijacija ekstenzije datoteke mora biti s posljednjom aplikacijom.

  1. Instalirajte 32-bitnu aplikaciju koja se povezuje s ekstenzijom XYZ
  2. Instalirajte 64-bitnu verziju aplikacije koja se povezuje s ekstenzijom datoteke XYZ
  3. Instalirajte drugu 32-bitnu aplikaciju koja povezuje XYZ ekstenziju sa sobom

Kao rezultat ovih radnji, dvostrukim klikom na datoteku sa ekstenzijom XYZ u Windows Exploreru bi se trebala otvoriti aplikacija koja je instalirana u 3. koraku. Na kraju krajeva, to je bilo posljednje koje se povezalo s ekspanzijom.

Sve se to dešava transparentno za 32-bitne aplikacije u Wow64, koji nezavisno presreće pozive i duplira potrebne parametre i ključeve registratora. Drugim riječima, 32-bitne aplikacije mogu raditi na standardni način, Wow64 će napraviti potrebne promjene za njih.

Postoje brojna ograničenja podsistema WOW64

Neke, ali ne sve, 64-bitne funkcije dostupne su 32-bitnim aplikacijama

Wow64 dozvoljava 32-bitnim aplikacijama da koriste neke od karakteristika i funkcionalnosti 64-bitnih sistema. Na primjer, ako su pravilno konfigurirane, takve aplikacije mogu koristiti do 4 GB RAM-a. Pristup drugim funkcijama je ograničen zbog prirode 64-bitnih sistema. Na primjer, 64-bitni Windows OS podržava 64-bitne logičke operacije. Međutim, 32-bitne aplikacije im neće moći pristupiti, već će moći koristiti samo 32-bitne logičke operacije.

Bilješka: Glavni razlog za ograničenja je razlika u prezentaciji podataka između 32-bitnih i 64-bitnih aplikacija. 32-bitna aplikacija jednostavno nije dizajnirana za 64-bitne tipove podataka.

Ne možete miješati kod (ubacivanje koda) 32-bitnih i 64-bitnih aplikacija

Na 64-bitnom Windows OS-u, ne možete pokrenuti 32-bitni kod u 64-bitnom procesu, kao što ne možete pokrenuti 64-bitni kod u 32-bitnom procesu. Aplikacije koje koriste ubrizgavanje koda za dodavanje funkcionalnosti postojećim aplikacijama obično će generirati greške.

Ova činjenica objašnjava zašto većina 32-bitnih Windows shell ekstenzija ne radi pod 64-bitnim Windowsom. Većina ovih ekstenzija koristi Code Injection za ugradnju u Windows Explorer

WOW64 ne podržava 16-bitne instalatere

WOW64 pruža podršku za 16-bitne Microsoft instalatere zamjenom instalatera kompatibilnom 32-bitnom verzijom. Međutim, ova podrška se ne odnosi na proizvode trećih strana. Dakle, ako trebate koristiti stari program, najvjerovatnije ćete morati potražiti emulator ili prijenosnu verziju.


Dodatne opcije za pokretanje 32-bitnih aplikacija u Windows 64

Windows virtuelni računar

Windows Virtual PC je besplatan softver koji vam omogućava da pokrenete više operativnih sistema na jednom računaru. Virtuelni računar pruža posebno okruženje za izvršavanje koje podržava zastareli hardver i softver koji Windows 7 neće otkriti i pokrenuti. Svi operativni sistemi koji rade pod virtuelnim računarom radiće na virtuelnoj mašini. To znači da operativni sistemi koji rade neće znati da rade na drugom sistemu.

Sistemski zahtjevi i skup funkcija značajno se razlikuju između verzija Virtual PC-a i Windows verzija. Dakle, prije nego što pokušate koristiti Virtual PC, morate provjeriti podržava li program i vaš operativni sistem i OS koji će na njemu raditi. Na primjer, jedna od najnovijih verzija više ne podržava Windows verzije ispod Windows XP SP3.

Windows XP način rada (XPM)

Režim Windows XP je specifična i smanjena implementacija Windows Virtual PC-a koji dolazi sa prethodno instaliranom kopijom Windows XP Professional SP3. Ovaj režim je dostupan samo u Enterprise, Ultimate i Professional izdanjima Windows 7 64-bit.

Uprkos mogućnostima koje bi ovaj način trebao pružiti, mnogi koji su koristili XPM snažno savjetuju korištenje ovog načina rada samo kao posljednje sredstvo. U poređenju sa drugim proizvodima za virtuelizaciju, performanse su razočaravajuće, a podrazumevana konfiguracija izaziva brojne bezbednosne probleme.

Bilješka: Još uvijek se mogu konsultovati neke detaljnije postavke načina kompatibilnosti. Za više informacija pogledajte Kako da pokrenem stare programe na Windows 7 / Vista? (Pogledajte komplet alata za kompatibilnost Microsoft aplikacija).

Multiboot Windows OS

Možete instalirati više verzija Windows-a na isti računar koristeći multibooter. Na primjer, instalirajte 32-bitne i 64-bitne verzije Windows-a jednu pored druge. Svaki operativni sistem je instaliran na zasebnoj particiji diska, a menadžer pokretanja je instaliran na podrazumevanoj particiji. Menadžer pokretanja vam omogućava da odaberete i pokrenete operativni sistem koji sada želite da koristite.

Iako ne možete koristiti više od jednog operativnog sistema u isto vrijeme, ova funkcionalnost je prilično korisna. U poređenju sa virtuelnim mašinama, ova metoda nema problema sa kompatibilnošću i takve sisteme je mnogo lakše postaviti i održavati. Između ostalog, instaliranjem 32-bitne verzije pored 64-bitne verzije, zadržat ćete mogućnost pokretanja 16-bitnih aplikacija.

Sumirajući ono što je rečeno o 32-bitnoj podršci u 64-bitnom Windowsu

Većina 32-bitnih aplikacija će napredovati na Windows 64. Glavni izuzeci su:

  1. 32-bitni drajveri uređaja
  2. Aplikacije koje ne mogu funkcionirati bez 32-bitnih drajvera uređaja koje koriste. Živopisni primjeri su antivirusi i drugi sigurnosni softver.
  3. Ekstenzije koje koriste ubrizgavanje koda. Na primjer, ljuske za Windows Explorer

Neke aplikacije će moći da rade uz ograničenja. Ovo se također odnosi na deinstalatore, čistače registra i programe za podešavanje, jer oni imaju pristup samo dijelu registra koji im Wow64 prikazuje.

Ako ni na koji način ne možete pokrenuti 32-bitnu aplikaciju, razmislite o virtuelizaciji ili višestrukom pokretanju nekoliko operativnih sistema.

Koje su aplikacije brže 32-bitne ili 64-bitne?

Ovo pitanje se često postavlja. Ali, ne postoji opće pravilo ili faktor množenja, jer sve ovisi o zadacima i funkcijama procesora koji se koriste.

Kada se porede 32-bitne i 64-bitne aplikacije u njihovom izvornom okruženju, 32-bitna aplikacija obično koristi manje memorije od ekvivalentne 64-bitne aplikacije. To je zato što 64-bitne verzije koriste 64-bitne strukture podataka, koje zauzimaju dvostruko više prostora. Dodatna veličina direktno utiče na vreme pokretanja i gašenja programa, kao i na druge vrste operacija koje se odnose na pristup disk drajvovima. Obično to znači da će 32-bitne aplikacije raditi brže. Međutim, upotreba karakteristika 64-bitnog procesora od strane 64-bitnih programa potencijalno omogućava aplikaciji da radi do 25% brže od 32-bitnih programa.

Takođe, imajte na umu da pokretanje 32-bitne aplikacije na 64-bitnom Windows-u znači pokretanje Wow64, tako da se analiza performansi na 32-bitnom procesoru može ostaviti po strani. Pokretanje Wow64 znači ne samo troškove konverzije poziva, već i uzimanje u obzir mehanizama preusmjeravanja i dupliciranja, koji zahtijevaju ne samo vrijeme procesora, već i RAM. Dakle, moguće je da će 32-bitna aplikacija raditi brže od 64-bitne, ali će definitivno raditi sporije od ekvivalentnog pokretanja na 32-bitnom procesoru.

Ocjena 5.00 (6 glasova)


Kako pokrenuti igru ​​na 32-bitnom sistemu ako je potreban 64-bitni sistem, uputstva.

Vjerovatno želite znati kako dosljedno zaraditi na internetu od 500 rubalja dnevno?
Preuzmite moju besplatnu knjigu
=>>

Za korištenje mnogih modernih programa, uključujući igre, potreban je 64-bitni sistem. Stoga, vlasnici računara sa 32-bitnim sistemom, prilikom pokušaja pokretanja nekih programa, mogu naići na grešku poput "Verzija ove datoteke nije kompatibilna sa verzijom Windowsa koju koristite...".

Ova greška ukazuje da je igra koju pokušavate da instalirate na računar dizajnirana za 64-bitni sistem, a ne za 32-bitni. Činjenica je da, za razliku od 64-bitnog sistema, 32-bitni sistem može pokretati programe dizajnirane samo za njega.

Stoga, ako ste u nedoumici, ili ne znate bit vašeg OS-a, to se može saznati na sljedeći način:

  • Kroz "Start" uđite u "Control Panel".
  • Odaberite odjeljak "Sistem i sigurnost" i kliknite na "Sistem".
  • Nasuprot linije sa imenom "Tip sistema" biće njegova bitna dubina.

Kako pokrenuti igru ​​na 32-bitnom sistemu ako zahtijeva 64-bitni

Ako se ispostavilo da je OS 32-bitni, a trebate instalirati 64-bitni, onda nije potrebno ponovo instalirati Windows. Radi se o tome kako riješiti takav problem koji će biti detaljnije opisan u ovom članku.

Razlike između 64-bitnih i 32-bitnih sistema

Prije svega, vrijedno je razumjeti da ukupna količina RAM-a na računaru ovisi o tome koji se sistem koristi. Osim toga, koliko prostora se može dodijeliti za određenu aplikaciju također ovisi o bitnosti sistema.

Dakle, kada se koristi 64-bitni sistem, maksimalna količina RAM-a (memorije slučajnog pristupa) je 16 GB. Istovremeno, u Windows Professionalu ova brojka može doseći 192 GB. Zauzvrat, do 4 GB RAM-a je dodijeljeno za bilo koji određeni uslužni program.

Ako uzmemo u obzir x32, tada je RAM-a u ovom slučaju mnogo manje. Maksimalna količina RAM-a je 4 GB. Što se tiče pojedinačnih aplikacija, za njih se može dodijeliti maksimalno 2 GB.

Takođe, brzina obrade podataka zavisi i od bitnosti procesora. To jest, u slučaju x64, opterećenje je ravnomjerno raspoređeno na sve jezgre računara. A u x32, druga jezgra počinje tek nakon što je prva potpuno učitana.

Osim toga, postoji još jedna prilično važna stvar - 64-bitni sistem nije pogodan za slabe računare. Stoga je pri kupovini računara bolje odmah kupiti x64, jer ova opcija može pokrenuti bilo koju aplikaciju. Čak i one dizajnirane za 32-bitne sisteme.

Međutim, ako to ne želite učiniti ili jednostavno ne postoji takva mogućnost, onda možete koristiti program treće strane ili udaljene servere.

Programi za kreiranje gostujućeg OS-a

Postoje uslužni programi koji vam omogućavaju da oponašate rad sistema koji imaju određeni softver i hardver. Međutim, u ovom slučaju preporučuje se korištenje samo licenciranih verzija programa za vizualizaciju.

Rad takvih uslužnih programa temelji se na kreiranju takozvane gostujuće verzije OS-a. U ovom slučaju, da biste ga kreirali, potreban vam je disk ili njegova slika, sa željenim OS-om.

Među programima koji vam omogućavaju da kreirate gostujući operativni sistem su:

  • Oracle Virtualbox.
  • VMware Worstation.
  • Windows virtuelni računar itd.

Udaljeni serveri

Takva opcija kao što je korištenje udaljenih servera za pokretanje igara koje zahtijevaju 64-bitni OS je također prilično zgodna, kao i posebni uslužni programi. Samo kada koristite udaljeni server, svi proračuni i informacije će se obrađivati ​​isključivo na njemu.

Suština ove opcije je da vas neće ometati ograničenja na koja možete naići na x32 OS. Pošto će igre i drugi programi raditi na sistemima koji su im potrebni.

Na primjer, program kao što je Microsoft Azure omogućava vam da kreirate više operativnih sistema odjednom. Za one koji vole da se igraju, može se koristiti NVIDIA GRID. Uz njegovu pomoć, video kartica je virtuelizirana.

Samo ne zaboravite da ove usluge rade sa udaljenim serverima. U skladu s tim, za njihovo normalno funkcioniranje potrebna je dobra internetska veza.

Sažetak

Suočeni sa pitanjem kako pokrenuti igru ​​na 32-bitnom sistemu, ako je za to potreban 64-bitni, sasvim je moguće to riješiti. Samo za to, kao što vidite, morat ćete raditi sa specijalizovanim programima ili udaljenim serverima. A ovo je prilično teško.

Također, ne zaboravite na rizik od zaraze zlonamjernim softverom na vašem računaru. Stoga, ako vaš računar dozvoljava, onda je bolje instalirati 64-bitni OS. U tom slučaju nećete imati problema s pokretanjem programa i igara.

Ali zapamtite da je izbor uvijek na vama. I ne mogu svi računari da koriste 64-bitni OS.

Korisni članci:

P.S. Prilažem snimku ekrana svoje zarade u partnerskim programima. I podsjećam da na ovaj način može zaraditi svako, čak i početnik! Najvažnije je to učiniti ispravno, što znači učiti od onih koji već zarađuju, odnosno od profesionalaca internet poslovanja.


Dobijte listu dokazanih, posebno relevantnih, Affiliate programa 2018. koji plaćaju novac!


Preuzmite kontrolnu listu i vrijedne bonuse besplatno
=>> "Najbolje podružnice 2018."

Mnogi igrači u posljednjih nekoliko godina često su se susreli sa situacijom u kojoj novo puštena igračka jednostavno odbija raditi na njihovom sistemu. Zatim, nakon nekog istraživanja, shvataju da je problem u tome što je igra koja se pokreće 64-bitna aplikacija.

U ovom članku ćemo vam jednostavnim jezikom reći zašto se igra koju ste odabrali nije pokrenula na vašem računaru, zašto se isplati preći na 64-bitni operativni sistem i kako pokrenuti 64-bitnu igru.

Zašto 64-bitne igre ne rade?

Ok, počnimo s najjednostavnijim: 64-bitne igre zahtijevaju operativni sistem iste bitnosti. Najvjerovatnije imate 64-bitni procesor u svom računaru, ali operativni sistem je 32-bitni.

Prije nekoliko godina, programeri su još uvijek pokušavali prilagoditi svoje projekte za 32-bitne i 64-bitne sisteme. Međutim, ovo je trenutno izuzetno nepovoljno zbog ogromnih ograničenja 32-bitne arhitekture. Kako ne biste preopteretili protok informacija, vi, igrač, trebate naučiti samo dvije stvari: 32-bitni OS će podržavati samo 4 gigabajta RAM-a i 64-bitni OS će omogućiti vašem računaru da bude produktivniji.

Pa hajde da konačno odgovorimo na pitanje zašto se 64-bitna igra nije pokrenula na vašem računaru. Mogu biti dva odgovora: imate instaliran 32-bitni sistem ili vaš procesor ima 32-bitnu arhitekturu, dakle, podržava samo 32-bitni OS.

Kako pokrenuti 64-bitne igre?

Da li je moguće pokrenuti 64-bitnu igru ​​na 32-bitnoj? Odgovor može biti samo jedan: potreban vam je 64-bitni operativni sistem (i isti procesor). To je sve. Na internetu možete pronaći mnoštvo različitih video zapisa i članaka o tome kako pokrenuti 64-bitnu igru ​​na 32-bitnom sistemu. Ali, odmah se mora reći da će jedino rješenje u ovoj situaciji biti zamjena OS-a.

Međutim, možda ćete imati još jednu poteškoću: procesor na 32-bitnoj arhitekturi. Pa, u ovoj situaciji možete samo saosjećati, a i pitati: gdje ste iskopali takvo čudo? Nažalost, da biste igrali sve moderne igre, svakako morate nabaviti 64-bitni procesor i isti operativni sistem - nema drugog načina.

Da, neki od vas mogu odmah napisati da je pokretanje 64-bitnih aplikacija u 32-bitnom okruženju moguće, na primjer, korištenjem virtuelne mašine. Međutim, treba napomenuti da će vam čak i u ovom slučaju biti potreban procesor sa 64-bitnom arhitekturom.

Konačno

Želeo bih da kažem da trenutno nema smisla sedeti na 32-bitnim operativnim sistemima, posebno ako ste igrač. Ako imate moćan kompjuter za igranje, onda će takva dubina bita u potpunosti ograničiti performanse vaše mašine. Dakle, trenutno jednostavno nema smisla koristiti 32-bitni operativni sistem.

Većina modernih igara kao što su Overwatch, Hurtworld ili Subnautica mogu raditi samo na 64-bitnim operativnim sistemima. Kreatorima ovih programa jednostavno nije isplativo da prave različite verzije aplikacija za 32- i 64-bitne. Iako su obje verzije prilično uobičajene. Naravno, prelazak na x64 je dovoljno jednostavan. Ali što ako ne namjeravate nadograditi svoj OS, a ipak želite pogledati popularnu igru? Naučite kako pokrenuti Subnautica i druge 64-bitne programe na 32-bitnom sistemu.

Da biste to učinili, potrebno je da računar ispunjava uslove neophodne za normalan rad aplikacije. Procesor u početku mora imati x64 arhitekturu.

Po čemu se 32-bitni sistem razlikuje od 64-bitnog?

Zašto se programi dizajnirani za 64 bit ne mogu otvoriti na 32 bitnim? Po čemu su ove verzije toliko različite, budući da iste aplikacije ne rade na njima? A ako se Overwatch može pokrenuti u x64, zašto se ne može igrati na istom računaru ali sa x32?

Od sistema zavisi koliko RAM-a može da se instalira na računar i koliko može da se dodeli svakoj određenoj aplikaciji. U x64, maksimalna količina RAM-a je 16 GB (u Windows 7 Professional - do 192 GB). U ovom slučaju, bilo koji uslužni program je osiguran do 4 GB. U verziji x32, ove brojke su mnogo manje - 4 GB maksimalno i 2 GB za poseban program.

Bitnost procesora određuje kako obrađuje informacije. Ovo značajno utiče na performanse - u 64 bitu je mnogo bolje. Postoji više registara za pohranjivanje podataka, a opterećenje se raspoređuje na sve jezgre odjednom. A u 32-bitnom OS-u, druga jezgra se aktivira kada je prva potpuno zauzeta.

Na "slabim" mašinama instalirajte x32. Ako računar nema puno RAM-a i nije najbolji procesor, jednostavno nema smisla raditi sa 64-bitnim. Ovo će samo "preopteretiti" elektronski računar bez povećanja njegovih performansi. Ali moćan x64 računar će biti na mestu.

Uprkos činjenici da su ovi sistemi slični po izgledu, oni se veoma razlikuju na nivou softvera. Imaju drugačiji set drajvera, tako da Subnautica, Overwatch, Hurtworld i drugi slični neće raditi na 32-bitnom OS-u, čak i ako PC ima potrebne karakteristike.

Moderne igre, aplikacije, programi za uređivanje grafike ili videa nisu dovoljni za 2 GB koje im dodjeljuje x32. Linkeri novih igara kreiraju svoje proizvode imajući na umu x64.

Kako znati da li procesor podržava x64?

Da vidite koji OS ste instalirali, možete učiniti sljedeće:

  1. Na radnoj površini kliknite desnim tasterom miša na ikonu "Moj računar".
  2. Stavka "Svojstva". Takođe se može naći pod Control Panel.
  3. Linija "Type" će pokazati koliko bitova ima vaša verzija OS-a.

Prvo morate razumjeti na kom sistemu radite.

Prije nego što pokrenete Overwatch na 32-bitnom sistemu, saznajte da li vaš računar može podnijeti takvu igru. Provjerite podržava li procesor 64-bitna uputstva. To se može učiniti uz pomoć posebnih programa za testiranje. Pogodan je, na primjer, besplatni uslužni program "SecurAble". Ne treba ga instalirati. I, shodno tome, ne treba ga uklanjati nakon upotrebe. Samo pokrenite izvršni fajl. Prikazaće se informacije o procesoru: naziv, brzina takta, dubina bita, da li podržava D.E.P (ovo je zaštita od prepunjavanja bafera za uređaj) i hardversko prikazivanje. Možete kliknuti na bilo koji od rezultata - pojavit će se njegov opis.

Provjera podrške procesora za 64-bitna uputstva

Ako program donese presudu "Maksimalno 32 bita", tada aplikacije dizajnirane za x64 vjerojatno neće raditi. Da biste igrali Overwatch ili Hurtword, morat ćete promijeniti procesor ili ukloniti udaljene servere.

Kako pretvoriti 32-bitni sistem u 64-bitni?

Postoji nekoliko uslužnih programa za takozvanu virtuelizaciju. Oni emuliraju rad neke platforme sa određenim softverom i hardverom. Ako trebate da shvatite kako pokrenuti Hurtworld na 32-bitnom sistemu, koristite jedan od ovih uslužnih programa.

Ovi programi stvaraju neku vrstu "gostjućeg" OS-a. Ali u svakom slučaju, mora se instalirati i kupiti licencirana verzija, ako se plaća. Da biste to učinili, morate imati disk (ili sliku diska) sa operativnim sistemom koji vam je potreban.

Oracle Virtual Box

Univerzalni program za takve zadatke.

  1. Instalirajte ga i pokrenite ga. Na lijevoj strani će se nalaziti lista instaliranih OS i traka sa alatkama. Desno - informacije o odabranom sistemu.
  2. Kliknite na dugme "Kreiraj". Pojavit će se prozor sa informacijama. Kliknite na Next.
  3. Odaberite tip i verziju OS-a. Postoji mnogo opcija koje možete izabrati: ne samo Microsoft Windows, već i Linux.
  4. Tada ćete morati odlučiti koliko RAM-a dodijeliti sistemu "gost".
  5. Nakon toga morate kreirati virtuelni disk (na koji će biti zapisane OS datoteke). Možete odabrati postojeći ili kreirati novi. I potvrdite okvir pored opcije "Pokreni disk".
  6. U sljedećem prozoru provjerite da li će volumen biti fiksni za disk ili dinamički (mijenjajući). Svaka stavka ima detaljna objašnjenja. Boot je bolje popraviti. Kasnije možete dodati još diskova.
  7. Podesite veličinu virtuelne memorije. Obično je dovoljno 10 GB. Bolje ga je kreirati na zasebnom mjestu - ne tamo gdje je instaliran glavni sistem.
  8. Sačekajte do kraja procesa. Novi će se pojaviti na listi dostupnih.

Jedan od načina je korištenje uslužnih programa za virtuelizaciju

Nakon što možete konfigurirati hardver:

  1. Odaberite gostujući OS i kliknite na Svojstva.
  2. U odjeljku Općenito - Napredno promijenite mapu za čuvanje slika u onu koja vam odgovara.
  3. Postavite međuspremnik tamo. Određuje kako će se informacije prenositi između različitih operativnih sistema.
  4. Na kartici "Sistem" možete odabrati karakteristike virtuelne matične ploče i procesora.
  5. Stavka "Mreža" je potrebna za konfigurisanje pristupa World Wide Webu. Možete ostaviti zadane postavke.
  6. U odeljku "Mediji" navedite odakle želite da preuzmete OS. Ako je instalater na CD-u, umetnite ga u drajv. Za preuzimanje sa .ISO, kliknite na dugme "Otvori" pored liste "Drive". Izgleda kao žuti folder.
  7. Tu možete dodati i druge slike za brzo prebacivanje između njih: baze podataka, aplikacije, igre.

Nakon dovršetka podešavanja, kliknite na "OK". Da biste pokrenuli gostujući OS, kliknite na njega i na dugme "Start". Instalacija će se izvršiti. I možete se prebacivati ​​između sistema: igrati u 64-bitnom i raditi u 32-bitnom.

Druge virtuelne mašine

Postoje i uslužni programi za rad sa virtuelnim mašinama:

  • VMware Workstation. Ozbiljan profesionalni program za složene zadatke. Distribuira se na plaćenoj osnovi.
  • Jednostavan uslužni program za emulaciju hardvera. Ima otvoreni izvorni kod.
  • windows Virtual PC. Radi samo sa windows sistemima. Možete postaviti prioritet procesa - tako da će resursi biti automatski dodijeljeni online mašini ako izvrši određeni zadatak.
  • VirtManager. Pruža brojne mogućnosti za postavljanje hardverske komponente - virtuelni hardver je dostupan za svaki ukus.

Računarstvo u oblaku (udaljeni serveri)

Ako performanse i dalje nisu dovoljne za pokretanje igre, možete to učiniti na udaljenom serveru. Na njemu će se obraditi svi proračuni, sve informacije. Na taj način nećete biti ometeni nikakvim ograničenjima vezanim za x32. Uostalom, u stvari, aplikacije će se „otvoriti“ na odgovarajućim sistemima. Samo ne na vašem računaru.

Za to je prikladan program Microsoft Azure. Uz njegovu pomoć možete kreirati nekoliko operativnih sistema za različite svrhe. Ljubitelji igara također će imati koristi od specijalizirane usluge virtuelizacije NVIDIA GRID video kartica. Ovim komunalnim uslugama je potreban internet velike brzine.

Najsavremenije usluge u oblaku proširuju naše mogućnosti

Rad sa 64-bitnim aplikacijama na 32-bitnom sistemu je sasvim moguć. Ali morate instalirati dodatni softver ili, općenito, prebaciti se na udaljeni server. To je prilično teško uraditi. Ako želite u potpunosti igrati Overwatch, Hurtword i druge popularne igre, bolje je instalirati x64 OS. Dakle, neće biti problema s kompatibilnošću. I ne morate ništa da postavljate.

NastroyVse.ru

windows x64 - Zašto još uvijek postoji toliko 32-bitnih programa?

Vaš računar najvjerovatnije koristi 64-bitnu verziju Windows-a. Ali ako otvorite Task Manager, vidjet ćete da je većina programa na vašem sistemu još uvijek 32-bitna. Je li to zaista problem? Postoje mnoge razlike između 64-bitnih i 32-bitnih verzija Windowsa. 64-bitne verzije Windows-a mogu pokretati 32-bitni softver, ali 32-bitne verzije Windows-a ne mogu pokretati 64-bitni softver.

Kako saznati bitnost programa?

Hajde da koristimo Task Manager da vidimo koji su vaši programi 64-bitni, a koji 32-bitni. Kliknite desnim tasterom miša na traku zadataka i izaberite Task Manager ili pritisnite Ctrl + Shift + Esc da biste je otvorili. Pogledajte kolonu s imenima procesa. Ako koristite 64-bitnu verziju Windows 8.1 ili 8, vidjet ćete riječ "(32-bit)" iza svakog 32-bitnog naziva programa. Ako koristite 64-bitnu verziju Windows 7, umjesto toga ćete vidjeti "*32". 32-bitni programi se obično instaliraju u fasciklu C:\Program Files (x86)\ na 64-bitnim verzijama Windowsa, dok se 64-bitni programi obično instaliraju u fasciklu C:\Program Files\. Ovo je samo pravilo. Ali niko ne kaže da ne postoji drugo pravilo koje zabranjuje instaliranje 64-bitnih programa u fasciklu C:\Program Files (x86)\. Na primjer, Steam je 32-bitni program, tako da se po defaultu instalira u "C:\Program Files (x86)\". Igre koje instalirate na Steam-u su podrazumevano instalirane u folderu C:\Program Files (x86)\Steam, uklj. čak i 64-bitne verzije igara. Ako uporedite dva različita foldera Program Files, vidjet ćete da je većina vaših programa najvjerovatnije instalirana u folderu C:\Program Files (x86). I većina ovih programa je 32-bitna.

Pokretanje 32-bitnog softvera na 64-bitnom operativnom sistemu

Na prvi pogled izgleda strašno da većina vaših Windows programa ne koristi arhitekturu 64-bitnog operativnog sistema. Možda mislite da postoji kazna performansi za pokretanje 32-bitnih programa na 64-bitnom operativnom sistemu, ali to nije slučaj. windows pokreće 32-bitne programe kroz sloj kompatibilnosti WoW64 na 64-bitnim verzijama Windowsa. Međutim, 64-bitni Intel i AMD procesori su kompatibilni unatrag i mogu direktno pokrenuti 32-bitni softver. Svi vaši 32-bitni Windows programi će raditi isto kao i na 32-bitnoj verziji Windowsa. Dakle, nema prepreka za pokretanje ovih programa na 64-bitnom operativnom sistemu. Čak i ako je svaki program koji koristite još uvijek 32-bitni, imat ćete koristi jer će vaš operativni sistem sam raditi u 64-bitnom načinu rada. A, 64-bitna verzija Windowsa je sigurnija.

64-bitni programi u odnosu na 32-bitni programi: što je bolje?

32-bitni programi rade bez problema na 64-bitnim verzijama Windows operativnih sistema. Ali da li bi bilo bolje da svi vaši programi budu 64-bitni? Definitivno postoje prednosti 64-bitnih programa. 32-bitni programi mogu koristiti samo 2 GB memorije, dok 64-bitni programi mogu koristiti mnogo više. Ako je program najvjerovatnije napadnut, dodatne sigurnosne funkcije primijenjene na 64-bitne programe mogu pomoći. Google Chrome je trenutno 32-bitna aplikacija čak i na 64-bitnim verzijama Windows OS-a, ali se već pojavila 64-bitna beta verzija ovog programa. I Google obećava da će 64-bitna verzija Chrome-a biti brža, sigurnija i stabilnija. Neki programi nude 64-bitne verzije. Na primjer: Photoshop, iTunes, Microsoft Office i neki od najpopularnijih Windows programa, svi dostupni u 64-bitnoj verziji. Najnovije igre su također često 64-bitne tako da mogu koristiti više od 2 GB memorije. Mnogi programi nisu prešli na 64-bit, a većina nikada neće. I danas možete pokrenuti većinu 32-bitnih Windows programa, čak i onih koji su objavljeni prije deset godina, na 64-bitnoj verziji Windowsa, čak i ako se njihovi programeri već ažuriraju. Programer koji želi da obezbedi 64-bitnu verziju svog programa mora da uradi mnogo dodatnog posla. On mora osigurati da se postojeći kod kompajlira i radi ispravno kao 64-bitni softver. Mora pružati i podržavati dvije odvojene verzije programa, jer korisnici koji koriste 32-bitnu verziju Windowsa ne mogu koristiti 64-bitnu verziju. Uzmimo Evernote desktop verziju Windowsa kao primjer. Čak i kada bi objavili 64-bitnu verziju Evernotea, korisnici vjerovatno uopće ne bi primijetili razliku. 32-bitni program može dobro raditi na 64-bitnoj verziji Windowsa, a ako nema vidljivih prednosti, onda nema smisla u 64-bitnoj verziji.

Gdje pronaći 64-bitne aplikacije

Generalno nećete moći birati između 32-bitne i 64-bitne verzije softvera. Na primjer, kada instalirate iTunes za Windows, Apple web stranica automatski vas usmjerava na 32-bitni ili 64-bitni instalater, ovisno o verziji Windowsa. Instaliranje Photoshopa za Windows obično instalira i 32-bitne i 64-bitne izvršne datoteke. Photoshop automatski bira između njih. Ponekad možete vidjeti odvojene veze za preuzimanje za 32-bitne i 64-bitne verzije programa, ali to nije tako često. Važno je da ne tražite 64-bitne aplikacije, već da pronađete aplikacije koje vam dobro rade. Za većinu aplikacija nije bitno da li je 64-bitna ili 32-bitna.

Lako se zapitati zašto je toliko mnogo aplikacija još uvijek 32-bitno kada otvorite svoj upravitelj zadataka. Ali to nije veliki problem, a evo i zašto. Zato što većina aplikacija ne dobija ništa prelaskom na 64-bitna izdanja programa. Čak i da su programeri obavili sav posao i objavili 64-bitne verzije svih malih desktop aplikacija i uslužnih programa koje koristite na Windowsima, ne biste mogli uočiti razliku za većinu njih.

itchief.ru

7 koraka za prenos programa na 64-bitni sistem

Članak govori o glavnim koracima kako bi se osiguralo ispravno prenošenje 32-bitnih Windows aplikacija na 64-bitne Windows sisteme. Iako je članak namijenjen programerima koji koriste C/C++ jezik u Visual Studio 2005/2008, također će biti koristan za druge programere koji planiraju da svoje aplikacije prenesu na 64-bitne sisteme. Članak opisuje glavne probleme sa kojima se suočavaju programeri koji planiraju da prebace 32-bitne programe na 64-bitne sisteme. Naravno, lista razmatranih pitanja nije potpuna, ali bih se nadam da će s vremenom biti ponuđena proširena verzija ovog članka. Autor će biti zahvalan na povratnim informacijama, komentarima i pitanjima koja će poboljšati informativni sadržaj ovog članka. U okviru računarske arhitekture, termin "64-bit" odnosi se na 64-bitne cele brojeve i druge tipove podataka veličine 64 bita. "64-bitni" sistemi se mogu odnositi na 64-bitne arhitekture mikroprocesora (npr. EM64T, IA-64) ili 64-bitne operativne sisteme (npr. Windows XP Professional x64 Edition). AMD64 (aka x86-64, Intel 64, EM64T, x64) je 64-bitna arhitektura mikroprocesora i odgovarajući skup instrukcija koje je razvio AMD. Ovaj set instrukcija je licencirao Intel pod imenom EM64T (Intel64). AMD64 arhitektura je proširenje x86 arhitekture sa potpunom kompatibilnošću unazad. Arhitektura je postala široko rasprostranjena kao osnova za personalne računare i radne stanice. IA-64 je 64-bitna mikroprocesorska arhitektura koju su zajednički razvili Intel i Hewlett Packard. Implementirano u Itanium i Itanium 2 mikroprocesorima. Arhitektura se uglavnom koristi u višeprocesorskim serverima i klaster sistemima. AMD64 i IA-64 su dvije različite 64-bitne arhitekture koje nisu kompatibilne jedna s drugom. Stoga bi programeri trebali odmah odlučiti da li je potrebno podržati obje ove arhitekture ili samo jednu. U većini slučajeva, ako ne razvijate visoko specijalizovan softver za klaster sisteme ili ne implementirate sopstveni DBMS visokih performansi, tada ćete najverovatnije morati da implementirate podršku za AMD64 arhitekturu, koja je mnogo raširenija od IA-64. Ovo se posebno odnosi na softver za tržište personalnih računara, koje je skoro 100 posto okupirano AMD64 arhitekturom. Dalje u članku ćemo govoriti samo o AMD64 (EM64T, x64) arhitekturi, jer je njena upotreba sada najrelevantnija za programere aplikativnog softvera.

Govoreći o različitim arhitekturama, treba spomenuti koncept „Modela podataka“. Model podataka treba shvatiti kao odnos dimenzija tipova usvojenih u okviru razvojnog okruženja. Za jedan operativni sistem može postojati nekoliko razvojnih alata koji se pridržavaju različitih modela podataka. Ali obično prevladava samo jedan model, koji je najprikladniji za hardversko i softversko okruženje. Primjer je 64-bitni Windows operativni sistem, u kojem je izvorni model podataka LLP64. Ali radi kompatibilnosti, 64-bitni Windows sistem podržava izvršavanje 32-bitnih programa koji rade u režimu ILP32LL modela podataka. Tabela N1 pruža informacije o glavnim modelima podataka.


Tabela N1. Modeli podataka

Korišteni model podataka ostavlja pečat na proces razvoja 64-bitnih aplikacija, budući da je u programskom kodu potrebno voditi računa o bitnosti korištenih podataka.

Savladavanje 64-bitnih sistema trebalo bi da počnete sa pitanjem "Da li treba da ponovo izgradimo naš projekat za 64-bitni sistem?". Na ovo pitanje se mora odgovoriti, ali bez žurbe, razmišljanja. S jedne strane, možete zaostajati za svojim konkurentima ako ne ponudite 64-bitna rješenja na vrijeme. S druge strane, možete gubiti vrijeme na 64-bitnu aplikaciju koja vam neće dati nikakve konkurentske prednosti. Navodimo glavne faktore koji će vam pomoći da napravite izbor. Ne biste trebali kreirati 64-bitnu verziju aplikacije s kratkim životnim ciklusom. Zahvaljujući podsistemu WOW64, stare 32-bitne aplikacije rade prilično dobro na 64-bitnim Windows sistemima, pa stoga nema smisla praviti 64-bitni program koji više neće biti podržan za 2 godine. Štaviše, praksa je pokazala da je prelazak na 64-bitne verzije Windowsa odgođen i većina vaših korisnika će vjerovatno koristiti samo 32-bitnu verziju vašeg softverskog rješenja u kratkom roku. Ako planirate dugoročan razvoj i dugoročnu podršku softverskog proizvoda, trebali biste početi raditi na 64-bitnoj verziji vašeg rješenja. To se može učiniti polako, ali imajte na umu da što duže nemate punopravnu 64-bitnu verziju, to će više poteškoća nastati s podrškom takve aplikacije instalirane na 64-bitnim verzijama Windowsa. Ponovno kompajliranje programa za 64-bitni sistem omogućit će mu korištenje ogromne količine RAM-a i ubrzati rad za 5-15%. Do ubrzanja od 5-10% doći će zbog korištenja arhitektonskih mogućnosti 64-bitnog procesora, na primjer, većeg broja registara. Još jedno povećanje brzine od 1%-5% je zbog odsustva sloja WOW64, koji prevodi API pozive između 32-bitnih aplikacija i 64-bitnog operativnog sistema. Ako vaš program ne radi sa velikim količinama podataka (više od 2GB) i brzina njegovog rada nije kritična, onda prelazak na 64-bitni sistem u bliskoj budućnosti nije tako hitan. Usput, čak i jednostavne 32-bitne aplikacije mogu imati koristi od njihovog pokretanja u 64-bitnom okruženju. Verovatno znate da program kompajliran sa prekidačem /LARGEADDRESSAWARE:YES može dodeliti do 3 gigabajta memorije ako se 32-bitni Windows operativni sistem pokrene sa prekidačem /3gb. Isti 32-bitni program koji radi na 64-bitnom sistemu može dodijeliti skoro 4 GB memorije (u praksi, oko 3,5 GB). Ako razvijate biblioteke, komponente ili druge elemente koje programeri trećih strana koriste za izradu svog softvera, onda morate brzo kreirati 64-bitnu verziju svog proizvoda. U suprotnom će vaši kupci zainteresirani za izdavanje 64-bitnih verzija biti prisiljeni tražiti alternativna rješenja. Na primjer, neki programeri softverske i hardverske zaštite odgovorili su sa velikim zakašnjenjem na pojavu 64-bitnih programa, što je primoralo brojne klijente da potraže druge alate za zaštitu svojih programa. Dodatna prednost izdavanja 64-bitne verzije biblioteke je da je možete prodati kao samostalan proizvod. Stoga će vaši kupci koji žele kreirati i 32-bitne i 64-bitne aplikacije morati kupiti 2 različite licence. Na primjer, ovu politiku koristi Spatial Corporation kada prodaje prostornu ACIS biblioteku. Prije planiranja rada na stvaranju 64-bitnih verzija vašeg proizvoda, saznajte da li postoje 64-bitne verzije biblioteka i komponenti koje koristi. Također saznajte koja je politika cijena za 64-bitnu verziju biblioteke. Sve se to može saznati posjetom web-stranici programera biblioteke. Ako nema podrške, onda unaprijed potražite alternativna rješenja koja podržavaju 64-bitne sisteme. Ako još uvijek imate 16-bitne module u svojim rješenjima, onda je vrijeme da ih se riješite. Rad 16-bitnih aplikacija u 64-bitnim verzijama Windowsa nije podržan. Ovdje treba razjasniti jednu tačku koja se odnosi na korištenje 16-bitnih instalatera. Još uvijek se koriste za instaliranje nekih 32-bitnih aplikacija. Stvoren je poseban mehanizam koji u hodu zamjenjuje niz najpopularnijih 16-bitnih instalatera novijim verzijama. Ovo može dovesti do zablude da 16-bitni programi i dalje rade u 64-bitnom okruženju. Zapamtite, nije. Ne zaboravite da korištenje velike količine koda asemblerskog jezika može značajno povećati cijenu kreiranja 64-bitne verzije aplikacije. Nakon što odvagnete sve gore navedene činjenice, sve prednosti i nedostatke, odlučite da li treba da prenesete svoj projekat na 64-bitne sisteme. A ako je tako, idemo dalje. Ako ste odlučili razviti 64-bitnu verziju svog proizvoda i voljni ste potrošiti vrijeme na to, to ne garantuje uspjeh. Činjenica je da morate imati sve potrebne alate i može doći do neugodnih incidenata.

Najjednostavniji, ali i najnepremosniji problem može biti nedostatak 64-bitnog kompajlera. Članak je napisan 2009. godine, ali još uvijek ne postoji 64-bitni C++ Builder kompajler iz Codegeara. Njegovo izlazak se očekuje tek do kraja ove godine. Ne postoji način da se zaobiđe ovaj problem, osim ako, naravno, ne prepišete cijeli projekat, na primjer, koristeći Visual Studio. Ali ako je sve jasno s nedostatkom 64-bitnog kompajlera, onda bi se drugi slični problemi mogli pokazati tajnovitijim i izaći već u fazi prenošenja projekta na novu arhitekturu. Stoga bih vas savjetovao da unaprijed izvršite studiju da li postoje sve potrebne komponente koje će biti potrebne za implementaciju 64-bitne verzije vašeg proizvoda. Mogu vas čekati neprijatna iznenađenja.

Naravno, nemoguće je ovdje navesti sve što bi moglo biti potrebno za projekat, ali ipak ću vam ponuditi listu koja će vam pomoći da se fokusirate i eventualno zapamtite druge tačke koje su neophodne za implementaciju vašeg 64-bitnog projekta: To je teško je reći bilo šta drugo o važnosti 64-bitnog kompajlera. On jednostavno mora biti. Ako planirate da razvijate 64-bitne aplikacije koristeći najnoviju verziju (u vrijeme pisanja) Visual Studio 2008, onda će vam sljedeća tabela N2 pomoći da odredite koje vam je izdanje Visual Studioa potrebno.

Tabela N2. Mogućnosti različitih izdanja Visual Studio 2008 Naravno, možete koristiti virtuelne mašine za pokretanje 64-bitnih aplikacija na 32-bitnoj opremi, ali to je izuzetno nezgodno i neće obezbediti potreban nivo testiranja. Poželjno je da u mašine bude instalirano najmanje 4-8 gigabajta RAM-a. Ako su biblioteke predstavljene u izvornim kodovima, tada mora biti prisutna 64-bitna konfiguracija projekta. Nadogradnja biblioteke da biste je sami izgradili za 64-bitni sistem može biti nezahvalan i težak zadatak, a rezultat se može pokazati nepouzdan i sadržavati greške. Time također možete prekršiti ugovore o licenci. Ako koristite biblioteke kao binarne module, trebali biste saznati da li postoje 64-bitni moduli. Nećete moći koristiti 32-bitne DLL-ove unutar 64-bitne aplikacije. Moguće je kreirati prilagođeni pojas preko COM-a, ali to bi sam po sebi bio veliki, složen zadatak. Takođe imajte na umu da kupovina 64-bitne verzije biblioteke može koštati dodatni novac. Visual C++ ne podržava 64-bitni inline asembler. Morate koristiti eksterni 64-bitni asembler (npr. MASM) ili imati C/C++ implementaciju iste funkcionalnosti. Značajna revizija metodologije testiranja, modernizacija jediničnih testova, upotreba novih alata. O tome će se detaljnije govoriti u nastavku, ali ne zaboravite to uzeti u obzir prilikom procjene vremena utrošenog na migraciju aplikacije na novi sistem. Ako razvijate aplikacije koje zahtijevaju velike resurse koje troše veliku količinu RAM-a, tada morate voditi računa o dopuni baze testnih ulaznih podataka. Kada testirate 64-bitne aplikacije, poželjno je ići preko 4 gigabajta potrošene memorije. Mnoge greške se mogu pojaviti samo pod takvim uslovima. Korišteni zaštitni sistem mora podržavati 64-bitne sisteme u punoj mjeri koja vam je potrebna. Na primjer, kompanija Aladdin je brzo objavila 64-bitne drajvere za podršku Hasp hardverskih ključeva. Ali veoma dugo nije postojao sistem automatske zaštite za 64-bitne binarne datoteke (program Hasp Envelop). Stoga je zaštitni mehanizam morao biti implementiran samostalno unutar programskog koda, što je bio dodatni složen zadatak koji je zahtijevao vještinu i vrijeme. Ne zaboravite na takve trenutke vezane za pružanje zaštite, sistem ažuriranja i tako dalje. Potreban vam je novi instalater koji može u potpunosti instalirati 64-bitne aplikacije. Ovdje bih odmah upozorio na jednu tradicionalnu grešku. Ovo je stvaranje 64-bitnih instalatera za instaliranje 32/64-bitnih softverskih proizvoda. Kada pripremaju 64-bitnu verziju aplikacije, programeri često žele da "64-bitnu" u njoj dovedu do apsoluta. I kreiraju 64-bitni instalater, zaboravljajući da korisnici 32-bitnog operativnog sistema jednostavno neće pokrenuti takav instalacioni paket. Imajte na umu da se neće pokrenuti 32-bitna aplikacija uključena u distribuciju zajedno sa 64-bitnom, već sam instalater. Uostalom, ako je distributivni komplet 64-bitna aplikacija, onda, naravno, neće raditi na 32-bitnom operativnom sistemu. Najneugodnije u vezi s tim je to što korisnik neće moći da pogodi šta se dešava. On će jednostavno vidjeti instalacioni paket koji se ne može pokrenuti. Kreiranje 64-bitne konfiguracije projekta u Visual Studio 2005/2008 izgleda prilično jednostavno. Poteškoće će vas čekati u fazi sastavljanja nove konfiguracije i traženja grešaka u njoj. Da biste kreirali 64-bitnu konfiguraciju, dovoljno je izvršiti sljedeća 4 koraka: Pokrenite upravitelja konfiguracije, kao što je prikazano na slici N1:

Slika 1. Pokretanje upravitelja konfiguracije U upravitelju konfiguracija odaberite podršku za novu platformu (slika N2): Slika 2. Kreiranje nove konfiguracije Odaberite 64-bitnu platformu (x64) i odaberite postavke iz 32-bitne verzije kao osnova (slika N3). One postavke koje utiču na način izrade, Visual Studio okruženje će se prilagoditi samo.

Slika 3. Odabir x64 kao platforme i korištenje Win32 konfiguracije kao osnove Dodavanje nove konfiguracije je sada završeno i možemo odabrati opciju 64-bitne konfiguracije i započeti kompajliranje 64-bitne aplikacije. Izbor 64-bitne konfiguracije za izgradnju prikazan je na slici N4. Slika 4. Sada su dostupne 32-bitne i 64-bitne konfiguracije Ako imate sreće, nećete morati dodatno konfigurirati 64-bitni projekt. Ali to jako ovisi o projektu, njegovoj složenosti i broju korištenih biblioteka. Jedina stvar koju vrijedi odmah promijeniti je veličina steka. Ako vaš projekat koristi zadanu veličinu steka od 1 megabajta, onda ima smisla postaviti je na 2 megabajta za 64-bitnu verziju. Ovo nije neophodno, ali je bolje da se uverite unapred. Ako koristite veličinu steka koja nije zadana, onda ima smisla učiniti je 2 puta većom za 64-bitnu verziju. Da biste to učinili, u postavkama projekta pronađite i promijenite parametre Stack Reserve Size i Stack Commit Size. Ovdje bi bilo dobro govoriti o tipičnim problemima koji se javljaju u fazi kompajliranja 64-bitne konfiguracije. Razmotrite koji problemi nastaju sa bibliotekama trećih strana, recite da kompajler u kodu povezanom sa WInAPI funkcijama više neće dozvoliti da se pokazivač stavi u tip LONG i da ćete morati da modernizujete svoj kod i koristite tip LONG_PTG. I mnoge mnoge druge. Nažalost, toga ima toliko, a greške su toliko raznolike da se to ne može prikazati u okviru jednog članka, pa čak i, možda, knjige. Morat ćete proći kroz sve greške koje će kompajler dati i nova upozorenja kojih prije nije bilo, te u svakom slučaju smisliti kako modernizirati kod.

Kolekcija linkova na resurse posvećene razvoju 64-bitnih aplikacija može djelomično olakšati život: http://www.viva64.com/links/64-bit-development/. Zbirka se stalno ažurira i autor će biti zahvalan čitateljima ako mu pošalju linkove na resurse koji, po njihovom mišljenju, zaslužuju pažnju.

Ovdje ćemo se fokusirati samo na tipove koji mogu biti od interesa za programere prilikom migracije aplikacija. Ovi tipovi su predstavljeni u tabeli N3. Većina grešaka u kompilaciji će biti uzrokovana upotrebom ovih tipova.

Vrstu Dimenzija tipa na x32 / x64 platformi Bilješka
int 32 / 32 osnovni tip. Na 64-bitnim sistemima, ostao je 32-bitni.
dugo 32 / 32 osnovni tip. Na 64-bitnim Windows sistemima, ostao je 32-bitni. Imajte na umu da je na 64-bitnim Linux sistemima ovaj tip proširen na 64-bitne. Imajte ovo na umu ako razvijate kod koji treba kompajlirati i za Windows i za Linux sisteme.
size_t 32 / 64 Osnovni nepotpisani tip. Veličina tipa se bira na način da se u njega može upisati maksimalna veličina teoretski mogućeg niza. Pokazivač se može sigurno postaviti u tip size_t (izuzetak su pokazivači funkcije klase, ali ovo je poseban slučaj).
ptrdiff_t 32 / 64 Slično kao size_t, ali potpisano. Rezultat izraza u kojem se jedan pokazivač oduzima od drugog (ptr1-ptr2) će biti samo tipa ptrdiff_t.
Pointer 32 / 64 Veličina pokazivača direktno zavisi od bitnosti platforme. Budite oprezni kada bacate pokazivače na druge tipove.
__int64 64 / 64 Potpisani 64-bitni tip.
DWORD 32 / 32 32-bitni neoznačeni tip. Deklarisano u WinDef.h kao: typedef unsigned long DWORD;
DWORDLONG 64 / 64 64-bitni neoznačeni tip. Deklarisano u WinNT.h kao: typedef ULONGLONG DWORDLONG;
DWORD_PTR 32 / 64 Neoznačeni tip u koji se može postaviti pokazivač. Deklarisano u BaseTsd.h kao: typedef ULONG_PTR DWORD_PTR;
DWORD32 32 / 32 32-bitni neoznačeni tip. Deklarisano u BaseTsd.h kao: typedef unsigned int DWORD32;
DWORD64 64 / 64 64-bitni neoznačeni tip. Deklarisano u BaseTsd.h kao: typedef unsigned __int64 DWORD64;
HALF_PTR 16 / 32 Polu pokazivača. Deklarisano u Basetsd.h kao: #ifdef _WIN64 typedef int HALF_PTR;#else typedef short HALF_PTR;#endif
INT_PTR 32 / 64 Potpisani tip u koji se može postaviti pokazivač. Deklarisano u BaseTsd.h kao: #if definisan(_WIN64) typedef __int64 INT_PTR; #else typedef int INT_PTR;#endif
DUGO 32 / 32 Predpisani tip koji ostaje 32-bitni. Stoga bi se LONG_PTR sada trebao koristiti u mnogim slučajevima. Deklarisano u WinNT.h kao: typedef long LONG;
LONG_PTR 32 / 64 Potpisani tip u koji se može postaviti pokazivač. Deklarisano u BaseTsd.h kao: #if definisan(_WIN64) typedef __int64 LONG_PTR; #else typedef long LONG_PTR;#endif
LPARAM 32 / 64 Parametar za slanje poruka. Deklarisano u WinNT.h kao: typedef LONG_PTR LPARAM;
SIZE_T 32 / 64 Analog tipa size_t. Deklarisano u BaseTsd.h kao: typedef ULONG_PTR SIZE_T;
SSIZE_T 32 / 64 Analog tipa ptrdiff_t. Deklarisano u BaseTsd.h kao: typedef LONG_PTR SSIZE_T;
ULONG_PTR 32 / 64 Neoznačeni tip u koji se može postaviti pokazivač. Deklarisano u BaseTsd.h kao:#if definiran(_WIN64) typedef unsigned __int64 ULONG_PTR;#else typedef unsigned long ULONG_PTR;#endif
WORD 16 / 16 Neoznačeni 16-bitni tip. Deklarisano u WinDef.h kao: typedef unsigned short WORD;
WPARAM 32 / 64 Parametar za slanje poruka. Deklarisano u WinDef.h kao: typedef UINT_PTR WPARAM;
Tabela N3. Vrste od interesa prilikom prenosa 32-bitnih programa na 64-bitne Windows sisteme. Ako mislite da ćete nakon popravljanja svih grešaka u kompilaciji dobiti dugo očekivanu 64-bitnu aplikaciju, onda ćete morati razočarati. Najteže je pred nama. U fazi kompilacije popravit ćete najočitije greške koje je kompajler mogao otkriti, a koje se uglavnom odnose na nemogućnost implicitnog uvođenja tipova. Ali ovo je vrh ledenog brega. Većina grešaka je skrivena. Ove greške izgledaju sigurno sa stanovišta apstraktnog C++ jezika ili su maskirane eksplicitnim konverzijama tipova. Takvih grešaka je nekoliko puta više od broja grešaka otkrivenih u fazi kompilacije.

Ne oslanjajte se na ključ /Wp64. Ovaj ključ se često reklamira kao odličan alat za pronalaženje 64-bitnih grešaka. U stvari, prekidač /Wp64 omogućava samo da se prilikom kompajliranja 32-bitnog koda dobiju neka upozorenja da će određeni dijelovi koda biti netačni u 64-bitnom načinu rada. Prilikom kompajliranja 64-bitnog koda, ova upozorenja će ionako biti izdana od strane kompajlera. Stoga, prilikom kompajliranja 64-bitne aplikacije, ključ /Wp64 se zanemaruje. Štaviše, ovaj ključ neće pomoći u pronalaženju skrivenih grešaka.

Pogledajmo neke primjere skrivenih grešaka. Najjednostavnija, ali nikako najlakša klasa grešaka za otkrivanje povezana je s eksplicitnim uvođenjem tipova, u kojem se značajni bitovi skraćuju. Uobičajeni primjer je prebacivanje pokazivača na 32-bitne tipove kada ih prosljeđuje funkcijama kao što je SendMessage:

MyObj* pObj = ... ::SendMessage(hwnd, msg, (WORD)x, (DWORD)pObj);
Ovdje se eksplicitno pretvaranje koristi za pretvaranje pokazivača u numerički tip. Za 32-bitnu arhitekturu, gornji primjer je ispravan, budući da je posljednji parametar funkcije SendMessage tipa LPARAM, koji je isti kao DWORD na 32-bitnoj arhitekturi. Za 64-bitnu arhitekturu, upotreba DWORD-a je pogrešna i treba je zamijeniti LPARAM-om. Tip LPARAM ima veličinu od 32 ili 64 bita u zavisnosti od arhitekture.

Ovo je jednostavan slučaj, ali često tipkast izgleda elegantnije i ne može se otkriti pomoću upozorenja kompajlera ili pretraživanja kroz tekst programa. Eksplicitni tipovi potiskuju dijagnostiku kompajlera jer su dizajnirani da kažu kompajleru da je tipka ispravna i da je programer preuzeo odgovornost za sigurnost koda. Ni eksplicitna pretraga neće pomoći. Tipovi možda nisu standardna imena (navedena od strane programera putem typedef-a), a takođe postoji mnogo načina da se implementira eksplicitno uvođenje tipova. Za pouzdanu dijagnostiku ovakvih grešaka potrebno je koristiti samo posebne alate, kao što su analizatori Viva64 ili PC-Lint.

Sljedeći primjer se već odnosi na implicitnu konverziju tipa, što također uzrokuje gubitak značajnih bitova. Kôd funkcije fread čita iz datoteke, ali je netačan kada pokušavate pročitati više od 2 gigabajta podataka na 64-bitnom sistemu.

size_t __fread(void * __restrict buf, size_t size, size_t count, FILE * __restrict fp); size_t fread(void * __restrict buf, size_t size, size_t count, FILE * __restrict fp) ( int ret; FLOCKFILE(fp); ret = __fread(buf, size, count, fp); FUNLOCKFILE(fp); return (ret) ;)
Funkcija __fread vraća tip size_t, ali tip int se koristi za pohranjivanje broja pročitanih bajtova. Kao rezultat toga, s velikim količinama podataka koji se čitaju, funkcija može vratiti drugačiji broj bajtova od onih koji će stvarno biti pročitani. Možete reći da je ovo nepismen početnički kod, da će kompajler prijaviti takav tip cast, i da je općenito takav kod lako pronaći i popraviti. Ovo je teoretski. Ali praktično u stvarnom životu s velikim projektima sve može biti drugačije. Ovaj primjer je preuzet iz FreeBSD izvornog koda. Greška je ispravljena tek u decembru 2008! Ovo je uprkos činjenici da je prva (eksperimentalna) 64-bitna verzija FreeBSD-a objavljena još u junu 2003. godine. Evo izvornog koda prije popravka:

http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/stdio/fread.c?rev=1.14

A evo ispravljene verzije (decembar 2008) godine:

http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libc/stdio/fread.c?rev=1.15

Lako je napraviti grešku u kodu koji radi sa pojedinačnim bitovima. Sljedeća vrsta greške povezana je s operacijama smjene. Razmotrimo primjer:

ptrdiff_t SetBitN(ptrdiff_t vrijednost, nepotpisani broj bita) ( ptrdiff_t maska ​​= 1
Gornji kod radi na 32-bitnoj arhitekturi i omogućava vam postavljanje bitova s ​​brojevima od 0 do 31 do jedan. Nakon portiranja programa na 64-bitnu platformu, bit će potrebno postaviti bitove od 0 do 63. Ali ovaj kod nikada neće postaviti bitove s brojevima 32-63. Imajte na umu da je "1" tipa int, a pomicanje 32 pozicije će se preliti, kao što je prikazano na slici 5. Da li ćemo završiti sa 0 (slika 5-B) ili 1 (slika 5-C) zavisi od implementacije kompajlera.

Slika 5. A - Ispravno podešavanje 31. bita u 32-bitnom kodu; B,C - Greška pri postavljanju 32. bita na 64-bitnom sistemu (dva ponašanja) Da biste popravili kod, potrebno je da napravite konstantu "1" istog tipa kao promenljiva maske:

ptrdiff_tmask = ptrdiff_t(1)
Imajte na umu da će neispravljeni kod dovesti do još jedne zanimljive greške. Prilikom postavljanja 31 bita na 64-bitnom sistemu, rezultat funkcije će biti vrijednost 0xffffffff80000000 (vidi sliku 6). Rezultat izraza 1 size_t Veličina niza = N * 4; size_t *Niz = (veličina_t *)malloc(Veličina polja); Glavni brojevi s kojima treba postupati s oprezom pri prelasku na 64-bitnu platformu dati su u Tabeli N4.

Tabela N4. Osnovne magične vrijednosti koje su opasne pri prijenosu aplikacija sa 32-bitne na 64-bitne platforme Programi koji obrađuju velike količine podataka mogu naići na greške vezane za indeksiranje velikih nizova ili vječnih petlji. Sljedeći primjer sadrži 2 greške odjednom:

const size_t veličina = ...; char *array = ...; char *end = niz + veličina; za (nepotpisan i = 0; i != veličina; ++i) ( const int jedan = 1; end[-i - jedan] = 0; )
Prva greška je da ako veličina obrađenih podataka prelazi 4 gigabajta (0xFFFFFFFF), može doći do vječne petlje, jer je varijabla "i" tipa "unsigned" i nikada neće dostići vrijednost 0xFFFFFFFF. Posebno pišem da je pojava moguća, ali ne mora da će se desiti. Zavisi od toga koji će kod kompajler napraviti. Na primjer, u debug modu, vječna petlja će biti prisutna, au izdanju koda petlja će nestati, pa će kompajler odlučiti optimizirati kod koristeći 64-bitni registar za brojač i petlja će biti ispravna. Sve ovo stvara konfuziju, a kod koji je radio jučer može iznenada prestati da radi sledećeg dana. Druga greška se odnosi na prolazak kroz niz od kraja do početka, za koji se koriste negativne vrijednosti indeksa. Gornji kod je operativan u 32-bitnom režimu, ali kada se pokrene na 64-bitnoj mašini, pri prvoj iteraciji petlje, nizu će se pristupiti i program će se srušiti. Razmotrimo razloge ovakvog ponašanja. Prema pravilu jezika C++ na 32-bitnom sistemu, izraz "-i - jedan" će se procijeniti na sljedeći način (u prvom koraku i = 0):
  1. Izraz "-i" je tipa unsigned i ima vrijednost 0x00000000u.
  2. Varijabla "one" će biti proširena sa tipa "int" na tip unsigned i bit će jednaka 0x00000001u. Napomena: Tip int je proširen (prema standardu jezika C++) na tip "unsigned" ako učestvuje u operaciji u kojoj je drugi argument tipa unsigned.
  3. Događa se operacija oduzimanja koja uključuje dvije vrijednosti tipa bez predznaka i rezultat operacije je 0x00000000u - 0x00000001u = 0xFFFFFFFFu. Imajte na umu da je rezultat neoznačenog tipa.
  4. Na 32-bitnom sistemu, pristup nizu na indeksu 0xFFFFFFFFu je ekvivalentan korištenju indeksa -1. To jest, kraj je analogan end[-1]. Kao rezultat toga, element niza se pravilno obrađuje.
U 64-bitnom sistemu, slika će biti drugačija u zadnjem pasusu. Nepotpisani tip će biti proširen na potpisani ptrdiff_t, a indeks niza će biti 0x00000000FFFFFFFFi64. Kao rezultat toga, niz će biti izvan granica. Da biste ispravili kod, trebate koristiti tipove kao što su ptrdiff_t i size_t. Ima grešaka za koje, generalno, niko nije kriv, ali to ih ne sprečava da budu greške. Zamislite da je davno u dalekoj galaksiji (u Visual Studio 6.0) razvijen projekat u kojem je prisutna klasa CSampleApp, koja je potomak CWinApp-a. Osnovna klasa ima WinHelp virtualnu funkciju. Nasljednik nadjačava ovu funkciju i izvodi potrebne radnje. Vizuelno, to je prikazano na slici 7.

Slika 7. Radni ispravni kod koji je kreiran u Visual Studio 6.0 Zatim se projekat prenosi u Visual Studio 2005, gdje je prototip WinHelp funkcije promijenjen, ali to niko ne primjećuje, jer u 32-bitnom načinu rada tipovi DWORD i DWORD_PTR su isti i program nastavlja da radi ispravno (slika 8).

Slika 8. Neispravan, ali izvodljiv 32-bitni kod Greška čeka da se manifestuje u 64-bitnom sistemu, gdje su veličine tipova DWORD i DWORD_PTR različite (Slika 9). Ispostavilo se da u 64-bitnom načinu rada klase sadrže dvije RAZLIČITE WinHelp funkcije, što je prirodno netačno. Imajte na umu da se takve zamke mogu sakriti ne samo u MFC-u, gdje su neke funkcije promijenile tipove svojih argumenata, već i u kodu vaših aplikacija i biblioteka trećih strana.

Slika 9. Greška se manifestuje u 64-bitnom kodu. Primjeri takvih 64-bitnih grešaka mogu se dati i dati. Oni koji su zainteresovani za ovakve greške i žele da saznaju više o njima biće zainteresovani za članak "20 zamki prenosa C++ koda na 64-bitnu platformu". Kao što vidite, faza traženja skrivenih grešaka je netrivijalan zadatak, pogotovo jer će se mnoge od njih pojavljivati ​​neredovno ili samo na velikim količinama ulaznih podataka. Statički analizatori koda su vrlo pogodni za dijagnosticiranje ovakvih grešaka, jer mogu provjeriti cijeli kod aplikacije, bez obzira na ulazne podatke i učestalost izvršavanja njegovih sekcija u realnim uvjetima. Ima smisla koristiti statičku analizu kako u fazi portiranja aplikacije na 64-bitne platforme kako bi se većina grešaka pronašla u samoj početnoj fazi, tako i u daljem razvoju 64-bitnih rješenja. Statička analiza će upozoriti i naučiti programera da bolje razumije karakteristike grešaka povezanih sa 64-bitnom arhitekturom i napiše efikasniji kod. Autor članka je programer jednog od takvih specijalizovanih analizatora koda pod nazivom Viva64. Možete se detaljnije upoznati sa alatom i preuzeti demo verziju sa web stranice kompanije LLC "Program Verification Systems". Da budemo pošteni, analizatori koda kao što su Gimpel PC-Lint i Parasoft C++Test imaju skupove pravila za dijagnosticiranje 64-bitnih grešaka. Ali, prvo, ovo su analizatori opće namjene i pravila za dijagnosticiranje 64-bitnih grešaka u njima su slabo zastupljena. Drugo, oni su više fokusirani na LP64 model podataka koji se koristi u Linux porodici operativnih sistema, što smanjuje njihovu korisnost za Windows programe koji koriste LLP64 model podataka. Korak traženja grešaka u programskom kodu opisan u prethodnom odeljku je neophodan, ali ne i dovoljan korak. Nijedna metoda, uključujući statičku analizu koda, ne daje potpunu garanciju za otkrivanje svih grešaka, a najbolji rezultat se može postići samo kombinacijom različitih metoda.

Ako vaš 64-bitni program obrađuje više podataka od 32-bitne verzije, morate proširiti testove tako da uključuje obradu podataka većih od 4 gigabajta. Ovo je granica iza koje se počinju manifestirati mnoge 64-bitne greške. Takvi testovi mogu potrajati za red veličine više vremena i za to morate biti spremni unaprijed. Obično su testovi napisani na takav način da obrađuju mali broj elemenata u svakom testu i na taj način mogu proći sve interne testove jedinice, na primjer? za nekoliko minuta, a automatizirani testovi (na primjer, korištenjem AutomatedQA TestComplete) za nekoliko sati. Funkcija sortiranja na 32-bitnom sistemu, ako sortira 100 elemenata, ponašat će se ispravno na 100.000 elemenata uz gotovo punu garanciju. Ali ista funkcija na 64-bitnom sistemu može propasti kada pokušate obraditi 5 milijardi elemenata. Brzina izvođenja testa jedinice može se smanjiti milionima puta. Ne zaboravite da uključite i cenu adaptacije testa kada savladavate 64-bitne sisteme. Jedno rješenje je razdvajanje jediničnih testova na brze (koji rade s malom količinom memorije) i spore, obrađujući gigabajte i rade, na primjer, noću. Automatsko testiranje resursno intenzivnih 64-bitnih programa može se izgraditi na bazi distribuiranog računarstva.

Neki korisnici traže odgovor na pitanje kako preći sa 32 na 64 bita u Windows operativnom sistemu. Činjenica je da je počevši od Windowsa 7 počeo istovremeno objavljivati ​​izdanja sistema u 32-bitnoj (x86) i 64-bitnoj (x64) verziji operativnog sistema.

Ranije je Windows operativni sistem bio 32-bitni. Postepeno, sa razvojem arhitekture procesora, postalo je moguće podržati 64-bitni sistem (počelo je sa izdavanjem Windows XP Professional x64 Edition).

Trenutno proizvođači računara (desktopovi, laptopi) uglavnom instaliraju 64-bitne Windows operativne sisteme na svoje uređaje, jer svi moderni centralni procesori podržavaju x64 setove instrukcija.

Microsoft pruža mogućnost nadogradnje sa 32-bitnog na 64-bitni Windows. Kada promenite bitnost sistema, Windows aktivacija neće uspeti, jer licenca ne zavisi od bitnosti operativnog sistema.

Glavne razlike između 32-bitnog Windows-a i 64-bitnog Windows-a

Windows operativni sistem ima dvije verzije dubine bita: 32-bitnu i 64-bitnu, koje imaju oznake: 32-bit (x86). 64-bitni (x64).

64-bitni sistem obrađuje velike količine proračuna efikasnije od 32-bitnog OS. U 64-bitnom Windowsu, aplikacije koje zahtijevaju velike resurse troše manje vremena na rad nego u sličnom 32-bitnom sistemu. Sistem radi brže kada je više aplikacija pokrenuto u isto vrijeme.

Glavna razlika, pored poboljšanja ukupnih performansi, je podrška za rad sa određenom količinom memorije. U 32-bitnoj verziji Windowsa, zbog specifičnosti arhitekture sistema, koristi se samo manje od 4 GB RAM-a instalirane na računaru.

Ako vaš Windows x86 računar ima instalirano do 3 GB RAM-a, operativni sistem koristi svu dostupnu memoriju. Ako računar ima instalirano 4 GB memorije, tada će sistem koristiti nešto više od 3 GB RAM-a. Čak i sa ukupnom RAM memorijom (6 GB, 8 GB, itd.) dostupnom na 32-bitnom Windowsu, i dalje će biti dostupno samo manje od 4 GB memorije.

U 64-bitnom Windowsu ovaj problem ne postoji, jer takav sistem podržava količinu RAM-a (do 16 TB) dovoljnu za bilo koju modernu konfiguraciju računara.

Rad aplikacija u Windows operativnom sistemu različitih tipova (x86 i x64) ima razlike:

  • u Windows x64, možete instalirati 64-bitne i 32-bitne programe (64-bitne aplikacije su podrazumevano instalirane u fasciklu Program Files, a 32-bitne aplikacije u fascikli Program Files (x86) na sistemskoj disk jedinici);
  • u Windows x86 instalirani su samo 32-bitni programi, a instalacija 64-bitnih aplikacija nije podržana.

Većina programa kreiranih za Windows podržava 32 bita. Ove aplikacije se mogu instalirati na računar sa bilo kojom dubinom bita, radit će ako program podržava određenu verziju Windows-a (Windows 10, Windows 8, Windows 7, itd.).

Nedavno su mnogi programeri aplikacija objavili programe dva tipa: za 32-bitne i 64-bitne sisteme. Stoga ima smisla instalirati programe na računar, u skladu sa dubinom bita operativnog sistema. 64-bitne aplikacije rade efikasnije od 32-bitnih programa na 64-bitnom Windows-u.

Imajući ova razmatranja na umu, ostaje da naučimo kako se prebaciti sa 32 bita na 64. Ali nije sve tako jednostavno.

Preduslov za prelazak sa 32-bitnog na 64-bitni Windows

Da li je moguće promijeniti 32-bitni sistem u 64-bitni Windows? Da, moguće je, ali kada se mijenja bitna dubina sistema, postoje nijanse. Bez poštovanja određenih uslova, promena 32-bitnog sistema u 64-bitni sistem neće raditi.

Glavni uslov za prelazak na drugu dubinu bita sistema je da centralna procesorska jedinica (CPU) instalirana na računaru podržava 64-bitne instrukcije. Bez ovog uslova, instaliranje 64-bitnog Windowsa na računar neće biti moguće.

Kako odrediti bitnost Windows operativnog sistema, koju bitnost podržava procesor instaliran na računaru? Najlakši način da se to utvrdi je pomoću operativnog sistema. Da biste odredili parametre procesora u smislu 64-bitne podrške, možete koristiti aplikacije trećih strana, na primjer, itd.

Glavne razlike između tipova procesora, ovisno o podršci instrukcija za odgovarajuću bitnu dubinu (x86 i x64):

  • Procesor x64 - instalacija na računar 64 i 32 bit Windows je podržana.
  • x86 procesor - na računar se može instalirati samo 32-bitna verzija Windows-a.

Iz ovoga proizilazi da se 32-bitna verzija Windows-a može instalirati na bilo koji računar (podložno minimalnim zahtjevima za PC hardver), a 64-bitni Windows se instalira samo na računarima sa 64-bitnim procesorima.

Da biste instalirali 64-bitni Windows, vaš računar mora imati najmanje 2 GB RAM-a.

Tip procesora na vašem računaru možete saznati prateći dolenavedena uputstva za operativne sisteme Windows 10, Windows 8.1 (Windows 8), Windows 7.

Kako saznati podržava li procesor x64 upute u Windows 10

Da biste saznali podržava li procesor instaliran na računaru 64-bitna uputstva u operativnom sistemu Windows 10, slijedite ove korake:

  1. Na radnoj površini kliknite na ikonu "Ovaj računar" (Moj računar). Ako ova ikona nije na radnoj površini vašeg računara, koristite metod da vratite ikonu "Moj računar" na radnu površinu.
  2. U kontekstnom izborniku koji se otvori odaberite "Svojstva".
  3. U prozoru "Sistem" (Prikaži osnovne informacije o vašem računaru), u odeljku "Sistem", u parametru "Tip sistema", videćete vrstu bitnosti operativnog sistema i podršku za tip instrukcija procesor.

U ovom slučaju, oznaka: “x64 procesor” znači da centralni procesor podržava instalaciju 64-bitnog operativnog sistema (Windows 10 64-bitni je instaliran na računaru).

Kako saznati podržava li procesor 64-bitni Windows 8.1 (Windows 8)

Na Windows 8.1 ili Windows 8 operativnom sistemu uradite sledeće:

  1. Pomerite kursor miša u donji desni ugao ekrana, izaberite Opcije.
  2. Prozor sistema će prikazati "Prikaži osnovne informacije o vašem računaru." U parametrima "System" => "System type" je naznačena bitna dubina Windows-a i koja dubina bita podržava centralni procesor.

Ovaj računar koristi 32-bitni Windows 8.1, PC ima procesor koji podržava x64 instrukcije. Na ovaj sistem možete instalirati 64-bitni Windows 8.1.

Kako saznati da li procesor ima 64-bitnu podršku u Windows 7 ili ne

Na operativnom sistemu Windows 7 uradite sledeće:

  1. Kliknite desnim tasterom miša na ikonu "Računar" (Moj računar) na radnoj površini.
  2. Odaberite "Svojstva" iz kontekstnog izbornika.
  3. U prozoru "Prikaz osnovnih informacija o vašem računaru" kliknite na "Indeks iskustva Windows".

  1. U prozoru "Procijenite i poboljšajte performanse vašeg računara" kliknite na "Prikaži i odštampaj detaljne informacije o performansama vašeg računara i sistema".
  2. U prozoru "Brojači i alati" koji se otvori, u odjeljku "Dodatne informacije o računaru", u parametru "Sistem", nasuprot stavke "64-bitna podrška", pisaće "Da" ili "Ne" .

Računar ima 32-bitni operativni sistem, procesor podržava 64-bitne operativne sisteme. Ovaj računar podržava nadogradnju na Windows 7 64-bit.

Prednosti i nedostaci prelaska na 64-bitni Windows

Prije nego što promijenite tip sistema sa 32-bitnog na 64-bitni, morate odvagnuti sve prednosti i nedostatke ove odluke. Na prvi pogled se čini da je korist od promjene bitne dubine sistema očigledna, ali nije sve tako jednostavno.

Glavne prednosti 64-bitnog operativnog sistema:

  • Koristeći svu količinu RAM-a (više od 4 GB) instalirane na računaru.
  • Veća brzina sistema i programa.

Glavni nedostaci 64-bitnog operativnog sistema:

  • Trošenje više RAM-a od strane sistema i aplikacija.
  • Nedostatak x64 drajvera za stari hardver.

Većina korisnika, nakon promjene Windows 32-bitnog na 64-bitni sistem, želi dobiti povećanje performansi računara. U modernim igrama, u teškim grafičkim aplikacijama, najoptimalnije je implementirano korištenje računarskih resursa u 64-bitnom sistemu. Stoga su mnogi korisnici zainteresovani za prebacivanje zbog kompjuterskih igrica, programa koji rade samo na Windows-u sa 64 bita itd.

Ako prilično moderan računar ima više od 4 GB RAM-a, a zbog nekog nesporazuma ima instaliranu 32-bitnu verziju Windows-a, očigledno ima smisla preći na 64-bitni sistem.

Korisnici računara sa zastarjelim hardverom, sa 2-4 GB memorije, moraju sve pažljivo izvagati. U većini slučajeva, igranje modernih igrica ili korištenje "teških" programa neće raditi zbog nedostatka memorije. Sistem i pokrenuti programi će zauzeti više prostora u memoriji računara od sličnih aplikacija u 32-bitnom Windows-u. Slab procesor neće dati pozitivan efekat. U nekim slučajevima, 64-bitni sistem će raditi sporije na računaru nego 32-bitni Windows.

Obratite pažnju na prisustvo drajvera neophodnih za normalan rad računarskog hardvera. Unaprijed preuzmite drajvere sa web stranice proizvođača. Ako to nije moguće, za instaliranje potrebnih drajvera, nakon instalacije sistema, koristite specijalizirane programe, na primjer, itd.

U zavisnosti od hardvera, drajveri mogu podržavati obe dubine bita ili je potreban poseban drajver za svaku dubinu bita.

Kako nadograditi sa 32-bitnog na 64-bitni Windows

Postoji samo jedna opcija za prelazak na 64-bitni sistem: čista ponovna instalacija Windows-a sa gubitkom podataka na sistemskom disku. Procedura je sljedeća:

  • Preuzmite operativni sistem Windows, 64-bitni, na svoj računar. Pročitajte gdje možete preuzeti originalnu sliku Windows 10, Windows1, Windows 7.
  • Napravite fleš disk za pokretanje ili snimite sliku sistema na DVD.
  • Uključite računar, pre pokretanja sistema, uđite u BIOS (UEFI), izaberite Windows medij za pokretanje za pokretanje.
  • Instalirajte operativni sistem na svom računaru.
  • Nakon što je instalacija sistema završena, instalirajte potrebne drajvere.
    • U jednom od instalacionih prozora morate odabrati odgovarajuće izdanje Windowsa odgovarajuće bitnosti (sada postoji više slika Windowsa koje uključuju različita izdanja različitih bitnih dubina u jednoj sistemskoj slici).
    • U prozoru "Odaberite vrstu instalacije" odaberite "Prilagođeno: instalirajte samo Windows (napredno)" u Windows 10 ili Windows1, ili "Potpuna instalacija (napredne opcije)" u Windows 7.

    Nakon završetka instalacije, Windows 10 64-bitni će se pojaviti na računaru.

    Članak Zaključci

    Moguće je promijeniti 32-bitni operativni sistem u 64-bitni Windows unutar jednog izdanja. Za uspješnu tranziciju, računar mora imati procesor koji podržava x64 instrukcije, dovoljnu količinu RAM-a.

Top Related Articles