T02 Merged

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 32

Temat: Rodzaje systemów operacyjnych.

1. Definicja systemu operacyjnego.


2. Podział systemów operacyjnych.
3. Przykłady systemów operacyjnych.

Definicja systemu operacyjnego

System operacyjny (ang. Operating System) jest środowiskiem programów


tworzących główną platformę programową umożliwiającą działanie zainstalowanego
w systemie oprogramowania. OS nadzoruje pracę wszystkich uruchomionych
procesów oraz urządzeń komputera. Pomimo iż swą pracę wykonuje przeważnie
w tle i sam w sobie nie tworzy z komputera w pełni funkcjonalnego narzędzia jednak
bez niego komputer jest kompletnie bezużyteczny. System operacyjny zainstalowany
na dysku twardym komputera decyduje jakie oprogramowanie może zostać
uruchomione pod jego kontrolą, wpływa na bezpieczeństwo danych, realizuje
połączenia do sieci nadzorując podrzędne systemy pracujące na innych
komputerach, określa kompatybilność wobec innych systemów, decydując
o funkcjonalności i stabilności pracy.

Podział systemów operacyjnych

Systemy operacyjne podzielić można ze względu na:

1. Sposób komunikacji systemu z użytkownikiem

 systemy tekstowe - komunikacja przebiega przy pomocy komend


wprowadzanych z linii poleceń
 systemy graficzne - komunikacja odbywa się przy pomocy graficznych
symboli (okienek oraz ikon); obsługa systemu polega na manipulacji
przy pomocy myszy bądź klawiatury symbolami odpowiadającym określonym
zadaniom

2. Architekturę systemu

 monolityczne - jednozadaniowe systemy posiadające najprostszą strukturę,


gdzie w danym czasie może być realizowane tylko jedno zadanie;
 warstwowe - posiadające hierarchiczną strukturę poleceń systemowych;
możliwa jest realizacja wielu zadań jednocześnie (np. nadzorowanie procesu
drukowania podczas edycji tekstu);
 klient/serwer - systemy posiadając bardzo rozbudowaną strukturę,
nadzorujące podrzędne systemy zainstalowane na komputerach w sieci;
systemy te postrzegają aplikacje jako "klientów", korzystających z usług
serwerów; aplikacja "klient" komunikuje się z serwerem przez jądro
systemowe, natomiast każdy serwer działa we własnej, chronionej
i wydzielonej przestrzeni adresowej w pamięci operacyjnej, gdzie jest
odizolowany od innych zadań; systemy klient/serwer realizują swe zadania
na trzy sposoby:
- wszelkie aplikacje uruchamiane są na serwerze, a wyniki prezentowane
u "klienta",
- serwer dostarcza zasobów dla aplikacji, które uruchamiane są po stronie
"klienta",
- wszelkie komputery współdziałają ze sobą na zasadzie równy z równym
(ang. peer to peer), wykorzystując wzajemnie swoje zasoby,

3. Klasyfikacja systemów operacyjnych ze względu na sposób przetwarzania

 W przypadku systemu przetwarzania bezpośredniego użytkownik wprowadza


zadanie do systemu i oczekuje na wyniki. W trakcie przetwarzania jest zatem
możliwa interakcja pomiędzy użytkownikiem a systemem (aplikacją).
Użytkownik może być na przykład poproszony o wprowadzenie jakiś danych
na terminalu, wybranie czegoś z menu itp.
 W przypadku przetwarzania pośredniego zadanie jest realizowane w czasie
wybranym przez system. Po przedłożeniu zadania ingerencja użytkownika jest
niemożliwa. Wszystkie dane muszą być zatem dostępne w momencie
przedkładania zadania, a jakikolwiek błąd programowy (np. niekompletność
danych) oznacza konieczność przedłożenia i wykonania zadania ponownie.

4. Klasyfikacja systemów operacyjnych ze względu na liczbę wykonywanych


programów

 Systemy jednoprogramowe, zwane też jednozadaniowymi, umożliwiają


uruchomienie jednego zadania użytkownika, które ewentualnie może być
wykonywane współbieżnie z pewnymi procedurami systemu operacyjnego.
 Systemy wieloprogramowe (wielozadaniowe) dostarczają mechanizm
przełączania kontekstu, umożliwiając w ten sposób zachowanie stanu
wykonywania określonego programu (stanu procesu), a następnie
odtworzenie stanu wykonywania innego programu (w szczególności innego
wykonywania tego samego programu). Przełączenie kontekstu jest skutkiem
zwolnienia procesora, które z kolei następuje w wyniku:
- żądania przydziału dodatkowego zasobu,
- zainicjowania operacji wejścia-wyjścia,
- przekroczenia ustalonego limitu czasu (kwantu czasu),
- uzyskania gotowości przez inne zadanie (proces) o wyższym priorytecie.

5. Klasyfikacja systemów operacyjnych ze względu na liczbę użytkowników

 W systemach dla jednego użytkownika nie ma problemu autoryzacji,


czyli konieczności identyfikowania zleceniodawcy poszczególnych zadań.
Mechanizmy ochrony są ograniczone w tym sensie, że nie ma potrzeby
ochrony zasobów jednego użytkownika przed drugim użytkownikiem tego
samego systemu operacyjnego, ale w czasie powszechności sieci rozległych
istnieje jednak problem ochrony zasobów przed ingerencją z zewnątrz.
 System operacyjny w przypadku wielodostępu musi zagwarantować, że jeden
użytkownik nie jest w stanie zakłócić pracy innych użytkowników. Jest to
problem właściwego udostępniania zasobów oraz dostępności mechanizmów
ochrony „prywatnych” zasobów jednego użytkownika przed ingerencją innego.

6. Inne rodzaje systemów operacyjnych

 System operacyjny czasu rzeczywistego ( RTOS). Te wielozadaniowe systemy


operacyjne są przeznaczone do zastosowań w czasie rzeczywistym takich jak:
systemy pokładowe (programowalne termostaty, sterowniki urządzeń
gospodarstwa domowego, telefony komórkowe, roboty przemysłowe, statki
kosmiczne, przemysłowe systemy sterowania, sprzęt do badań naukowych).
 Rozproszony system operacyjny. Cechuje go podział zasobów i procesów
pomiędzy wiele odrębnych komputerów. Przykładem takiego systemu
operacyjnego jest Amoeba. Rozproszone systemy operacyjne zapewniają,
że system komputerowy, złożony z autonomicznych jednostek
przetwarzających połączonych siecią komputerową, postrzegany jest jako
całość. Zasoby tego systemu udostępniane są w jednolity sposób niezależnie
od ich fizycznej lokalizacji — niezależnie od tego, czy są to zasoby lokalne
danej jednostki, czy zasoby związane integralnie z jednostką zdalną. Cecha ta
odróżnia systemy rozproszone od systemów sieciowych, które również
umożliwiają dostęp do zdalnych zasobów, ale nie ukrywają faktu fizycznego
rozproszenia tych zasobów. Inaczej mówiąc, w systemie sieciowym odróżnia
się dostęp lokalny i dostęp zdalny do zasobów.
Przykłady systemów operacyjnych

CP/M (ang. Control Program for Microcomputer) jest jednym z pierwszych systemów
opracowanych dla komputerów działającymi z procesorami Intel 8080 oraz Zilog
Z80. CP/M został stworzony przez firmę Intel w 1974 roku i charakteryzował się
bardzo niewielkimi wymaganiami jeżeli chodzi o wielkość pamięci mikrokomputera.
W momencie upowszechnienia się 16-bitowych mikroprocesorów Intel 8080
oraz pochodnych pojawiła się specjalna wersja CP/M 86, która została ostatecznie
zastąpiona systemem MS DOS.

OS/2 - system stworzony w 1987 roku przez firmy IBM oraz Microsoft. Na początku
był to system tekstowy, choć wielozadaniowy oraz 32 bitowy. Następne jego wersje
wzbogacone zostały o system plików HPFS, który jest wydajniejszy od systemu FAT,
oraz o REXX - interpretowany język programowania, za pomocą którego możliwe
stało się tworzenie wyrafinowanych programów. W roku 1990 firma Microsoft
zerwała współpracę i od tego momentu system rozwijany był tylko jako produkt firmy
IBM. W roku 1991 IBM stworzył kolejną wersję OS/2 wzbogaconą o wirtualną
obsługę DOS/Windows.

