Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Željezo
  • 32-bitni program na 64-bitnom sustavu. Upravljanje datotekama i postavkama registra u WOW64

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

Pojava 64-bitnog Windowsa pokrenula je mnoga pitanja. Podrška za 32-bitne aplikacije, upravljačke programe i sve što je dizajnirano za x86 arhitekturu. Instalacija i značajke korištenja programa. Uvedena ograničenja za 32-bitne aplikacije. Podrška za stare načine rada i još mnogo toga. Sve to nije moglo stajati po strani. Doista, sloj 32-bitnog naslijeđa je prevelik, a u 64-bitnom okruženju malo se toga može zamijeniti, čak i sada.

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

Bilješka: Prvi pokušaj implementacije 64-bitnih sustava bio je prilično neuspješan. Oštra ograničenja i nedostatak stvarnih beneficija dali su se osjetiti. U to je vrijeme bilo teško pronaći čak i drajvere za 64-bitne sustave. Da ne govorimo o programima na kojima bi se razlika barem nekako osjetila. Uklanjanje ograničenja od 3 GB RAM-a danas je zasigurno jaka prednost, ali je u to vrijeme više izgledalo kao lijep slogan.

Uređaj za podršku za 32-bitne aplikacije na 64-bitnom sustavu Windows

Windows 32 na Windows 64 (WOW64)

WOW64 emulira 32-bitni Windows

U sustavu Windows 64, 32-bitne aplikacije rade na emuliranom 32-bitnom operativnom sustavu pod nazivom Windows 32 na Windows 64, ili skraćeno WOW64. Glavni zadatak WOW64 je presresti i obraditi sve sistemske pozive iz 32-bitnih aplikacija.

Za svaki presretnuti sistemski poziv, WOW64 kreira 64-bitni sistemski poziv, pretvarajući 32-bitne strukture podataka u prikladnu 64-bitnu. Nakon toga, 64-bitni sistemski poziv se prosljeđuje jezgri operacijskog sustava na obradu. Sav primljeni izlaz iz 64-bitnog poziva bit će pretvoren i poslan u formatu koji je aplikacija namjeravala. Drugim riječima, stvarni zahtjevi prema kernelu sustava uvijek su 64-bitni. Podsustav WOW64 djeluje samo kao posrednik, pretvarajući podatke u prikladne formate.

Poput 32-bitnih aplikacija, WOW64 se izvodi u ime korisnika, tako da će se pogreške koje se mogu pojaviti tijekom konverzije poziva sustava pojaviti na razini korisnika. A 64-bitna jezgra operativnog sustava ne utječe ni na koji način.

Činjenica da WOW64, poput 32-bitne aplikacije, radi u korisničkom načinu objašnjava nedostatak podrške za 32-bitne drajvere. Drugim riječima, upravljački programi zahtijevaju način rada jezgre za ispravan rad, što WOW64 ne može pružiti. Stoga, ako imate 64-bitni Windows, svi upravljački programi moraju biti 64-bitni.

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

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

  • Wow64.dll jezgra je infrastrukture sustava emulacije. Povezuje pozive s ulaznim točkama Ntoskrnl.exe
  • Wow64Win.dll - povezuje pozive na Win32k.sys ulazne točke
  • Wow64Cpu.dll - prebacuje procesor između 32-bitnog i 64-bitnog načina
  • Ntdll.dll - 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 knjižnica modificirane su kako bi ispravno radile u WOW64. Obično su takve promjene napravljene zbog činjenice da koriste RAM zajedno sa 64-bitnim komponentama sustava.

Upravljanje datotekama i postavkama registra u WOW64

Osim presretanja i rukovanja sistemskim pozivima, sučelje WOW64 također mora osigurati da se datoteke i postavke registra za 32-bitne aplikacije drže odvojeno od datoteka i ključeva registra za 64-bitne programe. WOW64 koristi dva mehanizma za postizanje ovog cilja. Preusmjeravanje datoteka i registra, kao i dupliciranje ključeva registra. Preusmjeravanje održava logičan prikaz podataka i prikazuje ih kao da se aplikacija izvodi na 32-bitnom sustavu Windows. Dupliciranje ključeva registra osigurava da će promjene brojnih parametara koji su neovisni o bitnosti biti dostupne i 32-bitnim i 64-bitnim aplikacijama.

Preusmjeravanje datoteke

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

32-bitne aplikacijske datoteke instalirane su prema zadanim postavkama u:

  • C: \ Programske datoteke (x86)

32-bitne sistemske datoteke instalirane su u:

  • C: \ WINDOWS \ SysWOW64

Za 64-bitne aplikacije, datoteke 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 trebali bi biti svjesni ove značajke.

Mnoge 64-bitne aplikacije još uvijek koriste 32-bitni način rada i procedure. I oni to ne uzimaju u obzir prilikom izrade instalatera. Kako bi se aplikacija ispravno instalirala. oni. u "C: \ Program Files", instalacijski program mora uputiti sistemski poziv operacijskom sustavu kako bi sustav obustavio mehanizam preusmjeravanja datoteka Wow64. A nakon instalacije izvršite još jedan poziv sustava da ponovno omogućite preusmjeravanje. Ako instalirate bez zaustavljanja preusmjeravanja, program će biti instaliran u "C: \ Program Files (x86)". Klasičan primjer ove pogreške je 64-bitna verzija FireFoxa 3.5, kodnog naziva "Shiretoko", koja je instalirana u "C: \ Program Files (x86) \ Shiretoko". Naravno, Firefox će i dalje dobro funkcionirati. Jedino što ne možete učiniti je promijeniti ikonu aplikacije.

Bilješka: Možda je sada ovaj bug u Shiretoku već ispravljen. 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 \ WOW6432Node

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

  • HKEY_CURRENT_USER \ Software \ WOW6432Node

Ovaj pristup omogućuje 32- i 64-bitne aplikacije da normalno koegzistiraju, bez problema s prepisivanjem međusobnih postavki.

Dvostruki registar

Neki preusmjereni ključevi registra i vrijednosti moraju se duplicirati. To znači da ako 32-bitna aplikacija napravi promjene u preusmjerenom ključu registra, tada se te promjene također moraju primijeniti na grane 64-bitne aplikacije. U ovom slučaju vrijedi načelo „tko je zadnji u pravu“. Na primjer, ako instalirate tri aplikacije koje se vežu na istu ekstenziju datoteke, tada bi povezanost s nastavkom datoteke trebala 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 proširenje XYZ sa sobom

Kao rezultat ovih radnji, dvostrukim klikom na datoteku s ekstenzijom XYZ u Windows Exploreru, trebala bi se otvoriti aplikacija koja je instalirana u 3. koraku. Uostalom, potonji se povezao s ekspanzijom.

Sve se to događa transparentno za 32-bitne aplikacije u Wow64, koji neovisno presreće pozive i duplicira potrebne parametre i ključeve registra. Drugim riječima, 32-bitne aplikacije mogu raditi na standardni način, Wow64 će napraviti potrebne promjene za njih.

Postoji nekoliko ograničenja podsustava WOW64.

Neke, ali ne sve, 64-bitne značajke dostupne su 32-bitnim aplikacijama

Wow64 omogućuje 32-bitnim aplikacijama korištenje nekih značajki i mogućnosti 64-bitnih sustava. Na primjer, ako su ispravno konfigurirane, takve će aplikacije moći koristiti do 4 GB RAM-a. Pristup ostalim funkcijama ograničen je zbog prirode uređaja 64-bitnih sustava. Na primjer, 64-bitni Windows OS podržava 64-bitne logičke operacije. Međutim, 32-bitne aplikacije neće imati pristup njima, moći će 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 ne cilja 64-bitne tipove podataka.

Kod (ubrizgavanje koda) 32-bitnih i 64-bitnih aplikacija ne može se miješati jedan s drugim.

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

Ova činjenica objašnjava zašto većina 32-bitnih proširenja ljuske sustava Windows ne radi na 64-bitnom sustavu Windows. Većina ovih proširenja koristi ubacivanje koda za ugradnju u Windows Explorer

WOW64 ne podržava 16-bitne instalatere

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


Dodatne mogućnosti za pokretanje 32-bitnih aplikacija u sustavu Windows 64

Windows Virtual PC

Windows Virtual PC besplatni je softver koji vam omogućuje pokretanje više operacijskih sustava na jednom računalu. Virtualno računalo pruža posebno okruženje za vrijeme rada koje podržava naslijeđeni hardver i softver koji se neće otkriti i pokrenuti u sustavu Windows 7. Svi operativni sustavi pod Virtualnim računalom radit će na virtualnom stroju. To znači da operativni sustavi koji rade neće znati da rade na drugom sustavu.

Zahtjevi sustava i skup značajki značajno se razlikuju između verzija Virtualnog računala i Windows verzija. Dakle, prije nego pokušate koristiti Virtual PC, morate provjeriti podržava li program i vaš operativni sustav i operacijske sustave koji će se na njemu izvoditi. Na primjer, jedna od najnovijih verzija više ne podržava verzije sustava Windows niže od Windows XP SP3.

Windows XP način rada (XPM)

Windows XP način je specifična i skraćena implementacija Windows Virtual PC-a koji dolazi s unaprijed instaliranom kopijom Windows XP Professional SP3. Ovaj način rada dostupan je samo u Enterprise, Ultimate i Professional izdanjima sustava Windows 7 64-bit.

Bez obzira na mogućnosti koje bi ovaj način trebao predstavljati, mnogi koji su koristili XPM snažno savjetuju korištenje ovog načina rada samo kao posljednje sredstvo. U usporedbi s drugim proizvodima za virtualizaciju, performanse su razočaravajuće, a zadana konfiguracija izaziva niz sigurnosnih problema.

