Autor: Damian Kałwik
Systemy
Jądro systemu operacyjnego
•
Jądro systemu operacyjnego
(ang. kernel) – podstawowa część
systemu operacyjnego, która jest odpowiedzialna za wszystkie
jego zadania.
Modele
Model funkcjonowania jądra monolitycznego
Model komunikacji mikrojądra z aplikacjami
Model komunikacji jądra hybrydowego z
aplikacjami
Budowa jądra
•
jądro monolityczne –
często stosowane w systemach typu Unix. Wszystkie zadania
są wykonywane przez jądro, będące jednym, dużym programem działającym w trybie
jądra. Przykładami takiego jądra mogą być: Linux, OpenBSD, FreeBSD, chociaż
większość posiada umiejętność dołączania i odłączania modułów (najczęściej
zawierających kod sterownika urządzenia lub obsługi potrzebnego w danej chwili
systemu plików).
mikrojądro
– w tej technice z monolitycznego jądra zostaje tylko
jego podstawowa część, a części odpowiedzialne za bardziej wyrafinowane funkcje są
wydzielone do funkcjonalnych bloków albo realizowane jako zwykłe procesy w trybie
użytkownika.
•
nanokernel
– technika zbliżona do techniki mikrojądra, różnica w wielkości –
nanokernel jest jeszcze mniejszy.
•
exokernel
– architektura będąca odmianą nanojądra. Cechą wyróżniającą jest
możliwość zarządzania zasobami systemu przez nieuprzywilejowanego użytkownika,
a rola jądra sprowadza się do zabezpieczania zasobów. Przykładem systemu
korzystającego z tego typu jądra jest system XOK, zbudowany w MIT Laboratory for
Computer Science, pracujący na komputerach PC.
•
cachekernel
– w tej technice jądro systemu buforuje obiekty systemowe takie jak
wątki czy przestrzenie adresowe tak jak sprzęt komputerowy buforuje pamięć. Jądra
aplikacji trybu użytkownika są odpowiedzialne za ładowanie tych danych i ponowne
ich zapisanie stosując specyficzne dla danej aplikacji mechanizmy.
•
jądro hybrydowe
– kompromis między architekturą jądra monolitycznego i
mikrojądra. W krytycznych usługach - np. stos sieci - usługi są na stałe wkompilowane
w główny kod jądra, inne usługi pozostają oddzielone od głównego jądra i działają
jako serwery (w przestrzeni jądra).
Cechy jądra
Z budowy jądra wynikają jego cechy, takie jak:
•
wielozadaniowość
(wieloprocesowość) - cecha systemu operacyjnego
umożliwiająca mu równoczesne wykonywanie więcej niż jednego procesu. Zwykle za
poprawną realizację wielozadaniowości odpowiedzialne jest jądro systemu
operacyjnego.
•
wielowątkowość
(ang. multithreading) – cecha systemu operacyjnego, dzięki której
w ramach jednego procesu może wykonywać kilka wątków lub jednostek
wykonawczych. Nowe wątki to kolejne ciągi instrukcji wykonywane oddzielnie.
•
wielobieżność
(ang. reentrant) – cecha jądra systemu operacyjnego, pozwalająca
na jednoczesną pracę kilku procesów w trybie jądra.
•
skalowalność
- zapewnienie coraz wydajniejszej pracy w miarę zwiększania liczby
elementów składowych.
•
wywłaszczalność
- technika używana w środowiskach wielozadaniowych, w której
algorytm szeregujący (scheduler) może wstrzymać aktualnie wykonywane zadanie
(np. proces lub wątek), aby umożliwić działanie innemu.
Etapy uruchamiania systemu
Windows
Po włączeniu zasilania komputera rozpoczyna się wewnętrzny test sprzętu „
POST
”.
Podczas tej fazy sprawdzana jest obecność najważniejszych systemów, następnie
uruchamiana jest karta graficzna – przeprowadzany jest jej test, i rozpoczyna się
wyświetlanie danych na ekranie.
Etapy uruchamiania cz.2
Kolejnym etapem jest testowanie procesora i pamięci, po których kontrolowane są
napędy podłączone do komputera i wyświetlany jest ekran zawierający podsumowanie
informacji o przetestowanym sprzęcie.
Po przeprowadzeniu testów „
POST
” , BIOS uruchamia program zapisany w głównym
rekordzie rozruchowym dysku „
MBR
” (Master Boot Record), w obszarze
MBR
zapisana
jest instrukcja uruchamiająca program NT Loader (plik ntldr znajdujący się na partycji
uruchomieniowej systemu).
NT Loader
przetwarza zapisy w pliku
BOOT. ini
.
Etapy uruchamiania cz.3
Plik
BOOT.ini
zawiera informacje na temat sektora rozruchowego komputera. Każdy
system operacyjny zainstalowany na dysku tworzy własny sektor rozruchowy zapisany
w pierwszym sektorze partycji dysku. Jeśli w komputerze zainstalowany jest więcej niż
jeden system operacyjny, to program ładujący wyświetli menu wyboru systemów.
Etapy uruchamiania cz.4
Następnie ładowany jest program
NTDETECT.com
, który odpowiada za sprawdzenie
zainstalowanego w systemie sprzętu. Informacje te przekazywane są do
NT Loader
,
który korzystając z nich uruchamia odpowiednie jądro systemu – plik
ntoskrnl.exe
(zapisany w katalogu
WINDOWS/system32
) Po załadowaniu do pamięci jądro,
przejmuje kontrolę nad dalszym uruchamianiem systemu.
Uruchamiany jest plik
hal.dll
, odpowiadający za odseparowanie warstwy sprzętowej,
następnie ładowane są sterowniki niskiego poziomu (znajdują się w
WINDOWS/system32/drivers
) oraz pozostałe pliki stanowiące uzupełnienie funkcji
jądra systemu operacyjnego. Na końcu uruchamiany jest program służący do logowania
użytkownika –
winlogon.exe
. Podczas ładowania system korzysta z zapisów w plikach
rejestru.
Jak widać procedura uruchamiania systemu Windows, w „teorii” jest długa, ale w
„praktyce” to wszystko przebiega naprawdę bardzo szybko
Etapy uruchamiania cz.5
Poniżej przedstawiam pliki niezbędne do uruchomienia Windows-a.
•
Ntldr.exe
– znajduje się w głównej partycji dysku systemowego. Jest to program ładujący
systemu oparty na jądrze NT.
•
BOOT.ini
– znajduję się w głównej partycji dysku systemowego. Jest to plik zawierający opisy
zainstalowanych systemów operacyjnych wraz z partycjami, z których mogą być uruchomione.
•
NTDETECT.com
– znajduje się w głównej partycji dysku systemowego. Jest to program
odpowiedzialny za sprawdzenie zainstalowanego sprzętu.
•
Ntoskrnl.exe
– to jądro systemu operacyjnego
•
hal.dll
– bibliotek zapewniająca odseparowanie warstwy sprzętowej
•
pliki sterowników
– znajdują się w folderze WINDOWS/system32/drivers – są to wszystkie
sterowniki niskiego poziomu
•
pliki rejestru
– znajdują się w folderze WINDOWS/system32/config – są to pliki z zapisami
rejestru systemu Windows.
Etapy uruchamiania cz.6
•
smss.exe
- jest to proces, który jest częścią systemu Microsoft Windows. Nazywany
jest Menedżerem sesji. Zainicjowany przez system odpowiada za wiele czynności,
m.in logowania WinLogon
•
i Win32 (Csrss.exe). Nie można go wyłączyć, jest niezbędny do stabilnego działania
systemu.
•
csrss.exe
- jego pełna nazwa to Client/Server Runtime Server Subsystem.
Odpowiada za działanie większości komend graficznych. Ważny składnik systemu, nie
powinien być wyłączany.
Etapy uruchamiania cz.7
W skrócie etapy uruchomienia systemu operacyjnego można przedstawić
następująco:
•
POST
•
Odczyt MBR
•
NTLDR
•
BOOT.INI
•
NTDETECT.COM
•
NTOSKRNL.EXE
•
SMSS.EXE
•
CSRSS.EXE
Uruchamianie kontrolowane
Uruchamianie kontrolowane
- to typ uruchamiania systemu operacyjnego, w którym
użytkownik jest pytany o to, czy załadować dany element do pamięci operacyjnej (np.
czy załadować obsługę myszy). Stosowane głównie do rozwiązywania problemów ze
sprzętem i sterownikami.
Bibliografia
•
Wikipedia.org;
•
forum.ks-ekspert.pl;
•
Google.pl.