Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názor k článku
Programujeme OS: jak na GDT a IDT

BLEK.
BLEK. (neregistrovaný) ---.strcechy.adsl-llu.static.bluetone.cz
18. 8. 2009 23:27

Re: Tohle není programování

celé vlákno

Nemám na mysli SMP, mám na mysli, že Pentium 1 syscall udělalo asi na 120 tiků, Pentium 2 na 250 (INT) / 150 (SYSENTER), Pentium 4 na 900 (INT) / 450 (SYSENTER). V těch procesorech je čím dál víc mikrokódu a provádějí syscally čím dál pomelaji.

Umístění toho Win32 subsystému do procesu je na nic. Vede to ke zpomalování (víc syscallů a navíc context switche) a nepřináší to žádnou hodnotu navíc: nezvýší to stabilitu (zkuste si ten proces CSRSS odstřelit – vytuhnou stejně celá Windows) a nezvýší to bezpečnost (když jeden uživatel vnutí CSRSS, aby vykonal jeho vlastní kód, tak má kontrolu nad celým systémem).

Mít speciální proces na Win32 subsystém by mělo smysl jen kdyby ten proces běžel na každého uživatele zvlášť. Pak by to sice bylo stále pomalé, ale přinášelo by to výhody: spadnutí Win32 procesu shodilo jen procesy daného uživatele a nechalo ostatní uživetele netknuté a kompromitování bezpečnosti Win32 procesu by opět vedlo jen k možnosti útočit na procesy toho samého uživatele, čili by to bezpečnost nijak neohrozilo.

Ale tak, jak to tam je, že máme jeden CSRSS proces pro všechny, to nemá smysl, to je jen výplod někoho, kdo na papír kreslil obdélníčky a šipečky. Což si vývojáři NT taky uvědomili a proto většinu funkcí toho procesu přesunuli do kernelu.