Condividi tramite


zmiany SCM w w7

SCM to Service Control Manager - mechanizm odpowiedzialny za zarzadzanie uslugami w systemie Windows. uslugi tudziez serwisy, sa procesami dzialajacymi w tle... ale chyba czym sa uslugi nie ma sensu pisac, bo kazdy to wie (:

w7 to oczywiscie Windows 7, w którym mechanizm SCM zostal zmodyfikowany, dodajac nowe mozliwosci wplywajace na czas startu systemu, wylaczenia, bezpieczenstwa oraz ogólnej wydajnosci. Nowe mozliwosci to:

  • zazadanie startu uslugi po wystapieniu specyficznego zdarzenia. Zdarzeniami jakie sa obslugiwane standardowo sa:
    • zmiany adresu IP - chodzi konkretnie o pojawienie sie pierwszego adresu oraz znikniecie ostatniego co zapewnia mozliwosc kontroli uslug zaleznych od sieci
    • zmiany sprzetowe - przykladem moze byc usluga bluetooth, która bedzie mogla byc wylaczona póki w systemie nie pojawi sie jakiekolwiek urzadzenie z niej korzystajace
    • domena - czyli reakacja na podlaczenie/odlaczenie komputera od sieci domenowej [troche podobnie jak profile Advanced Firewall]
    • polisy grupowe - reakacja na wykrycie zmiany w polisie
    • ponad to mozliwosc programistycznego rozszezenia poprzez napisanie wlasnych triggerów
  • zazadanie startu uslugi poprzez API klienta lub obiekt COM SCM - jest to standardowy sposób zadania jedak w w7 dodanych zostalo kilka usprawnien w dzialaniu
  • zatrzymanie nieaktywnej uslugi - jest najwazniejszym i uzueplniajacym elementem, dzieki któremu wszystkie uslugi, które nie sa w zaden sposób wykorzystywane zostana zartrzymane. Caly trik polega na tym, zeby przy tak zatrzymanej uslydze klient, który nagle chce z niej skorzystac nie dostal odmowy/informacji o tym, ze usluga nie dziala - w zamian usluga powinna sie podniesc i obsluzyc zadanie.

wprowadzenie tych pozornie niewielkich zmian jest de facto dosc powazna zmiana. ekipa developerów pracujaca nad kernelem i zajmujaca sie SCM uzyskala bardzo duzy zysk na róznych plaszczyznach dzialania systemu dzieki wprowadzonym modyfikacjom - zadowoleni powinni byc zarówno uzytkownicy, dzieki "lzejszemu" dzialaniu systemu - jak i administratorzy. ponad to w w7 mniej zbednych uslug bedzie uruchomionych co wplynie na bezpieczenstwo i wydajnosc [i zuzycie energii].

 dostepny jest ciekawy whitepaper opisujacy powyzsze zmiany nieco dokladniej.dla osób wolacych posluchac zamiast poczytac - polecam wywiad na channel 9 z szefem projektu Chittur Subbaramanem, który omawia opisane zmiany.

 Wskazany whitepaper zwraca równiez uwage na cos, co przy systemie Vista nie bylo zbyt mocno omawiane na stronach - task scheduler. Jesli do tej pory nie zwróciliscie uwagi na to, jak bardzo sie zmienil - polecam to zrobic ASAP. juz w Vista widac, ze wiele "uslug" obslugiwanych jest poprzez scheduler dzieki bardzo rozwinietej obsludze triggerów. napisalem "uslug" w cudzyslowiu, poniewaz nie sa to "uslugi systemowe" - zarejestrowane i widoczne w services.msc - a raczej zadania dzialajace w tle i uruchamiane zaleznie od zdazenia [np. zadanie ustawiajace defragmentacje w sob i nd, ale tylko jesli system jest nieaktywny i podlaczony do zasilania].

Osobiscie mam dodatkowo nadzieje, ze usuniete zostana mechanizmy kluczy Run, RunOnce i innych dziwnych miejsc, gdzie mozna wsadzic uruchomienie aplikacji/procesu - nowy schedulet jest idealnym kandydatem, zeby wszystkie te, trudne do ogarniecia ze wzgledu na liczbe mechanizmy, zastapic czyms spójnym i zarzadzalnym. chociaz szczerze watpie, zeby nastapilo to w tej wersji.

 PS. zwróciliscie uwage na taki drobny fakt - nowy Windows nazywa sie Windows 7 podczas, gdy wersja kernela nie zmieni wersji glównej [major version] pozostajac przy numerku 6.1. Jak wiec bedzie nazywal sie system kliencki NT 7.o?

w przypadku serwerowych nie ma takiego problemu bo NT6.1 server to Windows Server 2008 R2.