AMD64 - kdo doda HW?

Pavel Janoušek janousek na fonet.cz
Středa Listopad 26 16:14:08 CET 2003


> -----Original Message-----
> From: Jan Derfinak [mailto:ja na mail.upjs.sk] 
> On Wed, 26 Nov 2003, Pavel Janoušek wrote:
> 
> > 	Mne naopak prijde logicke, ze kdyz oznacim distribuci 
> 64-bitovou, ze
> > 	tam na trapna omezeni jako maximalne 2GB soubor vubec nenarazim,
> > 	protoze tam z principu nemaji co delat (trvam na tom, 
> ze minimalne
> 
> Vysvetlil som, Vam mnoho krat, ze nie.

	Od kdy si aplikace sama definuje, jak velky soubor je ochotna zpracovavat a jaky uz se ji nepaci? Kdyz mi operacni system umozni soubory urcite velikosti (a na limit narazime vzdy), tak predpokladam (a pokud ani toto neprijmete, tak fakt nevim) ze systemove utility jsou s tim srozumeny a pracuji dle toho - pokud to nedelaji, nemohu tu distribuci oznacit tak jak rikate Vy...

> Ale neklamte, ukazal:
> 
> -------------------------------------------------------------
> Date: Tue, 25 Nov 2003 14:25:08 +0100 (CET)
> From: Jan Derfinak <ja na mail.upjs.sk>
> To: Pavel Janoušek <janousek na fonet.cz>
> Subject: RE: AMD64 - kdo doda HW?
> 
> http://www.pc.ibm.com/us/eserver/opteron/
> http://www-1.ibm.com/servers/news/pr_730.html
> http://www.suse.cz/cz/products/enterprise/sles_8/amd64.html
> -------------------------------------------------------------

	IBM nema svou distribuci Linuxu! Ta ma smlouvu s RedHatem - mel jsem osobni docineni s nekterymi radami eSeries a zSeries, bud dodava AS (dneska uz to RH nazyva jinak) nebo obycejny desktop Linux (napr. Red Hat Linux 8.0). Red Hat Linux 64-bit neni realitou - mam vlastni zkusenosti.

	O SUSE E-Linux toho nevim tolik, opacim otazkou - ta distribuce neobsahuje spoustu vadnych (to zminene cislo 2500 (ano v jine souvislosti) se rychle zacne smrskavat) aplikaci, ktere se s touto platformou nejsou schopny vyrovnat (konkretni priklady celkem bez problemu reportovali kolegove) komponent?

> Zase klamete. V prvom rade Ste obvinili firmy ako RedHat, 
> Suse, IBM, SGI,
> Oracle, ze pouzivaju "hezký marketingový blábol", ked tvrdia, ze maju

	Ano to jsem udelal a za tim si stojim, vsechny vyse jmenovane firmy maji fungujici marketingova oddeleneni a vsechny tyto firmy vypustily do sveta dobrovolne vzdy pouze to, co chteji, aby si odberatele mysleli. V mych ocich jedinou vyjimkou je firma SGI, u ktere mam zapsano dodnes serioznost a technicky podlozene nabidky a ne "produkty" na objednavku marketingaru... Protivahou jsou ceny tech reseni...

> V opacnom pripade je Vase tvrdenie iba "hezký marketingový blábol".

	Ja Vam Vas nazoru neberu, chtel jste vsak vyvracet muj (coby totalni blabol), bohuzel jste toho zatim nedosahl, naopak spise to vnimam tak, ze z urcite pozice muzete mit v urcitych pripadech pravdu, svet ale neni B&W a tudiz z hlediska praktickych zkusenosti (ano jsem spise praktik a ne teoretik) je stav podstatne horsi, nez bysme byli vsichni radi...

> funguje. Vam staci najst iba jeden z klucovych faktorov, 
> ktore su podstatne
> pre 64 bitovy OS. 

	Ano klicovym faktorem pro prechod na 64-bitove systemy opravdu smrtelne vazne povazuji davkove zpracovani takoveho objemu dat, na ktere 32-bitova platforma jiz nestaci (kapacitne ci vykonove). Ostatne, snad vyjma hrubeho vypocetniho vykonu to je do dnes (mozna ??) jediny argument proc firmy ktere do teto platformy jiz investovaly...

> A to, ze ja si napisem program XY, ktory bude schvalne pouzivat iba 32
> bitove hodnoty, pretoze mu to na jeho cinnost staci a tento 
> program bude
> zaradeny do 64 bitovej distribucie, vonkoncom neznamena, ze 
> distribucia nie
> je 64 bitova.
> 
> Vam napriklad stacilo napisat takyto "super 64 bitovy program":
> #include <stdlib.h>
> #include <stdio.h>
> #include <errno.h>
> 
> #define SIZE    5294967296L
> 
> int main (void)
> {
>   char *p = malloc ((size_t) SIZE);
> 
>   if (p == NULL)
>   {
>     perror ("malloc");
>     return (0);
>   }
> 
>   getchar ();
> 
>   free (p);
> 
>   return (0);
> }
> 
> Spustit ho a pokial by nealokoval viac ako 4GB pamate, tak by 
> nebolo o com
> diskutovat:

	A na to jste dosel jak? Program je schopen na patricne platforme alokovat patricne mnozstvi pameti, ze mu ji dle aktualni konfigurace OS neda neni problem aplikace (Linux vzhledem k tomu, ze prideluje dle optimistickeho scenare mu ji dat (temer) vzdy) Problem Vaseho programu je v jine veci a sice v tom, ze pri kompilaci na 32-bit dostanete zajimave vysledky:

  printf("%li\n", (long int) SIZE);
  printf("%lli\n", (long long int) SIZE);

Da vystup:

1000000000
5294967296

	a protoze v malloc.h je size_t definovano tak jak je dojde pri konverzi na (size_t) k preteceni (resp. uz prekladac si IMHO to define SIZE prelozi interne po svem - blbe! (alespon z pozice Vasi jakozto programatora) a to bez upozorneni....

	Uz vidim, jak byste jednoduse hledal takovouto chybu, kterou pri prekladu na 32-bitove platforme nikdo nenahlasi a presto program nefunguje dle ocekavani... Ale vzdyt ono je to proplouvani 32-bit <-> 64-bit uplne jednoduche..'-)

PS: Jsem rad, ze jsme se opet dostali vice do technicke roviny, takze doufam, ze moje argumentace na konci neni chybna, pokud ano, nebyl to zamer, ale proste lidsky omyl...

-------------------------------------------------------------------
Ing. Pavel Janousek (PaJaSoft)             FoNet, spol. s r. o.
Technicka podpora, Intranet/Internet     Sokolova 67, 619 00 Brno
E-mail: mailto:Janousek na FoNet.Cz         Tel.: +420  5  4324 4749
WWW:    http://WWW.FoNet.Cz/           E-mail: mailto:Info na FoNet.Cz
-------------------------------------------------------------------


Další informace o konferenci Linux