AMD64 - kdo doda HW?
Jan Derfinak
ja na mail.upjs.sk
Úterý Listopad 25 11:41:51 CET 2003
On Tue, 25 Nov 2003, Pavel Janoušek wrote:
> > O tom, ze sa bitovost berie podla velkosti typu INT.
>
> Ano a od toho se odviji schopnost pocitat v ALU (tedy zpravidla
> registr A, AX apod.) a od toho se odviji s jakym cislem jsem schopen
> efektivne pocitat - je prima mit na 8-bitove platforme knihovnu pro
Nie, int je definicia typu v programovaciom jazyku a nemozte od neho
odvodzovat typ procesora.
> Vy povazujete prechod 32 -> 64 za hladky, ja nikoliv, nejen z duvodu
> historickych zkusenosti.
Nemate pravdu. Vy Ste tvrdili:
"Sorry, ale to je hezký marketingový blábol. Dneska tu krome
komerčních UNIXů (a ty nejsou IMHO Opteron-ready) nemáme realné
64-bit OS."
Teda nic o prechode. Ja tvrdim, ze 64 bitovy linux existuje.
> Mozna to je zakladni nase vzajemne nepochopeni. Ve Vasem pojeti
> Linux = kernel, vse ostatni je GNU apod. (tedy nikoli operacni
> system Linux) V mem pojeti Linux = operacni system Linux - stejne
> jako OS MS Windows neni jen kernel32.dll... - rozdilnost definic
> jsem si jiz vsiml, proto jsem se snazil vzdy nejprve definovat...
Prekrucate. Napisal som toto:
"Je tak daleko, ze si mozete kupit 64-bitove distribucie pre Intel, AMD.
PPC64 alebo S390.
V distribuciach sa nachadzaju 64-bitove aplikacie. Tiez existuju
64-bitove komercne aplikacie (nedavno som instaloval DB2 na AMD a Intel)."
alebo
"V tom pripade si nainstalujte 64 bitovu distribuciu a hladajte tam
"zle" napisane programy. Ked ich tam najdete tak to budu "realne" programy.
Napriek tomu, ze si to mozte vyskusat a realne argumetovat, tak stale sa
pohybujete v teoretickej urovni Vasej predstavy."
Tvrdim, ze existuju a su realne dostupne 64 bitove distribucie a aplikacie.
>
> > unsigned long velka_pamat;
> > ...
> > if ((m = malloc (velka_pamat)) == NULL)
> > printf ("nemozem alokovat pamat");
> > else
> > nacitavam_velke_data(m);
> >
>
> To je hezkla ukazka HODNE PRASACKEHO kodu, ktery jste nejprve
> odsoudil - je pravda, ze long mate 64-bit - to tak bude vzdy? Pokud
> se divam do reference ke GLIBC, tak vidim u malloc tuto deklaraci
> (ANSI C bude vyhovovat vzdy, Vas kod tuto vysadu mit nemusi):
>
> void *malloc(size_t size);
V glibc includoch (je to mozno aj niekde inde, toto je prve co som nasiel):
typedef unsigned long int __size_t;
/* The GNU CC stddef.h version defines __size_t as empty. We need a real
definition. */
# undef __size_t
# define __size_t size_t
size_t ma velkost, taku aby bol schopny adresovat pamat pristupnu pre danu
architekturu. Obe typy (long aj size_t) menia svoju velkost v zavislosti od
architektury. Moze sa sa stat, ze long bude mensi ako size_t, ale nie opacny
pripad. Ale mate pravdu, ze uplne ciste by bolo definovat tu premennu ako
size_t.
> Tak a ted mi reknete bez testovani a analyzy jak z kristalove koule
> poznate velikost toho size_t? Bavili jsme se snad o portabilnich
Pre Vasu informaciu sizeof(size_t).
> programech, dle toho by mely vypadat i programovaci konstrukce...
> Zajimal by me CISTY zpusob (a bez if - to je prace progamatora, vy
> tvrdite, ze je to prace pro kompilator) - ja ho nejsem schopen
> vymyslet, proto se po nem pidim, kdyz rikate jak je to snadne a jak
> to kompilator zaridi za nas...
Napisal som toto:
"Pokial taky program prelozite ako 32-bitovy bude moct
alokovat iba pamat pristupnu 32 bitovym aplikaciam. Pokial ho prelozite ako
64 bitovy bude moct alokovat pamat adresovatelnu v 64 bitovom rezime. V
kazdom pripade vyuzijete maximum pamate, ktore Vam poskytne architektura.
Rozdiel je vo velkosti dat, ktore je schopny spracovat."
Precitajte si to znova. Je tam odpoved na Vasu otazku.
> Ne chtel jsem rici, ze jednotny zaklad v Linux kernelu (C & ASM)
> nestaci, a ze kompilator si nemuze domyslet... proto tam nelze
> pouzit Intel C, ktery produkuje na modernich Intel CPU kvalitnejsi
Znova nemate pravdu. Ak Intel C nemozno pouzit, tak kvoli tomu, ze nerozumie
zdrojovym kodom napisanym pre gnu c. Problem je, ze niekto nedodrzal
normu alebo je mozne vysvetlit si ju viac sposobmi, nie v 64 bitovom kode.
> > Nikto sa tu nebavi o POKUD. Ale dobre pokial mi ukazete
> > skodovku z motorom
> > napriklad z liazky tak Vam uverim. Ale pokial nie, tak je to len Vasa,
> > nepodlozena hypoteza.
>
> Jenze Vy jsme mel to POKUD take - bud Kernel a GCC nebo jazyk C... -
> bez predpokladu neni vysledku:-)
Nie, ja som hovoril o realnych standartoch, ktorym musia jednotlive
komponenty odpovedat. Vy hovorite o tom, ze nahodou by to mohlo fungovat.
V minulom maile som Vas ziadal aby Ste uviedli dokazy o tom, ze neexistuje
64 bitova linux distribucia. Ziadne Ste neuviedli, tak predpokladam, ze ich
nie Ste schopny uviest. Ako poznamenal citatel diskusneho listu, tato
diskusia uz nie je konstruktivna a pokial nebudete schopny argumentovat,
povazujem je z mojej strany za ukoncenu.
jano
--
Další informace o konferenci Linux