AMD64 - kdo doda HW?

Jan Derfinak ja na mail.upjs.sk
Úterý Listopad 25 09:56:59 CET 2003


On Tue, 25 Nov 2003, Pavel Janoušek wrote:

> > -----Original Message-----
> > From: Jan Derfinak [mailto:ja na mail.upjs.sk] 
> > On Mon, 24 Nov 2003, Pavel Janoušek wrote:
> > 
> > > 	Prominte, ale bylo celkem zvykem rozlisovat 'bitovost' aplikace
> > > 	podle toho, jaka velikost (v bitech) byla u typu INT - 
> > myslim, ze s
> > 
> > Myslim, si ze je to Vas zvyk a nie vseobecne pravidlo.
> 
> 	Prosim? Od jakziva se brala bitovost podle sirky sbernice CPU a to
> 	ve vetsine pripadu DATOVE! (vyjimky jako I8088 a I80386 SX neberu v
> 	potaz...) Takze o jakem zlozvyku mluvite, ze neplati?

O tom, ze sa bitovost berie podla velkosti typu INT. Precitajte si co Ste
napisal.

> > To je sice pravda, ale nezda sa Vam nedostatocne aplikovat 
> > poznatky zo Z80 na
> > dnesne procesory a tvrdit, ze linux je v sucasnosti iba 32-bitovy?
> 
> 	Nezda - duvod je hned v prvni poznamce.

Mne sa to zda. Napriek tomu, ze priznavate ze nesledujete sucasny vyvoj, tak
uplne suverejne tvrdite, ze neexistuje 64 bitovy Linux alebo komercny Unix
pre 64 bitovy intel/amd.

> > 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.
> 
> 	Zkusim z trochu jineho konce. Oba dva nepochybne pamatujeme (teda
> 	pokud nezijete celou dobu v oblasti mainframu...:->) prechod ze
> 	16-ti bitoveho sveta do 32-bitoveho. Tazi se - domnivate se, ze
> 	"portace" aplikaci z 16-bitoveho do 32-bitoveho sveta a to, ze
> 	realne aplikace zacaly existovat az po vice jak 10 letech od doby,
> 	co to umoznovala architektura CPU (a PC vubec) je zapricineno:
> 
> a) neexistenci rozumne podpory ze stranu OS, pripadne potreba vytvorit prekladove vrsvy API (napr. Win32s)
> b) slozitosti postupu portace
> c) studium a vyuka programatoru vyuzivat nove moznosti a postupy
> d) mizerna uroven vyjadrovacich schopnosti programatoru
> e) mizerna kvalita produkovaneho zdrojoveho kodu

Neupieram Vam Vase historicke znalosti. Ale neodbocujte od temy, pretoze
nemozete aplikovat problemy MS Windows spred 10 rokov do sucasneho Linuxu.
Okrem toho 64 bitove platforma uz existuje mozno aj 10 rokov, takze Linux ma
svoje prve kroky v tejto oblasti uz davno za sebou. Okrem toho Linux je len
jadro OS. GNU programy, ktore tvoria distribuciu funguju aj na Solarise,
Tru64, AIX, IRIX... a ich 64-bitovost dufam nehodlate spochybnovat. Takze
pokial Ste schopny dokazat Vase tvrdenie o neexistencii 64 bitoveho Linux,
urobte tak. Pokial nie, ziadam Vas aby Ste prestali mystifikovat.

> > kodom. Na zaklade toho aplikacia zisti, ci moze dalsi 
> > pamatovy priestor pouzit
> > alebo nie. V tom nie je ziadna 64-bitova magia, tak pracuje 
> > kazda normalna
> > aplikacia a tych je v linuxe dostatok.
> 
> 	A jak mohu dopredu bez patricnych testu vedet, zda-li mohu (a take
> 	jak) pozadat o 8GB? Jak mohu bez testovani dopredu vedet, jak je
> 	velky virtualne adresovatelny prostor pro aktualne bezici proces?

Zjednodusene:

unsigned long velka_pamat;
...
if ((m = malloc (velka_pamat)) == NULL)
  printf ("nemozem alokovat pamat");
else
  nacitavam_velke_data(m);

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. Ale o to ide, 64-bitova architektura ma
predsa rozsirit moznosti, inac by nebola potrebna.


> > V takom pripade, je dolezite podla akeho standartu je 
> > navrhnuty kompilator,
> > aky standard pouziva autor zdrojoveho kodu a ako ho dodrzuju.
> 
> 	Ve vsech pripadech C a ASM - binding ASM do C je v ANSI norme, ANSI
> 	norma C ma od dob K&R 2 revize, GCC "umi" vsechny dialekty (neumi
> 	Intel syntaxi ASM, pouze AT&T, ale to neni pricina problemu), Linux
> 	kernel je IMHO psan zejmena s ohledem na ANSI C89...

Co Ste tym chceli povedat? Pokial ten kernel s gcc prelozite, tak je
vsetko v poriadku. Pokial niektore gcc kernel neprelozi a vyvojari
identifikovali chybu v gcc a opravili ju, tak chyba bola v gcc. Ale
suvislost s existenciou 64 bitoveho linuxu mi unika.

> > inej urovni. Jednoducho motor z nakladaku do skodovky asi nepojde. :)
> 
> 	Skutecne? Pokud budou sedet rozmery, mista vyvodu s okolim, vstupni
                  ^^^^^

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.

				jano


-- 


Další informace o konferenci Linux