[OSy] Problem se statickou strukturou

Martin Decky decky at dsrg.mff.cuni.cz
Fri Dec 7 13:50:30 CET 2007


> Dekuji, bylo to zrejme tim. Toto chovani prekladace jsem uprimne necekal, i kdyz zrejme plyne z prekladu po jednotlivych zdrojacich.

Myslim, ze to chovani je zcela ocekavatelne, protoze vychazi z toho, co
dela klicove slovo static s globalnimi symboly. Zjednodusene receno ty
se stavaji lokalnimi v ramci daneho objektoveho souboru.

> Nicmene, msim mi trochu zavaril nasledujicim chovanim:
> Kdyz se namapuje 140 kB kernel do 127 kB pameti, tak se tam logicky cely nevleze. Nicmene,
> 1. MSIM v labu se s tim plne spokojil.
> 2. Cteni z adresy mimo 127 kB proslo bez jakekoli hlasky.
> 3. Zapis na adresu, ktera se do tech 127 kB nevlezla, prosel bez jakehokoli naznaku ze strany MSIMu.
> 4. Navic ten zapis dokonce hodnotu zmenil (prirazeni 0 zmenilo ffffffff na fffffffa - soude dle nasledneho vypsani jeji hodnoty).

Kdyz si rozmyslite, jak MSIM asi funguje (neni ani potreba studovat
zdrojaky), tak soubor s kernelem si MSIM mmap()uje do sveho adresoveho
prostoru cely, cimz padem pristupy do teto pameti bez problemu projdou.

Zatimco Vas prekvapuje, ze se dostanete k pameti celeho kernelu, nekoho
jineho by opacne chovani (tj. "oriznuti" kernelu na hranici 127 KB)
mohlo take neprijemne prekvapit a mozna by stravil netrivialni cas
zkoumanim, proc nektere pristupy do statickych struktur kernelu vyhazuji
vyjimku. Zkratka nelze jednoznacne rici, ze zrovna aktualni chovani je
to spatne.

> Jako uzivatel MSIMu bych si predstavil nasledujici chovani:
> 1. Aspon warning pri spusteni.
> 2.-3. Zabyti / address error.
> 4. Neexistujici pamet menit nelze.

Navrhovana varianta (1) mi osobne prijde jako rozumna. Pokud poslete sem
nebo primo na email Vildy Holuba patch, velmi tim urychlite pridani teto
vlastnosti do MSIMu.


M.D.




More information about the NSWI004 mailing list