jadro systemu windows

background image

Jądro Systemu Windows

Wykonał:Bartosz

Wilczewski

background image

Kernel czyli serce
systemu

Zadaniem jądra jest sterowanie działaniem systemu operacyjnego. Dlatego

jego jakość w znaczący sposób wpływa na sprawność działania całego peceta.

To właśnie jądro utrzymuje wszystko w ruchu, ponieważ zawiera sterowniki

sprzętu umożliwiające komunikację z urządzeniami zewnętrznymi oraz

moduły zarządzające komponentami komputera, takimi jak pamięć

operacyjna, procesor czy dysk twardy.

Jądro dba także o bezpieczne działanie systemu, śledząc wszystkie

uruchomione procesy. Nadaje też uruchomionym programom prawo do

korzystania z urządzeń sprzętowych przez określony czas. Dla zachowania

stabilności najważniejsza jest odpowiednia organizacja zasobów, obejmująca

funkcje, z których korzystamy na co dzień, m.in. zarządzanie systemem

plików.

Wysoka sprawność jądra jest także niezbędna do szybkiego rozwiązywania

konfliktów dostępu występujących na przykład wtedy, gdy wiele programów

chce jednocześnie zapisać dane na dysku. W takich sytuacjach kernel nadaje

aplikacjom określony priorytet, pozwalając jednemu z programów na zapis, a

innym nakazując oczekiwanie na swoją kolej. W dalszej części tekstu bardziej

szczegółowo opisujemy, jak Windows radzi sobie z tymi wszystkimi zadaniami.

background image

Rodzaje Trybów Jąder

Od czasu wprowadzenia linii systemów NT w architekturze Windows istnieje podział na tryb

jądra oraz tryb użytkownika – dotyczy to również Visty. W trybie użytkownika działa

właściwie wszystko, co widzimy, korzystając z komputera, a więc programy takie jak Word

czy Photoshop. Aplikacje działające w tym trybie nie mają bezpośredniego dostępu do

komponentów sprzętowych i pamięci operacyjnej. Można powiedzieć, że tryb użytkownika

Windows jest pokryty otuliną. Dojścia sięgające bardziej w głąb systemu są kierowane przez

odpowiedni interfejs programowy, np. Win32 API korzystający z bibliotek systemowych DLL.

Tryb jądra działa natomiast w tle, a użytkownik dowiaduje się o jego istnieniu tylko wtedy,

kiedy pojawia się poważny problem. Na przykład w sytuacji, gdy nieprawidłowe działanie

sterownika funkcjonującego w trybie jądra (patrz infografika po prawej) doprowadzi do

zawieszenia się systemu, na ekranie pojawi się niebieski ekran śmierci.

Centralną pozycję w systemie Windows zajmuje plik „ntoskrnl.exe”. Aby obsłużyć tryb jądra

i tryb użytkownika, funkcjonuje on dwutorowo, obejmując warstwę jądra i tzw. egzekutor.

Warstwa jądra łączy tryb użytkownika i tryb jądra, a jej głównym zadaniem jest

przydzielanie poszczególnym programom i procesom określonej ilości czasu procesora

(ang. CPU-scheduling). Egzekutor z kolei obejmuje zakresem działania usługi systemowe,

np. Plug&Play.

Najgłębiej w systemie znajduje się tzw. abstrakcyjna warstwa sprzętowa (HAL: Hardware

Abstraction Layer). O co chodzi? Architektury poszczególnych pecetów bardzo się różnią.

Jednak za sprawą HAL od strony jądra wszystkie wyglądają tak samo. Dzięki temu kernel

może przydzielać czas procesora niezależnie od tego, czy dany układ ma dwa rdzenie i

został wyprodukowany przez AMD, czy też jest czterordzeniowy i pochodzi od Intela.

background image

Zadania Jądra

Ważnym zadaniem jądra systemowego jest zarządzanie procesami. Kryje się za tym nie tylko nadawanie