Bilješka: Još uvijek se mogu konzultirati neke detaljnije postavke načina kompatibilnosti. Više informacija možete pronaći u pregledu Kako pokrenuti stare programe na Windows 7 / Vista? (pogledajte Microsoftov paket alata za kompatibilnost aplikacija).

Windows Multiboot

Možete instalirati više od jedne verzije sustava Windows na jedno računalo pomoću multi-boot loadera. Na primjer, instalirajte 32-bitni i 64-bitni Windows jedan pored drugog. Svaki operativni sustav instaliran je na zasebnoj particiji diska, a upravitelj pokretanja je instaliran na particiji prema zadanim postavkama. Boot Manager vam omogućuje da odaberete i pokrenete operativni sustav koji želite koristiti upravo sada.

Iako ne možete koristiti više od jednog operacijskog sustava u isto vrijeme, ova je funkcionalnost vrlo korisna. U usporedbi s virtualnim strojevima, ova metoda nema problema s kompatibilnošću i mnogo je lakša za konfiguriranje i održavanje. Između ostalog, instaliranjem 32-bitne verzije uz 64-bitnu verziju, i dalje ćete moći pokretati 16-bitne aplikacije.

Rezimirajući ono što je rečeno o 32-bitnoj podršci za 64-bitni Windows

Većina 32-bitnih aplikacija bit će zadovoljna sa sustavom Windows 64. Glavne iznimke su:

  1. 32-bitni upravljački programi uređaja
  2. Aplikacije koje ne mogu funkcionirati bez 32-bitnih upravljačkih programa uređaja koje koriste. Antivirusni i drugi sigurnosni programi su najbolji primjeri.
  3. Proširenja koja koriste ubrizgavanje koda. Na primjer, ljuske za Windows Explorer

Neke aplikacije će se moći izvoditi s ograničenjima. To se također odnosi na programe za deinstalaciju, č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 mogućnosti virtualizacije ili višestrukog pokretanja nekoliko operacijskih sustava.

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

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

Kada se uspoređuju 32-bitne i 64-bitne aplikacije u njihovim izvornim okruženjima, 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 izravno utječe na vrijeme pokretanja i zatvaranja programa, kao i na druge vrste operacija povezanih s pristupom diskovnim pogonima. To obično znači da će 32-bitne aplikacije raditi brže. Međutim, korištenje 64-bitnih značajki od strane 64-bitnih programa potencijalno omogućuje aplikaciji pokretanje 25% brže od 32-bitnih programa.

Također, zapamtite da pokretanje 32-bitne aplikacije na 64-bitnom sustavu Windows znači pokretanje Wow64, pa se analiza performansi na 32-bitnom procesoru može ostaviti po strani. Pokretanje Wow64 znači ne samo trošak pretvorbe poziva, već i uzimanje u obzir mehanizama preusmjeravanja i dupliciranja, koji zahtijevaju ne samo CPU vrijeme, već i RAM. Stoga je moguće da će 32-bitna aplikacija raditi brže od 64-bitne, ali će svakako raditi sporije od ekvivalentne aplikacije na 32-bitnom procesoru.

Ocjena 5.00 (6 glasova)


Kako pokrenuti igru ​​na 32-bitnom sustavu ako zahtijeva 64-bitni sustav, upute.

Vjerojatno ž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 sustav. Stoga vlasnici računala s 32-bitnim sustavom, prilikom pokušaja pokretanja nekih programa, mogu naići na pogrešku poput "Verzija ove datoteke nije kompatibilna s verzijom Windowsa koja se koristi ...".

Ovakva pogreška označava da je igra koju pokušavate instalirati na svoje računalo za 64-bitni sustav, a ne za 32-bitni. Činjenica je da, za razliku od 64-bitnog sustava, 32-bitni sustav može pokretati programe dizajnirane samo za njega.

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

  • Kroz "Start" uđite u "Upravljačku ploču".
  • Odaberite odjeljak "Sustav i sigurnost" i kliknite na "Sustav".
  • Nasuprot retka s nazivom "Tip sustava" bit će njegov kapacitet.

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

Ako se pokaže da je OS 32-bitni, a trebate instalirati 64-bitni, tada nije potrebno ponovno instalirati Windows. Riječ je o tome kako riješiti sličan problem i bit će detaljnije opisan u ovom članku.

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

Prije svega, treba shvatiti da ukupna količina RAM-a na računalu ovisi o tome koji se sustav koristi. Osim toga, koliko prostora se može dodijeliti za određenu aplikaciju ovisi o bitnom kapacitetu sustava.

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

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

Također, brzina obrade ovisi i o bitnom kapacitetu procesora. To jest, u slučaju x64, opterećenje je ravnomjerno raspoređeno na sve jezgre računala. A u x32, druga kernel počinje tek nakon što je prva potpuno učitana.

Osim toga, postoji još jedna prilično važna točka - 64-bitni sustav nije prikladan za slaba računala. Stoga je pri kupnji računala bolje odmah kupiti x64, jer ova opcija može pokrenuti sve aplikacije. Čak i one dizajnirane za 32-bitne sustave.

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

Programi za stvaranje gostujućeg OS-a

Postoje uslužni programi koji vam omogućuju da oponašate rad sustava u kojima postoji određeni softver i hardver. Međutim, u ovom slučaju preporuča se koristiti samo licencirane verzije softvera za obradu slika.

Rad takvih uslužnih programa temelji se na stvaranju takozvane gostujuće verzije OS-a. Istodobno, da biste ga stvorili, trebat će vam disk ili njegova slika, sa željenim OS-om.

Među programima koji vam omogućuju stvaranje gostujućeg operativnog sustava su:

  • Oracle VirtualBox.
  • VMware Worstation.
  • Windows Virtual PC, itd.

Udaljeni poslužitelji

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

Bit ove opcije je da vas neće smetati ograničenja na koja možete naići na x32 OS-u. Budući da će se igre i drugi programi izvoditi na sustavima koji su im potrebni.

Na primjer, program kao što je Microsoft Azure omogućuje stvaranje više operativnih sustava odjednom. Za one koji vole igrati, može se koristiti NVIDIA GRID. Uz njegovu pomoć, video kartica je virtualizirana.

Samo nemojte zaboraviti da ove usluge rade s udaljenim poslužiteljima. Sukladno tome, za njihovo normalno funkcioniranje potrebna je dobra internetska veza.

Sažetak

Suočeni s pitanjem kako pokrenuti igru ​​na 32-bitnom sustavu, ako to zahtijeva 64-bitni sustav, sasvim je moguće to riješiti. Samo za to, kao što vidite, morat ćete raditi sa specijaliziranim programima ili udaljenim poslužiteljima. A ovo je prilično teško.

Također, ne zaboravite na rizik od zaraze vašeg računala zlonamjernim softverom. Stoga, ako vaše računalo to dopušta, 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 vaš. I ne mogu sva računala podnijeti 64-bitni OS.

Korisni članci:

p.s. Prilažem snimku zaslona svoje zarade u affiliate programima. I podsjećam vas da svatko, pa i početnik, može zaraditi na ovaj način! Glavna stvar je to učiniti ispravno, što znači učiti od onih koji već zarađuju, odnosno od profesionalaca internetskog poslovanja.


Uzmite popis provjerenih, posebno relevantnih, Affiliate Programa 2018 koji plaćaju novac!


Besplatno preuzmite kontrolni popis i vrijedne bonuse
=>> "Najbolje affiliate mreže 2018."

Tijekom posljednjih nekoliko godina, mnogi igrači često su se susreli sa situacijom u kojoj tek puštena igračka jednostavno odbija raditi na njihovom sustavu. Zatim, nakon nekog istraživanja, shvaćaju da je poanta da je igra koja se pokreće 64-bitna aplikacija.

U ovom članku ćemo vam jednostavnim jezikom reći zašto se igra po vašem izboru nije pokrenula na vašem računalu, zašto se isplati prijeći na 64-bitni operativni sustav i kako pokrenuti 64-bitnu igru.

Zašto se 64-bitne igre ne pokreću?

Ok, počnimo s najjednostavnijim: 64-bitne igre zahtijevaju operativni sustav iste bitne veličine. Najvjerojatnije imate 64-bitni procesor na računalu, ali operativni sustav je 32-bitni.

Prije nekoliko godina programeri su još uvijek pokušavali fino podesiti svoje projekte za 32-bitne i 64-bitne sustave. Međutim, to je trenutno iznimno nepovoljno zbog velikih ograničenja 32-bitne arhitekture. Kako ne biste preopteretili tok informacija, vi, igrač, trebate naučiti samo dvije stvari: 32-bitni OS podržavat će samo 4 gigabajta RAM-a, a 64-bitni OS omogućit će vašem računalu da bude produktivnije.

Pa da konačno odgovorimo na pitanje zašto se 64-bitna igra nije pokrenula na vašem računalu. Mogu biti dva odgovora: imate 32-bitni sustav ili je vaš procesor 32-bitne arhitekture, stoga podržava samo 32-bitni OS.

Kako mogu pokrenuti 64-bitne igre?

Je li moguće pokrenuti 64-bitnu igru ​​na 32-bitnoj? Odgovor može biti samo jedan: potreban vam je 64-bitni operativni sustav (i isti procesor). To je sve. Na internetu možete pronaći mnoštvo različitih videa i članaka o tome kako pokrenuti 64-bitnu igru ​​na 32-bitnom sustavu. Ali, morate odmah reći da će rješenje u ovoj situaciji biti samo 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 suosjećati, a također i pitati: gdje ste iskopali takvo čudo? Nažalost, da biste igrali sve moderne igre, svakako morate nabaviti 64-bitni procesor i isti operativni sustav – 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 virtualnog stroja. Međutim, treba napomenuti da čak iu ovom slučaju trebate procesor sa 64-bitnom arhitekturom.

Konačno