BeOS jest systemem operacyjnym, który może być uruchamiany zarówno


na komputerach klasy PC jak i macintoshach. BeOS jest połączeniem najlepszych
cech systemów MS Windows, Mac OS oraz OS/2. BeOs spełnia warunki
wielozadaniowości oraz wielowątkowości procesów. Jest systemem 64-bitowym.

MS DOS (ang. Microsoft Disk Operation System) to dyskowy system operacyjny


przeznaczony dla pojedynczego użytkownika dla 16-bitowych mikrokomputerów
pracujących na procesorach Intel 8086. DOS wywodzi się od systemu QDOS, którego
twórcą jest firma Seattle Computers, będąca pionierem w dziedzinie
oprogramowania oraz budowy komputerów z procesorami Intel 8086. Następne
wersje systemu noszące nazwę 86 DOS zostały zakupione w 1981 roku przez
Microsoft oraz nazwane MS DOS. System MS DOS miał być systemem sprawnie
pracującym oraz efektywnie zarządzającym pamięcią dyskową. W stosunkowo
krótkim czasie opracowanych zostało wiele programów dla systemu MS DOS,
co stanowiło zachętę dla producentów komputerów do instalowania go na swoich
maszynach. Pierwsza wersja systemu MS DOS o numerze 1.0 powstała w 1980 roku
i obsługiwała dyskietki jednostronne, a wersja 1.1 dyskietki dwustronne (8 sektorów
na ścieżkę). Rok 1982 to wydanie zupełnie zmienionej wersji 2.0 i 2.1. Wersje te
umożliwiały korzystanie z dysku twardego, dodawanie nowego zewnętrznego
sprzętu, udoskonalono działanie systemu, dokonano poprawek błędów
występujących w pierwszych wersjach (zmodyfikowano format dyskietki na 9
sektorów na ścieżkę i 360 KB pojemności) a także organizację plików zapisywanych
na dysku. Wersje MS DOS 3.x przeznaczone były dla komputerów PC AT, choć mogły
również być stosowane w starszych modelach. Charakterystyczną cechą DOS-a jest
sposób zarządzania plikami, które zapisywane są w oddzielnych katalogach, tworząc
drzewo katalogowe, na które składa się katalog główny oraz podkatalogi.

Zakres działań, jakie realizowane są przez system MS DOS obejmował:


 zarządzanie pamięcią RAM (przydzielanie pamięci dla określonego zadania,
zwalnianie pamięci)
 sterowanie pracą zewnętrznych urządzeń (obsługa klawiatury, wyświetlanie
obrazu na monitorze, obsługa zapisu i odczytu pamięci zewnętrznej a także
obsługa złączy szeregowych oraz równoległych)
 zarządzanie informacjami zapisanymi w pamięci zewnętrznej
przez organizowanie systemu plików (zapis, odczyt, tworzenie oraz usuwanie
plików w strukturze hierarchicznej)
 komunikację z użytkownikami oraz udostępnianie elementów
oprogramowania (podstawowego, użytkowego, narzędziowego)
 kontrolę poprawności funkcjonowania sprzętu oraz organizację w awaryjnych
sytuacjach (brak zewnętrznego urządzenia, utrata dostępu do zewnętrznego
urządzenia, błędy w pamięci RAM, błędy odczytu klawiatury, błędy zapisu
w zewnętrznej pamięci)

Windows - jest to ogólna nazwa dla grupy najbardziej popularnych systemów


operacyjnych działających na komputerach PC. Systemy te, stworzone
oraz regularnie ulepszane przez firmę Microsoft, na początku lat 90-tych,
wykorzystując przejrzyste środowisko graficzne (ang. GUI), zrewolucjonizowały
sposób komunikowania się przeciętnego użytkownika z komputerem powodując, że
stał się on użytecznym narzędziem pracy oraz rozrywki także w domowych
zastosowaniach. Kolejne wersje systemów Windows wykorzystują coraz bardziej
zaawansowane rozwiązania, umożliwiając intuicyjną obsługę aplikacji oraz kontrolę
współpracujących z komputerem urządzeń. Microsoft razem z systemem dostarcza
użytkownikowi podstawowych aplikacji tekstowych i graficznych oraz
za uiszczeniem dodatkowej opłaty współpracujące ściśle z systemem wydajne
pakiety biurowe jak MS Office. Pierwsze wydania systemów Windows (Windows 1.0
w 1984 roku oraz Windows 2.0 w 1987 roku) były typowymi nakładkami na system
MS DOS, nie wzbudzając wówczas szerszego zainteresowania, gdyż istniało wtedy
sporo podobnie działających programów. Większe zainteresowanie użytkowników
oraz sukces komercyjny odniosła dopiero wersja 3.0, wprowadzona do sprzedaży
w 1989 roku, która później została zastąpiona wersją 3.1.

UNIX - jest jednym ze starszych systemów, stosowanym zarówno na pojedynczych


maszynach oraz jako system sieciowy. Duża liczba firm wykorzystuje systemy
unixowe od momentu ich powstania w latach 60-tych. Pomimo iż UNIX nie jest tak
przyjazny i łatwy w użyciu jak system Windows, posiada on jednak wielu
zwolenników, ponieważ jest bardzo stabilny oraz gwarantuje bezpieczeństwo danych
na maksymalnym poziomie. System ten jest zdecydowanie trudniejszy w instalacji
niż inne systemy, lecz zapewnia lepszą kontrolę mocy obliczeniowej komputera
oraz jego zasobów. Obecnie UNIX dostępny jest w kilku wersjach, najbardziej
popularne to: UnixWare, HP-UX, Linux, AIX, Solaris. Systemy unixowe stosowane
na komputerach osobistych to: UnixWare oraz Linux, który udostępniany jest
w Internecie zupełnie za darmo.

Linux - jest wielozadaniowym, wieloużytkownikowym systemem operacyjnym typu


UNIX, którego twórcą jest Linus Torvalds. Pierwsza wersja systemu Linux została
wydana w 1991 roku w sierpniu i od tamtego momentu system podlega wielu
udoskonaleniom, które dokonywane są przez sporą grupę programistów
posiadających dostęp do kodu źródłowego, rozpowszechnianego w ramach licencji
GPL (ang. General Public License) fundacji FSF. Dzięki tej licencji zapewniony jest
powszechne prawo do bezpłatnego użytkowania systemu oraz rozwijania go.
Kod źródłowy Linuxa oraz sam system są zatem bezpłatne i dostępne dla każdej
osoby bez żadnych ograniczeń.

Najpopularniejszymi dystrybucjami systemu Linux są: Ubuntu, RedHat, SlackWare,


Fedora, Debian, SuSE, Mandrake. Wszystkie dystrybucyjne pakiety systemu Linux
bazują na tym samym jądrze systemowym (kernelu). Jądro zawiera główne funkcje
systemu, ładuje potrzebne sterowniki obsługi sieci, systemu plików oraz dołączonych
urządzeń a także sporą ilość uruchamianych w linii komend programów
pomocniczych. System Linux swą popularność zawdzięcza w dużej mierze bardzo
wysokiej stabilności działania, przez co znalazł szerokie zastosowanie w narzędziach
serwerowych i programistycznych, zyskując coraz bardziej na popularności.

Po uruchomieniu systemu Linux użytkownik podaje swój identyfikator oraz hasło.


W celu wystartowania interfejsu graficznego wydaje polecenie "startx". W Linuxie,
podobnie jak w systemach DOS i Windows, występuje drzewo katalogowe, jednak
w tym przypadku jest ono lepiej zorganizowane. Wszystkie pliki systemu
umieszczone są w osobnych katalogach zależnie od typu jakim się charakteryzują.
System Linux stanowi pewną alternatywę dla systemów Microsoftu. Poza tym,
że jest całkowicie darmowy, jest również uznawany za bardziej stabilny oraz dużo
lepiej zabezpieczony przed ewentualnymi włamaniami. Do wad tego systemu należy
trudniejsza konfiguracja.
Temat: Budowa i działanie systemu operacyjnego.

1. Budowa systemu operacyjnego.


2. Warstwy systemu operacyjnego.
3. Zadania systemu operacyjnego.
4. Najważniejsze cechy systemu operacyjnego.

Budowa systemu operacyjnego

System operacyjny jest to oprogramowanie, które pełni w komputerze bardzo istotną


rolę. Pod względem informatycznym jego zadaniem jest zarządzanie zasobami
komputera, czyli sprzętem, w jaki wyposażony jest pecet oraz aplikacjami
uruchamianymi przez użytkownika. To właśnie system operacyjny kontroluje
i przypisuje pamięć operacyjną (RAM) dla programów, decyduje o przydziale im
procesora, steruje urządzeniami wejścia/wyjścia. Zarządza także plikami, a także
ustanawia połączenia sieciowe. Z punktu widzenia użytkownika komputera system
operacyjny pomaga mu komunikować się ze sprzętem oraz staje się środowiskiem,
w którym uruchamia on potrzebne aplikacje. System operacyjny staje się więc
pośrednikiem między użytkownikiem, a sprzętem komputerowym, czyli można
powiedzieć, że udostępnia aplikacjom maszynę wirtualną. Od dość dawna ważną
cechą systemów operacyjnych jest tzw. graficzny interfejs użytkownika,
który poprzez wykorzystanie grafiki ułatwia użytkownikowi korzystanie z komputera.

Warstwy systemu operacyjnego

W każdym systemie operacyjnym występują, mniej lub bardziej wyodrębnione,


warstwy spełniające różne funkcje. Są to:

• jądro (ang. kernel) - warstwa odpowiedzialna za wykonywanie wszystkich


zadań systemu operacyjnego;
• powłoka - specjalny program, który służy do komunikacji użytkownika
z systemem operacyjnym;
• system plików - sposób organizacji i zapisu danych na nośniku;
• warstwa odpowiedzialna za współpracę ze sprzętem (zarządzanie zasobami
maszyny, komunikacja z innymi maszynami).
Pod względem architektury systemy operacyjne dzielimy na systemy z:

• jądrem monolitycznym - o najprostszej strukturze. Zaletą ich jest


stabilność, prostota, łatwość komunikacji między różnymi modułami jądra,
a wadą trudność w rozwijaniu programu oraz wykrywaniu błędów.
Przykładami takiego jądra mogą być: Linux, OpenBSD, FreeBSD.
• mikrojądrem - jest uboższy niż jądro monolityczne i odpowiedzialny
za podstawowe funkcje niezbędne do pracy systemu operacyjnego. Bardziej
złożone zadania wykonywane są przez specjalne bloki funkcjonalne lub jako
zwykłe procesy w trybie użytkownika, a nie w trybie jądra.
• jądrem hybrydowym - łączy ono w sobie cechy obydwu powyższych jąder.
Podstawowe funkcje niezbędne do pracy systemu operacyjnego działają
w trybie jądra, pozostałe również, tylko z mniejszym priorytetem. Dzięki temu
zachowana jest stabilność jądra monolitycznego do najważniejszych zadań.
Obecnie większość systemów operacyjnych oparta jest najądrze hybrydowym
(np. rodzina MS Windows).

Cechy jądra systemu operacyjnego:

• wielozadaniowość (wieloprocesowość) — możliwość równoczesnego


uruchamiania wielu procesów (programów i aplikacji),
• wielowątkowość - w ramach jednego procesu wykonywanie kilku
niezależnych wątków,
• skalowalność - zdolność do dalszej rozbudowy, możliwość rozwoju lub
miniaturyzacji sprzętu,
• wywłaszczalność - zdolność jądra do wstrzymania aktualnie
wykonywanego zadania, aby umożliwić działanie innemu (dzięki temu
zawieszenie jednego procesu nie powoduje blokady całego systemu).
Zadania systemu operacyjnego

Główne zadania stawiane przed systemami operacyjnymi to:

• zarządzanie zasobami komputera - systemy operacyjne steruję


