RH Linux7.1: dva shelly v init[S] !?? (dlouhe)

Milan Kerslager milan.kerslager na spsselib.hiedu.cz
Úterý Listopad 6 17:29:21 CET 2001


On Mon, 5 Nov 2001, Zdenek Havelka wrote:

> > To je zbytecne a nebezpecne. Treba pokud upgradujete ze vzdaleneho stroje
> > nebo pokud chcete upgradovat jeste souvisejici komponenty, ktere nemaji
> > primou zavislost. Linux tuto vec umoznuje ze zcela praktickych duvodu. 
> 
> Nechapu - alespon ne zcela. Nebezpecnejsi mi osobne pripada nechat v pameti
> bezet binarky, ktere uz nejsou na disku, ktere mely mozna otevrene soubory,
> ktere uz nejsou na disku ... a ktere pokud jsou napsany korektne, by mohly
> zjistit, ze jim otevreny soubor "zmizel" pod rukou, zkusit ho otevrit znovu,
> a nedejboze treba udelat seek na pozici, kde byly naposledy (ale v jinem
> souboru), nebo se treba polozit na zmenene syntaxi. To mne pak bude ze
> vzdaleneho stroje mrzelo vice.

To by bylo prilis komplikovane a tezko by se daly osetrit vsechny mezni 
stavy. Rozeznavani binarek, knihoven nebo jen obycejnych souboru by bylo 
jeste slozitejsi.

> A kdyz chci "nesouvisejici komponenty", tak kvuli tomu nemusim upgradovat
> bezici proces - jedine ze by az tak nesouvisejici nebyly, nebo byly blbe
> naznacene dependecies, nebo v pripade, ze by v potrebne verzi nebyly se
> stavajicimi knihovnami a ja bych byl liny vytvorit si patricny balicek pro MOU
> verzi knihoven.

Jenze to by zavislosti musely byt ve vsech binarkach. Ponekud neprakticke 
a tezkopadne, spise vsak nerealizovatelne.

> A kdyz pisete "Linux umoznuje" - to je vtip ? Linux je jadro OS, RedHat je
> distribuce postavena z kdeceho shodou okolnosti nad tim jadrem, a davat mezi
> ty dva pojmy rovnitko je IMHO krajne nevhodne a zavadejici.

Skutecne to umoznuje Linux, tj. jadro Linuxu, ne distribuce.

Funguje to tak, ze pokud se smaze otevreny soubor, zmizi jmeno z adresare,
ale datove bloky (a inode) jsou uvolneny, az ten soubor dany program zavre
(cele to obsluhuje jadro).

U prepisu spustenych programu je to jinak. Pokud byste prepsal spustenou
binarku, mohla by po vypadku stranky padnout na drzku (tj. do RAM by se
zavedlo uplne neco jineho, nez by tam melo byt). Linuxove jadro tento
problem resi tak, ze prepsat spusteny program proste nelze. Muzete ho ale
prejmenovat a pak vytvorit binarku novou (tj. pri dalsim spusteni se 
spusti novy program).

U knihoven tento mechanismus neni, ale mel by v nejake forme byt byt.  
Problem je v tom, ze kdyby to slo chranit stejne (tj. mmapovane soubory),
byl by to snadny cil na DoS utok. Proto by to melo byt kombinovano s
execute flagem, ktery neumozni takto ovlivnovat treba logy.

Jinak jsem nemel pravdu s tim, ze pri upgrade se sluzby nerestartuji
(automaticky). Skripty RH v /etc/xinet.d/* uz obsahuji volbu condrestart,
ktera slouzi prave pro restart sluzby pri upgrade (podmineny restart).

-- 
                        Milan Kerslager
                        E-mail: milan.kerslager na pslib.cz
                        WWW:    http://www.pslib.cz/~kerslage/





Další informace o konferenci Linux