Želio bih reći da trenutno nema smisla sjediti na 32-bitnim operativnim sustavima, pogotovo ako ste igrač. Ako imate moćno računalo za igre, tada će ova dubina bita u potpunosti ograničiti performanse vašeg stroja. Dakle, od 32-bitnog operativnog sustava trenutno jednostavno nema smisla.

Većina modernih igara kao što su Overwatch, Hurtworld ili Subnautica mogu raditi isključivo na 64-bitnim operativnim sustavima. Kreatorima ovih programa jednostavno nije isplativo izrađivati ​​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 preurediti OS, a i dalje želite gledati popularnu igru? Naučite kako pokrenuti Subnautica i druge 64-bitne programe na 32-bitnom sustavu.

To zahtijeva da računalo ispunjava zahtjeve potrebne za normalan rad aplikacije. Procesor u početku mora imati x64 arhitekturu.

Koja je razlika između 32-bitnog i 64-bitnog sustava?

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

O sustavu ovisi koliko RAM-a može biti instalirano na računalo i koliko se može dodijeliti 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 dostupan do 4 GB. U verziji s x32, navedene brojke su puno manje - 4 GB maksimalno i 2 GB za zasebni program.

Kako obrađuje informacije ovisi o bitnosti procesora. To značajno utječe na performanse - u 64 bitu je puno bolje. Postoji veći registar za pohranjivanje podataka, a opterećenje se odmah raspoređuje na sve jezgre. A u 32-bitnom OS-u, druga jezgra se aktivira kada je prva potpuno zauzeta.

X32 se instalira na "slabe" strojeve. Ako vaše računalo nema puno RAM-a i nema najbolji procesor, jednostavno nema smisla raditi sa 64-bitnim. To će samo "preopteretiti" elektroničko računalo bez dodavanja performansi. Ali moćno x64 računalo bit će na mjestu.

Unatoč činjenici da su ovi sustavi međusobno na površini slični, uvelike se razlikuju na softverskoj razini. Imaju drugačiji set drajvera, pa Subnautica, Overwatch, Hurtworld i drugi slični neće raditi na 32-bitnom OS-u, čak i ako PC ima potrebne karakteristike.

Za moderne igre, aplikacije, programe za uređivanje grafike ili videa, 2 GB koje im daje x32 nije dovoljno. Graditelji novih igara stvaraju svoje proizvode posebno za x64.

Kako mogu znati podržava li procesor x64?

Možete vidjeti koji OS ste instalirali ovako:

  1. Na radnoj površini desnom tipkom miša kliknite ikonu "Moje računalo".
  2. Stavka "Svojstva". Također se može pronaći u odjeljku "Upravljačka ploča".
  3. Redak "Type" će naznačiti koliko bitova ima vaša verzija OS-a.

Prvo morate razumjeti u kojem sustavu radite.

Prije pokretanja Overwatcha na 32-bitnom sustavu, saznajte može li vaše računalo podnijeti takvu igru. Provjerite podržava li procesor 64-bitne upute. To se može učiniti pomoću posebnih programa za testiranje. Na primjer, poslužit će besplatni uslužni program "SecurAble". Ne trebate ga instalirati. I, sukladno tome, ne treba ga uklanjati nakon upotrebe. Samo pokrenite izvršnu datoteku. Prikazat će se informacije o procesoru: naziv, frekvencija takta, širina bita, podržava li D.E.P (ovo je zaštita od prepunjavanja međuspremnika uređaja) i hardversko renderiranje. Možete kliknuti na bilo koji od rezultata - pojavit će se njegov opis.

Provjera podrške procesora za 64-bitne upute

Ako program vrati presudu "Maksimalno 32 bita", to znači da aplikacije dizajnirane za x64 vjerojatno neće raditi. Da biste igrali Overwatch ili Hurtword, morat ćete promijeniti procesor ili zbrinuti udaljene poslužitelje.

Kako napraviti 64-bitni sustav od 32-bitnog?

Postoji nekoliko uslužnih programa za tzv. virtualizaciju. Oni oponašaju rad platforme sa specifičnim softverom i hardverom. Ako trebate shvatiti kako pokrenuti Hurtworld na 32-bitnom sustavu, upotrijebite jedan od ovih uslužnih programa.

Ovi programi stvaraju svojevrsni "gostujući" OS. Ali mora se instalirati u svakom slučaju i kupiti licencirana verzija, ako se plaća. Da biste to učinili, morate imati disk (ili sliku diska) s operativnim sustavom koji vam je potreban.

Oracle VirtualBox

Univerzalni program za takve zadatke.

  1. Instalirajte ga i pokrenite. S lijeve strane bit će popis instaliranih OS i alatna traka. S desne strane - informacije o odabranom sustavu.
  2. Kliknite gumb Kreiraj. Pojavit će se prozor s informacijama. Kliknite "Dalje".
  3. Odaberite vrstu i verziju OS-a. Postoji mnogo opcija koje možete izabrati, ne samo Microsoft Windows nego i Linux.
  4. Tada ćete morati odlučiti koliko RAM-a dodijeliti sustavu "gost".
  5. Nakon toga morate stvoriti virtualni disk (na koji će biti zapisane OS datoteke). Možete odabrati postojeći ili napraviti novi. I označite okvir pored opcije "Boot Disk".
  6. U sljedećem prozoru označite hoće li disk imati fiksni volumen ili dinamički (promjenjivi). Za svaku stavku postoje detaljna objašnjenja. Bootable je bolje napraviti fiksnim. Kasnije možete dodati još diskova.
  7. Prilagodite veličinu virtualne pohrane. Obično je dovoljno 10 GB. Bolje ga je stvoriti na zasebnom mjestu - ne gdje je instaliran glavni sustav.
  8. Pričekajte da se proces završi. Novi će se pojaviti na popisu dostupnih.

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

Zatim možete konfigurirati hardver:

  1. Odaberite gostujući OS i kliknite Svojstva.
  2. U odjeljku Općenito - Napredno promijenite mapu za spremanje snimaka u onu koja vam odgovara.
  3. Konfigurirajte međuspremnik tamo. Određuje kako će se informacije prenositi između različitih operacijskih sustava.
  4. Na kartici "Sustav" možete odabrati karakteristike virtualne matične ploče i procesora.
  5. Stavka "Mreža" potrebna je za konfiguriranje pristupa World Wide Webu. Možete ostaviti zadane postavke.
  6. U odjeljku "Mediji" navedite gdje želite dobiti OS. Ako je instalacijski program na CD-u, umetnite ga u pogon. Za preuzimanje s .ISO kliknite na gumb "Otvori" pored popisa "Drive". Izgleda kao žuta mapa.
  7. Tu također možete dodati druge slike za brzo prebacivanje između njih: baze podataka, aplikacije, igre.

Nakon završetka konfiguracije, kliknite "OK". Da biste pokrenuli gostujući OS, kliknite na njega i na gumb "Start". Instalacija će biti obavljena. I moći ćete se prebacivati ​​između sustava: igrati u 64-bitnom i raditi u 32-bitnom.

Ostali virtualni strojevi

Tu su i uslužni programi za rad s virtualnim strojevima:

  • VMware radna stanica. Ozbiljan profesionalni softver za složene zadatke. Distribuira se na plaćenoj osnovi.
  • Jednostavan uslužni program za emulaciju hardvera. Otvoreni izvor.
  • Windows Virtual PC. Radi samo s Windows sustavima. Možete konfigurirati prioritet procesa - tako će online stroju automatski biti dodijeljeni resursi ako izvrši određeni zadatak.
  • Virt-Upravitelj. Pruža brojne mogućnosti za konfiguriranje hardverske komponente - virtualni hardver je dostupan za svaki ukus.

Računalstvo u oblaku (udaljeni poslužitelji)

Ako izvedba još uvijek nije dovoljna za pokretanje igre, možete to učiniti na udaljenom poslužitelju. Na njemu će se obraditi svi izračuni, sve informacije. Na taj način nećete biti sputani nikakvim ograničenjima vezanim uz x32. Doista, u biti, aplikacije će se "otvoriti" na odgovarajućim sustavima. Ne na vašem računalu.

Za to je prikladan program Microsoft Azure. Uz njegovu pomoć možete stvoriti nekoliko operacijskih sustava za različite namjene. Ljubitelji igara također će smatrati korisnim namjensku uslugu virtualizacije grafičke kartice NVIDIA GRID. Ovi uslužni programi zahtijevaju brzi internet.

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

Rad sa 64-bitnim aplikacijama na 32-bitnom sustavu sasvim je moguć. Ali morate instalirati dodatni softver ili, općenito, otići na udaljeni poslužitelj. To je prilično teško učiniti. Ako želite u potpunosti igrati Overwatch, Hurtword i druge popularne igre, bolje je instalirati x64 OS. Na ovaj način neće biti problema s kompatibilnošću. I nećete morati ništa konfigurirati.

NastroyVse.ru

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

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

Kako saznati bitnost programa?

Upotrijebimo Upravitelj zadataka da vidimo koji su vaši programi 64-bitni, a koji 32-bitni. Desnom tipkom miša kliknite programsku traku i odaberite Upravitelj zadataka ili pritisnite Ctrl + Shift + Esc da biste je otvorili. Pogledajte stupac s nazivima procesa. Ako koristite 64-bitnu verziju sustava Windows 8.1 ili 8, vidjet ćete riječ "(32-bit)" iza svakog naziva 32-bitne verzije programa. Ako koristite Windows 7 64-bit, umjesto toga vidjet ćete "* 32". 32-bitni programi obično se instaliraju u mapu C: \ Program Files (x86) \ na 64-bitnim verzijama Windowsa, dok se 64-bitni programi obično instaliraju u mapu C: \ Program Files \. Ovo je samo pravilo. Ali nitko ne kaže da ne postoji drugo pravilo koje zabranjuje instalaciju 64-bitnih programa u mapu C: \ Program Files (x86) \. Na primjer, Steam je 32-bitni program, pa se prema zadanim postavkama instalira u "C: \ Program Files (x86) \". Igre koje instalirate na Steam instalirane su u mapi C: \ Program Files (x86) \ Steam prema zadanim postavkama, uklj. čak i 64-bitne verzije igara. Ako usporedite dvije različite mape Program Files, vidjet ćete da je većina vaših programa najvjerojatnije instalirana u mapi C: \ Program Files (x86). A ti su programi uglavnom 32-bitni.

