Client/Server Runtime Subsystem
Client/Server Runtime Subsystem (w skrócie CSRSS) – komponent rodziny systemów operacyjnych Windows NT. Obsługuje stronę przestrzeni użytkownika dla podsystemu Win32 i jest elementem Windows NT 3.1 oraz nowszych wersji systemu Windows[1]. Ponieważ większość operacji podsystemu Win32 została przeniesiona do sterowników trybu jądra, w Windows NT 4.0 i późniejszych CSRSS obsługuje głównie konsolę Win32 oraz wyłączanie graficznego interfejsu użytkownika (GUI). Jest krytycznym elementem systemu; dlatego też jego zabicie skutkuje błędem systemu i pokazaniem niebieskiego ekranu[1]. W normalnych warunkach nie da się zabić tego procesu poleceniem taskkill czy za pomocą Menedżera zadań, chociaż jest to możliwe w systemie Windows Vista przy użyciu Menedżera zadań uruchomionego w trybie administratora. Natomiast w systemach Windows 7 i nowszych przy próbie zakończenia tego procesu Menedżer zadań ostrzega użytkownika, że zakończenie tego procesu spowoduje awarię systemu i utratę niezapisanych danych i monituje, czy na pewno chce zakończyć ten proces. W Windows NT 4.0 wyłączanie CSRSS przy niedziałającym Session Manager Subsystem (SMSS) nie spowoduje crashu systemu. Jednakże w systemie Windows XP zabicie CSRSS przy braku nadzoru ze strony SMSS spowoduje awarię systemu ze względu na krytyczny bit znajdujący się w pamięci RAM.
Historia
[edytuj | edytuj kod]W serii systemów Windows NT 3.x komponent Graphics Device Interface znajdował się wewnątrz CSRSS, który został przesunięty do trybu jądra w Windows NT 4.0 celem zwiększenia wydajności graficznej[1]. Proces rozruchu systemu Windows uległ znaczącej zmianie począwszy od wersji Vista. W Windows Vista oraz Windows 7 uruchamiane są dwie instancje csrss.exe[2].
Szczegóły techniczne
[edytuj | edytuj kod]CSRSS działa jako usługa systemowa w trybie użytkownika. W chwili gdy proces w trybie użytkownika wywołuje funkcję związaną z oknami konsoli wiersza poleceń, tworzeniem procesów/wątków lub wsparcia side-by-side biblioteki Win32 (kernel32.dll, user32.dll i gdi32.dll) zamiast wywołania systemowego wysyłają wywołanie między-procesowe do procesu CSRSS, który wykonuje większość pracy bez naruszania jądra.[potrzebny przypis] Menedżer okien i usługi GDI obsługiwane są przez sterownik trybu jądra (win32k.sys)[3].
CSRSS wywoływany jest razem z winlogon.exe przez smss.exe przy rozruchu systemu Windows. Jeżeli któryś z tych plików jest uszkodzony lub niedostępny, SMSS każe jądru zakończyć proces uruchamiania się systemu i wyświetlić niebieski ekran śmierci[4]. Związany z tym kod błędu ma oznaczenie 0xc000021a (STATUS_SYSTEM_PROCESS_TERMINATED).
W Windows 7 i późniejszych, zamiast rysować okna konsoli, CSRSS uruchamia podproces conhost.exe celem tworzenia okien konsoli dla programów interfejsu tekstowego z uprawnieniami użytkownika.
Istnieją liczne fałszywe alarmy wirusowe, twierdzące iż csrss.exe jest złośliwym oprogramowaniem i powinno zostać usunięte celem ochrony systemu przed uszkodzeniem; jest to nieprawdą, jako że usunięcie lub zabicie procesu csrss.exe spowoduje wystąpienie niebieskiego ekranu śmierci.
Ponadto fałszywa pomoc techniczna podszywająca się pod pracowników firmy Microsoft wykorzystuje csrss.exe jako „dowód” na infekcję wirusową, przekonując oszukiwanego użytkownika do zakupu ich fałszywych programów ochronnych do jego usunięcia[5].
Przypisy
[edytuj | edytuj kod]- ↑ a b c The Windows NT 4.0 Kernel mode change. MS Windows NT Kernel-mode User and GDI White Paper. [dostęp 2014-08-06]. (ang.).
- ↑ Part 2, [w:] Mark Russinovich , Inside the Windows Vista Kernel – Startup Processess, [w:] Inside the Windows Vista Kernel, Microsoft, 8 września 2016 [dostęp 2022-08-09] (ang.).
- ↑ Mark Russinovich , Windows Internals, 5th Edition, Microsoft Press, 2009, s. 54 (ang.).
- ↑ Microsoft, How to troubleshoot a "STOP 0xC000021A" error in Windows XP or Windows Server 2003 [online], Microsoft Support, 24 września 2021 [dostęp 2022-08-09] (ang.).
- ↑ Catalin Cimpanu , Symantec Disavows Business Partner Caught Running a Tech Support Scam [online], Softpedia News, 22 czerwca 2016 [dostęp 2022-08-09] (ang.).
Linki zewnętrzne
[edytuj | edytuj kod]- Troubleshooting the Startup Process [online], Microsoft Docs, 11 września 2009 [dostęp 2022-08-09] (ang.).