Mi is az a 64 bit és mire jó?

MEGOSZTÁS

Ha tetszett a cikk, akkor nyugodtan oszd meg ismerőseiddel, valószínű ők is örülni fognak neki.

A minap egyik ismerősöm vásárolt egy új masinát 4GB memóriával, azonban az üzletben ahol vette voltak olyan kedvesek, hogy 32 bites rendszerrel látták el. Próbáltam magyarázni neki, hogy hát erre 64 bites rendszer kell, de őneki csak az jött le, hogy a bitek száma duplázva lesz. Kis idő után megkérdezte, hogy hát akkor ha a Windows 7-ből van 64 bites, akkor a Windows 8-ból lesz 128 bites is ? Ekkor realizáltam, hogy milyen nagy kuszaság van a 64 bites rendszerek körül.


Egy kis történelem és technika

Az asztali számítógépekben a processzorok a 386-ostól kezdődően 32 bitesek. Ez azt jelenti, hogy 32 bites utasítás készlete van a processzornak, és 32 bites (4 bájt) egységekbe dolgozik, valamint kettő a 32-en bájtnyi memóriát képes megcímezni és kezelni. Kis matekozás után azt kapjuk eredményül, hogy ez 4096Mb, vagyis éppen pontosan 4Gb. Ez a 386 megjelenésekor szinte végtelenül soknak tűnt, mivel akkoriban az átlag PC-k keményen 8 vagy 16Mb memóriával voltak felszerelve.

Azonban a fejlődés természetesen nem állt meg, a memóriák mérete folyamatosan nőtt, viszont a CPU-k memória kezelésének bővítésére nem igen volt szükség. Persze a fejlesztő mérnökök előre gondolkodtak, mivel a szerverekbe mindíg is több memória kellet. Ezért, a Pentium 1 óta minden Intel processzorban megtalálható a PAE technológia, amely az angol Physical Adreess Extension rövidítése. Ezen technológia 36 bitesre növelte a címzést, amely 64Gb memória megcímzését tette lehetővé. Azonban, hogy a CPU ilyen módban fusson PAE technológiát támogató operációs rendszer kell.

Közben az Intelnél az x86 architektúra (32 bites Intel és AMD processzorok Architektúrája. Neve onnan jön, hogy a processzorok lefele kompatibilisek a 286, 386, stb processzorokkal) tervezési hibáiból tanulva elkezdtek dolgozni egy menőben más, alapjaitól 64 bites és párhuzamosságra tervezett rendszeren dolgozni, ami az IA-64 kódnevet kapta. Ezen Architektúrát képviselő CPU-k közül az Intel Itanium volt az első. Főként HP és Sun szerverekben alkalmazták előszeretettel. De mivel csöppet bonyolult lett az architektúra és relatíve csak célfeladatokra terjedt el, így natív IA-64-es szoftver nem is nagyon készült. 32 bites x86 emulációs módban meg a cpu teljesítménye nagyságrendekkel alul maradt az IA-64-re fordított programokhoz képest.

2003-ban állt elő az AMD az Athlon64 technológiával, amely a hagyományos x86 technológiát bővítette ki 64 bitesre, úgy, hogy közben megtartották a 32 bites támogatást. Manapság az összes CPU köszönhetően az Intel és az AMD megállapodásának köszönhetően támogatja ezt a technológiát. Intel CPU-k esetén EM64T a kódjelzése a technológiának, míg AMD oldalon AMD64. Amellett, hogy a megcímezhető memória mérete így a CPU-k esetén bőven 100TB fölé nőtt (1TB = 1204Gb), még plusz regisztereket is kapott az Architektúra, valamint egy váltó utasítást, amely 64 bites módból 32bitesbe kapcsolja a processzort, így a 32 bites kód végrehajtása sem lassult meg. Ez hasonló megoldás, mint ami a 386-tól van jelen a CPU-k esetén, ami lehetővé teszi azt, hogy 16 bites kódot (DOS, Windows 3.1) lehessen futtatni 32 bites Windows-on.

És akkor most, hogy miért is kell ez nekünk