Pokretanje 32-bitnog softvera na 64-bitnom operativnom sustavu

Na prvi pogled izgleda grozno da većina vaših Windows programa ne koristi 64-bitnu arhitekturu operativnog sustava. Možda mislite da postoji kazna performansi za pokretanje 32-bitnih programa na 64-bitnom operativnom sustavu, ali to nije slučaj. Windows pokreće 32-bitne programe kroz sloj kompatibilnosti WoW64 na 64-bitnim verzijama sustava Windows. Međutim, 64-bitni Intel i AMD procesori su unatrag kompatibilni i mogu izravno pokretati 32-bitni softver. Svi vaši 32-bitni Windows programi će raditi kao na 32-bitnim Windowsima. Dakle, nema prepreka za pokretanje ovih programa na 64-bitnom operativnom sustavu. Čak i ako je svaki program koji koristite još uvijek 32-bitni, imat ćete koristi jer će vaš operativni sustav raditi u 64-bitnom načinu rada. I 64-bitni prozori su sigurniji.

64-bitni programi i 32-bitni programi: što je bolje?

32-bitni programi rade bez problema na 64-bitnim verzijama Windows operativnih sustava. Ali bi li bilo bolje da su svi vaši programi 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 najvjerojatnije napadnut, dodatne sigurnosne značajke primijenjene na 64-bitne programe mogu pomoći. Google Chrome je trenutno 32-bitna aplikacija čak i na 64-bitnim verzijama Windows OS-a, no već se pojavila 64-bitna beta verzija ovog programa. A Google obećava da će 64-bitna verzija Chromea biti brža, sigurnija i stabilnija. Neki programi nude 64-bitne verzije. Na primjer: Photoshop, iTunes, Microsoft Office i neki od najpopularnijih Windows programa, koji su svi dostupni u 64-bitnom obliku. Najnovije igre često su također 64-bitne, tako da mogu koristiti više od 2 GB memorije. Mnogi programi se nisu prebacili na 64-bitni, a većina nikada neće. I danas možete pokrenuti većinu 32-bitnih Windows programa, čak i one objavljene prije deset godina, na 64-bitnoj verziji sustava Windows, čak i ako ih njihovi programeri već ažuriraju. Programer koji želi pružiti 64-bitnu verziju svog programa mora obaviti puno dodatnog posla. On mora osigurati da se postojeći kod kompilira i radi ispravno kao 64-bitni softver. Mora pružati i podržavati dvije odvojene verzije programa, budući da korisnici koji koriste 32-bitni Windows ne mogu koristiti 64-bitnu verziju. Uzmimo Evernote za Windows desktop kao primjer. Čak i kada bi izdali 64-bitnu verziju Evernotea, korisnici najvjerojatnije 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

Obično nećete moći birati između 32-bitnog i 64-bitnog softvera. Na primjer, kada instalirate iTunes za Windows, Appleova web stranica automatski vas usmjerava na 32-bitni ili 64-bitni instalacijski program, ovisno o verziji sustava Windows. 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 zasebne veze za preuzimanje za 32-bitne i 64-bitne verzije programa, ali to nije tako često. Važno je ne tražiti 64-bitne aplikacije, već pronaći aplikacije koje vam dobro rade. Za većinu aplikacija zapravo nije važno je li 64-bitna ili 32-bitna.

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

itchief.ru

7 koraka za prijenos programa na 64-bitni sustav

Članak opisuje glavne korake za osiguravanje ispravnog prijenosa 32-bitnih Windows aplikacija na 64-bitne Windows sustave. Iako je članak namijenjen razvojnim programerima koji koriste jezik C / C ++ u okruženju Visual Studio 2005/2008, bit će koristan drugim programerima koji planiraju prenijeti svoje aplikacije na 64-bitne sustave. Članak opisuje glavne točke s kojima se susreću programeri koji planiraju migrirati 32-bitne programe na 64-bitne sustave. Naravno, popis razmatranih pitanja nije potpun, ali nadam se da će s vremenom biti ponuđena proširena verzija ovog članka. Autor bi bio zahvalan na povratnim informacijama, komentarima i pitanjima koja će poboljšati informativni sadržaj ovog članka. U okviru računalne arhitekture, izraz "64-bit" označava 64-bitne cijele brojeve i druge vrste podataka veličine 64 bita. 64-bitni sustavi mogu se odnositi na 64-bitne arhitekture mikroprocesora (npr. EM64T, IA-64) ili 64-bitne operacijske sustave (npr. Windows XP Professional x64 Edition). AMD64 (aka x86-64, Intel 64, EM64T, x64) je 64-bitna arhitektura mikroprocesora i odgovarajući skup uputa koje je razvio AMD. Ovaj skup uputa licenciran je pod imenom EM64T (Intel64) od tvrtke Intel. Arhitektura AMD64 proširenje je arhitekture x86 s potpunom kompatibilnošću unatrag. Arhitektura je postala raširena kao baza za osobna računala i radne stanice. IA-64 je 64-bitna mikroprocesorska arhitektura koju su zajednički razvili Intel i Hewlett Packard. Implementirano u mikroprocesorima Itanium i Itanium 2. Arhitektura se prvenstveno koristi u višeprocesorskim poslužiteljima i klaster sustavima. AMD64 i IA-64 su dvije različite 64-bitne arhitekture koje nisu kompatibilne jedna s drugom. Stoga bi programeri trebali odmah odlučiti trebaju li podržati obje ove arhitekture ili samo jednu. U većini slučajeva, osim ako ne razvijete visoko specijalizirani softver za klaster sustave ili implementirate vlastiti DBMS visokih performansi, tada najvjerojatnije trebate podržavati samo AMD64 arhitekturu, koja je mnogo raširenija od IA-64. To se posebno odnosi na softver za tržište osobnih računala koje je gotovo 100 posto zauzeto AMD64 arhitekturom. Dalje u članku ćemo govoriti samo o arhitekturi AMD64 (EM64T, x64), budući da je njezina upotreba sada najrelevantnija za programere primijenjenog softvera.

Kada se govori o različitim arhitekturama, treba spomenuti koncept „Model podataka“. Model podataka treba shvatiti kao omjere dimenzija tipova usvojenih u okviru razvojnog okruženja. Može postojati nekoliko razvojnih alata za isti operativni sustav koji se pridržavaju različitih modela podataka. Ali obično prevladava samo jedan model, najprikladniji za hardversko i softversko okruženje. Primjer je 64-bitni Windows operativni sustav u kojem je izvorni podatkovni model LLP64. Ali radi kompatibilnosti, 64-bitni sustav Windows podržava izvođenje 32-bitnih programa koji rade u načinu rada podatkovnog modela ILP32LL. Tablica N1 pruža informacije o glavnim modelima podataka.


Tablica N1. Modeli podataka

Korišteni podatkovni model ostavlja traga na razvojni proces 64-bitnih aplikacija, budući da se u programskom kodu mora uzeti u obzir dubina bita korištenih podataka.

