SOISK - SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Tomasz Puchała

Budowa systemu komputerowego

Budowa systemu komputerowego. Logiczna budowa systemu komputerowego. Nowoczesny, uniwersalny system komputerowy można podzielić na cztery części składowe: sprzęt, system operacyjny, programy użytkowe i użytkowników. § Sprzęt (procesor (CPU) czyli jednostka centralna, pamięć i urządzenia wejścia-wyjścia wszystko połączone wspólnymi magistralami danych, które umożliwiają kontakt ze wspólną pamięcią) stanowi podstawowe zasoby systemu komputerowego. § Programy użytkowe (kompilatory, systemy baz danych,...) określają sposoby użycia tych zasobów do rozwiązywania zadań stawianych przez użytkowników. § System operacyjny jest programem, który działa jako pośrednik między użytkownikiem komputera a sprzętem komputerowym. System operacyjny nadzoruje i koordynuje posługiwanie się sprzętem przez różne programy użytkowe, które pracują na zlecenie różnych użytkowników. System operacyjny wykonuje różne operacje podstawowe w imieniu procesów użytkownika. Oto zestaw usług dostarczanych przez system operacyjny: § Sterowanie wykonaniem procesów, przez umożliwienie ich tworzenia, kończenia, zawierzenia i komunikowania się. § Sprawiedliwe szeregowanie procesów ubiegających się o czas centralnego procesora. Procesy korzystają z CPU na zasadzie podziału czasu - CPU wykonuje proces, jądro zawiesza go po upływie kwantu czasu i wybiera do wykonania inny, później wznawia wykonanie zawieszonego procesu. § Przydzielenie wykonywanemu procesowi pamięci głównej. Jądro pod pewnymi warunkami umożliwia procesom współdzielenie części ich przestrzeni adresowej, lecz chroni prywatną cześć przestrzeni adresowej procesu przed niepowołanym dostępem z zewnątrz. Kiedy systemowi zaczyna brakować wolnej pamięci, jądro zwalnia pamięć przepisując proces czasowo do pamięci pomocniczej, zwanej urządzaniem do realizacji wymiany. Jeśli jądro wysyła całe procesy na urządzenie pomocnicze, to implementacje nazywa się systemem z wymianą. Jeśli zaś zapisuje strony pamięci, to nazywa się ją systemem stronicującym. § Przydzielanie pamięci pomocniczej na efektywne przechowywanie i odczytywanie danych użytkowych. Ta usługa obejmuje system plików. Jądro przydziela pamięć pomocniczą na pliki użytkowe, odzyskuje nieużywaną pamięć, nadaje systemowi plików czytelną strukturę i chroni pliki użytkowe przed niepowołanym dostępem. § Umożliwianie procesom kontrolowanego dostępu do urządzeń peryferyjnych, takich jak terminale, stacje taśm, stacje dysków i urządzenia sieciowe. System komputerowy spełnia cztery funkcje: § przetwarzanie danych § przechowywanie danych § przenoszenie danych § sterowanie Oczywiście komputer musi przetwarzać dane. Dane mogą przybierać różne formy, a zakres wymagań odnoszących się do przetwarzania jest szeroki. Jest również bardzo ważne, aby komputer przechowywał dane. Nawet jeśli komputer przetwarza dane jedynie "w locie", musi on czasowo przechowywać chociażby te dane, które w danym momencie są przetwarzane. Występuje więc przynajmniej funkcja krótkotrwałego przechowywania. Równie ważne jest, aby komputer realizował funkcję długotrwałego przechowywania danych. Pliki danych są przechowywane w komputerze, co umożliwia ich późniejsze pobieranie i aktualizację. Komputer musi również przenosić dane pomiędzy sobą a światem zewnętrznym. Otoczenie operacyjne komputera składa się z urządzeń, które są albo źródłami, albo odbiorcami danych. Jeśli dane są otrzymywane od urządzenia bezpośrednio połączonego z komputerem lub do niego dostarczane, to taki proces jest określany jako proces wejścia-wyjścia, a samo urządzenie nazywa się peryferyjnym. Jeśli dane są przenoszone na większe odległości do odległego urządzenia lub od niego, to proces taki jest określany jako transmisja danych. Musi wreszcie istnieć możliwość sterowania tymi trzema funkcjami. W ostateczności sterowanie to jest wykonywane przez osoby, które wydają komputerowi polecenia. Wewnątrz systemu komputerowego jednostka sterująca zarządza zasobami komputera i koordynuje działanie jego składników funkcjonalnych, zależnie od wprowadzonych poleceń. Aby lepiej zrozumieć istotę działania systemów komputerowych należy bliżej przyjrzeć się procesowi rozwoju samych systemów operacyjnych. Rozwój ich, który dokonał się w ciągu minionych 40 lat generalnie ukierunkowany był od początku na dwa cele. Jednym z nich było takie zaplanowanie systemu obliczeniowego, które pozwoliłoby uzyskać efektywne działanie systemu komputerowego. Drugim celem było stworzenie wygodnego środowiska do opracowywania i wykonywania programów. W trakcie rozwoju nowych technologii do różnych zapotrzebowań zaczęto znajdywać nowe rozwiązania i tak pojawiły się proste systemy komputerowe zwane "Systemami wsadowymi" Systemy te pozwalały na automatyczne wykonywanie ciągu zadań za pomocą rezydującego w pamięci systemu operacyjnego i w znacznym stopniu zwiększały ogólne wykorzystanie komputera, zważywszy na fakt, iż w owych czasach często komputer musiał w trakcie wykonywania pracy czekać na reakcje człowieka. W tym samym czasie pojawił się też spooling, czyli umożliwianie wykonywania przez jednostkę centralną w tym samym czasie operacji wejściowych jednego zadania oraz obliczeń i operacji wyjściowych innych zadań. Następnym znaczącym etapem rozwoju systemów była koncepcja wieloprogramowości, której istotą jest jednoczesne przechowywanie w pamięci operacyjnej kilku zadań oraz naprzemienne przełączanie jednostki centralnej od jednego zadania do drugiego w celu zwiększenia jej wykorzystania i obniżenia łącznego czasu wykonywanych zadań. Wieloprogramowość jako taka dała też podwaliny do zrealizowania w systemach operacyjnych podziału czasu, czyli umożliwienie wielu użytkownikom posługiwanie się komputerem w sposób interakcyjny. Jeszcze inne pomysły owocowały w jeszcze inne podejście i tak systemy równoległe są systemami, których pewna liczba procesorów pozostaje ze sobą w bliskim kontakcie. Procesory korzystają ze wspólnej szyny, a niekiedy również dzielą wspólną pamięć i urządzenia zewnętrzne. Systemy tego rodzaju zapewniają większą przepustowość i lepszą niezawodność. Omawiając narodziny systemów operacyjnych nie sposób pominąć systemów rozproszonych. System taki jest zbiorem procesów nie dzielących pamięci ani zegara. Zamiast tego każdy procesor ma własną pamięć lokalną, a procesory utrzymują ze sobą łączność za pomocą różnorodnych linii komunikacyjnych - np. za pomocą szybkich szyn lub łączy telefonicznych. System operacyjny musi zapewniać poprawne działanie systemu komputerowego. Aby programy użytkowe nie mogły zdezorganizować pracy systemu, sprzęt powinien mieć odpowiednie mechanizmy gwarantujące właściwe zachowanie się całości. Rodzaje systemów komputerowych. System tradycyjny i proste systemy wsadowe. Na początku system komputerowy był bardzo dużym urządzeniem, w sensie budowy fizycznej. Obsługiwać taki system mogły osoby znające dobrze nie tylko zasadę jego działania, ale także jego budowę wewnętrzną. Praca z takim systemem wyglądała mniej więcej w taki sposób : programista pisał jakiś program, następnie treść tego programu była umieszczana na jakimś nośniku, np. kartach perforowanych, karta taka była wprowadzana do czytnika kart dołączonego do systemu komputerowego. W tym momencie następowała chwila prawdy, jeśli program nie zawierał błędów to można było przystąpić do pracy(wtedy pojawiały się przeważnie jakieś inne błędy logiczne), jeżeli natomiast program posiadał jakieś błędy uniemożliwiające jego wykonanie całą prace należało rozpoczynać od początku. System taki był bardzo nie efektywny, ponieważ system często pozostawał nieobciążony(nie wykonywano na nim żadnych zadań). Spowodowane było to trudnością w jego obsłudze(tylko osoby znające budowę systemu komputerowego i potrafiące pisać programy mogły go obsługiwać). Rozwiązaniem problemu miał być system wsadowy. Podstawową różnicą pomiędzy systemem wsadowym a tradycyjnym było to, że do systemu wsadowego był od razu wprowadzany pewien wsad, czyli zbiór programów - najczęściej w jakiś sposób powiązanych ze sobą(np. tematycznie). Druga istotna różnicą było to, że system wsadowy był obsługiwany przez operatora tego systemu, a nie przez programistę, było to możliwe dzięki uproszczeniu funkcji służących obsłudze takiego systemu. Ważną zaleta tego systemu było wyeliminowanie(a raczej ograniczenie) czasu przestoju - bezczynności - systemu komputerowego. Systemy wieloprogramowe wsadowe. Przejście z systemu tradycyjnego na system wsadowy był "ogromnym" skokiem wydajnościowym, jednak nie wyeliminowało ono bardzo ważnej wady systemu tradycyjnego, czyli jednoprogramowości. Termin ten można wyjaśnić w bardzo prosty i zrozumiały dala wszystkich sposób: program rozpoczęty musi być doprowadzony do końca Oznacza to, że poszczególne zadania nie mogą się przeplatać w czasie trwania danej sesji. Aby to wyjaśnić możemy przeanalizować następującą sytuację : zadanie aktualnie wykonywane oczekuje na dane które ma wczytać np. z taśmy, ale zanim odczyta te dane jednostka centralna musiałaby oczekiwać, a więc pozostawałaby w bezczynności. W wieloprogramowym systemie wsadowym ta niedogodność została wyeliminowana, poprzez wzajemne przeplatanie się zadań, tzn. jeśli zadanie aktualnie wykonywane "ma okres bezczynności", to zasoby systemowe są przekazywane dla innego zadania, itd. Systemy interaktywne(bezpośrednie). Powyższe systemy maja jedną negatywną wspólna cechę, nie umożliwiają bezpośredniego dialogu użytkownika z systemem. W systemie interakcyjnym użytkownik wydaje bezpośrednio systemowi, ewentualnie programowi i otrzymuje w bardzo krótkim czasie wyniki. Jako urządzenie do wprowadzania instrukcji może służyć klawiatura, a jako urządzenie wyjściowe np. monitor. W systemie tym użytkownik może w łatwy sposób eksperymentować z danymi wejściowymi, oraz wykonywać dane zadanie na podstawie wyników cząstkowych. W czasie wykonywania zadania może nastąpić jakaś sytuacja wyjątkowa, w poprzednich systemach operator musiał posiadać odpowiednia kartę, taśmą z odpowiednią reakcją. W systemie interaktywnym użytkownik na bieżąco obserwuje działanie danego zadania i w razie jakiejkolwiek sytuacji wyjątkowej może "zainterweniować" w zadanie które tę sytuacje wywołało. Systemy z podziałem czasu. Rozwinięciem systemu wieloprogramowego jest system z podziałem czasu. Podobnie jak system wieloprogramowy system ten może wykonywać wiele zadań jednocześnie. Istotną różnica między tymi systemami jest to, że system z podziałem czasu nie czeka na "przestój jakiegoś programu, aby uruchomić inny, ale uruchamia wiele zadań jednocześnie. My - użytkownicy - mamy wrażenie, że zadania te wykonują się jednocześnie, ale jest to tylko nasze złudzenie. Tak naprawdę procesor przełącza się pomiędzy poszczególnymi zadaniami, ale przełączenia te następują tak szybko, że użytkownicy mogą na bieżąco współpracować z wszystkimi zadaniami w trybie rzeczywistym. Systemy z podziałem czasu są przeważnie systemami interakcyjnymi. Systemy rozproszone, wieloprocesorowe. Pomimo tego, że moc obliczeniowa obecnych komputerów jest wielokrotnie(nie potrafię dobrać odpowiednio "dużego" słowa) większa od systemów komputerowych sprzed kilku, kilkudziesięciu lat, to i tak nie zaspokaja ona potrzeb najbardziej wymagających użytkowników. Problem zwiększania mocy obecnych komputerów znalazł rozwiązanie w systemach wieloprocesorowych. Poszczególne zadania realizowane na takim systemie są rozkładane pomiędzy poszczególne procesory, co przyspiesza całkowity czas wykonani całego złożonego zadania. Procesory w takim systemie mogą mieć wspólną pamięć operacyjną, ale pamięć notatnikowa jest przypisana do konkretnego procesora(każdy musi mieć swoją). Aby system taki mógł poprawnie działać procesory musza być połączone szybkimi łączami. Jak widać systemy te znacząco się od siebie różnią. Jednak tak naprawdę to każdy z tych systemów jest systemem tradycyjnym, wszystkie jego dodatkowe funkcje są realizowane za pomocą odpowiedniego oprogramowania podstawowego - systemu operacyjnego(ale opis tego oprogramowania nie wchodzi w zakres materiału tego referatu). Jako ciekawostkę możemy powiedzieć, że pierwszym uznanym systemem operacyjnym był OS/360 opracowany w 1960r. Pracował on z systemami komputerowymi typu wsadowego. Tylko dzięki równomiernemu rozwojowi techniki i oprogramowania możliwy był rozwój systemów komputerowych, jest tak i dzisiaj. Architektura typowego systemu komputerowego. § Płyta główna. § Procesor. § Pamięć RAM. § Dysk twardy. § Karta graficzna. § Pamięć ROM (Read Only Memory - pamięć tylko do odczytu): Zapisane tu informacje mogą być jedynie odczytywane. ROM jest również nazywany pamięcią nieulotną. Ponieważ wszystkie znajdujące się tam informacje przechowywane są nawet po wyłączeniu zasilania komputera. Z tego powodu ROM jest idealny do przechowywania instrukcji wykonywanych przy uruchamianiu się systemu. ROM płyty głównej w większości komputerów zawiera cztery główne programy, którymi są: § POST (Power-On Self Test) Seria procedur testujących sprawność poszczególnych komponentów komputera . § CMOS Setup. Program umożliwiający zmianę parametrów konfiguracji systemu, ustawieni zabezpieczeń oraz preferencji. § Bootstrap loader. Procedura szukająca możliwego do załadowania systemu operacyjnego najpierw na dyskietce w stacji dysków, a później na twardym dysku. § BIOS. Basic Input/Output System. Zbiór sterowników stanowiący standardowy interfejs podstawowych urządzeń komputera, szczególnie tych, które muszą być aktywne podczas uruchamiania się systemu. Układy wejścia-wyjścia: Służą one do wymiany danych z jednej strony pomiędzy mikroprocesorem i pamięcią operacyjną, a z drugiej z urządzeniami zewnętrznymi. Podział ze względu na przeznaczenie: -układy wejść/wyjść cyfrowych (przekaźniki, klawiatury alfanumeryczne, cyfrowe przetworniki pomiarowe, pamięci zewnętrzne/wyświetlacze cyfrowe, monitory ekranowe, drukarki). -układy wejść/wyjść analogowych (przetworniki temperatury, itp./sterują ciągłymi elementami np. silnik wykonawczy lub zawory). Czynnosci wykonywane przez komputer podczas typowego uruchomienia. § Abyśmy mogli mówić o starcie systemu musimy ten system w jakiś sposób pobudzić, czyli włączamy zasilanie, a pozwala na to nasz zasilacz. § Zasilacz powinien teraz przeprowadzić autotest i jeżeli wszystkie napięcia są w normie wysyła sygnał POWER GOOD do płyty głównej. § Sygnał POWER GOOD otrzymuje zegar procesora co powoduje zaprzestanie wysyłanie sygnału RESET do procesora. § Procesor zabiera się do wykonania kodu który jest zawarty w pamięci ROM BIOSu zaczynając od adresu FFFF:0000. § BIOS przeprowadza test sprzętu. Weryfikuje podstawowe funkcje systemu. W razie gdy wystąpią błędy zostaje to oznajmione dźwiękiem (pod warunkiem że jest zamontowany PC-Speaker). Błąd nie będzie oznajmiony "graficznie" ponieważ nie została jeszcze zainicjalizowana grafika. § Sprawdzane są (prze BIOS) adresy od C0000:0000 do C7800:0000. Powinien znajdować się tam ROM karty graficznej umieszczonej w jednym z gniazd rozszerzeń np.: AGP. Jęsli jest tam ROM, BIOS zaczyna testować jego sumę kontrolną. Jeśli test zostanie wykonany bezbłędnie zostanie pokazana informacja o karcie zawarta w BIOSie karty. § Następnie zostają przeszukane adresy od C8000:0000 do DF80:000 (w krokach co 2kB) w poszukiwaniu innych pamięci ROM umieszczonych tam przez karty rozszerzeń. Jeśli zostana takie znalezione, przechodzą test i zostają wykonane. § BIOS musi wiedzieć czy komputer jest uruchamiany zimno lub ciepło, dlatego przeszukuje adres pamięci 0000:0472. Jeżeli napotka słowo 1234h umieszczone w tam, oznacza to, że start komputera jest ciepły - BIOS pomija test POST (Power-on Self Test). Inna wartość słowa oznacza zimny start, a co za tym idzie uruchomienie testu POST. POST wykonuje następujące czynności: § instaluje oprogramowanie przechowywane w pamięci ROM, a umieszczone tam przez producenta. Inicjalizuje cały osprzęt, § odczytuje ustawienie zworek w komputerach typu XT, lub CMOS - w AT i sprawdza, czy jest ono zgodne z rzeczywistością, § sprawdza pamięć RAM i wyświetla jej ilość (to te migające białe cyferki przy starcie komputera), § sprawdza główne komponenty systemu: kanały DMA (kanały te są używane do szybkiego, bezpośredniego przesyłania bloków pamięci do urządzeń wejścia/wyjścia bez udziału procesora. Najczęściej korzystają z tego napędy dyskietek i twardego dysku.), sterownik przerwań, sterownik klawiatury i inne, § uruchamia program zawarty w BOOT-sektorze dysku A, lub innego napędu, czyli przeszukuje MBR (Master Boot Record) dysków w poszukiwaniu bootloadera (to on wskazuje aktywną partycję), Jeżeli podczas wykonywania się testu POST wystąpi błąd zostaniemy o tym poinformowani za pomocą dźwięków i komunikatów przy czym mogą wystąpić dwa typy błędów: krytyczne, lub nie. Przy wystąpieniu tego pierwszego proces uruchamiania zostaje zatrzymany. § Po poprawnym wkonaniu się POSTu, BIOS powinien wywołać przerywanie 19H, co spowoduje próbe odczytania pierwszego sektora dyskietki pod adres 0:7C00h. Jeżeli próba ta zawiedzie, zostaje wykonana kolejna próba tym razem z pierwszym sektorem HDD. Jeżeli w obydwu przypadkach próby się nie powiodą, następuje wywolanie przeywania 18H. Wywołuje się wtedy program konfiguracyjny BIOSu. W PC zostanie wypisany komunikat o braku dysku systemowego. W oryginalnym IBM PC nastąpi uruchomienie interpretera BASICa. W CMOS (Complementary Metal-Oxide Semiconductor - pamięć którą można zmieniać, gdy komputer jest wyłączony podtrzymywana jest za pomocą baterii) są zapisane różne informacje, ale najważniejsza to właśnie ta o tym w jakiej kolejności BIOS ma przeszukiwać napędy (w poszukiwania systemu operacyjnego). Przedstawiony powyżej schemat jest bardziej ogólny. Na początku musimy powiedzieć co to jest POST(ang. Power On Self Test), a jest to szybki, a zarazem dość ogólny test całego systemu komputerowego. Test ten polega na sprawdzeniu poprawności zainstalowanych w systemie urządzeń, magistral, kanałów DMA, itp. Sprawdzanie to polega na zapisaniu jakiejś wartości np. w pamięci, a następnie jej odczytanie i sprawdzenie poprawności danych. Weryfikacja wyników jest następująca : jeśli odczytana wartość jest identyczna jak zapisana, to urządzenie działa poprawnie, jeżeli jednak wartość ta różni się od wartości zapisanej jest to oznaką błędu danego urządzenia. Pierwszym testowanym urządzeniem jest karta graficzna, później procesor, pamięć RAM, HDD, FDD, CD_ROM. O wystąpieniu błędu komputer informuje nas seria dźwięków(ich znaczenie jest zależne od rodzaju BIOS'u zainstalowanego na płycie głównej), jeżeli test został wykonany i nie wykryto żadnych błędów uniemożliwiających pracę systemu usłyszymy jeden krótki(średni) dźwięk - tutaj nie ma znaczenia typ BIOS'u. Należy jeszcze wspomniec, że po włączeniu zasilania, mikroprocesory rodziny Intel 8086 przekazują automatycznie sterowanie do adresu FOOO:FFFO. Pod tym adresem znaj-duje się instrukcja skoku (FAR JMP) do procedury realizującej test kompu-tera POST (Power On Self Test). Procedura ta sprawdza również wartość przechowywaną w zmiennej BIOSu 0040:0072. W zależności od tej wartości inicjalizacja będzie typu "zimnego startu" ($1234) albo "startu gorącego" (różna od $1234). Inicjalizacja typu "zimny start" jest wykonywana każdorazowo po włączeniu zasilania. Podczas zimnego startu testowana jest pamięć (RAM i ROM), urządzenia zewnętrzne, a następnie ładowane są rezydentne części systemu operacyjnego DOS do pamięci RAM. Inicjalizacja typu "gorący start" jest wykonywana po każdorazowym naciśnięciu sekwencji klawiszy Ctrl Alt Del. Gorący start jest porównywalny: z zimnym startem z tą jednak różnicą, że nie jest testowana pamięć RAM. i Inicjalizacja tego typu jest zatem szybsza od poprzedniej. w pierwszym kroku testowany jest procesor (typowe instrukcje, rejestry itp.). Jeśli pojawi się jakikolwiek błąd, wyświetlany jest odpowiedni komu-nikat i inicjalizacja jest przerywana. Skoro procesor zostanie uznany jako funkcjonujący poprawnie, testo-wana jest pamięć ROM. W teście zawartości komórek pamięci są doda-wane i porównywane z wartości sum kontrolnych znajdującymi się na Końcu pamięci ROM. W przypadku gdy suma nie jest identyczna z sumą i kontrolną, wyświetlany jest komunikat o zaistniałym błędzie i inicjalizacja jest przerywana. Jeśli test pamięci ROM zakończył się pomyślnie, testowane są pamięci RAM. Test polega na zapisywaniu pamięci wartościami testowymi, które , następnie porównywane są z odczytywanymi. Każda wykryta różnica powoduje przerwanie inicjalizacji i wyświetlenie komunikatu o błędzie. Po stwierdzeniu poprawności działania pamięci, testowane i inicjalizowane są specjalizowane układy scalone (8259, 8253, 8255, 6845, 8237, 8250, PD765A, pamięci RAM). Jeśli jakiś układ nie spełni warunków testu, wyświetlony zostanie komunikat informujący o błędzie i inicjalizacja jest i przerywana. W przypadku, gdy wszystkie układy są sprawne z punktu widzenia j przeprowadzonych testów, rozpoczyna się kolejna faza testowania, w której i kontroli poddawane są podstawowe urządzenia peryferyjne (klawiatura, karta grafiki, stacja dysków elastycznych, dyski twarde, itd.). Tu znowu każdy wykryty defekt powoduje wyświetlenie komunikatu o błędzie i prze-rwanie inicjalizacji. Ostatni test typu "sprzętowego" sprawdza rozszerzoną pamięć ROM. Jeśli taka pamięć jest przez test wykryta, wykonuje się program inicjali-zacji znajdujący się w pierwszych bajtach tej pamięci. Program pozwala, między innymi, wprowadzić inne programy do pamięci, przedefiniować pe-wne wektory przerwań w celu zwiększenia możliwości jakimi dysponuje system podstawowy (np. dodanie instrukcji specyficznych dla karty EGA czy dysku twardego). Struktura MBR i tablica partycji dysku systemowego. Aby lepiej zrozumieć strukturę MBR i strukturę tablic partycji, zastanówmy się najpierw, jakie funkcje spełnia MBR i w jakim celu wprowadzono podział dysku twardego na partycje. Współczesne komputery osobiste są urządzeniami o budowie modułowej, przy czym ta modułowość ujawnia się na każdym poziomie abstrakcji działania komputera. Jednym z podstawowych modułów, które można wyróżnić, jest oprogramowanie traktowane jako całość (system operacyjny, programy użytkowe). Z tego względu całe oprogramowanie komputera łatwo jest zastąpić innym, być może nowszym, być może lepszym, a może po prostu o własnościach przydatnych w pewnych zastosowaniach. Idea w pełni wymiennego oprogramowania w komputerze PC jest realizowana przez wydzielenie pewnych podstawowych operacji wykonywanych po uruchomieniu komputera, niezbędnych do późniejszego uruchomienia dowolnego systemu operacyjnego. Operacje te realizo-wane są przez BIOS, dostarczany razem ze sprzętem, i możemy do nich zaliczyć wstępne testy sprzętu, udostępnienie przystępnego i uniwersalnego sposobu komu-nikacji z urządzeniami, z których może korzystać system operacyjny, oraz wczytanie pewnego kodu dostarczonego wraz z systemem operacyjnym, który następnie załaduje resztę systemu i zainicjuje jego poprawny start. Kod ten wczytywany jest z pierwszego sektora urządzenia startowego (MBR - Master Boot Record) i następnie jest mu przekazywane sterowanie. W wy-niku tego, za pomocą udostępnionych funkcji BIOS-u, załadowany zostaje system operacyjny. Ze względu na niewielki rozmiar MBR, często pierwszy program ładujący wczytuje następne, większe fragmenty kodu, które są w stanie wczytać i dokonać wstępnej inicjalizacji jądra systemu operacyjnego. Ten prosty mechanizm stosowany jest w przypadku startu systemu z dyskietki. W przypadku dysku twardego musimy uwzględnić dodatkowo podział dysku na logiczne fragmenty, nazywane partycjami (ang. partition). Partycjonowanie dysku jest bardzo elastycznym rozwiązaniem, zapewniającym w dużym stopniu hermetyzację wydzielonych obszarów dysku twardego. Dodatko-wym jego atutem jest to, że partycje (dyski logiczne) w wielu sytuacjach posiadają cechy osobnych urządzeń fizycznych. Możliwe dzięki temu jest utrzymywanie kilku systemów operacyjnych dzia-łających na jednym dysku twardym i operujących na rozłącznych jego obszarach. Wreszcie partycjonowanie dysku jest po prostu wygodne przy zarządzaniu zgromadzoną informacją. Partycje są rozłącznym...