Jogosan merül fel a kérdés, hogy akkor most miért is kell 64 bites rendszer, ha “csak” 4Gb memóriám van a gépben ? A válasz nagyon egyszerű. A Videokártyák ahogy fejlődtek egyre több memóriával rendelkeznek. Manapság az 1Gb memóriával szerelt modellek is elérhető áron vannak, a jövőben meg biztos, hogy több memória lesz rajtuk. Na de ami miatt ez kapcsolódik, az az, hogy a Videokártyánkon található memóriát is meg kell tudnia címeznie a processzornak, mivel ezen eszközök is (sok másikkal egyetemben) rendelkeznek Direkt rendszermemória hozzáféréssel. Szóval ha van egy 512Mb-os Videokártyánk, meg 4Gb rendszermemóriánk, akkor valójában 4,5Gb-ot kell címeznie a processzornak, ami kifut a 32 bites címtérből. Ezért 32 bites módban az történik Windows alatt, hogy a rendszer csak annyi rendszer memóriát címez meg, hogy a Videokártya és a rendszermemória beleférjen a 32 bites címtérbe. Ezért van az, hogy 3Gb-ot vagy 3,x Gb-ot jelez használhatónak a rendszer. Linux esetén nem PAE kernelek esetén ez az érték 2GB (nem biztos, hogy pontos érték)

Joggal merül fel a kérdés, ha van PAE címzés, akkor miért nem használjuk inkább ezt ? A válasz ere az, hogy a 32 bites Windows rendszerek kihasználják biztonsági okokból, csak nem engednek 4Gb fölé menni, mivel az illesztő programok nagy része nem igazán tolerálta azt, ha 4Gb feletti címet kapott. Linux esetén nincs ilyen gond, mivel ott az összes  illesztőprogram a rendszermagban van, így ott működik a PAE mód, sőt aktívan ki is használják biztonság miatt.

És akkor most beszéljünk az előbb említett biztonságról. Neumann úr, mikor megalkotta a híres Neumann elveket, akkor beletett egy olyant is, hogy: “Belső memória (operatív tár) használata a program és az adatok tárolására” Ez szép, és jó elgondolás. Azonban arra ő sem gondolhatott 1946-ban, hogy majd a leggyakoribb támadási felület az lesz, hogy nem megfelelő körültekintéssel megírt szoftverekbe, a támadó programok (vírusok, és egyéb kedves programok) adatok helyére utasításokat csempésznek különböző módon. A nagyobb gond az, hogy hardveres védelem erre nem született meg, csak 2003-ban az AMD64 architektúra kidolgozásakor. Ezen processzoroknál a címzésben az egyik bitet NX bitnek nevezték el, amely a Non Execute (nem végrehajtható) szavak rövidítéséből jön. Ez arra szolgál, ha ezen bit értéke 1, akkor az adott memória címen található adat sosem lesz végrehajtható. Ezen technológia azonban csak 64 bites üzemmódban, vagy PAE üzemmódban érhető el, mivel máskülönben nem lenne elég bit a címzésre. Szóval Windows esetén (Vista-tól felfelé) a 32 bites rendszerek is PAE üzemmódban címeznek  emiatt. Természetesen az emberi butaság és gyarlóság ellen ez sem véd.

Végül a 128 bit esete

128 Bites személyi számítógépekbe szánt CPU-k majd előbb-utóbb lesznek, de az egészen biztos, hogy a következő Windows változatnak még nem kell ezekkel foglalkoznia. Már csak abból kiindulva, hogy az Intel 386-os processzor 1985-ben jelent meg, az Athlon64 meg 2003-ban. Az első windows változat, amely 32 bites volt, az a Windows 95-volt, ami 10 évvel a 386 első megjelenése után jelent meg. (A Linux kernelt, amit eredetileg a 386-ra szántak, meg a 1990-es évek elején kezdte fejleszteni Linus Torvalds). Az első 64 bites Windows 2005-ben jelent meg, 2 évvel az első Athlon64-ek megjelenése után.

Végszó

Sebességben a 64 bites rendszerek valamivel gyorsabbak 32 bites társaikhoz képest. Egyenlőre nem túl sok program érhető el 64 bites változatban, de ezen programok száma szépen növekszik a 64 bites rendszerek elterjedésével. Windows Server-ből a 2008 R2 óta nincs is 32 bites. Aprócska gond, hogy a 64 bites rendszerek nem képesek 16 bites programok futtatására, de éppen ezért találták ki a virtualizációt.

Forrás: http://www.webmaster442.hu/mi-is-az-a-64-bit-es-mire-jo/

MEGOSZTÁS

Ha tetszett a cikk, akkor nyugodtan oszd meg ismerőseiddel, valószínű ők is örülni fognak neki.

HOZZÁSZÓLÁS

Ha nem hagy nyugodni az, amit a cikkben olvastál, akkor nyugodtan írd meg kérdésed vagy észrevételed kommentbe. Így szerzőnk könnyen tud neked válaszolni.

Vélemény, hozzászólás?