Ovladavanje 64-bitnim sustavima treba početi s pitanjem "Moramo li ponovno izgraditi naš projekt za 64-bitni sustav?" Neophodno je dati odgovor na ovo pitanje, ali ne žureći, razmišljajući. S jedne strane, možete zaostajati za konkurentima tako što ne ponudite 64-bitna rješenja na vrijeme. S druge strane, možete gubiti vrijeme na 64-bitnu aplikaciju koja vam neće dati nikakvu konkurentsku prednost. Navedimo glavne čimbenike koji će vam pomoći pri odabiru. Ne biste trebali stvarati 64-bitnu verziju svoje aplikacije s kratkim životnim ciklusom. Zahvaljujući podsustavu WOW64, stare 32-bitne aplikacije rade dovoljno dobro na 64-bitnim Windows sustavima, te stoga nema smisla praviti program 64-bitnim, koji više neće biti podržan za 2 godine. Štoviše, praksa je pokazala da je prijelaz na 64-bitne verzije Windowsa odgođen i da će većina vaših korisnika u kratkom roku vjerojatno koristiti samo 32-bitnu verziju vašeg softverskog rješenja. Ako planirate dugoročni razvoj i dugoročnu podršku softverskog proizvoda, trebali biste početi raditi na 64-bitnoj verziji svog rješenja. To se može učiniti polako, ali imajte na umu da što duže nemate potpunu 64-bitnu verziju, to ćete možda imati više poteškoća s podrškom za takvu aplikaciju instaliranu na 64-bitne verzije sustava Windows. Ponovno kompajliranje programa za 64-bitni sustav omogućit će mu korištenje ogromnih količina RAM-a, a također će ubrzati njegov rad za 5-15%. Do ubrzanja za 5-10% dolazi zbog korištenja arhitektonskih mogućnosti 64-bitnog procesora, na primjer, većeg broja registara. Još 1% -5% povećanje brzine je zbog nepostojanja sloja WOW64, koji prevodi API pozive između 32-bitnih aplikacija i 64-bitnog operativnog sustava. Ako vaš program ne radi s velikim količinama podataka (više od 2 GB) i njegova brzina nije kritična, tada prelazak na 64-bitni sustav nije tako hitan u bliskoj budućnosti. Usput, čak i jednostavne 32-bitne aplikacije mogu imati koristi od njihovog pokretanja u 64-bitnom okruženju. Vjerojatno znate da program kompajliran s prekidačem / LARGEADDRESSAWARE: DA može dodijeliti do 3 gigabajta memorije ako se 32-bitni Windows operativni sustav pokrene s / 3gb prekidačem. Isti 32-bitni program koji radi na 64-bitnom sustavu može dodijeliti gotovo 4 GB memorije (u praksi, oko 3,5 GB). Ako razvijate biblioteke, komponente ili druge elemente pomoću kojih programeri trećih strana stvaraju svoj softver, trebali biste biti brzi u stvaranju 64-bitne verzije svojih proizvoda. Inače će vaši kupci zainteresirani za izdavanje 64-bitnih verzija morati tražiti alternativna rješenja. Na primjer, neki programeri softverske i hardverske zaštite reagirali su s velikim zakašnjenjem na pojavu 64-bitnih programa, što je natjeralo brojne klijente da traž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 stvoriti i 32-bitne i 64-bitne aplikacije morati kupiti 2 različite licence. Na primjer, ovo pravilo koristi Spatial Corporation kada prodaje prostornu ACIS knjižnicu. Prije nego što planirate stvoriti 64-bitne verzije vašeg proizvoda, saznajte postoje li 64-bitne verzije knjižnica i komponenti koje se koriste u njemu. Također saznajte kakva je cjenovna politika za 64-bitnu verziju knjižnice. Sve se to može saznati posjetom web-stranici izrađivača knjižnice. Ako nema podrške, unaprijed potražite alternativna rješenja koja podržavaju 64-bitne sustave. Ako vaša rješenja još uvijek sadrže 16-bitne module, onda je vrijeme da ih se riješite. Rad 16-bitnih aplikacija u 64-bitnim verzijama sustava Windows nije podržan. Ovdje treba pojasniti jednu toč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. To može dovesti do zablude da 16-bitni programi i dalje rade u 64-bitnom okruženju. Zapamtite, to nije slučaj. Ne zaboravite da korištenje velike količine asemblerskog jezika može značajno povećati cijenu izrade 64-bitne verzije aplikacije. Nakon što odvagnete sve navedene činjenice, sve prednosti i nedostatke, donesite odluku hoćete li svoj projekt prenijeti na 64-bitne sustave. A ako je tako, onda idemo dalje. Ako ste donijeli odluku da razvijete 64-bitnu verziju svog proizvoda i spremni ste potrošiti vrijeme na to, to ne jamči uspjeh. Činjenica je da morate imati sve potrebne alate, a ovdje može doći do neugodnih incidenata.

Najjednostavniji, ali i najnepremostiviji problem može biti nedostatak 64-bitnog prevoditelja. Č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. Nemoguće je zaobići ovaj problem, osim ako, naravno, ne prepišete cijeli projekt, na primjer, koristeći Visual Studio. Ali ako je sve jasno s nedostatkom 64-bitnog prevoditelja, drugi slični problemi mogu se pokazati skrivenijima i pojaviti se već u fazi rada na prijenosu projekta na novu arhitekturu. Stoga bih vas želio savjetovati da unaprijed istražite postoje li sve potrebne komponente koje su potrebne za implementaciju 64-bitne verzije vašeg proizvoda. Mogu vas čekati neugodna iznenađenja.

Naravno, ovdje je nemoguće navesti sve što bi moglo biti potrebno za projekt, ali ipak ću vam ponuditi popis koji će vam pomoći u navigaciji i možda zapamtiti druge točke koje su potrebne za implementaciju vašeg 64-bitnog projekta: To je teško je reći nešto drugo o važnosti 64-bitnog prevoditelja. To jednostavno mora biti. Ako planirate razvijati 64-bitne aplikacije koristeći najnoviju verziju (u vrijeme pisanja ovog teksta) Visual Studio 2008, sljedeća tablica N2 pomoći će vam da odredite koje vam je izdanje Visual Studija potrebno.

Tablica N2. Mogućnosti različitih izdanja Visual Studio 2008 Naravno, možete koristiti virtualne strojeve za pokretanje 64-bitnih aplikacija na 32-bitnoj opremi, ali to je krajnje nezgodno i neće osigurati potrebnu razinu testiranja. Poželjno je da je u strojeve instalirano najmanje 4-8 gigabajta RAM-a. Ako su knjižnice predstavljene u izvornim kodovima, tada mora biti prisutna 64-bitna konfiguracija projekta. Nadogradnja knjižnice kako biste je samostalno izgradili za 64-bitni sustav može biti nezahvalan i težak zadatak, a rezultat se može pokazati nepouzdan i sklon pogreškama. Time također možete prekršiti licencne ugovore. Ako koristite biblioteke u obliku binarnih modula, tada biste također trebali saznati postoje li 64-bitni moduli. Nećete moći koristiti 32-bitne DLL-ove unutar 64-bitne aplikacije. Moguće je kreirati prilagođeno uvezivanje putem COM-a, ali to će biti zaseban veliki, složen zadatak. Također imajte na umu da kupnja 64-bitne verzije biblioteke može koštati dodatni novac. Visual C++ ne podržava 64-bitni inline asembler. Morate koristiti ili vanjski 64-bitni asembler (na primjer, MASM) ili imati istu funkcionalnost implementiranu u C / C ++. Značajna revizija metodologije testiranja, modernizacija jediničnih testova, korištenje novih alata. O tome će se detaljnije raspravljati u nastavku, ali ne zaboravite to uzeti u obzir prilikom procjene vremena utrošenog na migraciju aplikacije na novi sustav. Ako razvijate aplikacije koje zahtijevaju velike resurse koje troše veliku količinu RAM-a, morate se pobrinuti za nadopunjavanje baze testnih ulaznih podataka. Kada testirate 64-bitne aplikacije, poželjno je prijeći više od 4 gigabajta potrošene memorije. Mnoge se pogreške mogu manifestirati samo u takvim uvjetima. Korišteni zaštitni sustav mora podržavati 64-bitne sustave u punoj mjeri potrebnoj za vas. Na primjer, Aladdin je brzo objavio 64-bitne drajvere za podršku Hasp ključevima. Ali jako dugo nije postojao sustav 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 probleme vezane uz sigurnost, sustav ažuriranja i tako dalje. Potrebno je imati 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 "64-bitnu" u njoj dovesti do apsolutne vrijednosti. I stvaraju 64-bitni instalacijski program, zaboravljajući da se za korisnike 32-bitnog operativnog sustava takav instalacijski paket jednostavno neće pokrenuti. Imajte na umu da sam instalacijski program neće pokrenuti 32-bitnu aplikaciju uključenu u distribucijski komplet zajedno sa 64-bitnom. Uostalom, ako je distribucijski komplet 64-bitna aplikacija, onda se, naravno, neće pokrenuti na 32-bitnom operativnom sustavu. Najneugodnije je to što korisnik nikada neće moći pogoditi što se događa. On će samo vidjeti instalacijski paket koji se ne može pokrenuti. Stvaranje 64-bitne konfiguracije projekta u Visual Studio 2005/2008 izgleda prilično jednostavno. Poteškoće će vas čekati u fazi izgradnje nove konfiguracije i traženja pogrešaka u njoj. Za kreiranje 64-bitne konfiguracije, dovoljno je izvršiti sljedeća 4 koraka: Pokrenite upravitelja konfiguracije, kao što je prikazano na slici N1:

Slika 1. Pokretanje upravitelja konfiguracija U upravitelju konfiguracija odaberite podršku za novu platformu (slika N2): Slika 2. Kreiranje nove konfiguracije Odaberite 64-bitnu platformu (x64) i kao osnovu odaberite postavke iz 32-bitna verzija (slika N3). Postavke koje utječu na način izrade ispravit će samo okruženje Visual Studio.

Slika 3. Odabir x64 kao platforme i uzimanje Win32 konfiguracije kao osnove Nova konfiguracija je sada gotova i možemo odabrati opciju 64-bitne konfiguracije i početi kompajlirati 64-bitnu aplikaciju. Izbor 64-bitne konfiguracije za sklapanje prikazan je na slici N4. Slika 4. Sada su dostupne 32-bitne i 64-bitne konfiguracije.Ako budete imali sreće, nećete morati dodatno konfigurirati 64-bitni projekt. Ali to uvelike ovisi o projektu, njegovoj složenosti i broju korištenih knjižnica. Jedina stvar koju vrijedi odmah promijeniti je veličina hrpe. Ako vaš projekt koristi zadani stog od 1 megabajta, onda ga ima smisla postaviti na 2 megabajta za 64-bitnu verziju. To nije potrebno, ali bolje je biti na sigurnoj strani unaprijed. Ako se veličina vašeg stoga razlikuje od zadane, onda ima smisla učiniti ga 2 puta većom za 64-bitnu verziju. Da biste to učinili, pronađite i promijenite parametre Stack Reserve Size i Stack Commit Size u postavkama projekta. Ovdje bi bilo dobro reći o tipičnim problemima koji se javljaju u fazi kompilacije 64-bitne konfiguracije. Razmotrite koji problemi nastaju s bibliotekama trećih strana, recite da prevodilac u kodu povezanom s WInAPI funkcijama više neće dopustiti da se pokazivač stavi u tip LONG i da ćete morati nadograditi svoj kod i koristiti tip LONG_PTG. I mnoge mnoge druge. Toga, nažalost, ima toliko, a pogreške su toliko raznolike da se to ne može prikazati u okviru jednog članka, pa čak i, možda, knjige. Sami ćete morati pregledati sve pogreške koje će kompajler izdati i nova upozorenja kojih prije nije bilo, te u svakom slučaju smisliti kako ažurirati kod.

Zbirka poveznica 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 nadopunjuje i autor će čitateljima biti zahvalan ako mu pošalju poveznice na resurse koji, po njihovom mišljenju, zaslužuju pozornost.