poszczególnym zadaniom odpowiednich priorytetów, ale też ich zabezpieczanie. W systemie Windows

uruchamianiem i kontrolowaniem procesów zajmuje się Win32 API. Częścią jądra odpowiedzialną za ten rodzaj

zadań jest egzekutor warstwy wykonawczej NT. Procesy mogą uzyskać dostęp do komponentów jądra dzięki tzw.

uchwytom (ang. handles).

Windows pozwala też procesom na uruchamianie kolejnych procesów, np. Word (proces 1) może utworzyć nowy

dokument (proces 2). Klasyczny model procedur Windows umożliwia także edytorowi tekstu wprowadzanie zmian

w utworzonym dokumencie lub jego usuniecie. Krótko mówiąc, procesy macierzyste mają kontrolę nad tymi

procesami, które utworzyły.

Istnieje jednak furtka pozwalająca zwykłym procesom obejść hierarchię dostępu. Jest nią tryb debugowania

programów, dający użytkownikowi posiadającemu uprawnienia administratora pełny dostęp do dowolnego

procesu. Użytkownik może w ten sposób sprawdzić pulę adresów wykorzystywanych przez proces, a także

odczytać bądź zmienić przetwarzane przez niego informacje. Korzystając z tej funkcji, haker jest w stanie

wprowadzić do procesu nowe wątki.

Żeby zabezpieczyć użytkownika przed tym rodzajem ataku, w Viście zastosowano nowy typ procesu,

przeznaczony głównie do aplikacji multimedialnych – proces chroniony. Cechuje go silne ograniczenie praw do

zarządzania innymi procesami. System przygotowuje informacje diagnostyczne dla procesów chronionych, ale

nawet administratorzy nie mogą uzyskać do nich bezpośredniego dostępu. Program, np. kodek do odtwarzania

filmu, może zostać uruchomiony jako proces chroniony tylko pod warunkiem, że jego kod został opatrzony

podpisem cyfrowym. Wprowadzenie procesów chronionych to idealny przykład, jak Microsoft dopasowuje nieco

już przykurzoną architekturę Windows do aktualnych wymagań.

W systemach Linux i Mac OS X model obsługi procesów jest podobny jak w Windows: procesy nadrzędne mają

pod kontrolą procesy potomne. Systemy te umożliwiają więc użytkownikom klasy Root samodzielne analizowanie

procesów i ingerowanie w ich przebieg. Brakuje jednak odpowiednika procesów chronionych. Nic dziwnego –

celem Microsoftu było przede wszystkim przystosowanie Visty do obsługi DRM, czyli cyfrowego zarządzania

licencjami treści multimedialnych, czego projektanci Linuksa i Mac OS X nie brali pod uwagę.

background image

Zabezpieczenia

Środkiem zabezpieczającym przed rootkitami jest opracowany przez Microsoft system

podpisywania instrukcji trybu jądra – Kernel Mode Code Signing — pozwalający na

instalowanie tylko tych sterowników, które są podpisane cyfrowo. Sygnatury są zwykle

nadawane przez Laboratorium Jakości Sprzętu Windows (WHQL – Windows Hardware

Quality Lab), choć programiści mogą podpisywać napisane przez siebie instrukcje

samodzielnie.

W tym celu autor kodu musi przypisać swemu programowi cyfrowy odcisk palca, czyli tzw.

hasz, podpisać go kluczem prywatnym i wprowadzić certyfikat oraz zaszyfrowaną wartość

kontrolną do kodu źródłowego. Podczas próby instalacji sterownika, Windows za pomocą

klucza w certyfikacie odczytuje ukrytą wartość hasz i sprawdza, czy pasuje ona do

programu. Kontrolowana jest też zgodność załączonego do sterownika certyfikatu z

wzorami umieszczonymi w programie rozruchowym oraz w jądrze systemu operacyjnego.

Niestety, w odróżnieniu od wersji 64-bitowej, 32-bitowa Vista dopuszcza instalację

