Systemy Operacyjne dr inż. Andrzej Opaliński Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie AGH University of Science and Technology
Plan wykładu» Systemy operacyjne Historia Funkcje Budowa Rodzaje» Wprowadzenie do systemu Linux
Definicje System operacyjny jest to zorganizowany zespół programów, które pośredniczą między sprzętem a użytkownikami, dostarczając użytkownikom zestawu środków ułatwiających projektowanie, kodowanie, uruchamianie i eksploatację programów oraz w tym samym czasie sterują przydziałem zasobów dla zapewnienia efektywnego działania. Alan Shaw System operacyjny jest programem, który działa jako pośrednik między użytkownikiem komputera a sprzętem komputerowym. Zadaniem systemu operacyjnego jest tworzenie środowiska, w którym użytkownik może wykonywać programy w sposób wygodny i wydajny. Abraham Silberschatz System operacyjny jest warstwą oprogramowania operującą bezpośrednio na sprzęcie, której celem jest zarządzanie zasobami systemu komputerowego i stworzenie użytkownikowi środowiska łatwiejszego do zrozumienia i wykorzystania. Andrew Tanenbaum
» Zadania systemu operacyjnego kontrolowanie i przypisywanie pamięci, ustalanie priorytetów w zadaniach, obsługa urządzeń, ustalanie połączeń sieciowych zarządzanie plikami. Funkcje systemów operacyjnych» Większość systemów operacyjnych posiada środowiska graficzne ułatwiające ich obsługę.
Zadania SO Definiowanie interfejsu użytkownika: dostarcza użytkownikom zbiór poleceń lub system okienkowy, który umożliwia interakcję z systemem komputerowym. Udostępnianie systemu plików: organizuje i ułatwia dostęp do informacji w postaci hierarchicznego systemu plików. Udostępnianie środowiska do wykonywania programów: - dostarcza struktur danych do organizacji wykonywania programu oraz zachowywania i odtwarzania stanu przetwarzania (procesy i przełączanie kontekstu). - udostępnia programistom mechanizmy komunikacji pomiędzy procesami (kolejki komunikatów, strumienie, pamięć współdzielona) Sterowanie urządzeniami wejścia-wyjścia: moduły sterujące inicjalizują pracę urządzeń zewnętrznych oraz pośredniczą w efektywnym przekazywaniu danych pomiędzy jednostką centralną a tymi urządzeniami. Obsługa podstawowej klasy błędów: reaguje na błędy: - użytkowników (np. niedostępność zasobów, brak prawa dostępu), - programistów (np. błąd dzielenia przez 0,naruszenie ochrony pamięci) - systemu.
Zarządzanie zasobami SO Operacje w ramach procesu zarządzania zasobami: Przydział zasobów: realizacja żądań dostępu do zasobów w taki sposób, że zasoby używane są zgodnie z intencją użytkowników (np. zagwarantowanie wyłącznego dostępu drukarki). Planowanie dostępu do zasobów: strategia przydziału zasobów gwarantująca bezpieczeństwo, żywotność, brak zakleszczenia, sprawiedliwość oraz optymalność ich wykorzystania. Ochrona i autoryzacja dostępu do zasobów: dopuszczanie możliwości użytkowania zasobu tylko przez osoby uprawnione i w zakresie przydzielonych im uprawnień. Odzyskiwanie zasobów: dołączanie zwolnionych zasobów do zbioru zasobów wolnych po zakończeniu ich użytkowania. Rozliczanie: rejestrowanie i udostępnianie informacji o wykorzystaniu zasobów w celach kontrolnych i rozrachunkowych.
Zasoby zarządzane przez SO Typowe zasoby zarządzane przez system operacyjny: Procesor zasób współdzielony przez wiele procesów przydział kwantu czasu, wywłaszczanie zadań (oczekiwanie/brak zasobów, priorytet)) Pamięć - przydzielana na wyłączność dla danego zadania Utrzymywanie informacji o zajętości przestrzeni adresowej Przydzielanie wolnej pamięci Reakcja na naruszenia pamięci Urządzenia wejścia wyjścia (w tym system plików) Organizacja systemu przerwań Buforowanie danych
Abstrakcyjne wyobrażenie elementów SK System operacyjny jest programem, który działa jako pośrednik pomiędzy użytkownikiem komputera a sprzętem komputerowym. Zadaniem systemu operacyjnego jest tworzenie środowiska w którym użytkownik może wykonywać programy. Użytkownicy U1 U2 U3 U4 Un Programy użytkowe Kompilator Edytor tekstu System operacyjny Sprzęt komputerowy Baza danych
? Pytanie: Czy komputer mógłby się obyć bez systemu operacyjnego?
? Odpowiedź: Tak, ale...» Program użytkowy musiałby zawierać wszelkie procedury obsługi pamięci, urządzeń wejścia i wyjścia, dysków itd.» Program musiałby sprawdzać czy urządzenia są gotowe, czy nie są aktualnie wykorzystywane przez inne programy,» Program musiałby znać np. organizację danych na dysku, protokół komunikacji sieciowej itd.» Po przeniesieniu na inny komputer, trzeba by w programie zmienić większość procedur obsługi sprzętu,» Istniałyby ogromne problemy ze standaryzacją i kompatybilnością. Przykład takiego oprogramowania użytkowego to na przykład tzw. firmware sprzętu elektronicznego zawierającego procesory.
Historia systemów operacyjnych
Pierwszy System Operacyjny z GUI Kwiecień 1973, w firmie Xerox PARC zostaje ukończony pierwszy sprawny komputer Alto. Alto jest pierwszym systemem łączącym w całość wszystkie elementy nowoczesnego, graficznego interfejsu użytkownika. Cechy: Myszka z 3 przyciskami Graficzny wyświetlacz. Stosowanie graficznych okien. Sieć Ethernet.
Chronologia Graficznych Interfejsów Użytkownika 1980: Three Rivers Computer Corporation wprowadza na rynek stację graficzną Perq. 1981: Xerox wprowadza komputer Star, handlowego następcę maszyny Alto. Cechy: Podwójnie klikane ikony, zachodzące na siebie okna, okienka dialogowe wyświetlacz monochromatyczny o rozdzielczości 1024 x 768 pikseli.
Chronologia Graficznych Interfejsów Użytkownika 1984 Apple przedstawia komputer Macintosh. Digital Research przedstawia dla komputerów opartych na mikroprocesorze 8086 i systemie DOS swój interfejs użytkownika GEM z ikonami. W MIT przedstawiony został Window System X". Wersje od 1 do 6 były tylko monochromatyczne i pracowały na wyświetlaczach monitorowych DEC VS100
Chronologia Graficznych Interfejsów Użytkownika 1985 Geos zostaje wypuszczony dla komputera domowego Commodore 64, a później dla Apple II Commodore przedstawia komputer Amiga 1000 z systemem operacyjnym Amiga Workbench Version 1.0. Microsoft wypuszcza pierwszą wersję systemu Windows.
Chronologia Graficznych Interfejsów Użytkownika 1987 Apple wprowadza na rynek komputer Apple Macintosh II, pierwszy kolorowy Macintosh. Cechy: Rozdzielczość 640x480 w 256 kolorach przy dostępnej 24 bitowej, kolorowej karcie graficznej za dodatkową opłatą. Microsoft wypuszcza drugą wersję Windows o numerze 2.03. Cechy: Skalowalne, zachodzące na siebie okna oraz nowe kontrolki okienek. Acorn wypuszcza system "Arthur" dla komputera Acorn, stanowi on podstawę dla RISC OS.
Chronologia Graficznych Interfejsów Użytkownika 1992 IBM wypuszcza system OS/2 Version 2.0, system 32-bitowy. Cechy: Nowa powłoka "Workplace Shell", interfejs użytkownika zorientowany obiektowo, który został głęboko zintegrowany z resztą systemu operacyjnego Microsoft wprowadza Windows 3.1. Interfejs użytkownika jest w sumie taki sam jak w Windows 3.0, lecz teraz zawiera rozszerzenia "multimedialne". Dla komputerów Amiga z grafiką AGA zostaje wypuszczony system operacyjny Amiga Workbench 3. Cechy: Obrazy dla tła, przemianowywanie palety.
Chronologia Graficznych Interfejsów Użytkownika 1993 Maj 1993: Microsoft wypuszcza pierwszą wersję systemu operacyjnego Windows NT, czyli systemu 32-bitowego. Otrzymuje on numer wersji "3.1" i stosuje ten sam interfejs użytkownika co zwykłe Windows 3.1. 1994 1994: QNX Software Systems wypuszcza pierwszy system okienkowy z osadzalnym mikrojądrem, zwany Photon microgui.
Chronologia Graficznych Interfejsów Użytkownika 1995 Microsoft wprowadza na rynek Windows 95.
Chronologia Graficznych Interfejsów Użytkownika 1997 Lipiec : Mac OS 8 zostaje w końcu wypuszczony na rynek. Sprzedaje się w ilości 1.25 milionów kopii w mniej niż dwa tygodnie i staje się w tym okresie najlepiej sprzedającym się oprogramowaniem. 1998 25 czerwca : Microsoft wypuszcza Windows 98. Cechy: Aplikacja przeglądarki internetowej - Internet Explorer - przejmuje rolę powłoki Windows, reklamy bezpośrednio na ekranie roboczym, cały system pomocy zastąpiony przez Internet Explorer.
Chronologia Graficznych Interfejsów Użytkownika 1999 Apple wypuszcza system operacyjny Mac OS X Server, który jest oparty na Unixie z interfejsem użytkownika podobnym do zastosowanego w komputerach Macintosh. 2000 Apple prezentuje system operacyjny Aqua posiadający nowy wygląd dla oprogramowania przyszłych klientów MacOS X. 17 lutego: Microsoft Windows 2000 (Windows NT 5) staje się dostępne w sprzedaży. Cechy: Aplikacja przeglądarki internetowej Internet Explorer w końcu przejmuje cały interfejs użytkownika w Windows NT.
Chronologia Graficznych Interfejsów Użytkownika 2001 25 październik: Microsoft wypuszcza system Windows XP (Windows NT 5.1) Cechy: Tony wizualnych bajerów. Mechanizm "Aktywacji Produktu" 2003 24 kwiecień: Microsoft wypuszcza Windows Server 2003 (Windows NT 5.2 chwilowo zwany "Windows.NET Server") Cechy: Rezygnacja z bajerów wizualnych. Wydanie tylko w wersji Server.
Chronologia Graficznych Interfejsów Użytkownika 2005 Windows Vista, wersja Beta (do tej pory Longhorn) 01 2007 Windows Vista, wersja rynkowa 05 2007 Windows 7, wersja Milestone 1 10 2009 Windows 7, wersja finalna 10 2012 Windows 8 (wersja 64b: 1GHz, 2GB RAM, 16 GB na HDD) 10 2013 Przedsprzedaż Windows 8.1 10 2014 Windows Server 2012 R2 07 2015 Windows 10
Sposoby dystrybucji systemów operacyjnych Systemy operacyjne są rozwijane na dwa przeciwstawne sposoby: Oprogramowanie własnościowe, wytwarzane przez firmy i sprzedawane użytkownikom nie mającym wpływu na jego kształt, tzw. proprietary domain Oprogramowanie tworzone przez samych użytkowników, udostępniane bezpłatnie i stale udoskonalane tzw. open source
» Najpopularniejsze rodziny systemów operacyjnych Windows MacOS Linux Android» Rodzaje systemów operacyjnych Na komputery osobiste (desktopy i laptopy) Na serwery Na urządzenia mobilne Tablety Telefony/smartfony Rodzaje systemów operacyjnych Dedykowane na urządzenia specjalistyczne (routery, systemy monitoringu, firewalle)
Jaki system operacyjny? Bezpieczeństwo Stabilność Łatwość obsługi Dostępność oprogramowania Cena
Ranking systemów operacyjnych» Wszystkie platformy, ranking globalny, wrzesień 2018
Ranking OS, Desktop, global
Ranking OS, Desktop, Polska
» tablety, ranking globalny, wrzesień 2018 Ranking systemów operacyjnych
Ranking systemów operacyjnych» Telefony komórkowe, ranking globalny, wrzesień 2018
Komputery stacjonarne, rodzina Windows» ranking globalny, wrzesień 2018
» ranking globalny, wrzesień 2018 Komputery stacjonarne, rodzina MacOS
» ranking globalny, wrzesień 2018 Urządzenia mobilne, ios
» ranking globalny, wrzesień 2018 Urządzenia mobilne, Android
Rodzina systemów LINUX
» rodzina unixopodobnych systemów operacyjnych opartych o jądro Linux (autorstwa Linusa Thorvaldsa).» Pierwsza wersja jądra Linux udostępniona w 1991 roku» Do jądra dołączono narzędzia systemowe i biblioteki z projektu GNU aby otrzymać nadający się do użytku system operacyjny.» Wykorzystywane głównie Jako darmowa alternatywa dla systemów Microsoft Windows Jako oprogramowanie serwerowe» Dystrybuowana jako open-source Bezpłatne wsparcie społeczności Płatne opłata za wsparcie techniczne specjalistów Linux
Dystrybucje Linuxa» Aktualnie kilkaset dystrybucji Linuxa» Główne gałęzie dystrybucji RPM CentOS, Fedora, RedHat, Mandrake, opensuse Debian Debian, Ubuntu, Knoppix Gentoo ChromiumOS, Gentoo, Slackware Slax, WinLinux, Niezależne Android, DD-WRT, OpenWRT, TinyCoreLinux
» System operacyjny z jądrem Linux dla urządzeń mobilnych takich jak telefony komórkowe, smartfony, tablety i netbooki.» Jądro oraz niektóre inne komponenty, które zaadaptowano do Androida opublikowane są na licencji GNU GPL. Android» Android nie zawiera natomiast kodu pochodzącego z projektu GNU. Cecha ta odróżnia Androida od wielu innych istniejących obecnie dystrybucji Linuksa.» Początkowo był rozwijany przez firmę Android Inc. (kupioną później przez Google), następnie przeszedł pod skrzydła Open Handset Alliance. (Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, NVIDIA)» W sierpniu 2014 było dla tego systemu dostępnych ponad 1,3 miliona aplikacji w Google Play
Systemy firmy Apple» MacOS system operacyjny dla komputerów Macintosh» ios system operacyjny Apple Inc. dla urządzeń mobilnych iphone, ipod touch ipad. Obecna nazwa funkcjonuje od 7 czerwca 2010, wcześniej system był znany jako iphone OS. System ten bazuje na systemie operacyjnym Mac OS X 10.5
Warstwowa budowa SO jądro - komunikuje się z komputerem przez sterowniki urządzeń i wykonuje kolejkowanie zadań, obsługę pamięci powłoka - stanowi interpreter poleceń systemu (komunikacja z użytkownikiem) programy - polecenia systemowe nie zawarte w jądrze, programy narzędziowe, programy użytkowe sprzęt użytkownicy jądro programy powłoka
Budowa systemu komputerowego Urządzenia sieci Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć operacyjna Nowoczesny, uniwersalny system komputerowy składa się z jednostki CPU, pewnej liczby sprzętowych sterowników urządzeń połączonych wspólną szyną która umożliwia kontakt ze wspólną pamięcią. Jednostka CPU i sterowniki urządzeń mogą działać współbieżnie, rywalizując o cykle pamięci.
Działanie systemu komputerowego Program rozruchowy (bootstrap program) określa stan początkowy wszystkich elementów systemu: rejestrów CPU, sterowników urządzeń, stanu i zwartości pamięci. lokalizuje i ładuje do pamięci jądro systemu operacyjnego System operacyjny rozpoczyna wykonanie swojego pierwszego procesu, w rodzaju procesu *init i zaczyna czekać na wystąpienie "zdarzeń". Wystąpienie zdarzenia sygnalizowane jest za pomocą przerwania które może pochodzić od sprzętu lub od oprogramowania. Sprzęt może powodować przerwania w dowolnej chwili, wysyłając sygnał magistralą systemową do CPU. Oprogramowanie może spowodować przerwanie wskutek wykonania specjalnej operacji nazywanej wywołaniem systemowym (system call).
Przerwania Przerwanie polega na tym, że urządzenie wymagające obsługi procesora, np. wejścia/wyjścia (klawiatura), posiada specjalne połączenie (pojedynczy przewód) łączące niniejsze urządzenie z procesorem. Linia ta nosi nazwę linii przerwania. W momencie kiedy urządzenie chce być obsługiwane przez procesor wystawia umówiony sygnał na linii przerwania z reguły jest to zmiana stanu z 0 na 1. Zdarzenia powodujące przerwania:» Zakończenie operacji wejścia-wyjścia» Dzielenie przez zero,» Niedozwolony dostęp do pamięci,» Zapotrzebowanie na usługę systemu,» itd., itp.. Każdemu przerwaniu odpowiada procedura która zajmuje się jego obsługą!!!.
Obsługa sygnałów przerwań dla urządzeń wejścia/wyjścia Proces użytkownika Procesor Obsługa przerwań I/O Wł Wył Urządzenie wejścia-wyjścia Zamówienie wejścia/wyjścia Przesłanie wykonane Zamówienie wejścia/wyjścia Przesłanie wykonane Po otrzymaniu przerwania procesor wstrzymuje aktualnie wykonywaną pracę i natychmiast przechodzi do ustalonego miejsca w pamięci w którym zawarty jest adres startowy procedury obsługującej dane przerwanie. Po jej zakończeniu CPU kontynuuje przerwane obliczenia.