Ovdje ćemo se usredotočiti samo na tipove koji bi mogli biti od interesa za programere prilikom migracije aplikacija. Ove vrste su prikazane u tablici N3. Većina pogrešaka pri prevođenju bit će povezana s korištenjem ovih vrsta.

Vrsta Tip dimenzija na platformi x32 / x64 Bilješka
int 32 / 32 Vrsta baze. Na 64-bitnim sustavima ostaje 32-bitni.
dugo 32 / 32 Vrsta baze. Na 64-bitnim Windows sustavima ostao je 32-bitni. Imajte na umu da je ovaj tip proširen na 64-bitne na 64-bitnim Linux sustavima. Imajte to na umu ako razvijate kod koji bi trebao kompilirati za Windows i Linux sustave.
veličina_t 32 / 64 Osnovni neoznačeni tip. Veličina tipa bira se 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 (iznimka su pokazivači na funkcije klase, ali ovo je poseban slučaj).
ptrdiff_t 32 / 64 Isto kao size_t, ali potpisano. Rezultat izraza, gdje se jedan pokazivač oduzima od drugog (ptr1-ptr2), imat će tip ptrdiff_t.
Pokazivač 32 / 64 Veličina pokazivača izravno ovisi o bitnosti platforme. Budite oprezni kada bacate pokazivače na druge vrste.
__int64 64 / 64 Potpisani 64-bitni tip.
DWORD 32 / 32 32-bitni neoznačeni tip. Deklarirano 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č. Deklarirano u BaseTsd.h kao: typedef ULONG_PTR DWORD_PTR;
DWORD32 32 / 32 32-bitni neoznačeni tip. Deklarirano u BaseTsd.h kao: typedef unsigned int DWORD32;
DWORD64 64 / 64 64-bitni neoznačeni tip. Deklarirano u BaseTsd.h kao: typedef unsigned __int64 DWORD64;
HALF_PTR 16 / 32 Pola pokazivača. Deklarirano u Basetsd.h kao: #ifdef _WIN64 typedef int HALF_PTR; #else typedef short HALF_PTR; #endif
INT_PTR 32 / 64 Predpisani tip na koji se može postaviti pokazivač. Deklarirano u BaseTsd.h kao: #if definirano (_WIN64) typedef __int64 INT_PTR; #else typedef int INT_PTR; #endif
DUGO 32 / 32 Predpisani tip koji ostaje 32-bitni. Stoga se u mnogim slučajevima sada treba koristiti LONG_PTR. Deklarirano u WinNT.h kao: typedef long LONG;
LONG_PTR 32 / 64 Predpisani tip na koji se može postaviti pokazivač. Deklarirano u BaseTsd.h kao: #if definirano (_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. Deklarirano u BaseTsd.h kao: typedef ULONG_PTR SIZE_T;
SSIZE_T 32 / 64 Analog tipa ptrdiff_t. Deklarirano u BaseTsd.h kao: typedef LONG_PTR SSIZE_T;
ULONG_PTR 32 / 64 Neoznačeni tip u koji se može postaviti pokazivač. Deklarirano u BaseTsd.h kao: #if definiran (_WIN64) typedef unsigned __int64 ULONG_PTR; #else typedef unsigned long ULONG_PTR; #endif
RIJEČ 16 / 16 Neoznačeni 16-bitni tip. Deklarirano u WinDef.h kao: typedef unsigned short WORD;
WPARAM 32 / 64 Parametar za slanje poruka. Deklarisano u WinDef.h kao: typedef UINT_PTR WPARAM;
Tablica N3. Vrste interesa kod prijenosa 32-bitnih programa na 64-bitne Windows sustave. Ako mislite da ćete nakon popravljanja svih kompilacijskih pogrešaka dobiti dugo očekivanu 64-bitnu aplikaciju, morat ćete biti razočarani. Najteži dio je pred nama. U fazi kompilacije popravit ćete najočitije pogreške koje bi prevodilac mogao otkriti, a koje se uglavnom odnose na nemogućnost implicitne konverzije tipa. Ali ovo je vrh ledenog brijega. Većina pogrešaka je skrivena. Sa stajališta apstraktnog jezika C ++, ove pogreške izgledaju sigurno ili su maskirane eksplicitnim pretvorbama tipa. Takvih pogrešaka je nekoliko puta više od broja pogrešaka otkrivenih u fazi kompilacije.

Ne biste se trebali oslanjati na ključ / Wp64. Ovaj ključ se često reklamira kao prekrasan alat za pronalaženje 64-bitnih pogrešaka. U stvarnosti, prekidač / Wp64 omogućuje samo dobivanje nekih upozorenja prilikom kompajliranja 32-bitnog koda da će određeni dijelovi koda biti netočni u 64-bitnom načinu rada. Prilikom kompajliranja 64-bitnog koda, ova upozorenja će ionako biti izdana od strane prevoditelja. Stoga se prilikom sastavljanja 64-bitne aplikacije ključ / Wp64 zanemaruje. Štoviše, ovaj ključ neće pomoći u pronalaženju skrivenih pogrešaka.

Pogledajmo neke primjere skrivenih pogrešaka. Najjednostavnija, ali nikako najlakša za detektiranje, klasa pogrešaka povezana je s eksplicitnom pretvorbom tipa, u kojoj su značajni bitovi skraćeni. Uobičajeni primjer je prebacivanje pokazivača na 32-bitne tipove kada ih prosljeđuje funkcijama kao što je SendMessage:

MyObj * pObj = ... :: Pošalji poruku (hwnd, msg, (WORD) x, (DWORD) pObj);
Ovdje se eksplicitni cast koristi za pretvaranje pokazivača u numerički tip. Za 32-bitnu arhitekturu, navedeni primjer je točan, budući da je posljednji parametar funkcije SendMessage tipa LPARAM, koji je na 32-bitnoj arhitekturi isti kao DWORD. Za 64-bitnu arhitekturu korištenje DWORD-a je pogrešno i treba ga zamijeniti LPARAM-om. Tip LPARAM ima 32 ili 64 bita, ovisno o arhitekturi.

Ovo je jednostavan slučaj, ali često pretvorba tipa izgleda sofisticiranije i nemoguće ju je otkriti korištenjem upozorenja kompajlera ili pretraživanjem kroz tekst programa. Eksplicitne pretvorbe tipa potiskuju dijagnostiku prevoditelja, budući da su namijenjene da kažu prevodiocu da je pretvorba tipa ispravna i da je programer preuzeo odgovornost za sigurnost koda. Ni eksplicitna pretraga neće pomoći. Tipovi mogu biti nestandardna imena (koje ih postavlja programer putem typedef-a), a također postoji mnogo načina za implementaciju eksplicitne konverzije tipa. Da biste pouzdano dijagnosticirali takve pogreške, trebate koristiti samo posebne alate, kao što su analizatori Viva64 ili PC-Lint.

Sljedeći primjer se već odnosi na implicitnu konverziju tipa, u kojoj se također gube značajni bitovi. Funkcijski kod fread čita iz datoteke, ali je netočan kada pokušavate pročitati više od 2 gigabajta podataka na 64-bitnom sustavu.

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 size_t, ali int se koristi za pohranjivanje broja pročitanih bajtova. Kao rezultat toga, za velike količine podataka koji se čitaju, funkcija može vratiti pogrešan broj bajtova koji će se stvarno pročitati. Možete reći da se radi o nepismenom početničkom kodu, da će prevodilac prijaviti takvo ubacivanje i da je općenito takav kod lako pronaći i ispraviti. Ovo je teoretski. Ali praktički u stvarnom životu, s velikim projektima, stvari mogu biti drugačije. Ovaj primjer je preuzet iz FreeBSD izvornog koda. Greška je ispravljena tek u prosincu 2008.! Štoviše, prva (eksperimentalna) 64-bitna verzija FreeBSD-a objavljena je još u lipnju 2003. godine. Ovdje je izvorni kod prije popravka:

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

A evo i revidirane verzije (prosinac 2008.):

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

Lako je pogriješiti u kodu koji se bavi pojedinačnim bitovima. Sljedeća vrsta pogreške povezana je s operacijama smjene. Razmotrimo primjer:

