[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