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.