ptrdiff_t SetBitN (ptrdiff_t vrijednost, nepotpisani bitNum) (ptrdiff_t maska ​​= 1
Navedeni kod je operativan na 32-bitnoj arhitekturi i omogućuje postavljanje bitova s ​​brojevima od 0 do 31 do jedan. Nakon prijenosa 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 i nakon pomaka za 32 pozicije, doći će do prelijevanja, kao što je prikazano na slici 5. Kao rezultat, dobivamo 0 (slika 5-B) ili 1 (slika 5-C), ovisno o implementaciji prevoditelja.

Slika 5. A - Ispravna postavka 31. bita u 32-bitnom kodu; B, C - Pogreška pri postavljanju 32. bita na 64-bitnom sustavu (dvije opcije ponašanja) Da biste ispravili kod, trebate napraviti konstantu "1" istog tipa kao i maska ​​varijable:

ptrdiff_t maska ​​= ptrdiff_t (1)
Također imajte na umu da će neispravljeni kod dovesti do još jedne zanimljive pogreške. Prilikom postavljanja 31 bita na 64-bitni sustav, rezultat funkcije bit će vrijednost 0xffffffff80000000 (vidi sliku 6). Rezultat izraza 1 size_t Veličina polja = N * 4; veličina_t * Niz = (veličina_t *) malloc (Veličina polja); Glavni brojevi s kojima treba postupati s oprezom pri prelasku na 64-bitnu platformu prikazani su u tablici N4.

Tablica N4. Osnovne magične vrijednosti koje su opasne pri prijenosu aplikacija s 32-bitne na 64-bitnu platformu U programima koji obrađuju velike količine podataka mogu se pojaviti pogreške povezane s indeksiranjem velikih polja ili vječnim petljama. Sljedeći primjer sadrži 2 pogreške odjednom:

const size_t veličina = ...; char * niz = ...; char * kraj = niz + veličina; za (nepotpisan i = 0; i! = veličina; ++ i) (const int jedan = 1; kraj [-i - jedan] = 0;)
Prva pogreška je da ako veličina obrađenih podataka premašuje 4 gigabajta (0xFFFFFFFF), tada može doći do vječne petlje, budući da je varijabla "i" tipa "unsigned" i nikada neće doseći vrijednost 0xFFFFFFFF. Posebno pišem da je pojava moguća, ali ne nužno da će se dogoditi. Ovisi o tome koji kod prevodilac gradi. Na primjer, u načinu za otklanjanje pogrešaka bit će prisutna vječna petlja, ali u kodu za izdavanje petlja će nestati, pa će prevodilac odlučiti optimizirati kod koristeći 64-bitni registar za brojač i petlja će biti ispravna. Sve to stvara zbrku, a kod koji je radio jučer može iznenada prestati raditi sljedeći dan. Druga pogreška povezana je s prelaskom niza od kraja do početka za koji se koriste negativne vrijednosti indeksa. Gornji kod je funkcionalan u 32-bitnom načinu rada, ali kada se pokrene na 64-bitnom stroju, pri prvoj iteraciji petlje, nizu će se pristupiti izvan granica niza i program će se srušiti. Razmotrimo razlog ovakvog ponašanja. Prema pravilu jezika C ++ na 32-bitnom sustavu, izraz "-i - jedan" izračunat će se na sljedeći način (u prvom koraku i = 0):
  1. Izraz "-i" je neoznačen s vrijednošću 0x00000000u.
  2. Varijabla "one" bit će proširena s tipa "int" na tip unsigned i bit će jednaka 0x00000001u. Napomena: Tip int se proširuje (prema standardu jezika C ++) na tip "unsigned" ako sudjeluje u operaciji u kojoj je drugi argument tipa unsigned.
  3. Događa se operacija oduzimanja u kojoj su uključene dvije vrijednosti tipa bez predznaka, a rezultat operacije je 0x00000000u - 0x00000001u = 0xFFFFFFFFu. Imajte na umu da je rezultat nepotpisan.
  4. Na 32-bitnom sustavu, pristup nizu s indeksom 0xFFFFFFFFu je ekvivalentan korištenju indeksa -1. To jest, kraj je analogan kraju [-1]. Kao rezultat toga, element niza se pravilno obrađuje.
U 64-bitnom sustavu posljednja točka bit će drugačija. Nepotpisani tip će se proširiti na signed ptrdiff_t, a indeks polja će biti jednak 0x00000000FFFFFFFFi64. Kao rezultat toga, niz će izaći izvan granica. Da biste popravili kod, potrebno je koristiti tipove kao što su ptrdiff_t i size_t. Postoje greške za koje, općenito, nitko nije kriv, ali zbog toga ne prestaju biti pogreške. Zamislite da je davno, u dalekoj galaksiji (u Visual Studio 6.0), razvijen projekt u kojem je prisutna klasa CSampleApp koja nasljeđuje od CWinApp-a. Osnovna klasa ima virtualnu WinHelp funkciju. Nasljednik nadjačava ovu funkciju i obavlja potrebne radnje. To je vizualno prikazano na slici 7.

Slika 7. Radni ispravan kod koji je kreiran u Visual Studio 6.0 Zatim se projekt prenosi u Visual Studio 2005, gdje se promijenio prototip WinHelp funkcije, ali to nitko ne primjećuje, jer u 32-bitnom načinu rada tipovi DWORD i DWORD_PTR poklapaju i program nastavlja ispravno raditi (slika 8).

Slika 8. Netočan, ali izvediv 32-bitni kod Pogreška čeka da se manifestira u 64-bitnom sustavu, gdje je veličina tipova DWORD i DWORD_PTR različita (slika 9). Ispada da u 64-bitnom načinu rada klase sadrže dvije RAZLIČITE WinHelp funkcije, što je prirodno netočno. Imajte na umu da se takve zamke mogu sakriti ne samo u MFC-u, gdje su neke funkcije promijenile vrste svojih argumenata, već i u kodu vaših aplikacija i biblioteka trećih strana.

Slika 9. Pogreška se očituje u 64-bitnom kodu. Primjeri takvih 64-bitnih pogrešaka mogu se navesti i navesti. Oni koji su zainteresirani za takve pogreške i žele saznati više o njima na sličan način, zanimat će članak "20 zamki za prijenos C ++ koda na 64-bitnu platformu". Kao što vidite, faza traženja skrivenih pogrešaka je netrivijalan zadatak, pogotovo jer će se mnoge od njih pojavljivati ​​nepravilno ili samo na velikim količinama ulaznih podataka. Statički analizatori koda su vrlo prikladni za dijagnosticiranje takvih pogrešaka, jer mogu provjeriti cijeli programski kod, bez obzira na ulazne podatke i učestalost njegovog izvršavanja u stvarnim uvjetima. Ima smisla koristiti statičku analizu kako u fazi portiranja aplikacije na 64-bitne platforme, kako bi se većina pogrešaka pronašla u samoj početnoj fazi, tako i u daljnjem razvoju 64-bitnih rješenja. Statička analiza upozorit će i naučiti programera da bolje razumije značajke pogrešaka povezanih sa 64-bitnom arhitekturom i napiše učinkovitiji kod. Autor članka je programer jednog od takvih specijaliziranih analizatora koda pod nazivom Viva64. Možete saznati više o alatu i preuzeti demo verziju s web stranice tvrtke LLC "Program Verification Systems". Da budemo pošteni, treba reći da takvi analizatori koda kao što su Gimpel PC-Lint i Parasoft C ++ Test imaju skupove pravila za dijagnosticiranje 64-bitnih pogrešaka. Ali, prvo, to su analizatori opće namjene i pravila za dijagnosticiranje 64-bitnih pogrešaka u njima su slabo zastupljena. Drugo, više su usredotočeni na podatkovni model LP64 koji se koristi u Linux obitelji operacijskih sustava, što ih čini manje korisnim za Windows programe koji koriste LLP64 podatkovni model. Korak traženja pogrešaka u programskom kodu opisan u prethodnom odjeljku je nužan, ali ne i dovoljan korak. Nijedna od metoda, uključujući statičku analizu koda, ne daje potpuno jamstvo da će sve pogreške biti otkrivene, a najbolji rezultat može se postići samo kombinacijom različitih tehnika.

Ako vaš 64-bitni program obrađuje više podataka od 32-bitne verzije, morate proširiti testove kako biste uključili obradu podataka više od 4 gigabajta. Ovo je granica iza koje se počinju manifestirati mnoge 64-bitne pogreške. Takvi testovi mogu potrajati red veličine više vremena, a za to morate biti spremni unaprijed. Obično su testovi napisani na način da obrađuju mali broj elemenata u svakom testu i tako mogu proći, na primjer, sve interne jedinične testove? za nekoliko minuta, a automatizirani testovi (na primjer, korištenjem AutomatedQA TestComplete) za nekoliko sati. Funkcija sortiranja na 32-bitnom sustavu, ako sortira 100 elemenata, gotovo će se s punim jamstvom ponašati ispravno na 100000 elemenata. Ali ista funkcija na 64-bitnom sustavu može propasti kada pokušate obraditi 5 milijardi stavki. Brzina izvođenja jediničnog testa može se smanjiti za milijune faktora. Ne zaboravite uključiti troškove prilagođavanja testova kada svladavate 64-bitne sustave. Jedno od rješenja je razdvajanje jediničnih testova na brze (koji se izvode s malom količinom memorije) i spore, koji obrađuju gigabajte i rade, primjerice, noću. Automatsko testiranje resursno intenzivnih 64-bitnih programa može se izgraditi na temelju distribuiranog računalstva.

Neki korisnici traže odgovor na pitanje kako prijeći s 32 na 64 bita u operacijskom sustavu Windows. Činjenica je da je, počevši od Windows 7, počela izdavati izdanja sustava istovremeno u 32-bitnim (x86) i 64-bitnim (x64) verzijama operativnog sustava.

Prije je operacijski sustav Windows bio 32-bitni. Postupno, s razvojem arhitekture procesora, postalo je moguće podržati 64-bitni sustav (počelo je s izdavanjem Windows XP Professional x64 Edition).

Trenutno proizvođači računala (stolna računala, prijenosna računala) na svoje uređaje uglavnom instaliraju 64-bitne Windows operacijske sustave, jer sve moderne središnje procesorske jedinice podržavaju x64 setove instrukcija.

Microsoft pruža mogućnost nadogradnje s 32-bitnog na 64-bitni Windows. Kada promijenite bitnost sustava, aktivacija Windowsa neće uspjeti, jer licenca ne ovisi o bitnosti operativnog sustava.

Ključne razlike između 32-bitnih i 64-bitnih Windowsa

Operativni sustav Windows ima dvije verzije bitnosti: 32-bitnu i 64-bitnu, koje imaju oznake: 32-bit (x86). 64-bitni (x64).

64-bitni sustav upravlja velikim količinama računanja učinkovitije od 32-bitnog OS-a. U 64-bitnom sustavu Windows aplikacije koje zahtijevaju velike resurse troše manje vremena na rad nego u sličnom 32-bitnom sustavu. Sustav je brži kada je više aplikacija pokrenuto u isto vrijeme.

Glavna razlika, osim poboljšanja ukupnih performansi, je podrška za rad s određenom količinom memorije. U 32-bitnoj verziji sustava Windows, zbog posebnosti arhitekture sustava, koristi se samo manje od 4 GB RAM-a instaliranog na računalu.

Ako Windows x86 računalo ima do 3 GB RAM-a, operativni sustav koristi svu dostupnu memoriju. Ako je na računalu instalirano 4 GB memorije, tada će sustav koristiti količinu RAM-a nešto više od 3 GB. Čak i sa 6 GB, 8 GB itd. ukupne memorije s slučajnim pristupom (RAM) dostupnom u 32-bitnom sustavu Windows, i dalje će biti dostupno samo manje od 4 GB memorije.

U 64-bitnim Windowsima ovaj problem ne postoji, jer takav sustav podržava količinu RAM-a (do 16 TB), dovoljnu za bilo koju modernu konfiguraciju računala.

Rad aplikacija u operacijskom sustavu Windows različitih tipova (x86 i x64) je različit:

  • u sustavu Windows x64 možete instalirati 64-bitne i 32-bitne programe (64-bitne aplikacije, prema zadanim postavkama, instalirane su u mapi Program Files, a 32-bitne aplikacije u mapi Program Files (x86) na disku sustava);
  • na Windows x86 instalirani su samo 32-bitni programi, a instalacija 64-bitnih aplikacija nije podržana.

Većina programa stvorenih za Windows podržava 32 bit. Ove aplikacije mogu se instalirati na računalo s bilo kojom dubinom bita, oni će raditi, pod uvjetom da program podržava određenu verziju sustava Windows (Windows 10, Windows 8, Windows 7, itd.).

Nedavno su mnogi programeri aplikacija objavili programe dvije vrste: za 32-bitne i 64-bitne sustave. Stoga ima smisla instalirati programe na računalo u skladu s bitnošću operativnog sustava. 64-bitne aplikacije rade učinkovitije od 32-bitnih programa na 64-bitnom sustavu Windows.

Imajući na umu ova razmatranja, ostaje otkriti kako prijeći s 32 bita na 64. Ali nije sve tako jednostavno.

Preduvjet za premještanje sustava Windows s 32-bitne na 64-bitnu

Je li moguće promijeniti 32-bitni sustav u 64-bitni Windows? Da, moguće je, ali kada se mijenja bitna dubina sustava, postoje nijanse. Bez poštivanja određenih uvjeta, neće uspjeti promijeniti 32-bitni u 64-bitni sustav.

Glavni uvjet za prelazak na drugu dubinu bita sustava: podrška središnje procesorske jedinice (CPU) instalirane na računalu, 64-bitne upute. Bez ovog uvjeta, instalacija 64-bitnog Windowsa na osobno računalo bit će nemoguća.

Kako odrediti bitnost operacijskog sustava Windows, koji bit je procesor instaliran na računalu? Najlakši način da to utvrdite je korištenjem operativnog sustava. Da biste odredili parametre procesora u smislu podrške za 64-bit, možete koristiti aplikacije trećih strana, na primjer, itd.

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

  • Procesor x64 - 64 i 32-bitna Windows instalacija je podržana.
  • X86 procesor - samo 32-bitna verzija sustava Windows može se instalirati na vaše računalo.

Iz ovoga proizlazi da se 32-bitna verzija sustava Windows može instalirati na bilo koje računalo (podložno minimalnim hardverskim zahtjevima računala), a 64-bitni Windows instaliran je samo na računalima sa 64-bitnim procesorima.

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

Možete saznati vrstu procesora na vašem računalu slijedeći donje upute za operacijske sustave Windows 10, Windows 8.1 (Windows 8), Windows 7.

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

Kako biste saznali podržava li procesor instaliran na računalu 64-bitne upute u operacijskom sustavu Windows 10, slijedite ove korake:

  1. Na radnoj površini kliknite na ikonu Ovo računalo (Moje računalo). Ako ova ikona nije na radnoj površini vašeg računala, upotrijebite metodu da vratite ikonu "Moje računalo" na radnu površinu.
  2. U kontekstnom izborniku koji se otvori odaberite Svojstva.
  3. U prozoru "Sustav" (Prikaz osnovnih informacija o vašem računalu), u odjeljku "Sustav", u parametru "Tip sustava" vidjet ćete vrstu bitnosti operacijskog sustava i podršku za vrstu procesorskih uputa.

U ovom slučaju, oznaka: "x64 procesor" znači da središnji procesor podržava instalaciju 64-bitnog operativnog sustava (Windows 10 64-bitni je instaliran na računalu).

Kako provjeriti podršku procesora za 64-bitni Windows 8.1 (Windows 8)

U operacijskom sustavu Windows 8.1 ili Windows 8 učinite sljedeće:

  1. Pomaknite pokazivač miša u donji desni kut zaslona, ​​odaberite "Opcije".
  2. Prozor sustava prikazuje "Prikaz osnovnih informacija o vašem računalu". U parametrima "System" => "System type" je naznačen bit Windows i koji bit podržava središnji procesor.

Ovo računalo ima Windows 8.1 32-bit, računalo ima procesor koji podržava x64 upute. 64-bitni Windows 8.1 može se instalirati na ovaj sustav.

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

U operacijskom sustavu Windows 7 učinite sljedeće:

  1. Desni klik na ikonu Računalo (Moje računalo) na radnoj površini.
  2. Odaberite Svojstva iz kontekstnog izbornika.
  3. U prozoru "Prikaz osnovnih informacija o vašem računalu" kliknite na "Indeks performansi sustava Windows".

  1. U prozoru "Procjena i poboljšanje performansi računala" kliknite na "Prikaži i ispiši detaljne informacije o performansama računala i sustava".
  2. U otvorenom prozoru "Brači i alati za performanse", u odjeljku "Dodatne informacije o računalu", u parametru "Sustav", nasuprot stavke "64-bitna podrška", bit će napisano "Da" ili " Ne".

Računalo ima 32-bitni operativni sustav, procesor podržava 64-bitne operativne sustave. Ovo računalo podržava nadogradnju na Windows 7 64-bit.

Prednosti i nedostaci prelaska na 64-bitni Windows

Prije promjene tipa sustava s 32-bitnog na 64-bitni, morate odvagnuti prednosti i nedostatke ovog rješenja. Na prvi pogled čini se da je korist od promjene kapaciteta sustava očita, no nije sve tako jednostavno.

Glavne prednosti 64-bitnog operativnog sustava:

  • Korištenje cjelokupne količine RAM-a (više od 4 GB) instalirane na računalu.
  • Veća brzina sustava i programa.

Glavni nedostaci 64-bitnog operativnog sustava:

  • Sustav i aplikacije troše više RAM-a.
  • Nedostatak x64 drajvera za zastarjeli hardver.

Većina korisnika, nakon promjene 32-bitnog sustava Windows u 64-bitni sustav, želi postići povećanje performansi računala. U modernim igrama, u teškim grafičkim aplikacijama, najoptimalnije je implementirano korištenje računalnih resursa u 64-bitnom sustavu. Stoga su mnogi korisnici zainteresirani za prijelaz zbog računalnih igrica, programa koji rade samo na Windowsima sa 64 bitom itd.

Ako prilično moderno računalo ima više od 4 GB RAM-a, a iz nekog razloga je na njemu instalirana 32-bitna verzija Windowsa, očito ima smisla nadograditi na 64-bitni sustav.

Korisnici računala sa zastarjelim hardverom, s 2-4 GB memorije, trebaju sve pažljivo odvagnuti. U većini slučajeva igranje modernih igrica ili korištenje "teških" programa neće uspjeti zbog nedostatka memorije. Sustav i pokrenuti programi zauzimat će više prostora u memoriji računala od sličnih aplikacija u 32-bitnom sustavu Windows. Slab procesor neće imati pozitivan učinak. U nekim slučajevima, 64-bitni sustav će raditi sporije na računalu od 32-bitnog sustava Windows.

Obratite pozornost na prisutnost upravljačkih programa potrebnih za normalan rad hardvera računala. Unaprijed preuzmite upravljačke programe s web-mjesta proizvođača. Ako to nije moguće, za instaliranje potrebnih upravljačkih programa nakon instalacije sustava, koristite specijalizirane programe, na primjer, itd.

Ovisno o hardveru, upravljački programi mogu podržavati oba bita ili je za svaki bit potreban poseban upravljački program.

Kako nadograditi s 32-bitnog na 64-bitni Windows

Za nadogradnju na 64-bitni sustav postoji samo jedna opcija: čista ponovna instalacija sustava Windows s gubitkom podataka na pogonu sustava. Postupak je sljedeći:

  • Preuzmite Windows 64-bitni operativni sustav na svoje računalo. Pročitajte gdje možete preuzeti izvornu sliku sustava Windows 10, Windows1, Windows 7.
  • Napravite USB stick za podizanje sustava ili snimite sliku sustava na DVD disk.
  • Uključite računalo, prije pokretanja sustava, uđite u BIOS (UEFI), odaberite Windows medij za pokretanje.
  • Instalirajte operativni sustav na svoje računalo.
  • Nakon dovršetka instalacije sustava, instalirajte potrebne upravljačke programe.
    • U jednom od instalacijskih prozora morate odabrati odgovarajuće izdanje sustava Windows odgovarajuće dubine bita (sada su višestruke slike sustava Windows široko rasprostranjene, uključujući različita izdanja različitih bitnih dubina u jednoj slici sustava).
    • U prozoru Odabir vrste instalacije odaberite Prilagođeno: samo instalacija sustava Windows (napredno) u sustavu Windows 10 ili Windows1 ili potpuna instalacija (napredne opcije) u sustavu Windows 7.

    Nakon dovršetka instalacije, na računalu će se pojaviti Windows 10 64-bit.

    Zaključci članka

    Moguće je promijeniti 32-bitni operativni sustav u 64-bitni Windows, unutar istog izdanja. Za uspješnu migraciju, računalo mora imati procesor koji podržava x64 upute i dovoljno RAM-a.

Vrhunski povezani članci