sterowników niepodpisanych cyfrowo.

W Mac OS X i w Linuksie cyfrowo podpisywane są dodatkowe moduły jądra. Teoretycznie da

się w ten sposób zabezpieczać również sterowniki, jednak systemy nie dysponują

narzędziami do sprawdzania ich autentyczności.

background image

Adresy:dynamiczne
przydzielanie

32-bitowa architektura procesorów powoduje znaczne ograniczenie zakresu

adresów pamięci operacyjnej. Z tego powodu jądro systemu Windows nie

może być większe niż 2 GB, a przecież musi jeszcze wystarczyć miejsca na

sterowniki, pamięć podręczną oraz stos systemu plików. W Windows XP

Menedżer pamięci już przy starcie określa, ile miejsca zostanie przydzielone

poszczególnym komponentom.

Okazuje się, że nie jest to najlepsze rozwiązanie: często, gdy pamięć

podręczna pęka w szwach, stos ma jeszcze sporo miejsca, którego nie może

jednak oddać. Dlatego w Viście zastosowano dynamiczny podział zakresu

adresów pamięci jądra. Odpowiednia usługa kontroluje zwalnianie i

przydzielanie zasobów w zależności od chwilowego zapotrzebowania. Dzięki

temu pamięć wirtualna może być powiększana w sytuacji, gdy rosną potrzeby

sterowników, i zmniejszana, gdy nie jest w pełni wykorzystana.

background image

Przeciwdziałanie skutkom
zawieszania się aplikacji

Chcąc przeprowadzić sekwencję powiązanych ze sobą zmian, program może

skorzystać z Menedżera transakcji jądra (KTM — Kernel Transaction Manager) i

przeprowadzić transakcję, wykorzystując Koordynator transakcji

rozproszonych (DTC — Distributed Transaction Coordinator), albo też użyć

tylko KTM, a następnie przyporządkować wszystkie zmiany w plikach i

kluczach Rejestru do jednej transakcji. Jeśli instalacja przebiegnie prawidłowo,

modyfikacje są wprowadzane – do tego momentu można je w każdej chwili

cofnąć. Inne aplikacje widzą przeprowadzone zmiany dopiero po zakończeniu

procesu transakcji.

Mac OS X i Linux również korzystają z mechanizmu transakcji. Użytkownik

zwykle o niczym nie wie, chyba że aktualizacja przestanie odpowiadać. W

takiej sytuacji nie ma jednak żadnego zagrożenia dla stabilności systemu –

zostaje jedynie wyświetlony komunikat informujący, że zmiany nie zostały

wprowadzone.

background image

Tryby

background image

Tryb Jądra

background image

Dziękuje za obejrzenie

prezentacji


Document Outline


Wyszukiwarka

Podobne podstrony:
Dyskietki startowe systemu Windows XP
abc systemu windows xp 47IMHOQVXQT6FS4YTZINP4N56IQACSUBZSUF7ZI
Autoodtwarzanie w systemie Windows XP
Sztuczki w rejestrze systemu Windows
Typy i Fazy Instalacji Systemu Windows, Informatyka, Instalacja Systemu
Instalacja systemu Windows z pendrive'a szybko i wygodnie
Monitorowanie oraz identyfikacja zmian w strukturze plików systemu Windows
Cwiczenie 01 Instalowanie systemu Windows 2003
Po reinstalacji systemu Windows Nieznany
Rozwiązywanie problemów z uruchamianiem systemu Windows za pomocą konsoli odzyskiwania, windows XP i
PHP Programowanie w systemie Windows Vademecum profesjonalisty
Informacje o systemie (Windows 7 i Windows Vista)
Błędy systemu Windows XP
Instalowanie Sprzętu W Systemie Windows, Systemy operacyjne
Procesy uruchamiane w systemach Windows
Diagnostyka i aktualizacja systemu windows
Instalacja japońskich znaków w systemie Windows
Architektura sieciowa systemu Windows

więcej podobnych podstron