Systemy operacyjne - wpis 2 | zad 2-7/15
Zasoby sprzętowe zarządzane przez system operacyjny:
procesor – przydział czasu procesora, pamięć alokacja przestrzeni adresowej dla procesów, transformacja adresów, urządzenia zewnętrzne udostępnianie i sterowanie urządzeniami pamięci masowej np. dysk twardy, alokacja przestrzeni dyskowej, udostępnianie i sterowanie drukarkami, skanerami, aparatami itp., informacja (system plików), organizacja i udostępnianie informacji, ochrona i autoryzacja dostępu do informacji.
Sterownik urządzenia – program lub fragment programu odpowiadający za dane urządzenie i pośredniczący pomiędzy nim a resztą systemu komputerowego. Zwykle uabstrakcyjnia pewne cechy urządzenia, choć może jedynie zajmować się kwestiami uprawnień dostępu i udostępniać urządzenie bez żadnej ingerencji. Wtedy program, który z niego korzysta też jest w pewnym sensie sterownikiem.
W tradycyjnych systemach operacyjnych (Unix i inne) sterowniki znajdują się w jądrze systemu operacyjnego. W systemach operacyjnych z mikrojądrem, w jądrze znajduje się jedynie kod zajmujący się uprawnieniami, a sam sterownik jest niezależnym programem.
BIOS (akronim ang. Basic Input/Output System – podstawowy system wejścia-wyjścia) – zapisany w pamięci stałej zestaw podstawowych procedur pośredniczących pomiędzy systemem operacyjnym a sprzętem. Posiada on własną pamięć konfiguracji, w której znajdują się informacje dotyczące daty, czasu oraz danych na temat wszystkich urządzeń zainstalowanych w komputerze. Jest to program zapisany w pamięci ROM płyty głównej oraz innych kart rozszerzeń takich, jak np. karta graficzna. Oryginalny BIOS firmy IBM wyróżnia zawarcie w nim języka programowania ROM Basic.
Od połowy lat 90. XX w. większości BIOS-ów umieszcza się w pamięciach typu flash, co umożliwia ich późniejszą aktualizację.
Warstwy Systemu:
- jądro – warstwa odpowiedzialna za wykonywanie podstawowych zadań OS
- powłoka – program służący do komunikacji użytkownika z OS
- system alokacji plików – odpowiedzialna za sposób organizacji i zapisu danych na nośniku
Program komputerowy (ang. computer program) – sekwencja symboli opisująca realizowanie obliczeń zgodnie z pewnymi regułami zwanymi językiem programowania. Program jest zazwyczaj wykonywany przez komputer (np. wyświetlenie strony internetowej), zwykle bezpośrednio, jeśli wyrażony jest w języku zrozumiałym dla danej maszyny lub pośrednio – gdy jest interpretowany przez inny program (interpreter). Program może być ciągiem instrukcji opisujących modyfikacje stanu maszyny, ale może również opisywać obliczenia w inny sposób (np. rachunek lambda).
Formalne wyrażenie metody obliczeniowej w postaci języka zrozumiałego dla człowieka nazywane jest kodem źródłowym, podczas gdy program wyrażony w postaci zrozumiałej dla maszyny (to jest za pomocą ciągu liczb, a bardziej precyzyjnie – zer i jedynek) nazywany jest kodem maszynowym bądź postacią binarną (wykonywalną).
Programy komputerowe można zaklasyfikować według ich zastosowań. Wyróżnia się zatem aplikacje użytkowe, systemy operacyjne, programy narzędziowe, gry wideo, kompilatory i inne. Natomiast programy wbudowane w urządzenia, przechowywane zwykle w pamięci flash, określa się jako firmware.
Użytkownik komputera (dalej: użytkownik) – osoba korzystająca z systemu komputerowego.
W rozumieniu informatycznym, a więc takim, które ma zastosowanie w oprogramowaniu, użytkownik jest podmiotem posiadającym unikatową nazwę służącą do jego identyfikacji w celu umożliwienia dostępu do systemu informatycznego oraz korzystania z jego zasobów.
Jądro Linux (ang. Linux kernel) – jedna z najważniejszych części wielu uniksopodobnych systemów operacyjnych. Jest to wolne oprogramowanie napisane przez Linusa Torvaldsa w 1991 roku, a obecnie rozwijane przez licznych programistów z całego świata w ramach The Linux Foundation[2].
Początkowo działało na platformie Intel 80386, później zostało przeniesione także na wiele innych platform. Największa część kodu napisana jest w języku C, z pewnymi rozszerzeniami GCC, a pozostała część to wstawki w asemblerze.
Kod jądra Linux jest objęty licencją GNU General Public License, jest zatem oprogramowaniem FLOSS.
Budowa jądra
Wyróżnia się kilka podstawowych metod konstrukcji jąder
Powłoka systemowa (ang. shell) – program komputerowy pełniący rolę pośrednika pomiędzy systemem operacyjnym lub aplikacjami a użytkownikiem, przyjmując jego polecenia i „wyprowadzając” wyniki działania programów. To pośrednictwo nie jest obowiązkowe (programy mogą być bardziej „samodzielne”).
Proces w organizacji i zarządzaniu najczęściej definiowany jest jako zbiór czynności, wzajemnie ze sobą powiązanych, których realizacja jest niezbędna dla uzyskania określonego rezultatu
Wątek (ang. thread) – część programu wykonywana współbieżnie w obrębie jednego procesu; w jednym procesie może istnieć wiele wątków. Różnica między zwykłym procesem a wątkiem polega na współdzieleniu przez wszystkie wątki działające w danym procesie przestrzeni adresowej oraz wszystkich innych struktur systemowych
Katalog (ang. directory, catalog) – logiczna struktura organizacji danych na nośnikach danych. Katalog może zawierać pliki i kolejne katalogi. Można powiedzieć, że katalog to pojemnik na pliki (lub inne katalogi), pozwalający je katalogować, zamiast składować bezpośrednio w katalogu głównym systemu plików.
Plik danych, plik komputerowy, zwykle krótko plik – uporządkowany zbiór danych o skończonej długości, posiadający szereg atrybutów i stanowiący dla użytkownika systemu operacyjnego całość. Nazwa pliku nie jest jego częścią, lecz jest przechowywana w systemie plików.