64bit versus 32bit OS

Petr Olsak petr na olsak.net
Úterý Prosinec 11 13:34:25 CET 2007


Vazeni,

chtel bych zjistit Vas nazor na smysluplnost provozovani 64bitoveho OS
na soucasnych desktopech vcetne argumentaci, zkusenosti a souvislosti.

V soucasne dobe vpodstate vsechny procesory v bezne prodavanych
pocitacich maji 64bit rozsireni. AMD s tim prisli o neco driv (uz pred
mnoha lety) a snazi se tuto skutecnost dat patricne najevo, tj. davaji
cislo 64 primo do nazvu modelu svych procesoru. Intel s tim pak prisel
ponekud opozdene a neni to jejich nejvetsi marketingovy trhak. Naopak,
clovek musi pozorne cist podrobnou dokumentaci k procesoru, aby nekde
uplne vzadu mezi vsemi ostatnimi rozsirenimi procesoru (a je jich
pozehnane) nasel neco jako ET64, vetsinou bez dalsiho komentare.

V Linuxu a pri pouzivani beznych linuxovych aplikaci mame diky
vyvojarum moznost volby: vyuzit nebo nevyuzit ono 64bit rozsireni
procesoru. Vzhledem k tomu, ze je rozumne rozhodnout se pro jedinou
variantu (32bit aplikace na 64bit systemu vyzaduji mit duplikovany
vsechny so-knihovny, na kterych zavisi, 64bit aplikace na 32bit
systemu vubec nebezi), naskyta se otazka: vyplati se skutecne
to rozsireni vyuzit a provozovat 64bit OS?

Udelal jsem test na svem notebooku (Indel Dual Core), kde jsem do
dvou ruznych partitions nainstaloval Gentoo dvakrat: jednou jako x86 a
podruhe amd64. (Oj, jak jsou ty nazvy architektur nazorne, clovek
okamzite vi, ze to prvni je pro 32bitovy rezim procesoru a to druhe je
pro ET64, ze ano. Ale to sem nepatri). Subjektivne v rychlosti provozu
nepozoruji zadny rozdil. Program bc mi spocte pi na 3000 desetinnych
mist za 14s v rezimu x86 a za 11s pri amd64. Kompilace (gcc) ma
jeste nevyraznejsi pomer rychlosti. To tedy neni zadna vyhra. Vubec me to
neohromilo. Programy a so-knihovny jsou typicky v 64bitech o 20%
vetsi, v RAM pak zabiraji jeste vice mista.  Nac je tedy pouzivat? Jen
proto, aby to rozsireni procesoru nebylo nevyuzito? Vzdyt desitky
dalsich rozsireni dnesnich procesoru vyuziji mozna jen nektere aplikce
a mozna jen nekdy, spis ne. Co kdyz mi nekdy bude chybet misto na
disku, ktere bych mel, kdybych neistaloval verzi systemu o 20% vetsi?

Chapu, ze pokud bych potreboval v programu linearne adresovat pamet
vetsi nez 4GB, mam pri pouziti 64bitoveho rozsireni moznost. Ale zatim
nevim o aplikaci, ktera takovou vec nutne potrebuje (a pocitace dnes
bezne nebyvaji osazeny desitkami GB RAM).

Vzpominam na prechod 16bit -> 32bit pred patnacti lety. Tehdy zacalo
vznikat mnoho aplikaci, ktere se do 16bit architektury neveslo.
Napriklad 16bit TeX (EmTeX pro DOS: tex.exe) musel alokovat sve
nejvetsi pole "main-memory" maximalne v jednom 64kB bloku, takze se do
toho vesel plainTeX a stary LaTeX2.09 (bez prilisneho mnozstvi balicku),
ale novy LaTeX2e mel problemy. Vznikaly ruzne tex386.exe a dalsi zrudy
s ruznymi DOSoidnimi rezimy rozsirene pameti, coz byla silenost.
Dekujme tedy za tech 32bitu. Dalsi aplikace tehdy take pocitovaly potrebu
opustit sveraci kazaju ve forme segment-offset gymnastiky pointeru do
pameti. Ale dnes? Potrebuji dnesni aplikace opustit sveraci kazajku ve
forme maximalne 4GB linerane adresovane pameti? Mozna nektere velmi
specificke, ale ja zde mluvim o beznych aplikacich pro desktop.

Tesim se na Vase nazory, zkusenosti, rozbory problemu...

Zdravim

Petr Olsak





Další informace o konferenci Linux