[OSy] Potiz s testy prvniho zakladniho zadani

Martin Decky decky at d3s.mff.cuni.cz
Tue Nov 26 20:27:39 CET 2013


> Nase kernelove funkce si mezi sebou predavaji primo struct thread*.

Coz je v pojeti zadani thread_t.

> thread_t je minen jako odstineny typ pro uzivatelske rozhrani - pripada
> mi hloupe jak mit pro thread_t odlisne definice v uzivatelskem
> prostoru a v prostoru jadra, tak i predavat do uzivatelskeho prostoru
> jakykoliv ukazatel do vnitrnich struktur jadra. (Ve 3. zadani se s
> thread_t pocita.)

Predavat do uzivatelskeho prostoru ukazatel na strukturu jadra je jedno 
z moznych reseni, ktere se v praxi take pouziva. Samozrejme, ze z 
hlediska uzivatelskeho prostoru nema takovy ukazatel zadny vnitrni 
vyznam (je to nepruhledny hash) a pri vstupu do kernelu se takovy 
argument musi vzdy striktne validovat (uplne stejne, jako kdyz se 
predava handle).

Mit pro thread_t odlisne definice v kernelu a v user space take neni nic 
mimoradneho. Jsou to dva oddelene svety, ktere poji jen rozhrani 
systemovych volani.

Pokud si Vase kernelove funkce predavaji primo struct thread * a ne 
thread_t, je to nevyznamny odklon od zadani. Je ale pochopitelne, ze se 
musite vyporadat i s dusledky takove zmeny. Jak uz jsem psal, osobne 
bych se Vasi cestou nevydal, ale je to Vase rozhodnuti a pokud vede na 
elegantnejsi kod, nemam nic proti.


M.D.




More information about the NSWI004 mailing list