SCM to Service Control Manager – mechanizm odpowiedzialny za zarządzanie usługami w systemie Windows. usługi tudzież serwisy, są procesami działającymi w tle… ale chyba czym są usługi nie ma sensu pisać, bo każdy to wie (:
w7 to oczywiście Windows 7, w którym mechanizm SCM został zmodyfikowany, dodając nowe możliwości wpływające na czas startu systemu, wyłączenia, bezpieczeństwa oraz ogólnej wydajności. Nowe możliwości to:
- zażądanie startu usługi po wystąpieniu specyficznego zdarzenia. Zdarzeniami jakie są obsługiwane standardowo są:
- zmiany adresu IP – chodzi konkretnie o pojawienie się pierwszego adresu oraz zniknięcie ostatniego co zapewnia możliwość kontroli usług zależnych od sieci
- zmiany sprzętowe – przykładem może być usługa bluetooth, która będzie mogła być wyłączona póki w systemie nie pojawi się jakiekolwiek urządzenie z niej korzystające
domena – czyli reakacja na podłączenie/odłączenie komputera od sieci domenowej [trochę podobnie jak profile Advanced Firewall] - polisy grupowe – reakacja na wykrycie zmiany w polisie
- ponad to możliwość programistycznego rozszeżenia poprzez napisanie własnych triggerów
- zażądanie startu usługi poprzez API klienta lub obiekt COM SCM – jest to standardowy sposób żądania jedak w w7 dodanych zostało kilka usprawnień w działaniu
zatrzymanie nieaktywnej usługi – jest najważniejszym i uzuepłniającym elementem, dzięki któremu wszystkie usługi, które nie są w żaden sposób wykorzystywane zostaną zartrzymane. Cały trik polega na tym, żeby przy tak zatrzymanej usłydze klient, który nagle chce z niej skorzystać nie dostał odmowy/informacji o tym, że usługa nie działa – w zamian usługa powinna się podnieść i obsłużyć żądanie.
Wprowadzenie tych pozornie niewielkich zmian jest de facto dość poważną zmianą. ekipa developerów pracująca nad kernelem i zajmująca się SCM uzyskała bardzo duży zysk na różnych płaszczyznach działania systemu dzięki wprowadzonym modyfikacjom – zadowoleni powinni być zarówno użytkownicy, dzięki „lżejszemu” działaniu systemu – jak i administratorzy. ponad to w w7 mniej zbędnych usług będzie uruchomionych co wpłynie na bezpieczeństwo i wydajność [i zużycie energii].
dostępny jest ciekawy whitepaper opisujący powyższe zmiany nieco dokładniej.dla osób wolących posłuchać zamiast poczytać – polecam wywiad na channel 9 z szefem projektu Chittur Subbaramanem, który omawia opisane zmiany.
Wskazany whitepaper zwraca również uwagę na coś, co przy systemie Vista nie było zbyt mocno omawiane na stronach – task scheduler. Jeśli do tej pory nie zwróciliście uwagi na to, jak bardzo się zmienił – polecam to zrobić ASAP. już w Vista widać, że wiele „usług” obsługiwanych jest poprzez scheduler dzięki bardzo rozwiniętej obsłudze triggerów. napisałem „usług” w cudzysłowiu, ponieważ nie są to „usługi systemowe” – zarejestrowane i widoczne w services.msc – a raczej zadania działające w tle i uruchamiane zależnie od zdażenia [np. zadanie ustawiające defragmentację w sob i nd, ale tylko jeśli system jest nieaktywny i podłączony do zasilania].
Osobiście mam dodatkowo nadzieję, że usunięte zostaną mechanizmy kluczy Run, RunOnce i innych dziwnych miejsc, gdzie można wsadzić uruchomienie aplikacji/procesu – nowy schedulet jest idealnym kandydatem, żeby wszystkie te, trudne do ogarnięcia ze względu na liczbę mechanizmy, zastąpić czymś spójnym i zarządzalnym. chociaż szczerze wątpie, żeby nastapiło to w tej wersji.
PS. zwróciliście uwagę na taki drobny fakt – nowy Windows nazywa się Windows 7 podczas, gdy wersja kernela nie zmieni wersji głównej [major version] pozostając przy numerku 6.1. Jak więc będzie nazywał się system kliencki NT 7.o?
w przypadku serwerowych nie ma takiego problemu bo NT6.1 server to Windows Server 2008 R2.