oraz optymalizują wykorzystanie określonych urządzeń, które wchodzą
w skład zestawu komputerowego; specjalne moduły zwane sterownikami,
które składają się na system operacyjny udostępniają aplikacjom spójne
metody programowania urządzeń (interfejsy), co gwarantuje współdziałanie
każdego nowego urządzania z oprogramowaniem (jeżeli producent dostarczy
właściwy sterownik);
• gromadzenie oraz zarządzanie danymi - systemy operacyjne wyposażone są
w moduły obsługujące system plików, czyli struktury umieszczone na dyskach,
pomagające w logiczny sposób uporządkować dane, grupując je w katalogi
i pliki;
• maszyny wirtualne - systemy operacyjne udostępniają aplikacjom tzw.
maszyny wirtualne, czyli uproszczone obrazy maszyn, na których pracują
aplikacje; system udostępnia aplikacjom szczegóły na temat komputera
oraz rozszerzenia ułatwiające pracę (np. zasoby udostępniane poprzez sieć
aplikacje widzą tak, jakby znajdowały się one na dysku lokalnym;
• wielozadaniowość - na pojedynczym komputerze funkcjonować może wiele
aplikacji w jednym czasie; każda aplikacja otrzymuje swoją maszynę wirtualną
i może pracować jakby była pojedynczym programem działającym
na maszynie; dzięki takiej właściwości systemów operacyjnych nie ma
potrzeby przystosowywania aplikacji, by mogła dzielić się daną maszyną
z innymi aplikacjami;
• interakcja z użytkownikiem - rolę tę spełnia najbardziej zewnętrzna warstwa
systemu operacyjnego zwana powłoką (ang. shell), która pozwala
użytkownikowi uruchamiać aplikacje; w systemach graficznych do powłoki
zaliczają się także typowe elementy interfejsu, z których korzysta aplikacja,
jak kontrolki czy okna dialogowe;
• komunikowanie się z innymi komputerami - jest to jeden z najistotniejszych
elementów systemów operacyjnych; dzięki modułom obsługi sieci można
uzyskać dostęp do Internetu, do dysków komputerów stojących w sąsiednim
pomieszczeniu czy sieciowych urządzeń peryferyjnych jak drukarki
czy skanery.
Dodatkowe funkcje systemu operacyjnego.

• współdzielenie zasobów, czyli przydzielanie jednego zasobu grupie


użytkowników lub procesów pracujących jednocześnie;
• księgowanie (ang. journaling, accounting), czyli śledzenie
i zapisywanie dodatkowych informacji na temat wykorzystywania zasobów
przez poszczególnych użytkowników i/lub procesy, prowadzenie statystyk,
zapewnienie możliwości cofnięcia niedokończonych transakcji itp.;
• zabezpieczenia, czyli środki pozwalające utrzymać zasoby systemu pod
kontrolą jego administratorów, nie dopuścić do używania ich bez zgody
właściciela lub w niezgodnie z jego wolą.

Najważniejsze cechy systemu operacyjnego

Najważniejszymi cechami, które decydują o użyteczności danego systemu


operacyjnego są:

• prostota instalacji oraz użytkowania systemu,


• współpraca z innymi systemami, czyli możliwość odczytu i zapisu danych
na partycjach z innych systemów a także współpraca oraz wymiana danych
między komputerami w sieciach lokalnych i Internecie,
• zgodność sprzętowa (instalację na konkretnej maszynie utrudnia czasami
brak właściwych sterowników dla określonych urządzeń),
• wymiana danych, czyli możliwość przeglądania oraz wymiany dokumentów
pomiędzy różnymi aplikacjami pracującymi pod kontrolą różnych systemów,
• możliwość pracy sieciowej (wygoda podczas przeglądania zasobów
sieciowych, wymiany protokołów, itp.),
• cena,
• liczba aplikacji, które działają w danym systemie (nawet najlepiej pracujący
system będzie niemal bezużyteczny, jeżeli oferta oprogramowania,
które współpracuje z tym systemem będzie niewielka),
• lokalizacja (możliwość komunikacji użytkownika z systemem w ojczystym
języku).
Temat: Procesy, wątki oraz pamięć wirtualna.

1. Pojęcie procesu.
2. Wątek jako część procesu.
3. Pamięć wirtualna.

Pojęcie procesu

Proces - jedno z najbardziej podstawowych pojęć w informatyce, definiowane jako


egzemplarz wykonywanego programu, jednak każdy nowo powstały proces otrzymuje
unikalny numer, który go jednoznacznie identyfikuje, tzw. numer PID (ang. process
IDentifer).

W celu wykonania programu system operacyjny przydziela procesowi zasoby (pamięć,


czas procesora i inne), ale także może być konieczne współbieżne wykonywanie
pewnych fragmentów programu. Aby to zrealizować program może zażądać
utworzenia określonej liczby wątków, wykonujących wskazane części programu - o ich
współbieżne wykonanie dba system operacyjny (albo sam program, wówczas mówi
się o zielonych wątkach). Wątki współdzielą prawie wszystkie zasoby zarezerwowane
dla danego procesu, wyjątkiem jest czas procesora, który jest przydzielany
indywidualnie każdemu wątkowi.

Za zarządzanie procesami odpowiada jądro systemu operacyjnego, sposób ich


obsługi jest różny dla różnych systemów operacyjnych. W systemie operacyjnym
każdy proces posiada proces nadrzędny, z kolei każdy proces może, poprzez
wywołanie funkcji systemu operacyjnego, utworzyć swoje procesy potomne; w ten
sposób tworzy się swego rodzaju drzewo procesów. Każdy proces otrzymuje
od systemu operacyjnego odrębne zasoby, w tym odrębną przestrzeń adresową, listę
otwartych plików, urządzeń itp. W skład procesu wchodzi:
 kod programu,
 licznik rozkazów,
 stos,
 sekcja danych.

Każdemu procesowi przydzielone zostają zasoby, takie jak:


 procesor,
 pamięć,
 dostęp do urządzeń wejścia-wyjścia,
 pliki.
Użytkownik za pomocą powłoki zleca uruchomienie programu, proces wywołujący
wykonuje polecenie fork, lub jego pochodną.

System operacyjny tworzy przestrzeń adresową dla procesu oraz strukturę opisującą
nowy proces w następujący sposób:

 wypełnia strukturę opisującą proces,


 kopiuje do przestrzeni adresowej procesu dane i kod, zawarte w pliku
wykonywalnym,
 ustawia stan procesu na działający,
 dołącza nowy proces do kolejki procesów oczekujących na procesor (ustala
jego priorytet),
 zwraca sterowanie do powłoki użytkownika.

Dany proces rozpoczyna wykonywanie w momencie przełączenia przez jądro systemu


operacyjnego przestrzeni adresowej na przestrzeń adresową danego procesu
oraz takie zaprogramowanie procesora, by wykonywał kod procesu. Wykonujący się
proces może żądać pewnych zasobów, np. większej ilości pamięci. Zlecenia takie są
na bieżąco realizowane przez system operacyjny.

Wykonanie procesu musi przebiegać sekwencyjnie. Może przyjmować kilka stanów:

 aktualnie wykonywany przez procesor,


 czekający na udostępnienie przez system operacyjny zasobów,
 uśpiony
 przeznaczony do zniszczenia,
 proces zombie,
 właśnie tworzony itd.

Proces wykonuje ostatnią instrukcję - zwraca do systemu operacyjnego kod


zakończenia. Jeśli proces zakończył się poprawnie zwraca wartość 0, w przeciwnym
wypadku zwraca wartość kodu błędu.

W momencie zwrotu do systemu operacyjnego kodu zakończenia, system operacyjny


ustawia stan procesu na przeznaczony do zniszczenia i rozpoczyna zwalnianie
wszystkich zasobów, które w czasie działania procesu zostały temu procesowi
przydzielone.
System operacyjny po kolei kończy wszystkie procesy potomne w stosunku
do procesu macierzystego.

System operacyjny zwalnia przestrzeń adresową procesu. Jest to dosłowna śmierć


procesu.

System operacyjny usuwa proces z kolejki procesów gotowych do uruchomienia


i szereguje zadania. Jest to ostatnia czynność wykonywana na rzecz procesu.

Procesor zostaje przydzielony innemu procesowi.

Wątek jako część procesu

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 (np. listy otwartych plików, gniazd, itp.) - z kolei procesy
posiadają niezależne zasoby.

Ta cecha ma dwie ważne konsekwencje:

1. Wątki wymagają mniej zasobów do działania i też mniejszy jest czas ich
tworzenia.
2. Dzięki współdzieleniu przestrzeni adresowej (pamięci) wątki jednego
zadania mogą się między sobą komunikować w bardzo łatwy sposób,
niewymagający pomocy ze strony systemu operacyjnego. Przekazanie
dowolnie dużej ilości danych wymaga przesłania jedynie wskaźnika, zaś
odczyt (a niekiedy zapis) danych o rozmiarze nie większym od słowa
maszynowego nie wymaga synchronizacji (procesor gwarantuje
atomowość takiej operacji).

Wątki są udostępniane wprost przez system operacyjny MS Windows, w systemach


Linux, BSD i innych dostępna jest biblioteka pthread, dająca jednolity interfejs,
ukrywający szczegóły implementacji. W językach programowania używających
maszyn wirtualnych (Python, Java itp.) są dostępne również tzw. zielone wątki, które
nie są obsługiwane przez system operacyjny, ale samą maszynę wirtualną - to pozwala
m.in. na realizację współbieżności nawet wtedy, gdy docelowy system operacyjny
nie udostępnia wątków. W systemach wieloprocesorowych, a także w systemach
z wywłaszczaniem, wątki mogą być wykonywane równocześnie (współbieżnie).
Równoczesny dostęp do wspólnych danych grozi jednak utratą spójności danych
i w konsekwencji błędem działania programu.

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.
Wszystkie wątki tego samego procesu współdzielą kod programu i dane.

Cechy wielowątkowości:

 wszystkie wątki wykonują się w ramach tylko jednego programu (procesu) -


innymi słowy jeden proces posiada wiele instancji wykonawczych (wątków);
 wątki zostały wprowadzone, aby umożliwić przetwarzanie współbieżne, np. gdy
zachodzi potrzeba wykonania wielu zadań jednocześnie. Może się to wiązać
również ze zwiększeniem wydajności o ile istnieją odpowiednie zasoby
sprzętowe (wiele procesorów lub obsługa wielowątkowości przez pojedynczy
procesor). Należy pamiętać iż wprowadzenie wątków może obniżyć wydajność
ponieważ najczęściej wymagane jest przy tym wprowadzenie odpowiednich
mechanizmów synchronizacji;
 wszystkie wątki procesu współdzielą tę samą wirtualną przestrzeń adresową
(mają dostęp do tych samych „egzemplarzy” zmiennych, obiektów i struktur)
i korzystają z tych samych zasobów systemowych;
 komunikacja między wątkami w odróżnieniu od procesów jest bardzo łatwa
do wykonania – w przypadku wątków wystarczy odwoływać się do tych samych
zmiennych i obiektów – komunikacja między procesami wymaga zastosowania
mechanizmów IPC (ang. InterProcess Communication);
 współdzielenie wirtualnej przestrzeni adresowej niesie zagrożenie – jeden
„wadliwy” wątek może zagrozić wykonaniu całego programu;
 każdy wielowątkowy system operacyjny zapewnia specyficzne metody
synchronizacji wątków, które z wyżej wymienionych przyczyn należy
bezwzględnie zaimplementować.

Systemy wielowątkowe to m.in.: Microsoft Windows, Unix, Linux, BeOS.


Pamięć wirtualna

Pamięć wirtualna oznacza oddzielenie pamięci fizycznej od pamięci logicznej


dostępnej użytkownikowi. U podstaw tej idei leży obserwacja, że w każdej chwili tylko
część pamięci procesu musi znajdować się w pamięci operacyjnej komputera - ta
część, która akurat jest używana przez proces. Jest to możliwe dzięki temu, że procesy
charakteryzują się lokalnością - w konkretnej chwili proces nie potrzebuje całej
przydzielonej mu pamięci, a jedynie jej część. Pamięć logiczna może być więc większa
niż fizyczna, wystarczy że nie używane w danej chwili obszary pamięci logicznej
zostaną przeniesione na pamięć drugorzędną, np. na dysk. Taka pamięć drugorzędna
używana do „udawania” pamięci operacyjnej jest nazywana obszarem wymiany.

Mechanizm pamięci wirtualnej stanowi rozszerzenie mechanizmów stronicowania


lub segmentacji. Są to, odpowiednio, mechanizmy stronicowania na żądanie albo
segmentacji na żądanie. W przypadku segmentacji na żądanie, tablica segmentów
tłumaczy numer segmentu na spójny obszar w pamięci fizycznej lub w obszarze
wymiany. W przypadku stronicowania na żądanie, tablica stron tłumaczy numery stron
na numery ramek lub numery bloków dyskowych w obszarze wymiany. Stronicowanie
na żądanie jest dużo bardziej elastyczne niż segmentacja na żądanie, dlatego też
w praktyce wyparło segmentację na żądanie.

Mechanizm pamięci wirtualnej umożliwia też współdzielenie przestrzeni adresowej


przez wiele procesów, oraz pozwala efektywniej tworzyć procesy.

W domyślnej konfiguracji Windows sam ustala rozmiar pliku stronicowania


(pagefle.sys), który uzależniony jest od ilości zainstalowanej pamięci RAM.
Obecnie nikogo nie dziwią wielkości RAM rzędu 4 - 8 GB, jest to standard jak
na dzisiejsze czasy. Łatwo sobie wyobrazić, że przy takim poziomie pamięci system
zawyży rozmiar pliku wymiany, co może przyczynić się do zmarnowania nawet kilku
gigabajtów powierzchni dysku. Nie musimy godzić się z tą sytuacją, możemy ręcznie
zmodyfikować ustawienia i dopasować je tak, aby maksymalnie zoptymalizować
rozmiar.

System operacyjny ustawia plik stronicowania na zmienny rozmiar. Konkretniej


mówiąc ustalany jest minimalny i maksymalny rozmiar swap. Początkowo rozmiar
pliku pagefle.sys równa się wartości minimalnej, w trakcie użytkowania systemu
i aplikacji następuje stopniowe zwiększenie rozmiaru pliku, niestety często powoduje
to znaczące obciążenie dysku, co w niektórych sytuacjach może uniemożliwiać
komfortową pracę. Można temu zapobiec poprzez ustawienie stałego rozmiaru
pamięci wirtualnej. Wtedy to bez względu na zmieniające się zapotrzebowanie, plik nie
będzie podlegał rozszerzaniu. Zaletą takiego rozwiązania oprócz wyżej opisanego, jest
także zmniejszenie stopnia fragmentacji plików.

Można by wymienić wiele zalet stosowania stałego pliku wymiany, jednakże takie
rozwiązanie niesie ze sobą jeden problem. W przypadku wykorzystania całej pamięci
wirtualnej system odmówi posłuszeństwa, wszelkie niezapisane dane zostaną
utracone. Dlatego też niezmiernie istotną rzeczą jest ustalenie bezpiecznego pułapu,
który zagwarantuje, że pamięć szybko się nie wyczerpie. Oczywiście przy większych
pojemnościach RAM rzadko kiedy spotkamy się z tą krytyczną sytuacją, jednakże
należy mieć na uwadze powyższą przestrogę.

Źródło: K. Pytel, S. Osetek „Systemy operacyjne i sieci komputerowe”, wyd. WSiP


Temat: Organizacja zapisu danych.
1. Pojęcie pliku.
2. Organizacja zapisu danych na dysku.
3. Ścieżka dostępu.

Pojęcie pliku

Używając komputera z zainstalowanym dowolnym systemem operacyjnym


nie sposób jest nie korzystać z plików. Trzymamy w nich notatki, zdjęcia, filmy,
programy oraz ich kod źródłowy. Jesteśmy do nich przyzwyczajeni i rzadko
przychodzi nam do głowy, żeby docenić fakt jak wielkim wynalazkiem jest system
plików w formie, w jakiej go dzisiaj znamy.

Czym jest plik?

 Plik jest abstrakcyjnym obrazem informacji gromadzonej i udostępnianej


przez system komputerowy.
 Plik jest podstawową jednostką logiczną magazynowania informacji
w systemie komputerowym, widoczną dla użytkownika.
 Plik jest nazwanym zbiorem powiązanych ze sobą informacji, zapisanym
w pamięci pomocniczej.
 Plik danych jest uporządkowanym zbiorem 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.

System plików

System plików (ang. file system) - określa to, jak informacje są zapisywane
i odczytywane. System plików definiuje także wielkość klastrów, możliwe do użycia
atrybuty plików oraz schemat poprawnych nazw plików i katalogów - ich długość
i dopuszczalne znaki w nazwach.

Każdy twardy dysk potrzebuje systemu plików, który zarządza pojedynczymi danymi
i zapewnia dostęp do konkretnych plików systemowi operacyjnemu.

System plików to metoda przechowywania i zarządzania plikami. Dzięki temu


użytkownik systemu ma do nich łatwy i swobodny dostęp.
Dysk twardy można porównać z olbrzymim, z pozoru chaotycznym magazynem,
w którym dostawcy bez ładu i składu porzucają swoje towary, gdzie popadnie, a przy
wejściu stoi administrator magazynu i za pomocą specjalnego programu zapisuje
miejsce pozostawienia każdego towaru. Programy zapisują pliki na dysku równie
bezładnie, a system plików przyjmuje rolę zarządcy magazynu.

Sektory i jednostki alokacji

Podstawowymi terminami opisującymi dyski twarde są sektory i jednostki alokacji.

Sektor – najmniejsza fizyczna jednostka zapisu danych na dyskach twardych,


dyskietkach i innych nośnikach danych naśladujących dyski. Sektor jest zapisywany
i czytany zawsze w całości. Ze względów historycznych wielkość sektora wynosi 512
bajtów.

W celu poprawienia wydajności pracy dysku twardego, sektory zostały połączone


w grupy zwane jednostkami alokacji (ang. Clusters). Klaster to
podstawowa jednostka przechowywania danych, składająca się z jednego lub kilku
sektorów nośnika danych. Obszar jednego klastra można wypełnić danymi
należącymi tylko do jednego pliku. Klastrom nadaje się kolejne numery, które system
plików używa do określania położenia klastra na nośniku danych. Maksymalną liczbę
klastrów określa stosowany system plików, a jej iloczyn z wielkością klastra określa
maksymalną wielkość partycji. Rozmiar jednostki alokacji (klastra) jest równy liczbie
sektorów w tej jednostce. Jeśli plik nie zapełni całkowicie jednej lub kilku jednostek
alokacji, to pozostała część powierzchni dyskowej jest tracona, dlatego
najefektywniejsze jest utworzenie jednostek alokacji o rozmiarze jednego sektora.
Stopień wykorzystania dysku maleje wraz ze wzrostem rozmiaru jednostki alokacji.
Z drugiej strony zwiększenie jednostki alokacji poprawia wydajność pracy dysku
twardego.
Domyślne rozmiary klastrów w woluminach systemów plików (klastry = jednostki
alokacji).
Rozmiar woluminu FAT16 FAT32 NTFS
7 MB – 16 MB 2 KB nie obsługuje 512 B
17 MB – 32 MB 512 B nie obsługuje 512 B
33 MB – 64 MB 1 KB 512 B 512 B
65 MB – 128 MB 2 KB 1 KB 512 B
129 MB – 256 MB 4 KB 2 KB 512 B
257 MB – 512 MB 8 KB 4 KB 512 B
513 MB –1024 MB 16 KB 4 KB 1 KB
1025 MB – 2 GB 32 KB 4 KB 2 KB
2 GB – 4 GB 64 KB 4 KB 4 KB
4 GB – 8 GB nie obsługuje 4 KB 4 KB
8 GB – 16 GB nie obsługuje 8 KB 4 KB
16 GB – 32 GB nie obsługuje 16 KB 4 KB
32 GB – 2 TB nie obsługuje nie obsługuje 4 KB

Porządek w systemie plików

Tak jak w magazynie, z biegiem czasu wszystko staje się coraz bardziej
nieprzejrzyste. Stare pliki się wyrzuca, nowe dodaje albo dane się sortuje. Oprócz
tego Windows zapisuje pliki w wielu częściach (fragmentach) tam, gdzie akurat
znajduje miejsce. Dlatego do jednej ścieżki należy często wiele adresów zapisu,
a przez to dostęp na przykład do zdjęcia trwa dłużej. Defragmentacja łączy
ze sobą poszczególne fragmenty plików i sprawia, że pecet odzyskuje szybkość.

Organizacja zapisu danych na dysku

Windows tworzy ścieżki prowadzące przez foldery i podfoldery do każdego pliku.


Ścieżka odpowiada więc adresowi, pod którym program odnajduje plik.

Kiedy program ma otworzyć określony plik, wysyła do systemu operacyjnego


zapytanie, a Windows przekazuje je do systemu plików. Na podstawie ścieżki system
plików odnajduje fizyczny adres zapisu pliku na twardym dysku i przekazuje dane
do Windows.
W celu przyporządkowania informacji o ścieżkach do poszczególnych plików system
plików zakłada spis treści, który łączy różne adresy, pod którymi plik jest zapisany,
z odpowiednimi ścieżkami. W najbardziej rozpowszechnionym systemie plików NTFS
spis nosi nazwę MFT (ang. Master File Table - główna tablica plików).

Katalog główny to katalog w systemie plików nadrzędny dla wszystkich innych


katalogów (i również plików). W systemach dosowych oznaczamy przez odwrotny
ukośnik (\), w systemach dosowych odnosi się do katalogów głównych każdej
partycji i może być ich kilka (tyle, ile partycji).

Oznaczenia katalogów:

\ katalog główny,

. katalog bieżący,

.. katalog nadrzędny.

W systemach Windows wyróżniamy tyle katalogów głównych ile system widzi


partycji systemowych, dysków optycznych, napędów dysków elastycznych, pamięci
flash oraz zmapowanych zasobów sieciowych.

Podkatalogiem określamy katalog znajdujący się w innym katalogu. Katalogiem


bieżącym nazywamy katalog do którego mamy bezpośredni dostęp. Napęd dysku,
którego nazwa jest wyszczególniona w znaku zachęty nazywamy aktywnym
napędem dyskowym.

Ścieżka dostępu

Dokładne położenie pliku na dysku określa ścieżka dostępu. Ścieżka dostępu


to łańcuch znaków składający się z nazwy dysku i folderów (w przypadku plików
przechowywanych na lokalnym komputerze) lub nazwy komputera i udziału,
oddzielonych od siebie dwukropkiem (w przypadku dysku), dwoma znakami
odwrotnego ukośnika (w przypadku nazwy komputera) oraz znakami odwrotnego
ukośnika (w przypadku folderów). Ścieżka pokazuje „drogę”, jaką należy przejść,
aby odszukać plik, poczynając do najbardziej ogólnego położenia - dysku, poprzez
kolejne foldery i kończąc na nazwie pliku, np.:

c:\edytory\tag\list.tag gdzie:
c: - dysk,

edytory - katalog,

tag - podkatalog,

list.tag - plik,

\ - separator (backslash).

Znaki odwrotnego ukośnika oddzielają poszczególne nazwy folderów, w których


przechowywany jest plik.

Ścieżka bezwzględna

Bezwzględna ścieżka dostępu rozpoczyna się od nazwy dysku, np.:

C:\Windows\System32\sol.exe

Ścieżka względna

Względna ścieżka dostępu przedstawia lokalizację pliku lub folderu względem


folderu bieżącego. Aby z folderu bieżącego przejść niżej w strukturze drzewa,
nie trzeba podawać pełnej ścieżki dostępu. Wystarczy wpisać ścieżkę rozpoczynając
od nazwy następnego folderu lub zacząć od (.), która oznacza katalog bieżący, np.:

.\System32\sol.exe

System32\sol.exe

Jeżeli w ścieżce względnej musimy przejść do katalogu nadrzędnego używamy


symbolu (..), np.:

..\..\System32\sol.exe
Temat: Podział oprogramowania i typy licencji.
1. Kategorie oprogramowania komputerowego.
2. Rodzaje oprogramowania użytkowego.
3. Licencja.
4. Typy licencji.

Kategorie oprogramowania komputerowego

Oprogramowanie komputerów dzielimy na:

 oprogramowanie systemowe - niezbędne do działania komputera,


 oprogramowanie narzędziowe - do diagnozy, naprawy lub usprawnienia
systemu,
 oprogramowanie użytkowe - aplikacje pozwalające na wykorzystanie
komputera w życiu człowieka.

Oprogramowanie systemowe stanowią wszystkie programy, które służą


do wprowadzania i uruchamiania programów użytkowych. W tej grupie znajdują się
systemy operacyjne, programy testujące, programy komunikacyjne. Najczęściej
programy zapisane są w pamięci ROM.

Oprogramowanie narzędziowe to rodzaj oprogramowania, który wspomaga


zarządzanie zasobami sprzętowymi poprzez dogodne interfejsy użytkowe
oraz usprawnia, modyfikuje oprogramowanie systemowe w celu usprawnienia
wykonywania programów w bardziej wygodny i wydajny sposób, a przy tym
pozbawiony błędów. Do oprogramowania narzędziowego należą programy
zarządzające zbiorami na dysku.

Oprogramowanie użytkowe (zwane też aplikacyjnym, aplikacjami) - określają sposoby


w jaki zostają użyte zasoby systemowe do rozwiązywania problemów
obliczeniowych zadanych przez użytkownika (kompilatory, systemy baz danych, gry,
oprogramowanie biurowe). Zazwyczaj program który ma bezpośredni kontakt
z użytkownikiem i nie jest częścią większego programu. Z technicznego punktu
widzenia jest to oprogramowanie korzystające z usług oprogramowania
systemowego. Oprogramowanie użytkowe stanowią programy wspomagające
obsługę biur, sekretariatów oraz ułatwiające zarządzanie przedsiębiorstwami.
Rodzaje oprogramowania użytkowego

Ze względu na pełnioną funkcję, wyróżnia się następujące rodzaje oprogramowania:


1. Do redagowania tekstu, zwane edytorami lub procesorami tekstu, posiadają
zazwyczaj wbudowany edytor graficzny, można dzięki nim również wstawiać
grafikę zewnętrzną. Przykładami tego typu programów są:
 MS Word
 Libre Office i Open Office Writer
 edytor tekstu pakietu Works
 Word Pad
 edytor Lotus (AmiPro)
2. Programy przeznaczone do prowadzenia obliczeń i kalkulacji, zwane
arkuszami kalkulacyjnymi, umożliwiają sporządzanie automatycznych
kalkulacji, zawierają pewne elementy bazodanowe, dokonują graficznej
prezentacji danych. Wśród tych programów wyróżnić należy:
 MS Excel
 Libre Office i Open Offfice Calc
 arkusze kalkulacyjne pakietu Works
 Quattro Pro
 Lotus 1-2-3
3. Programy graficzne służą tworzeniu oraz modyfikacji grafiki; umożliwiają one
obróbkę oraz wydruk obrazów graficznych uzyskiwanych przez skaner, aparat
fotograficzny lub cyfrowy czy kamerę (często obsługują grafikę
opracowywaną również w innych edytorach graficznych). Odrębną klasą tych
programów są programy służące wykonywaniu projektów technicznych oraz
grafiki reklamowej. Wśród najpopularniejszych wymienić można:
 CorelDRAW
 Photoshop
 Adobe Ilustrator
 Micrografix Designer
 Gimp
 Inkscape
 PaintNet
 Programy do projektowania typu CAD
4. Programy przeznaczone do gromadzenia danych, nazywane bazami danych,
służą wprowadzaniu oraz gromadzeniu danych, wyszukiwaniu informacji
i generowaniu raportów. Dane te są udostępniane w formie tabel i formularzy.
Do przykładowych baz danych zaliczyć można:
 MySQL Server
 MS Access
 Libre Office i Open Offfice Base
 Maria DB
 dBase
 Oracle
5. Języki programowania (niskiego i wysokiego poziomu) służą tworzeniu
własnych aplikacji oraz modyfikacji aplikacji już istniejących. Wśród
programów wymienić można:
 Basic
 Pascal
 Asembler
 C
 C++
 Delphi
 Visual Basic
 Python
6. Komunikatory służą wymianie informacji między użytkownikami komputerów
zarówno w obrębie sieci lokalnych jak i globalnych. Przykłady programów:
 Teams
 Zoom
 Meet
 NetMeeting
 Duo
7. Programy edukacyjne służą wspomaganiu procesu dydaktycznego, dzieli się je
na gry edukacyjne, testy i encyklopedie multimedialne.
8. Programy specjalistyczne to programy służące ściśle określonym celom;
 programy bankowe
 programy finansowo - księgowe
 programy inwentaryzacyjne
 programy przeznaczone dla administracji
9. Programy antywirusowe służą sprawdzaniu plików, folderów czy dysków
ze względu na obecność wirusów, koni trojańskich czy robaków, oraz leczeniu
plików zakażonych. Antywirusy mogą działać w sposób automatyczny
(co wymaga uprzedniego odpowiedniego skonfigurowania ich) lub mogą być
używane w sposób inicjowany przez ich użytkownika. Do powszechnie
używanych zaliczyć można następujące programy:
 Norton AntiVirus
 Eset Nod
 Panda Antywirus
 Avast
 Bitdefender Total Security
 Kaspersky Anti-Virus
 Avira
10. Firewall (zapora ogniowa) jest programem uniemożliwiającym tzw. "intruzom
komputerowym" dostępu do komputera przez sieć lokalną lub przez Internet;
programy tego typu mogą stanowić część całych pakietów antywirusowych
lub też odrębne aplikacje. Wśród popularnych firewallów wymienia się:
 Norton Personal Firewall
 Sygate Personal Firewall Pro
 ZoneAlarm i ZoneAlarm Pro

Licencja

Licencja na oprogramowanie jest to umowa zawarta między wydawcą programu


(podmiotem, do którego należą prawa autorskie), a osobą, która ma zamiar używać
danego oprogramowania. Wydawca określa na jakich zasadach pozwala odbiorcy
utworu (użytkownikowi oprogramowania) z niego korzystać.

W przypadku programów komputerowych zawarcie umowy licencyjnej następuje


przeważnie już przez samo otwarcie i odpieczętowanie pudełka z nośnikiem.
A zatem zdarcie folii z dysków CD, które są zazwyczaj zapakowane wraz
z książeczką licencyjną i certyfikatem autentyczności, jest równoznaczne
z przyjęciem zasad licencji. W Internecie z kolei praktyką jest, że treść licencji zostaje
wyświetlona na stronę WWW, a użytkownik potwierdza zgodę na jej warunki przez
kliknięcie na odpowiedni przycisk ekranowy. W ten sposób godzimy się
na przedstawione przez autora zasady korzystania ze strony Internetowej lub np.
na warunki korzystania z zamieszczonych na niej programów do ściągnięcia
(download). Ogólną zasadą jest posiadanie oddzielnych licencji programu
komputerowego na każde stanowisko komputerowe. Nie można równocześnie
instalować danego programu komputerowego z pojedynczą licencją na wielu
komputerach.
Z umową licencyjną mamy także styczność podczas instalacji danego programu,
gdzie jesteśmy proszeni o potwierdzenie zapoznania się z warunkami danej licencji
oraz na ich akceptację. Często musimy także oświadczyć, ze warunków licencji
łamać nie będziemy.

Ze wszystkim dokładnie możemy się zapoznać w ustawie o prawie autorskim


i prawach pokrewnych. Prawo autorskie zawarte jest w ustawie z dnia 4 lutego 1994r.
o prawie autorskim i prawach pokrewnych (Dz.U. 1994 nr 24 poz. 83 z późn. zm.).

Licencje mogą czasem być nieodpłatne, np. na używanie darmowych programów.


Zdarza się, że program można darmowo używać samemu, ale nie wolno go dalej
przekazywać. Zawsze więc, kiedy będziemy chcieli skorzystać z tzw. darmowego
oprogramowania, należy czytać dołączoną do niego instrukcję licencyjną.

Typy licencji

Pełna wersja

Program komercyjny bez żadnych ograniczeń. Jego rozprowadzanie w innych


mediach (np. w internecie) jest niezgodne z prawem.

BOX

Najbardziej znana i najczęściej stosowana licencja. Potocznie zwana - pudełkową,


lub pełną. Oferuje produkty zapakowane wraz ze wszelkim wymaganym
doposażeniem. Najczęściej stosowana w przypadku aplikacji multimedialnych, gier
czy muzyki. Produkty oparte na licencji BOX są najdroższe ze wszystkich
prezentowanych.

OEM (Original Equipment Manufacturer)

Jest to jedna z bardziej znanych nam licencji, ponieważ mamy styczność z nią
bardzo często np. kupując system operacyjny (bądź także części komputerowe).
W odniesieniu do oprogramowania, licencję OEM najczęściej spotkamy kupując
produkty firmy Microsoft (Windows, Office). Licencja na oprogramowanie OEM jest
bardzo uściślona, generalnie rzecz biorąc, system operacyjny Windows
licencjonowany na podstawie licencji OEM możemy zakupić tylko wraz z nowym
komputerem. Licencja jest ważna tylko i wyłącznie na komputer, wraz z którym
system został zakupiony. Po wymianie jakiejkolwiek części w komputerze licencja
może ulec unieważnieniu. Nie mamy także możliwości przeniesienia licencji na inny
komputer. Gdy chcemy używać legalnie systemu np. na dwóch komputerach, musimy
posiadać dwa nośniki z systemem, a także dwie oddzielne licencje (oczywiście każda
przypisana do odpowiedniego sprzętu). Warto tutaj nadmienić, iż produkty OEM
wymagają aktywacji produktu, co powiązuje ten produkt z podzespołami komputera.
Zatem jeśli np. wymienimy płytę główną w komputerze, bezpowrotnie tracimy
licencję OEM na ten komputer. W takim przypadku pozostaje tylko zakup nowej
licencji. Istnieje jednak wyjątek od tego, licencji nie stracimy wtedy, gdy wymiana
płyty głównej jest spowodowana jej uszkodzeniem, oczywiście wymiana płyty
głównej musi być dokonana na podstawie ważnej gwarancji producenta.

MOLP (Microsoft Open License Program), OLP

Program licencyjny Microsoft, umożliwiający instytucjom komercyjnym


i organizacjom (z sektorów administracji państwowej, edukacji, służby zdrowia,
organizacji charytatywnych i organizacji międzynarodowych) nabywanie
na korzystnych warunkach grupowych licencji oprogramowania Microsoftu.

Licencja grupowa (ang. Site licence)

Określa, że zakupiony program może być użytkowany w sieci lub innym zestawie
komputerów (np. szkolna pracownia) w określonej ilości, tzn. może być instalowany
tylko na określonej maksymalnej liczbie stanowisk. Podobną zasadą określone są
programy sprzedawane z licencją sieciową (Network Licence).

Licencja jednostanowiskowa (ang. One­site licence).

To licencja uprawniająca użytkownika do zainstalowania nabytego oprogramowania


tylko na jednym stanowisku komputerowym. Użytkownikowi nie wolno udostępniać
takiego oprogramowania w sieci ani używać na więcej niż jednym komputerze w tym
samym czasie. Zezwala natomiast na sporządzanie kopii zapasowej
oprogramowania.

Liteware

Nazwa rodzaju programów komputerowych, które są rozprowadzane bezpłatnie, lecz


posiadają znacznie mniejsze, ograniczone przez producenta, możliwości niż pełna,
komercyjna wersja. Po okresie 30 dni pojawiają się reklamy, przypomnienia
najczęściej w formie banerów.
Freeware

Jest to chyba najbardziej rozpowszechniony typ licencji, wykorzystywany przez


każdego z nas praktycznie codziennie. Licencja freeware daje nam możliwość
nieodpłatnego korzystania z programu, jednak by robić to zgodnie z warunkami tej
licencji, musimy spełniać kilka warunków. Program licencjonowany jako freeware
możemy dowolnie wykorzystywać w celach domowych do użytku własnego, jednak
nie możemy korzystać z programów objętych licencją freeware żadnych korzyści
majątkowych. Wszystko co stworzymy za pomocą takich programów, np. programów
graficznych, muzycznych itp. możemy dowolnie upowszechniać nieodpłatnie.

Shareware

Licencją shareware są objęte zazwyczaj programy płatne, które jednak po instalacji


dają nam przez pewien czas korzystać z wszystkich funkcji danego programu.
Po upływie tego okresu próbnego należy wykupić pełną licencję na dany program,
przykładem może być np. program antywirusowy NOD32, którego możemy
nieodpłatnie używać przez 30 dni. Po upływie wspomnianych 30 dni należy wykupić
pełną licencję na produkt.

Adware

Programy tego typu są rozprowadzane darmowo, jednak same w sobie posiadają


różnego rodzaju reklamy, bandery reklamowe itp. Właśnie dzięki tym reklamom,
twórca programu czerpie korzyści majątkowe. Po uiszczeniu odpowiedniej opłaty
można dokonać zakupu wersji programu pozbawionej reklam. Za przykład możemy
sobie obrać bardzo znany w Polsce komunikator internetowy Gadu-Gadu. Jest on
właśnie wydawany na podstawie licencji Adware. Nie płacimy nic za korzystanie
z niego, jednak w zamian za to musimy oglądać rożnego typu banery
czy wyskakujące okienka. Istnieją programy, które usuwają wszystkie reklamy, jednak
jest to już naruszenie praw zawartych w treści licencji Adware, co więc jest
niezgodne z prawem. W programach typu Adware jest zawarty mały haczyk,
w niektórych programach zawarte jest coś w rodzaju złośliwych kodów, a mianowicie
programów szpiegowskich. Trzeba więc zwracać uwagę na to, co instalujemy
wiedząc że dany program opiera się na licencji Adware.
Trial

Programy oparte na tej licencji oferują nam swoje pełne funkcje, jednak ich okres
użytkowania jest ograniczony czasowo. Programy oparte na licencji Trial mają
zazwyczaj za zadanie pełne zaprezentowanie możliwości danego produktu.
Po upłynięciu czasu dozwolonego na korzystanie z programu zazwyczaj będziemy
zmuszeni do usunięcia go z dysku twardego komputera i zakupienie pełnej wersji.

Demo

Celowo zubożona przez autorów wersja programu, która jest udostępniana za darmo
(np. poprzez internet). Taki zabieg marketingowy ma na celu wzbudzić
zainteresowanie danym produktem - najczęściej grą komputerową. Istnieją trzy
rodzaje oprogramowania demo: prezentacja pozwalająca jedynie oglądać
przygotowane przez autorów możliwości programu lub komputera (np. w dziedzinie
jakości grafiki, jaką może wyświetlać, czy szybkości animacji - tzw. rolling demo),
wersja interaktywna pozbawiona pewnych funkcji w stosunku do pełnej wersji
oprogramowania oraz wersja pełna, ale o ograniczonym czasie działania (zwykle 7,
30 lub 60 dni). Na rozpowszechnianie programu (np. w internecie) należy uzyskać
zgodę autora.

GNU General Public License (GPL)

Licencja wolnego i otwartego oprogramowania stworzona w 1989 roku


przez Richarda Stallmana i Ebena Moglena na potrzeby Projektu GNU, zatwierdzona
przez Open Source Initiative. Pierwowzorem licencji była licencja Emacs General
Public License. Druga wersja licencji GNU GPL została wydana w roku 1991, a trzecia
– 29 czerwca 2007.

Programy objęte tą licencją umożliwiają użytkownikowi uruchamianie programu


w dowolnych celach, a na dodatek użytkownik ma prawo do udoskonalania go,
kopiowania, a także tworzenie i udostępnianie własnych poprawek, a także posiada
prawo do publikowania kodu źródłowego. Licencja ta jest często powiązana
z systemami operacyjnymi Linux, np. Red Hat Linux.
BSD

Jest to licencja oparta o zasady Wolnego Oprogramowania. Ten typ licencji jest
bardziej ułożony dla samego użytkownika. Dzięki temu, prócz modyfikacji kodu
możemy także rozpowszechniać program, który posiada nasz własny kod,
bez konieczności umieszczania w nim kodu źródłowego. Jedynym warunkiem jest
dołączenie informacji o tym, kto jest autorem oprogramowania oraz treści owej
licencji, na podstawie której program został prawnie wydany.

CPL (Common Public License)

Jest to także jedna z licencji Wolnego Oprogramowania. W 1988 roku została ona
sformułowana przez firmę IBM, po czym została zatwierdzona przez środowisko
Open Source Initiative. Jest to licencja bardzo podobna do opisanej wyżej licencji
„GNU General Public Licence „

Postcardware (cardware)

Jest to typ licencji, który jest bardzo zbliżony do Freeware. Programy oparte są
udostępnione do darmowego użytku, jednak autor programu często jako formę
„zapłaty” za program oczekuje, aby użytkownik wysłał mu kartkę pocztową.
Rozróżniamy tutaj także dwa rodzaje tej licencji, jeden rodzaj to taki, gdzie wysłanie
kartki jest wymogiem do tego, aby program używać w pełni legalnie, a drugi typ to
taki, gdzie autor pozostawia wolną rękę użytkownikowi odnośnie wysłania kartki,
zatem nie jest to konieczne.

Public domain (Domena publiczna)

Tego typu licencje posiadają typy oprogramowania bądź inne


zbiory, na które wygasły już prawa autorskie. Dzięki temu
mamy swobodny dostęp do takiego oprogramowania,
ponieważ w tym wypadku nie obowiązują już nas prawa
autorskie.

Jest to licencja dobroczynna czyniąca z oprogramowania


własność ogółu, w myśl której autor lub autorzy
oprogramowania zrzekają się praw do upowszechniania oprogramowania na rzecz
ogółu użytkowników.
Donateware

Programy objęte licencją tego typu możemy używać dopiero wtedy, gdy za produkt
zapłacimy. Jednak wysokość tej opłaty zależy tylko i wyłącznie od nas, nie mamy
nigdzie narzuconej kwoty do zapłaty. Po uiszczeniu opłaty, program możemy
dowolnie używać.

Abandonware

Są to programy, na które autor nie udziela już wsparcia, ani pomocy technicznej.
Możliwe jest też, że autor świadomie porzucił prawa autorskie, co jest w świetle
prawa dozwolone. W takim przypadku takie oprogramowanie staje się właśnie
oprogramowaniem typu abandonware.

Open Source (otwarte źródło)

To „otwarte oprogramowanie”, które jest składową wolnego i otwartego


oprogramowania (ang. Free/Libre Open Source Software, zwane w skrócie FLOSS).
Cechą wolnego oraz otwartego oprogramowania jest dostęp do kodu źródłowego dla
licencjobiorcy, forma jest w tym wypadku dowolna – udostępnienie na nośniku wraz
z oprogramowaniem lub dostęp przez Internet. Programy komputerowe są chronione
prawnie jako utwory i zgodnie z prawami autorskimi, twórca, a zatem posiadacz praw
autorskich, może zadecydować w jaki sposób program będzie udostępniany innym
podmiotom trzecim.

You might also like