System operacyjny jest to oprogramowanie umożliwiające komunikację pomiędzy użytkownikiem a sprzętem komputerowym oraz tworzące środowisko do uruchamiania i pracy innych aplikacji. Do głównych zadań systemu operacyjnego należy:
- Zarządzanie zasobami komputera: procesorem, pamięcią, urządzeniami peryferyjnymi (obsługa sprzętu oraz zapewnienie równolegle wykonywanym zadaniom jednolitego dostępu do sprzętu).
- Planowanie oraz przydział czasu procesora poszczególnym zadaniom.
- Kontrola i przydział pamięci operacyjnej dla uruchomionych zadań.
- Koordynacja pracy urządzeń wewnętrznych i zewnętrznych.
- Ochrona danych i pamięci – tak, aby jeden z uruchomionych programów, w wyniku błędu lub zamierzonego działania nie blokował innych programów i całego sytemu.
Poza głównymi zadaniami systemu dotyczącymi głównie obsługi sprzętu OS wykonuje mnóstwo innych zadań ułatwiających pracę jego użytkownikowi. Ważną cechą ułatwiającą komfort pracy z systemem operacyjnym jest graficzny interfejs użytkownika (Graphical User Interface), który przy pomocy grafiki ułatwia pracę i korzystanie z komputera. Pod względem sposobu komunikacji z użytkownikiem systemy operacyjne dzielimy na: Systemy tekstowe – Nieposiadające środowiska graficznego, do komunikacji z komputerem użytkownik używa tekstowych komend. Systemy graficzne– Do komunikacji z użytkownikiem wykorzystują nie tylko tekstowe komunikaty ale również graficzne okna i symbole. Podczas pracy OS komunikuje się zazwyczaj z elektroniką komputera poprzez BIOS i sterowniki. Podstawową częścią OS jest jądro systemu (kernel). Jądro odpowiedzialne jest za pracę systemu i wykonywanie wszystkich jego zadań. Jądro poprzez sterowniki i BIOS komunikuje się z elektroniką komputera. Aby użytkownik mógł komunikować się z jądrem system operacyjny posiada powłokę (Shell lub też interpreter). Powłoka systemowa jest to program pełniący rolę pośrednika pomiędzy całym systemem operacyjnym a użytkownikiem.
Cechy współczesnych systemów operacyjnych:
- Wielozadaniowość– jest to cecha systemu operacyjnego umożliwiająca mu “jednoczesne” wykonywanie więcej niż jednego programu. Wielozadaniowość otrzymuje się poprzez tzw. scheduler, czyli algorytm odpowiedzialny za przydzielanie czasu procesora programom. Algorytm ten kolejkuje i porządkuje procesy, które mają być wykonane w zależności od ich priorytetu. W takim systemie każdy proces jest wykonywany jakiś kwant czasu, po czym następuje przerwanie jego pracy przez scheduler. Program pozostaje “w uśpieniu” do momentu, gdy znów zostanie mu przydzielony czas procesora.
- Wielodostępowość – Wielodostępowy system operacyjny umożliwia wielu użytkownikom pracę na jednym komputerze.
- Wieloprocesorowość – System wieloprocesorowy jest w stanie wykorzystywać do pracy wielu procesorów.
Klasyfikacja systemów operacyjnych
Systemy operacyjne w czasie swego istnienia przeszły znaczące zmiany. Pierwsze z nich były bardzo proste i mało wydajne. Dzisiejsze systemy operacyjne są systemami o dużym stopniu skomplikowania, zajmują nieraz dużo pamięci, a ich wydajność jest niewyobrażalna w porównaniu z możliwościami ich odpowiedników.
Systemy wsadowe były jednymi z pierwszych systemów operacyjnych. Ich konstrukcja była bardzo prosta, a co za tym idzie również i ich możliwości były niewielkie. Były one instalowane w pierwszych komputerach, w których urządzeniami wejściowymi były czytniki kart perforowanych. Użytkownik takiego systemu przygotowywał najpierw program i zapisywał go na kartach. Tak przygotowane dane trafiały do operatora komputera, który grupował podobne zadania w tak zwane wsady (ang. batch) i wprowadzał do komputera. Po przetworzeniu przez jednostkę centralną wyniki były wyprowadzane na drukarkę wierszową. Zasadniczą cechą wsadowego systemu operacyjnego było:
brak kontroli użytkownika nad wykonywanymi zadaniami;
wykonywanie przez jednostkę centralną tylko jednego zadania w danym czasie;
bardzo długie okresy bezczynności jednostki centralnej, a co za tym idzie niska wydajność.
Niskie wykorzystanie jednostki centralnej wynikało przede wszystkim z przestojów spowodowanych niską prędkością urządzeń wejścia wyjścia. Aby podnieść wydajność takich systemów wprowadzono mechanizm, któremu nadano nazwę spooling. Spooling wykorzystuje technologie dyskowe i polega na buforowaniu danych na dyskach przed i po ich wprowadzeniu do pamięci operacyjnej. Umożliwiało to znaczne zwiększenie wydajności systemu, rzadziej procesor musiał oczekiwać na dane od użytkownika podawane poprzez czytnik kart dziurkowanych. Spooling umożliwiał jednoczesne przetwarzanie danych przez jednostkę centralną i pracę urządzeń wejścia-wyjścia. Mechanizm ten jest wykorzystywany do dziś między innymi przy przetwarzaniu danych w instalacjach zdalnych (np. przy komunikacji ze zdalną drukarką).
Systemy wieloprogramowe
Zastosowanie buforowania danych na dysku dało systemowi nowe możliwości. Nie musiał on już teraz wykonywać zadań w kolejności, w jakiej zostały one wprowadzone do systemu. System operacyjny dysponując magazynem zadań (w postaci dysku), do którego miał łatwy dostęp, rozpoczął pracę koncepcyjną polegającą na planowaniu zadań. Zadania były wybierane do realizacji w sposób maksymalizujący wydajność systemu. Wybrane zadania są umieszczane w pamięci operacyjnej. Jednostka centralna rozpoczyna pracę nad jednym zadaniem. Po pewnym czasie może okazać się, że wykonywane zadanie zażądało dostępu do dysku lub czytnika taśm. W systemie jednozadaniowym jednostka centralna musiała czekać na dostęp do dysku lub zamontowanie czytnika. W systemie wielozadaniowym system operacyjny może odłożyć takie zadanie i pobrać do wykonania następne, znajdujące się w pamięci operacyjnej. Tego typu zachowanie zwiększa oczywiście wydajność systemu. Systemy wieloprogramowe nie rozwiązały wszystkich problemów. W dalszym ciągu użytkownik nie miał możliwości ingerencji w wykonywany program w trakcie jego trwania. Musiał więc przewidzieć możliwe zachowania programu przed jego uruchomieniem. Trudną sprawą było też testowanie programów, gdyż nie można było zmienić jego przebiegu obserwując jego zachowanie.
Systemy z podziałem czasu
Systemy te, zwane też systemami wielozadaniowymi, dzielą czas procesora między zadania umieszczone w pamięci. Jednostka centralna wykonuje więc jedno zadanie przez pewien czas, a następnie odkłada je i zabiera się za następne. Procesor przełącza się nieustannie między zadaniami. Te przełączenia występują na tyle szybko, że użytkownik może pracować z każdym z wykonywanych programów nie zauważając tych przełączeń. Dzięki temu użytkownik systemu komputerowego ma możliwość interakcji z system. Może też wydawać polecenia programowi i oglądać w trakcie jego wykonywania wyniki działania programu. Aby w sposób wydajny wykorzystywać mechanizm wielozadaniowości system operacyjny powinien charakteryzować się następującymi cechami:
bezpośrednim dostępem do systemu plików;
krótkim czasem odpowiedzi;
mechanizmami decyzyjnymi;
mechanizmami zarządzania pamięcią;
mechanizmami ochrony zadań;
mechanizmami współpracy z dyskiem;
mechanizmami synchronizacji zadań;
mechanizmami komunikacji między zadaniami.
Systemy równoległe
Systemy równoległe są przystosowane do obsługi systemów komputerowych wyposażonych w więcej niż jeden procesor. Procesory te współpracują ze sobą wykorzystując wspólną szynę danych, zegar, często pamięć i urządzenia wejścia-wyjścia. Dzięki zastosowaniu systemów wyposażonych w kilka procesorów można zwiększyć wydajność całego systemu, zmniejszyć jego koszty poprzez wykorzystanie wspólnych urządzeń zewnętrznych, obudów, zasilaczy itp. oraz podnieść niezawodność dzięki dublowaniu zadań.
Systemy jedno- i wielodostępowe
Systemy operacyjne można podzielić również biorąc pod uwagę liczbę użytkowników, których system potrafi obsłużyć w jednym czasie. Starsze systemy operacyjne oraz niektóre nowoczesne systemy typowe dla komputerów osobistych przeznaczone były i są dla jednego użytkownika. W systemach tych wszystkie zasoby komputera dostępne są jedynie dla jednej osoby. Nie ma lub są bardzo ograniczone mechanizmy autoryzacji dostępu do danych oraz ochrony informacji. Do tego typu systemów zalicza się między innymi Windows (wszystkie wersje poza serwerowymi). Na drugim biegunie mamy do czynienia z systemami wielodostępowymi. W tym przypadku na jednym komputerze może jednocześnie pracować wiele osób, albo bezpośrednio korzystając z lokalnych urządzeń wejścia/wyjścia, lub zdalnie - z poziomu terminala czy też innego systemu komputerowego. Najlepszym przykładem takiego systemu operacyjnego jest współcześnie Linux.
Systemy rozproszone
Systemy rozproszone przeznaczone są do obsługi komputerów, w których wykonywane zadania są rozdzielone między kilka procesorów. W odróżnieniu jednak od systemów równoległych, procesory te nie dzielą wspólnej szyny danych ani zegara. Procesory komunikują się ze sobą za pomocą szybkiej specjalizowanej sieci lokalnej, lub szybkich łączy dalekiego zasięgu. Dzięki zastosowaniu systemów rozproszonych można łączyć ze sobą komputery słabsze i lepsze, wykorzystywać drukarki zdalne, stosować rozproszone bazy danych itp. Kolejną zaletą systemów rozproszonych jest możliwość przyspieszenia obliczeń. Dzieje się tak, jeśli dużą liczbę obliczeń można podzielić na kilka współbieżnych procesów. Użytkownik może wykonywać nawet skomplikowane obliczenia siedząc przy mniej wydajnej maszynie, jeśli część zadań przejmie procesor z bardzo silnej i wydajnej jednostki zdalnej.
Systemy czasu rzeczywistego
Systemy operacyjne czasu rzeczywistego stanowią odrębną grupę systemów operacyjnych. Są to systemy wysoce specjalizowane, które muszą zapewnić określony czas reakcji systemu komputerowego na bodźce zewnętrzne. Tak więc widać, że podstawową cechą odróżniającą takie systemy od pozostałych rozwiązań jest czas. Jednakże nie chodzi tutaj głównie o jak najszybsze działanie systemu (jak się często mylnie sądzi), lecz o pewność, że w możliwym do określenia czasie system wykona zadanie mu powierzone. Ze względu na rygorystyczne wymagania czasowe muszą one być lepiej dopasowane do sprzętu, na którym działają. W nich również stosowane są najbardziej wyrafinowane rozwiązania ochrony procesów. Problemem jest w tym przypadku algorytm szeregowania oraz podziału czasu. W systemie operacyjnym czasu rzeczywistego trzeba określić, któremu z procesów należy przydzielić procesor oraz na jak długi czas, aby wszystkie wykonywane procesy spełniały zdefiniowane dla nich ograniczenia czasowe, dlatego też stosuje się w nich specjalizowane algorytmy szeregowania procesów. Systemy operacyjne czasu rzeczywistego znajdują zastosowanie głównie w komputerach wykorzystywanych do sterowania - od sterowania ABS w samochodach osobowych, przez przemysłowe układy automatyki, a kończąc na sterowaniu łazikiem marsjańskim czy promem kosmicznym. Inną grupą zastosowań jest sprzęt medyczny, wykorzystywany do nadzorowania życia ludzkiego. Do przykładowych reprezentantów tego typu systemów należy LynxOS czy rozszerzenie systemu Linux - RT-Linux.
Systemy tekstowe - komunikujące się za pomocą wydawanych z linii poleceń komend (pierwsze wersje DOSu).
Systemy graficzne - komunikujące się za pomocą graficznych okienek i symboli (ikon). Obsługa komputera polega na manipulowaniu, za pomocą kursora myszy lub klawiszami, symbolami, które odpowiadają określonym zadaniom (np. Windows, MacOS).
Rodzaje Systemów Operacyjnych
DOS (Disk Operation System) jest dyskowym systemem operacyjnym przeznaczonym dla jednego użytkownika, do 16-bitowych mikrokomputerów wykorzystujących procesory rodziny Intel 8086. Wygoda użytkowania oraz zastosowanie systemu, pod nazwą PC DOS dla komputerów IBM PC, zapewniły mu swego czasu dużą popularność. Stworzono bogatą bibliotekę oprogramowania, działającego pod nadzorem systemu MS DOS. Obejmującą bogaty zestaw programów wspomagających pracę biurową, projektowanie, kompilatory języków programowania itp. System ten wywodzi się od systemu o nazwie QDOS, opracowanego przez Seattle Computers - pionierską firmę w dziedzinie budowy i oprogramowania komputerów z procesorem Intel 8086. Kolejne wersje tego systemu o nazwie 86 DOS zostały w 1981 roku zakupione przez firmę Microsoft i nazwane MS DOS.
Linux to wielozadaniowy, wieloużytkowy, 32-bitowy system operacyjny typu UNIX stworzony przez Linusa Torvaldsa. Pierwsza wersja systemu ujrzała światło dzienne w sierpniu 1991 roku, od tamtej pory system podlega licznym udoskonaleniom dokonywanym przez ogromną grupę programistów mających dostęp do kodu źródłowego systemu, który jest rozpowszechniany na zasadach licencji GPL (General Public License) fundacji FSF. Licencja ta zapewnia powszechną możliwość bezpłatnego użytkowania systemu i brania udziału w jego rozwoju. Jego kod źródłowy jak i sam system jest więc bezpłatny i dostępny dla każdego bez żadnych ograniczeń. Natomiast firmy komercyjne zarabiają, tworząc i sprzedając tzw. dystrybucje Linuksa, czyli wersje instalacyjne, zawierające program, kod źródłowy oraz setki dodatkowych programów użytkowych przystosowanych dla tego systemu zarówno shareware'owych jak i freeware'owych. Cena obejmuje zebranie wszystkich programów w całość, wytłoczenie CD, oraz wydrukowanie podręcznika użytkownika. Poszczególne wersje dystrybucyjne różnią się jakością dołączonej dokumentacji, programem instalacyjnym oraz ilością i aktualnością dołączonego oprogramowania (stąd różnica liczby płyt CD-ROM w poszczególnych dystrybucjach). Coraz częściej można spotkać również darmowe wersje dużych programów komercyjnych na tą platformę takich jak pakiety biurowe StarOffice, Corel World Perfect przeglądarkę Internetową i klienta pocztowego N. Communicatora czy programy graficzne np. Gimp. Darmowe wersje Evaluation można znaleźć na dodatkach CD czasopism komputerowych lub w Internecie. Oprócz całkowitej bezpłatności główną zaletą Linuksa są małe wymagania sprzętowe. Do wykonywania podstawowych zadań wystarczy mu komputer 386 z 4 MB pamięci RAM. Poza tym Linux funkcjonuje także sprawnie na innych platformach sprzętowych takich jak: Power-PC, Power-Mac, Atari czy Amiga. Linux stał się już najpopularniejszym systemem dla serwerów internetowych, używany jest przez miliony osób również jako system operacyjny stosowany w biurach i domach - Linux dorównuje (a często przewyższa możliwościami komercyjne systemy UNIXowe. Dostępnych jest ponad 20 odmian Linuxa pochodzących od firm, różnych organizacji i osób prywatnych. Testowa instalacja Linuxa potrzebuje na dysku dwóch dodatkowych partycjach sformatowanych w systemie Ext2: pierwszej na system, i drugiej przeznaczonej na plik wymiany (swap file). Później można uruchamiać linuxa za pomocą LOADIN. EXE z poziomu DOSa lub używając dołączonego do systemu programu startującego LiLo (Linux Loader). Jest to boot manager, z którego po starcie systemu można wybrać pod którym systemem operacyjnym chcesz akurat pracować (zakładając że masz zainstalowanych na swoim komputerze więcej systemów). Z poziomu linuxa jest dostęp do partycji Windows 95/98 (FAT 16/32) oraz Windows NT (NTFS - tylko do odczytu).
System operacyjny OS/2 powstał w roku 1987 przy współpracy IBM i Microsoft. Początkowo był systemem tekstowym, chociaż wielozadaniowym i 32 bitowym. Kolejne wersje zostały wzbogacone w system plików HPFS, dużo bardziej wydajny od FAT, oraz interpretowany język programowania REXX, dzięki któremu można pisać nawet dość wyrafinowane programy. W 1990 roku Microsoft wycofał się ze współpracy i od tej pory OS/2 rozwijany był wyłącznie jako produkt IBM. W 1991 roku IBM tworzy kolejną wersję (już samotnie) i wzbogaca ją o wirtualną obsługę DOS/Windows. Dziś mamy już 4 wersję tego systemu, obsługującą najnowsze technologie. Zastosowano w niej nawigację głosową, czyli możliwość wydawania komend głosem oraz dyktowania całych dokumentów. Dotyczy to jednak wersji angielskojęzycznych - amerykańskiej (US) i brytyjskiej (UK). OS/2 Warp jest 32 bitowym graficznym i obiektowym systemem operacyjnym. Jest systemem wielozadaniowym, wielowątkowym (z wywłaszczaniem) i wieloużytkowym. Jest jedynym systemem dla komputerów PC, który tak dogłębnie korzysta z technik obiektowych związanych z ukierunkowaniem na dokument, posługiwaniem się typami danych czy graficzną reprezentacją rzeczywistych obiektów. Podobnie do innych systemów PC wykorzystuje techniki Drag&Drop czy Plug&Play, obsługuje drugi klawisz myszy i umożliwia posługiwanie się skrótami klawiszowymi. Inną, wyjątkową cechą charakterystyczną OS/2 Warp jest jego objektowość, powodująca, że nie musi nas interesować aplikacja w jakiej tworzone są dokumenty, a jedynie one same. Na przykład korzystając z rozszerzenia pliku można je przyporządkować kilku różnym programom. OS/2 nie jest wybredny jeśli chodzi o sprzęt. Pracuje spokojnie na komputerach klasy Pentium i to od najniższych zegarów. Standardowe 16 MB RAM oraz około 100 MB wolnego na dysku jest dla niego w sam raz. System jest modułowy, więc instalujemy jedynie to, czego od niego żądamy. Stąd też podana ilość wymaganego miejsca może się zmniejszyć. CD-ROM jest niezbędny, gdyż system rozprowadzany jest na dyskach CD. W przypadku najnowszej wersji OS/2 Warp 4 znajdziemy w opakowaniu 4 krążki CD. Ciekawą cechą OS/2 Warp jest mnogość wersji, tak systemowych, jak i językowych. W Polsce używanych jest kilka z nich. Najbardziej rozpowszechnione to OS/2 Warp ver. 3 i 4, OS/2 Warp Connect i OS/2 Warp Server. Różnią się nie tylko objętością, ale też, a może przede wszystkim, przeznaczeniem. OS/2 Warp v. 3.0 jest przeznaczona dla pojedynczych jednoprocesorowych komputerów, a OS/2 Warp Connect v. 3.0 dla komputerów pracujących w sieciach. Kolejna wersja 4.0 przejęła Connecta wraz z wszystkimi jego modułami klientów sieciowych. Natomiast OS/2 Warp Serwer jest systemem sieciowym i przeznaczony jest dla serwerów. Co ważne, może pracować na komputerach wieloprocesorowych. Oczywiście występują także wersje znacjonalizowane. W Polsce najczęściej spotkać można wersje amerykańską, angielską i oczywiście polską. W przypadku klawiatury IBM dał nam wybór obu wersji - maszynistki i programisty.
Microsoft Windows to graficzny, samodzielny, 32-bitowy system operacyjny, produkowany przez amerykańską firmę Microsoft. Oferuje on użytkownikom system okienek (ang. windows) reprezentujących uruchomione aplikacje oraz możliwość pracy z myszą. Pierwsza wersja Windows zdobyła popularność jako bardzo przyjazna dla użytkownika, nakładka na system MS-DOS /Windows.3.1x/. Intuicyjna obsługa, zastąpienie trybu tekstowego trybem tekstowo-graficznym sprawiły, że "okienka" zdominowały świat komputerów osobistych.