Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00171 007462 11069347 na godz. na dobę w sumie
MS Windows 2000 od środka - książka
MS Windows 2000 od środka - książka
Autor: , Liczba stron: 784
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-821-9 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> systemy operacyjne >> windows 2000
Porównaj ceny (książka, ebook, audiobook).
Książka dostarczy Ci unikatowej wiedzy na temat wewnętrznych mechanizmów działania systemu Windows 2000. Została napisana we współpracy z zespołem tworzącym Windows 2000, a jej autorzy mieli pełen dostęp do kodu źródłowego systemu. Znajdziesz tutaj informacje niedostępne w innych źródłach, pozwalające pisać wydajniejsze aplikacje przeznaczone dla platformy Windows 2000. Z książki skorzystają również administratorzy systemowi. Zrozumienie tajemnic mechanizmów systemu operacyjnego ułatwi im odnalezienie źródła problemu w przypadku awarii.

Poznaj wszystkie tajemnice Windows 2000:

  • Podstawowe pojęcia: Win32 API, procesy, wątki i prace, tryb jądra i tryb użytkownika
  • Architektura systemu -- kluczowe komponenty
  • Mechanizmy systemowe: obsługa przerwań, menedżer obiektów, synchronizacja, systemowe wątki wykonawcze
  • Proces uruchamiania i zamykania systemu
  • Mechanizmy zarządzania,
  • Zarządzanie procesami, wątkami i pracami
  • Zarządzanie pamięcią
  • Zagadnienia związane z bezpieczeństwem systemu
  • Podsystem wejścia-wyjścia
  • Zarządzanie pamięcią masową, systemy plików
  • Menedżer pamięci podręcznej
  • Praca systemu Windows 2000 w sieciach lokalnych i Internecie Jeśli poważnie myślisz o tworzeniu oprogramowania dla Windows 2000 lub chcesz nim w pełni profesjonalnie administrować, Microsoft Windows 2000. Od środka stanowić będzie ważną pozycję w Twojej bibliotece. Bardziej szczegółowego opisu tego systemu operacyjnego nie znajdziesz w żadnej innej książce.
  • Znajdź podobne książki Ostatnio czytane w tej kategorii

    Darmowy fragment publikacji:

    IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl MS Windows 2000 od ġrodka Autorzy: David A. Solomon, Mark E. Russinovich ISBN: 83-7197-821-9 Tytu³ orygina³u: Inside MS Windows 2000, 3rd Edition Format: B5, stron: 784 Zawiera CD-ROM Ksi¹¿ka dostarczy Ci unikatowej wiedzy na temat wewnêtrznych mechanizmów dzia³ania systemu Windows 2000. Zosta³a napisana we wspó³pracy z zespo³em tworz¹cym Windows 2000, a jej autorzy mieli pe³en dostêp do kodu ĥród³owego systemu. Znajdziesz tutaj informacje niedostêpne w innych ĥród³ach, pozwalaj¹ce pisaæ wydajniejsze aplikacje przeznaczone dla platformy Windows 2000. Z ksi¹¿ki skorzystaj¹ równie¿ administratorzy systemowi. Zrozumienie tajemnic mechanizmów systemu operacyjnego u³atwi im odnalezienie ĥród³a problemu w przypadku awarii. Poznaj wszystkie tajemnice Windows 2000: • Podstawowe pojêcia: Win32 API, procesy, w¹tki i prace, tryb j¹dra i tryb u¿ytkownika • Architektura systemu — kluczowe komponenty • Mechanizmy systemowe: obs³uga przerwañ, mened¿er obiektów, synchronizacja, systemowe w¹tki wykonawcze • Proces uruchamiania i zamykania systemu • Mechanizmy zarz¹dzania, • Zarz¹dzanie procesami, w¹tkami i pracami • Zarz¹dzanie pamiêci¹ • Zagadnienia zwi¹zane z bezpieczeñstwem systemu • Podsystem wejġcia-wyjġcia • Zarz¹dzanie pamiêci¹ masow¹, systemy plików • Mened¿er pamiêci podrêcznej • Praca systemu Windows 2000 w sieciach lokalnych i Internecie Jeġli powa¿nie myġlisz o tworzeniu oprogramowania dla Windows 2000 lub chcesz nim w pe³ni profesjonalnie administrowaæ, Microsoft Windows 2000. Od ġrodka stanowiæ bêdzie wa¿n¹ pozycjê w Twojej bibliotece. Bardziej szczegó³owego opisu tego systemu operacyjnego nie znajdziesz w ¿adnej innej ksi¹¿ce. Spis treści Rys historyczny ...................................................c..........................17 Słowo wstępne ...................................................c..........................19 Wstęp...................................................c........................................21 Rozdział 1. Zagadnienia i narzędzia ..............................................25 Fundamentalne zagadnienia i pojęcia ................................................... ................................. 25 Win32 API ................................................... ................................................... ............. 25 Usługi, funkcje i procedury................................................... ......................................... 27 Procesy, wątki i prace................................................... ................................................. 27 Pamięć wirtualna................................................... ................................................... ..... 29 Tryb jądra kontra tryb użytkownika ................................................... ............................. 31 Obiekty i uchwyty ................................................... ................................................... ... 35 Bezpieczeństwo ................................................... ................................................... ...... 36 Rejestr ................................................... ................................................... ................... 37 Unicode............................................ ................................................... .........................38 Jak zajrzeć do wnętrza Windows 2000? ................................................... ............................. 38 Narzędzia na dołączonej płycie CD................................................... .............................. 40 Narzędzie Wydajność ................................................... ................................................. 40 Windows 2000 Support Tools ................................................... ..................................... 41 Windows 2000 Resource Kits................................................... ...................................... 41 Programy uruchomieniowe jądra ................................................... ................................. 41 Platform Software Development Kit (SDK)................................................... .................. 44 Device Driver Kit (DDK)................................................... ............................................ 44 Narzędzia z witryny System Internals................................................... ........................... 45 Podsumowanie ................................................... ................................................... .............45 Rozdział 2. Architektura systemu .................................................47 Wymagania i cele projektowe ................................................... ........................................... 47 Model systemu operacyjnego ................................................... ............................................ 49 Przenośność ................................................... ................................................... ........... 51 Symetryczne wieloprzetwarzanie ................................................... ................................. 52 Skalowalność................................................... ................................................... .......... 53 10 Spis treści Zarys architektury................................................... ................................................... ......... 54 Pakiety handlowe Windows 2000................................................... ...................................... 55 Wersja testowa ................................................... ................................................... ....... 58 Pliki systemowe związane z maszynami wieloprocesorowymi........................................... 58 Kluczowe komponenty systemu................................................... ........................................ 61 Podsystemy środowiskowe i biblioteki podsystemów ................................................... .... 62 Ntdll.dll................................................... ................................................... .................. 72 Centrum wykonawcze ................................................... ................................................ 73 Jądro................................................... ................................................... ...................... 75 Warstwa uniezależnienia od sprzętu................................................... ............................. 77 Sterowniki urządzeń................................................... ................................................... 78 Podglądanie nieudokumentowanych interfejsów ................................................... ........... 80 Procesy Systemowe................................................... ................................................... . 84 Podsumowanie ................................................... ................................................... .............96 Rozdział 3. Mechanizmy systemowe..............................................97 Obsługa pułapek ................................................... ................................................... ........... 97 Obsługa przerwań ................................................... ................................................... ... 99 Obsługa wyjątków................................................... ................................................... . 117 Obsługa wywołań usług systemowych ................................................... ....................... 124 Menedżer obiektów................................................... ................................................... ..... 127 Obiekty centrum wykonawczego ................................................... ............................... 129 Struktura obiektu................................................... ................................................... ... 131 Synchronizacja ................................................... ................................................... ...........148 Synchronizacja jądra ................................................... ................................................ 149 Synchronizacja centrum wykonawczego................................................... ..................... 152 Systemowe wątki wykonawcze ................................................... ....................................... 158 Globalne znaczniki Windows 2000................................................... .................................. 161 Lokalne wywołania procedur (LPC)................................................... ................................ 164 Podsumowanie ................................................... ................................................... ........... 167 Rozdział 4. Uruchamianie i zamykanie systemu........................... 169 Proces uruchamiania ................................................... ................................................... ... 169 Przed uruchomieniem systemu ................................................... .................................. 170 Sektor startowy i Ntldr................................................... .............................................. 172 Inicjalizacja jądra i podsystemów wykonawczych................................................... ....... 179 Smss, Csrss i Winlogon ................................................... ............................................ 183 Tryb awaryjny................................................... ................................................... ............185 Ładowanie sterowników w trybie awaryjnym ................................................... ............. 186 Programy użytkownika potrafiące obsłużyć tryb awaryjny.............................................. 187 Rejestrowanie rozruchu w trybie awaryjnym ................................................... .............. 188 Konsola odzyskiwania................................................... ................................................... . 189 Zamykanie systemu ................................................... ................................................... .... 191 Załamanie systemu ................................................... ................................................... ..... 193 Dlaczego Windows 2000 traci stabilność? ................................................... .................. 193 Niebieski ekran................................................... ................................................... ..... 194 Pliki zrzutu awaryjnego ................................................... ............................................ 196 Podsumowanie ................................................... ................................................... ........... 199 Spis treści 11 Rozdział 5. Mechanizmy zarządzania .......................................... 201 Rejestr................................................... ................................................... ....................... 201 Typy danych stosowane w rejestrze ................................................... ........................... 202 Struktura logiczna rejestru................................................... ......................................... 203 Wewnątrz rejestru................................................... ................................................... . 207 Usługi................................................... ................................................... ........................ 219 Aplikacje usług ................................................... ................................................... ..... 219 Konta usługi ................................................... ................................................... ......... 224 Menedżer kontroli usług (SCM) ................................................... ................................ 227 Uruchamianie usług................................................... .................................................. 230 Błędy uruchomienia................................................... .................................................. 233 Rozruch systemu i ostatnia prawidłowa kopia rejestru ................................................... . 234 Awarie usług................................................... ................................................... ......... 236 Zakończenie działania usługi................................................... ..................................... 236 Współdzielone procesy usług ................................................... .................................... 237 Programy zarządzania usługami (SCP)................................................... ....................... 240 Instrumentacja zarządzania Windows (WMI) ................................................... ................... 241 Architektura WMI................................................... ................................................... . 242 Dostawcy ................................................... ................................................... ............. 244 Common Information Model i Managed Object Format Language ................................... 245 Przestrzeń nazw WMI ................................................... .............................................. 247 Skojarzenia klas ................................................... ................................................... .... 248 Implementacja WMI................................................... ................................................. 249 Bezpieczeństwo WMI................................................... ............................................... 250 Podsumowanie ................................................... ................................................... ........... 250 Rozdział 6. Procesy, wątki i zadania ............................................ 251 Informacje o procesie................................................... ................................................... .. 251 Struktury danych................................................... ................................................... ... 251 Zmienne jądra................................................... ................................................... ....... 262 Liczniki wydajności................................................... .................................................. 264 Funkcje ................................................... ................................................... ................ 264 Narzędzia ................................................... ................................................... ............. 265 Funkcja CreateProcess ................................................... ................................................... 272 Etap 1. Otwieranie pliku binarnego ................................................... ............................ 274 Etap 2. Tworzenie obiektu procesu centrum wykonawczego Windows 2000..................... 276 Etap 3. Tworzenie wątku początkowego oraz jego stosu i kontekstu................................ 280 Etap 4. Informowanie podsystemu Win32 o nowym procesie .......................................... 281 Etap 5. Rozpoczęcie wykonywania wątku początkowego................................................ 282 Etap 6. Inicjacja procesu w kontekście nowego procesu.................................................. 282 Informacje o wątku................................................... ................................................... ..... 283 Struktury danych................................................... ................................................... ... 283 Zmienne jądra................................................... ................................................... ....... 292 Liczniki wydajności................................................... .................................................. 292 Funkcje ................................................... ................................................... ................ 293 Narzędzia ................................................... ................................................... ............. 293 Funkcja CreateThread................................................... ................................................... . 295 Przydzielanie wątkom czasu procesora ................................................... ............................ 298 Omówienie przydzielania wątkom czasu procesora w Windows 2000.............................. 299 Poziomy priorytetu................................................... ................................................... 302 12 Spis treści Funkcje API służące do przydzielania czasu procesora ................................................... 304 Narzędzia ................................................... ................................................... ............. 304 Priorytety czasu rzeczywistego................................................... .................................. 306 Poziomy przerwań a poziomy priorytetu................................................... ..................... 307 Stany wątku................................................... ................................................... .......... 307 Kwant................................................... ................................................... .................. 309 Struktury danych służące do przydzielania czasu procesora............................................. 312 Różne scenariusze przydzielania czasu procesora................................................... ........ 313 Przełączanie kontekstu................................................... .............................................. 316 Wątek bezczynny................................................... ................................................... .. 316 Podwyższanie priorytetu................................................... ........................................... 317 Zadanie................................................... ................................................... ...................... 327 Podsumowanie ................................................... ................................................... ........... 331 Rozdział 7. Zarządzanie pamięcią ............................................... 333 Elementy menedżera pamięci................................................... .......................................... 334 Konfigurowanie menedżera pamięci ................................................... .......................... 335 Badanie wykorzystania pamięci................................................... ................................. 338 Usługi menedżera pamięci ................................................... .............................................. 341 Rezerwowanie i deklarowanie stron................................................... ........................... 342 Blokowanie pamięci ................................................... ................................................. 343 Ziarnistość alokacji................................................... ................................................... 344 Pamięć współdzielona i pliki odwzorowane ................................................... ................ 344 Zabezpieczanie pamięci ................................................... ............................................ 346 Kopiowanie przy zapisie ................................................... ........................................... 347 Funkcje stosu................................................... ................................................... ........ 350 Okienkowe rozszerzenia adresowania ................................................... ........................ 351 Systemowe pule pamięci ................................................... ................................................ 352 Listy asocjacyjne................................................... ................................................... ... 359 Weryfikator sterowników................................................... .......................................... 360 Układ przestrzeni adresowej ................................................... ........................................... 365 Układ przestrzeni adresowej użytkownika ................................................... .................. 366 Układ systemowej przestrzeni adresowej................................................... .................... 370 Tłumaczenie adresów................................................... ................................................... .. 374 Tłumaczenie adresu wirtualnego................................................... ................................ 375 Katalogi stron ................................................... ................................................... ....... 377 Tabele stron procesu i systemu................................................... .................................. 378 Wpisy tabeli stron ................................................... ................................................... . 380 Bajt w obrębie strony ................................................... ............................................... 382 Asocjacyjny bufor translacji ................................................... ...................................... 382 Rozszerzenia fizycznych adresów ................................................... .............................. 384 Obsługa błędu stron ................................................... ................................................... .... 386 Nieważne wpisy tabeli stron................................................... ...................................... 387 Prototypowe wpisy tabeli stron................................................... .................................. 387 Stronicowanie operacji wejścia-wyjścia................................................... ...................... 389 Błąd kolizji strony ................................................... ................................................... . 390 Pliki stronicowania ................................................... ................................................... 391 Deskryptory adresu wirtualnego................................................... ...................................... 391 Zestawy robocze................................................... ................................................... ......... 394 Polityka w zakresie stronicowania................................................... .............................. 395 Zarządzanie zestawami roboczymi................................................... ............................. 396 Spis treści 13 Menedżer zbioru równowagi i program wymiany................................................... ........ 400 Systemowy zestaw roboczy ................................................... ...................................... 401 Baza danych numerów stron pamięci ................................................... ............................... 403 Dynamika list stron ................................................... .................................................. 405 Program zapisu stron zmodyfikowanych ................................................... .................... 409 Struktury danych numerów stron pamięci ................................................... ................... 410 Obiekty sekcji........................................ ................................................... ........................ 413 Podsumowanie ................................................... ................................................... ........... 419 Rozdział 8. Bezpieczeństwo ...................................................c..... 421 Klasy bezpieczeństwa................................................... ................................................... .. 421 Składniki systemu zabezpieczeń................................................... ...................................... 423 Ochrona obiektów................................................... ................................................... ....... 426 Sprawdzanie dostępu ................................................... ................................................ 427 Identyfikatory bezpieczeństwa................................................... ................................... 429 Znaczniki dostępu ................................................... ................................................... . 430 Personalizacja ................................................... ................................................... ....... 434 Znaczniki ograniczone ................................................... .............................................. 436 Deskryptory bezpieczeństwa i kontrola dostępu ................................................... .......... 437 Nadzorowanie bezpieczeństwa ................................................... ........................................ 444 Logowanie ................................................... ................................................... ................. 448 Inicjacja procesu Winlogon................................................... ....................................... 449 Logowanie użytkownika ................................................... ........................................... 450 Podsumowanie ................................................... ................................................... ........... 453 Rozdział 9. System wejścia-wyjścia .............................................. 455 Założenia projektowe ................................................... ................................................... .. 455 Komponenty systemu wejścia-wyjścia ................................................... ............................. 456 Menedżer wejścia-wyjścia................................................... ......................................... 459 Sterowniki urządzeń................................................... ................................................. 460 Menedżer PnP ................................................... ................................................... ...... 467 Menedżer zasilania ................................................... ................................................... 470 Struktury danych wejścia-wyjścia................................................... .................................... 476 Obiekty plików ................................................... ................................................... ..... 476 Obiekty sterowników i obiekty urządzeń ................................................... .................... 479 Pakiety żądań wejścia-wyjścia................................................... ................................... 484 Porty ukończenia operacji wejścia-wyjścia ................................................... ................. 491 Ładowanie, inicjalizacja i instalacja sterownika ................................................... ................ 493 Wartość początkowa ................................................... ................................................ 493 Wyliczanie urządzeń ................................................... ................................................ 494 Węzły devnode ................................................... ................................................... ..... 498 Ładowanie sterownika węzłów devnode................................................... ..................... 499 Instalacja sterownika ................................................... ................................................ 501 Przetwarzanie operacji wejścia-wyjścia................................................... ............................ 504 Typy operacji wejścia-wyjścia................................................... ................................... 504 Żądanie wejścia-wyjścia do sterownika jednowarstwowego ............................................ 507 Żądania wejścia-wyjścia do sterowników wielowarstwowych ......................................... 512 Działanie portu ukończenia operacji wejścia-wyjścia................................................... ... 515 Synchronizacja................................................... ................................................... ...... 517 Podsumowanie ................................................... ................................................... ........... 519 14 Spis treści Rozdział 10. Zarządzanie pamięcią masową ................................ 521 Ewolucja pamięci masowej w systemie Windows 2000................................................... ..... 521 Podział na partycje................................. ................................................... ........................523 Podział na partycje podstawowe ................................................... ................................ 524 Podział na partycje dynamiczne................................................... ................................. 525 Sterowniki pamięci masowej.................................................. ............................................ 530 Sterowniki dysku ................................................... ................................................... .. 530 Nazwy urządzeń ................................................... ................................................... ... 531 Zarządzanie dyskami podstawowymi ................................................... ......................... 532 Zarządzanie dyskami dynamicznymi................................................... .......................... 533 Monitorowanie wydajności dysku................................................... .............................. 535 Zarządzanie woluminami złożonymi z kilku partycji................................................... ......... 536 Woluminy łączone................................................... ................................................... . 537 Woluminy rozłożone ................................................... ................................................ 537 Woluminy dublowane................................................... ............................................... 538 Woluminy RAID-5................................................... ................................................... 540 Operacje wejścia-wyjścia woluminu ................................................... .......................... 541 Przestrzeń nazw woluminów................................................... ........................................... 542 Menedżer montowania................................................... .............................................. 543 Punkty montowania................................................... .................................................. 544 Montowanie woluminów................................................... ........................................... 546 Podsumowanie ................................................... ................................................... ........... 550 Rozdział 11. Menedżer pamięci podręcznej................................. 551 Kluczowe funkcje Menedżera pamięci podręcznej systemu Windows 2000............................ 551 Pojedynczy, scentralizowany system pamięci podręcznej................................................ 552 Menedżer pamięci ................................................... ................................................... . 552 Koherencja pamięci podręcznej ................................................... ................................. 553 Buforowanie bloków wirtualnych ................................................... .............................. 553 Buforowanie oparte na strumieniu................................................... .............................. 555 Obsługa odzyskiwalnego systemu plików ................................................... ................... 555 Struktura pamięci podręcznej ................................................... .......................................... 556 Rozmiar pamięci podręcznej................................................... ........................................... 558 Wirtualny rozmiar pamięci................................................... ........................................ 558 Fizyczny rozmiar pamięci podręcznej ................................................... ........................ 559 Struktury danych pamięci podręcznej ................................................... .............................. 562 Struktury danych pamięci podręcznej, odnoszące się do całego systemu........................... 563 Struktury danych pamięci podręcznej odnoszące się do pliku .......................................... 563 Działanie pamięci podręcznej.................................................. ........................................... 567 Buforowanie z opóźnionym zapisem i powolny zapis ................................................... .. 567 Inteligentny odczyt z wyprzedzeniem.................................................. .......................... 570 Wątki systemowe ................................................... ................................................... .. 572 Szybkie operacje wejścia-wyjścia ................................................... .............................. 572 Procedury obsługujące pamięć podręczną ................................................... ........................ 574 Kopiowanie do (i z) pamięci podręcznej................................................... ..................... 575 Buforowanie z interfejsami mapowania i spinania ................................................... ....... 576 Buforowanie z interfejsami bezpośredniego dostępu do pamięci ...................................... 578 Zdławianie zapisu................................................... ................................................... .. 579 Podsumowanie ................................................... ................................................... ........... 581 Spis treści 15 Rozdział 12. Systemy plików ...................................................c.... 583 Formaty systemów plików Windows 2000 ................................................... ....................... 584 CDFS................................................. ................................................... ..................... 584 UDF ................................................... ................................................... .................... 584 FAT12, FAT16 i FAT32................................................... ........................................... 585 NTFS................................................. ................................................... ..................... 587 Architektura sterownika systemu plików ................................................... .......................... 588 Lokalne sterowniki FSD ................................................... ........................................... 589 Zdalne sterowniki FSD ................................................... ............................................. 590 Działanie systemu plików ................................................... ......................................... 591 Zadania i cechy projektu systemu NTFS................................................... .......................... 597 Wymagania systemu plików klasy wyższej................................................... ................. 597 Zaawansowane cechy systemu NTFS................................................. ........................... 599 Sterownik systemu plików NTFS................................................... .................................... 609 Struktura dyskowa systemu plików NTFS................................................... ........................ 611 Woluminy ................................................... ................................................... ............ 611 Klastry ................................................... ................................................... ................. 612 Tablica MFT (Master File Table)................................................... ............................... 612 Liczby odniesień plików ................................................... ........................................... 618 Rekordy plików................................................... ................................................... ..... 618 Nazwy plików................................................... ................................................... ....... 620 Atrybuty rezydentne i nierezydentne ................................................... .......................... 622 Indeksowanie................................................... ................................................... ........ 625 Kompresja danych i pliki rozrzedzone................................................... ........................ 627 Punkty reparsowe................................................... ................................................... .. 631 Plik dziennika zmian ................................................... ................................................ 631 Identyfikatory obiektów ................................................... ............................................ 632 Śledzenie udziałów................................................... ................................................... 633 Zabezpieczenia połączone ................................................... ......................................... 633 Obsługa odzyskiwania w systemie NTFS................................................... ......................... 633 Ewolucja projektu systemu plików................................................... ............................. 634 Rejestracja................................................... ................................................... ............ 637 Odzyskiwanie ................................................... ................................................... ....... 642 Odzyskiwanie uszkodzonych klastrów w systemie NTFS................................................... .. 646 System szyfrowania plików ................................................... ............................................ 650 Rejestrowanie wywołań zwrotnych................................................... ............................ 652 Szyfrowanie pliku po raz pierwszy................................................... ............................. 653 Proces odszyfrowania ................................................... ............................................... 658 Tworzenie kopii zapasowych plików zaszyfrowanych ................................................... . 659 Podsumowanie ................................................... ................................................... ........... 660 Rozdział 13. Praca w sieci ...................................................c........ 661 Wzorcowy model systemów otwartych (OSI)................................................... ................... 661 Warstwy OSI................................................... ................................................... ........ 662 Komponenty Windows 2000 do pracy w sieci................................................... ............. 663 Funkcje API do pracy w sieci................................................... .......................................... 665 Nazwane potoki i funkcje mailslot ................................................... ............................. 665 Windows Sockets................................................... ................................................... .. 671 Zdalne wywołanie procedury................................................... ..................................... 675 16 Spis treści Wspólny system plików internetowych (CIFS)................................................... ............ 679 NetBIOS ................................................... ................................................... .............. 683 Inne funkcje API do pracy w sieci................................................... .............................. 686 Określanie nazw zasobów sieciowych................................................... .............................. 688 Ruter MPR................................................... ................................................... ........... 689 Sterownik MUP................................................... ................................................... .... 691 System nazw domen (DNS) ................................................... ...................................... 692 Sterowniki protokołu................................................... ................................................... ... 693 Sterowniki NDIS ................................................... ................................................... ........ 696 Odmiany miniportu NDIS................................................... ......................................... 700 Specyfikacja NDIS zorientowana na połączenie ................................................... .......... 700 Powiązanie................................................... ................................................... ................. 703 Usługi sieciowe ................................................... ................................................... ..........704 Dostęp zdalny................................................... ................................................... ....... 705 Active Directory................................................... ................................................... .... 705 Network Load Balancing ................................................... .......................................... 706 Usługa File Replication................................................... ............................................. 707 Rozproszony system plików ................................................... ...................................... 708 Rozszerzenia TCP/IP................................................... ................................................ 709 Podsumowanie ................................................... ................................................... ........... 711 Słownik...................................................c.................................... 713 Skorowidz...................................................c................................ 751 2 Architektura systemu Po omówieniu pojęć, zagadnień i narzędzi, których znajomość jest konieczna, pora przejść do założeń projektowych i struktury systemu Microsoft Windows 2000 (dawniej Windows NT). Ten rozdział prezentuje ogólną architekturę systemu — kluczowe komponenty, ich współpracę i kontekst, w jakim działają. Aby zbudować podstawy do zrozumienia we- wnętrznej struktury Windows 2000, musimy omówić założenia i cele projektowe, które określono przy tworzeniu pierwszego projektu i specyfikacji systemu. Wymagania i cele projektowe Poniższe wymagania nadały kierunek specyfikacji systemu Windows NT w 1989 r.:  Stworzyć w pełni 32-bitowy, wielodostępny system operacyjny, zapewniający wielowątkowość z wywłaszczeniem i pamięć wirtualną.  Obsługiwać wiele platform i architektur sprzętowych.  Zapewnić obsługę i skalowalność symetrycznych systemów wieloprzetwarzania.  Stworzyć platformę przetwarzania rozproszonego, funkcjonującą zarówno jako klient, jak i jako serwer.  Umożliwić uruchomienie większości istniejących 16-bitowych aplikacji dla MS-DOS oraz Microsoft Windows 3.1.  Spełnić rządowe wymagania zgodności ze standardem POSIX 1003.1.  Spełnić rządowe i przemysłowe wymagania dotyczące bezpieczeństwa systemu komputerowego.  Zapewnić możliwość adaptacji do warunków rynku międzynarodowego poprzez obsługę standardu Unicode. 48 Rozdział 2. Architektura systemu Zespół projektowy Windows NT uznał, że każda decyzja dotycząca systemu musi bazować na przyjętych celach projektowych. Są to:  Rozszerzalność. Kod musi być napisany w sposób umożliwiający wygodny rozwój, postępujący za zmieniającymi się wymaganiami rynku.  Przenośność. System musi obsługiwać wiele platform sprzętowych. Musi także istnieć możliwość relatywnie łatwego przenoszenia go na nowe platformy, zgodnie z trendami rynkowymi.  Niezawodność i stabilność. System powinien być odporny zarówno na wewnętrzne awarie, jak i na zagrożenia zewnętrzne. Aplikacje nie mogą mieć możliwości zagrożenia systemowi operacyjnemu ani innym aplikacjom.  Zgodność. Mimo ze Windows NT ma rozszerzać istniejące technologie, interfejs użytkownika oraz API powinien być zgodny ze starszymi wersjami Windows oraz z MS-DOS. Windows NT powinien również dobrze współpracować z innymi systemami, takimi jak Unix, OS/2 czy NetWare.  Wydajność. W ramach pozostałych założeń projektowych system powinien zapewniać wydajność i czas reakcji na najwyższym, możliwym na danej platformie sprzętowej, poziomie. W miarę zagłębiania się w tajniki wewnętrznej struktury i działania Windows 2000 okaże się, w jaki sposób te początkowe założenia i wymagania rynkowe zostały z powodzeniem wplecione w konstrukcję systemu. Ale przed dokładną analizą omówimy ogólny model projektowy Windows 2000 oraz jego podobieństwa i różnice z innymi współczesnymi systemami operacyjnymi. Windows 2000 kontra Consumer Windows Windows 2000 oraz Consumer Windows (Windows 95, Windows 98 i Windows Mille- nium Edition) wchodzą w skład „rodziny systemów operacyjnych Windows”. Rodzina ta posiada wspólny interfejs programowy (Win32 oraz COM), a także, w niektórych przypadkach, wspólny kod. Windows 2000, Windows 98 i Windows Millenium Edition korzystają również ze wspólnego modelu sterowników urządzeń o nazwie Windows Driver Model (WDM). Model ten zostanie bardziej szczegółowo omówiony w rozdziale 9. Od momentu rozpoczęcia prac nad Windows NT Microsoft jasno określał ten system jako strategiczną platformę przyszłości — nie tylko dla serwerów i komputerów w przedsiębiorstwach, ale także docelowo dla komputerów domowych. Poniższa lista wymienia pewne różnice w architekturze oraz zalety Windows 2000 względem Con- sumer Windows:  Windows 2000 obsługuje systemy wieloprocesorowe — Consumer Windows nie.  System plików Windows 2000 zapewnia bezpieczeństwo (poprzez na przykład uznaniową kontrolę dostępu). Nie można tego powiedzieć o systemie plików wykorzystywanym w Consumer Windows.  Windows 2000 jest w pełni 32-bitowym systemem operacyjnym — nie zawiera kodu 16-bitowego, poza fragmentami kodu wspierającymi uruchamianie 16-bitowych aplikacji Windows. Systemy Consumer Windows zawierają dużą ilość 16-bitowego kodu odziedziczonego po przodkach: Windows 3.1 i MS-DOS. Model systemu operacyjnego 49  System Windows 2000 jest w pełni wielodostępny — czego nie można powiedzieć o znaczącej części Consumer Windows (chodzi tu głównie o 16-bitowy kod odziedziczony po Windows 3.1). Ten nie wielodostępny kod to większość funkcji związanych z grafiką i systemem zarządzania interfejsem użytkownika (GDI oraz USER). W momencie, gdy aplikacja 32-bitowa uruchomiona w Consumer Windows próbuje wywołać funkcję systemową zaimplementowaną poprzez nie wielodostępny kod 16-bitowy, musi najpierw dokonać ogólnosystemowej blokady (nazywanej mutexem), aby nie dopuścić innych wątków do tego kodu. Co gorsza, aplikacja 16-bitowa utrzymuje tę blokadę podczas pracy. W rezultacie, mimo że jądro Consumer Windows zawiera 32-bitowy mechanizm szeregowania zadań z wywłaszczeniem, aplikacje często wykonywane są jednowątkowo, ponieważ większość systemu jest zaimplementowana w postaci nie wielodostępnego kodu.  Windows 2000 zapewnia możliwość uruchomienia 16-bitowych aplikacji Windows w ich własnej przestrzeni adresowej — systemy Consumer Windows zawsze uruchamiają 16-bitowe aplikacje we wspólnej przestrzeni adresowej, przez co mogą one przeszkadzać sobie (i zawieszać się) nawzajem.  Wspólna przestrzeń adresowa w Windows 2000 jest widoczna jedynie dla procesów, które korzystają z tego samego segmentu pamięci współdzielonej. (W Win32 API segment pamięci współdzielonej nazywa się obiektem odwzorowania pliku — ang. file mapping object). W systemach Consumer Windows dostęp i zapisywanie w pamięci współdzielonej są możliwe dla wszystkich procesów. Tak więc każdy proces może wykonać zapis do obiektu odwzorowania pliku.  Systemy Consumer Windows posiadają również krytyczne dla systemu strony pamięci, których modyfikacja jest możliwa w trybie użytkownika. Dzięki temu aplikacja użytkownika jest w stanie doprowadzić do zakłócenia lub załamania pracy systemu. Jedyną rzeczą możliwą w systemach Consumer Windows, która nigdy nie będzie możliwa w Windows 2000, jest zdolność uruchamiania wszystkich starszych aplikacji dla MS-DOS i Windows 3.1 (zwłaszcza aplikacji wymagających bezpośredniego do- stępu do sprzętu) oraz 16-bitowych sterowników urządzeń dla MS-DOS-a. Podczas gdy stuprocentowa zgodność z systemami MS-DOS i Windows 3.1 była nadrzędnym zało- żeniem w Windows 95, założeniem w przypadku Windows NT była możliwość uru- chomienia większości istniejących aplikacji 16-bitowych, przy zachowaniu spójności i niezawodności systemu. Model systemu operacyjnego W większości wielodostępnych systemów operacyjnych aplikacje są oddzielone od samego systemu — kod systemu operacyjnego jest wykonywany w uprzywilejowanym trybie procesora (w tej książce określanym jako tryb jądra), z dostępem do danych systemo- wych oraz sprzętu. Kod aplikacji jest wykonywany w pozbawionym przywilejów trybie procesora (zwany m trybem użytkownika), z ograniczony m dostępem do interfejsów, danych systemowych oraz bez bezpośredniego dostępu do sprzętu. Gdy program w trybie 50 Rozdział 2. Architektura systemu użytkownika wywołuje usługę systemową, procesor przechwytuje to wywołanie i prze- łącza wywołujący wątek w tryb jądra. Gdy wykonanie usługi systemowej kończy się, system operacyjny przełącza kontekst wątku z powrotem do trybu użytkownika i konty- nuuje wykonanie aplikacji. Windows 2000 jest podobny do większości systemów uniksowych w tym sensie, że jest systemem monolitycznym — większość kodu systemu operacyjnego i sterowników urzą- dzeń współdzieli tę samą, chronioną przestrzeń adresową trybu jądra. Oznacza to, że każdy komponent systemu lub sterownik urządzenia może potencjalnie zakłócić inte- gralność danych wykorzystywanych przez inne komponenty systemu. Wszystkie te komponenty systemu operacyjnego są oczywiście w pełni chronione przed działaniem błędnych aplikacji, ponieważ aplikacje nie mają bezpośredniego dostępu do kodu i danych uprzywilejowanej części systemu operacyjnego (mimo że mogą wywo- ływać inne usługi jądra). Ta ochrona jest powodem, dla którego Windows 2000 ma repu- tację systemu niezawodnego i stabilnego, zarówno w roli serwera aplikacji, jak i stacji roboczej. Ma reputację jednak szybkiego i sprawnego z punktu widzenia podstawowych usług systemu operacyjnego, jak zarządzanie pamięcią wirtualną, dostęp do plików, obsługa sieci oraz współdzielenie drukarek i plików. Czy Windows 2000 jest systemem z mikrojądrem? Mimo że niektórzy twierdzą inaczej, Windows 2000 nie jest systemem operacyjnym z mikrojądrem w klasycznym sensie tego określenia, oznaczającego system, w którym główne komponenty (jak zarządzanie pamięcią, procesami czy zasobami wejścia- -wyjścia) są osobnymi procesami — każdy w prywatnej przestrzeni adresowej — opar- tymi na prostym zestawie usług zapewnianych przez mikrojądro. Na przykład system operacyjny Mach, opracowany laboratoriach Carnegie Mellon University, będący współczesnym przykładem architektury z mikrojądrem, zawiera minimalnej wielkości jądro, zapewniające szeregowanie procesów, przekazywanie komunikatów, pamięć wirtualną oraz sterowniki urządzeń. Pozostałe komponenty, włącznie z różnymi inter- fejsami programowymi, systemami plików i obsługą sieci, funkcjonują w trybie użytkownika. Jednakże komercyjne implementacje systemu z mikrojądrem Mach z re- guły zezwalają na wykonanie w trybie jądra przynajmniej komponentów obsługują- cych system plików, sieci oraz zarządzanie pamięcią. Powód jest prosty: klasyczna architektura oparta na mikrojądrze jest niepraktyczna ze względów komercyjnych z powodu zbyt małej wydajności. Czy fakt, że tak wiele komponentów Windows 2000 działa w trybie jądra, oznacza, że system ten jest bardziej podatny na awarie niż system z prawdziwym mikrojądrem? Ależ skąd. Można rozważyć następujący scenariusz: załóżmy, że kod obsługujący system pli- ków zawiera błąd, sporadycznie powodujący awarię. W tradycyjnym systemie operacyj- nym lub zmodyfikowanym systemie z mikrojądrem błąd w kodzie trybu jądra, takim jak procedury menedżera pamięci lub systemu plików, prawdopodobnie spowoduje załama- nie całego systemu. W klasycznym systemie operacyjnym z mikrojądrem takie kompo- nenty działają w trybie użytkownika, tak więc teoretycznie błąd oznacza zakończenie procesu komponentu. Ale z praktycznego punktu widzenia system padnie, ponieważ przetrwanie awarii takiego krytycznego procesu prawdopodobnie będzie niemożliwe. Model systemu operacyjnego 51 Komponenty trybu jądra Windows 2000 są również zgodne z paradygmatami projekto- wania zorientowanego obiektowo. Na przykład nie odwołują się nawzajem do swoich wewnętrznych struktur danych. Zamiast tego korzystają z formalnych interfejsów, umoż- liwiających dostęp i modyfikację tych struktur danych. Oprócz powszechnego stosowania obiektów do reprezentacji współdzielonych zasobów systemowych, Windows 2000 nie jest systemem obiektowym w ścisłym tego słowa zna- czeniu. Większość kodu systemu operacyjnego napisano w języku C. Ma to uzasadnienie w przenośności oraz powszechnej dostępności narzędzi związanych z tym językiem. C nie obsługuje w bezpośredni sposób konstrukcji znanych z języków obiektowych, jak dyna- miczne przyporządkowywanie typów danych, polimorfizm czy dziedziczenie klas. Dlatego oparta na języku C implementacja obiektów w Windows 2000 korzysta z cech poszcze- gólnych języków obiektowych, ale nie jest od nich zależna. Przenośność System Windows 2000 został zaprojektowany z myślą o obsłudze rozmaitych architektur sprzętowych, włącznie z systemami typu CISC opartymi na procesorach firmy Intel oraz systemami typu RISC. Pierwsza wersja Windows NT obsługiwała architektury x86 oraz MIPS. Obsługa procesora Alpha AXP firmy Digital Equipment Corporation (DEC) została dodana niedługo później. Obsługa czwartej architektury sprzętowej, procesora Motorola PowerPC, została dodana w Windows 3.51. Idąc za zmieniającym się zapotrzebowaniem rynku, obsługę procesorów MIPS oraz PowerPC zarzucono przed rozpoczęciem prac nad systemem Windows 2000. Później firma Compaq cofnęła wsparcie dla architektury Alpha AXP, w wyniku czego system Windows 2000 obsługuje jedynie platformę x86. Kolejną obsługiwaną przez przyszłe wersje Windows 2000 architekturą będzie nowa rodzina pro- cesorów Itanium firmy Intel, pierwsza implementacja architektury 64-bitowej, opracowywana wspólnie przez Intela i Hewlett-Packard pod nazwą IA-64 (od Intel Architecture 64). 64-bitowa wersja Windows zapewni o wiele większą przestrzeń adresową zarówno dla procesów użytkowni- ka, jak i dla systemu. Mimo że jest to znaczące usprawnienie, mające pozytywny wpływ na skalo- walność systemu, jak dotąd dostosowywanie Windows 2000 do platformy 64-bitowe nie niosło ze sobą konieczności większych zmian w architekturze jądra systemu (innych niż oczywiście zmiany w systemie zarządzania pamięcią). Informacje dotyczące przygotowania obecnie tworzonych pro- gramów na nadejście 64-bitowego systemu Windows zawarte są w części dokumentacji pakietu Platform SDK, pod tytułem „Win64 Programming Preview” (dokumentacja ta jest również dostęp- na pod adresem msdn.microsoft.com). Ogólne informacje na temat 64-bitowego systemu Windows można uzyskać po wpisaniu słowa „64-bit” w wyszukiwarce na www.microsoft. com/windows. Windows 2000 zapewnia przenośność pomiędzy architekturami sprzętowymi na dwa główne sposoby:  Windows 2000 ma strukturę warstwową, w której niskopoziomowe fragmenty systemu, zależne od architektury procesora lub platform y sprzętowej, są odizolowane w postaci oddzielnych modułów, dzięki czemu wyższe warstwy systemu mogą być niezależne od różnic między platformami sprzętowymi. Dwoma kluczowymi komponentami, zapewniającymi przenośność systemu operacyjnego, są jądro (zawarte w pliku Ntoskrnl.exe) oraz warstwa uniezależnienia od sprzętu (ang. Hardware Abstraction Layer — HAL, zawarta w pliku Hal.dll). (Obydwa te komponenty zostaną opisane bardziej szczegółowo w dalszej części 52 Rozdział 2. Architektura systemu tego rozdziału). Funkcje zależne od architektury (takie jak przełączanie kontekstu wątków oraz obsługa pułapek) są zaimplementowane w jądrze. Funkcje, które mogą różnić się w obrębie tej samej architektury (na przykład różne płyty główne), są zaimplementowane w warstwie HAL.  Większość systemu Windows 2000 została napisana w języku C, niektóre fragmenty w C++. Asembler stosowano jedynie w tych częściach systemu, które muszą bezpośrednio komunikować się ze sprzętem (na przykład procedury obsługi pułapek i przerwań) lub są krytyczne z punktu widzenia wydajności (jak przełączanie kontekstów). Asembler był stosowany nie tylko w jądrze i warstwie HAL, ale także w kilku innych komponentach system u (jak na przykład procedury wykorzystujące instrukcje przetwarzania potokowego czy implementujące jeden moduł w podsystemie wywołań procedur lokalnych), w części podsystemu Win32 działającej w trybie jądra, a nawet w niektórych bibliotekach trybu użytkownika, jak kod startu procesu w Ntdll.dll (bibliotece systemowej, która zostanie omówiona później). Symetryczne wieloprzetwarzanie Wielozadaniowość jest techniką, dzięki której system operacyjny umożliwia wykonywanie wielu wątków na jednym procesorze. Jednak, jeśli komputer posiada więcej niż jeden procesor, może wykonywać dwa wątki jednocześnie. Tak więc, podczas gdy wielozada- niowy system operacyjny wygląda tak, jakby wykonywał wiele wątków w tym samym czasie, system z wieloprzetwarzaniem rzeczywiście to robi, wykonując po jednym wątku na każdym z procesorów. Jak już wspomnieliśmy na początku rozdziału, jednym z kluczowych założeń Windows NT była dobra obsługa systemów wieloprocesorowych. Windows 2000 jest systemem ope- racyjnym zapewniającym symetryczne wieloprzetwarzanie (ang. simultaneous multipro- cessing — SMP). Nie istnieje procesor nadrzędny — zarówno system operacyjny, jak i wątki użytkownika mogą być wykonywane na dowolnym procesorze. Wszystkie pro- cesory współdzielą także tę samą przestrzeń adresową. Model ten jest przeciwieństwem asymetrycznego wieloprzetwarzania (ang. asymmetric multiprocessing — ASMP), w którym system operacyjny wybiera jeden procesor, na którym wykonuje swój kod, podczas gdy pozostałe procesory wykonują jedynie kod użytkownika. Różnice między dwoma mo- delami wieloprzetwarzania ilustruje rysunek 2.1. Mimo że Windows NT zaprojektowano z myślą o obsłudze do 32 procesorów, żadna z zasadniczych cech systemu nie ogranicza liczby procesorów do 32 — liczba ta jest oczywistą i wygodną konsekwencją długości standardowego słowa 32-bitowego, stoso- wanego w roli maski bitowej. Rzeczywista liczba obsługiwanych procesorów zależy od wersji Windows 2000. (Różne wersje Windows 2000 są opisane w następnym podrozdziale). Liczba ta jest przecho- wywana w rejestrze, w kluczu HKLMSYSTEMCurrentControlSetControlSession ManagerLicensedProcessors. Warto pamiętać, że modyfikacja tej wartości jest pogwał- ceniem licencji systemu i prawdopodobnie spowoduje załamanie systemu przy ponownym uruchomieniu, ponieważ modyfikacja rejestru celem umożliwienia obsługi większej liczby procesorów wymaga nie tylko zmiany tej wartości. Model systemu operacyjnego 53 Rysunek 2.1. Wieloprzetwarzanie symetryczne kontra asymetryczne Skalowalność Jednym z kluczowych zagadnień związanych z systemami wieloprocesorowymi jest ska- lowalność. Aby prawidłowo działać na systemie SMP, kod systemu operacyjnego musi odpowiadać ścisłym wytycznym i zasadom. Przydział zasobów oraz inne kwestie wydaj- nościowe są w systemach wieloprocesorowych bardziej skomplikowane niż w jedno- procesorowych i muszą być wzięte pod uwagę przy projektowaniu systemu. Windows 2000 posiada kilka cech zapewniających sukces na polu wieloprocesorowych systemów operacyjnych:  Zdolność wykonywania kodu systemu operacyjnego na dowolnym dostępnym procesorze lub na wielu procesorach jednocześnie.  Wiele wątków wykonywanych w ramach jednego procesu — mogą one być równolegle przydzielone do różnych procesorów.  Drobnoziarnista synchronizacja procesów zarówno jądra, jak i sterowników urządzeń oraz serwerów, która pozwala większej liczbie komponentów działać równolegle na wielu procesorach. Dodatkowo, Windows 2000 zapewnia mechanizmy (takie jak uzupełniające porty I/O — omówione w rozdziale 9.) umożliwiające efektywną implementację wielowątkowych procesów serwerowych, które mogą być skalowane na systemach wieloprocesorowych. Synchronizacja wieloprocesorowa zostanie omówiona w rozdziale 3. Szczegóły szere- gowania wątków dla wielu procesorów są opisane w rozdziale 6. 54 Rozdział 2. Architektura systemu Zarys architektury Po tym krótkim omówieniu założeń projektowych Windows 2000 pora skupić uwagę na kluczowych komponentach składających się na jego architekturę. Uproszczony schemat tej architektury ilustruje rysunek 2.2. Warto pamiętać, że ten diagram jest elementarny — nie zawiera wszystkich informacji. Różne komponenty systemu Windows 2000 zostaną szczegółowo omówione w dalszej części tego rozdziału. Rysunek 2.2. Uproszczona architektura Windows 2000 Na rysunku 2.2 natychmiast rzuca się w oczy linia oddzielająca fragmenty systemu Win- dows 2000 działające w trybach użytkownika i jądra. Prostokąty ponad linią reprezentują procesy trybu użytkownika, zaś komponenty pod linią są usługami systemu operacyjnego działającymi w trybie jądra. Jak wspomniano w rozdziale 1., wątki trybu użytkownika wykonywane są w chronionej przestrzeni adresowej (choć podczas wykonywania w trybie jądra mają dostęp
    Pobierz darmowy fragment (pdf)

    Gdzie kupić całą publikację:

    MS Windows 2000 od środka
    Autor:
    ,

    Opinie na temat publikacji:


    Inne popularne pozycje z tej kategorii:


    Czytaj również:


    Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: