W informatyce , system operacyjny (często nazywany OS - English System operacyjny ) to zestaw programów , które kieruje wykorzystanie zasobów danego komputera z oprogramowaniem aplikacji .
Otrzymuje żądania wykorzystania zasobów komputera - zasobów pamięci (np. dostęp do pamięci RAM , dysków twardych ), zasobów obliczeniowych procesora centralnego , zasobów komunikacyjnych z peryferiami (czasami żądania zasobów obliczeniowych z np. GPU lub innej karty rozszerzeń ) lub przez sieć - z oprogramowania aplikacyjnego. System operacyjny zarządza żądaniami, a także niezbędnymi zasobami, unikając zakłóceń między oprogramowaniem.
System operacyjny jest podstawowym oprogramowaniem komputera, ponieważ umożliwia uruchamianie programów po skonfigurowaniu przez program ładujący wszystkich urządzeń peryferyjnych podczas uruchamiania komputera.
Oferuje pakiet ogólnych usług ułatwiających tworzenie oprogramowania użytkowego i pośredniczy między tym oprogramowaniem a sprzętem komputerowym . System operacyjny zapewnia wygodę, wydajność i skalowalność, umożliwiając wprowadzanie nowych funkcji i nowego sprzętu bez narażania oprogramowania.
Na rynku dostępne są dziesiątki różnych systemów operacyjnych, z których wiele jest dołączanych do urządzenia komputerowego. Tak jest w przypadku systemów Windows , Mac OS , Irix , Symbian OS , Unix ( Berkeley , System V ...), GNU/Linux (dla których istnieje wiele dystrybucji ) lub Androida . Oferowane funkcje różnią się w zależności od systemu i są zazwyczaj związane z uruchamianiem programów, korzystaniem z pamięci głównej lub urządzeń peryferyjnych , manipulowaniem systemami plików , komunikacją lub wykrywaniem i monitorowaniem, zarządzaniem błędami. Jednak modelowanie schematu CIM przypisuje tej koncepcji klasę bazową CIM_OperatingSystem , prawdopodobnie pochodzącą z systemu Windows, Linux lub z/OS .
W 2012 roku dwie najpopularniejsze rodziny systemów operacyjnych to Unix (w tym macOS , GNU/Linux , iOS i Android ) oraz Windows . Ten ostatni posiada wirtualny monopol na komputery osobiste z prawie 90% rynku od około piętnastu lat. Następnie, począwszy od 2015 roku, Windows stracił grunt na rzecz systemów operacyjnych Apple , iOS i macOS, a także Androida i Linuxa. Pod koniec 2020 roku, dzięki mocnemu wdrożeniu Windows 10 , jego udział wynosił około 70%.
System operacyjny oferuje pakiet ogólnych usług ułatwiających tworzenie i użytkowanie oprogramowania aplikacyjnego . Oferowane usługi dotyczą korzystania z zasobów komputera przez programy . Służą w szczególności do uruchamiania programów, odczytu i zapisu informacji, manipulowania plikami , komunikacji między komputerami oraz wykrywania błędów. Usługi te umożliwiają kilku użytkownikom i kilku programom współdzielenie zasobów komputera. Główną rolą systemu operacyjnego jest zatem usunięcie różnic między różnymi architekturami IT oraz racjonalne zorganizowanie wykorzystania zasobów:
Każde urządzenie posiada własną instrukcję , za pomocą której można nim manipulować. System operacyjny bierze to pod uwagę. Pozwala programiście manipulować urządzeniem za pomocą prostych żądań odczytu lub zapisu, unikając marnowania czasu na tłumaczenie operacji na instrukcje specyficzne dla urządzenia.
Oprócz instrukcji specyficznych dla urządzenia ( dyskietka , dysk twardy , napęd CD-ROM , dysk USB , czytnik kart pamięci ...) system operacyjny uwzględnia charakterystykę rozmiaru każdego nośnika używanego do przechowywania plików. Oferuje również mechanizmy ochrony kontrolujące, który użytkownik może manipulować którym plikiem.
Jedną z funkcji systemu operacyjnego jest ochrona zasobów przed użyciem przez osoby nieuprawnione oraz rozwiązywanie konfliktów, gdy dwóch użytkowników jednocześnie żąda tego samego zasobu.
Gdy wystąpi błąd, czy to sprzętowy, czy programowy, system operacyjny traktuje go, łagodząc jego wpływ na system komputerowy. Może próbować powtórzyć operację, zatrzymać wykonywanie szkodliwego programu lub zgłosić problem użytkownikowi.
System operacyjny może prowadzić statystyki wykorzystania zasobów, monitorować wydajność i czasy odpowiedzi.
Zakres oferowanych usług i sposób korzystania z nich różni się w zależności od systemu operacyjnego. Średnia przemysł POSIX IEEE definiuje ciąg wywołań systemowych standardem. Oprogramowanie aplikacyjne, które wykonuje wywołania systemowe zgodnie z POSIX, może być używane we wszystkich systemach operacyjnych zgodnych z tym standardem.
System operacyjny zapewnia rezerwację różnych zasobów na potrzeby programów wykonywanych jednocześnie. Rezerwacje można wprowadzać do dzienników aktywności w celach statystycznych lub rozwiązywania problemów, a system operacyjny może odmówić rezerwacji użytkownikowi, który nie otrzymał wcześniejszej autoryzacji.
Sprzęt komputerowy może wykonywać instrukcje, rzadko jest to więcej niż kopie lub dodatki. Tłumaczenie złożonych operacji na instrukcje to żmudne zadanie dla systemu operacyjnego. System operacyjny dba o całą obsługę sprzętu, więc oprogramowanie aplikacyjne nie widzi różnicy między prostą, prymitywną maszyną a bogatą i złożoną maszyną: w obu przypadkach oferowane są te same usługi.
System operacyjny ułatwia prace programistyczne, udostępniając zestaw usług, z których może korzystać oprogramowanie aplikacyjne. Od danego programisty punktu widzenia , jego aplikacja jest zorientowana w kierunku systemu operacyjnego i sprzętu, a programy są uważane uruchomienia systemu operacyjnego. System operacyjny można zatem postrzegać jako maszynę wirtualną . Zestaw składający się ze sprzętu i systemu operacyjnego tworzy „maszynę”, na której uruchamiane jest oprogramowanie, maszynę częściowo symulowaną przez oprogramowanie.
System operacyjny składa się z szerokiej gamy programów. Dokładny skład zależy od docelowego zastosowania i typu urządzenia komputerowego, dla którego system jest przeznaczony ( komputer osobisty , serwer , superkomputer, a nawet system pokładowy ).
Użytkownicy i programiści mogą żądać usług z systemu operacyjnego za pośrednictwem jego interfejsu programistycznego , poleceń lub interfejsu graficznego .
Interfejs programowaniaWywołania systemowe umożliwiają interakcje między uruchomionym programem a systemem operacyjnym. Używanie wywołań systemowych jest podobne do używania zwykłych funkcji lub podprogramów w C lub Pascalu .
ZamówieniaPolecenia umożliwiają użytkownikowi lub programowi zażądanie operacji z systemu operacyjnego. Polecenie to program, który wykonuje wywołanie systemowe zgodnie z żądaniem użytkownika.
Interfejs graficznyInterfejs graficzny umożliwia intuicyjną obsługę za pomocą piktogramów . Ten interfejs, który nie jest istotną częścią systemu operacyjnego i ukrywa wszystkie jego nieodłączne szczegóły, jest często postrzegany jako dodatek.
POSIX (akronim od Portable Operating System Interface ) to standard interfejsu programistycznego systemu operacyjnego. Wiele systemów operacyjnych jest zgodnych z tym standardem, w tym członkowie rodziny Unix .
Podczas wielozadaniowości system operacyjny umożliwia wielu użytkownikom korzystanie z komputera i sprawia, że każdy użytkownik ma wrażenie, że tylko on korzysta z komputera. W tym celu planowane jest użycie procesora: każdy program jest wykonywany w określonym przedziale czasu, po czym system operacyjny przełącza się na wykonywanie innego programu.
ProcesProces jest zbiorem instrukcji, które zostały podjęte. Instrukcje pochodzą z programu, a wykonanie wymaga czasu, pamięci, plików i urządzeń peryferyjnych. System operacyjny dba o tworzenie, przerywanie i usuwanie procesów. W pamięci głównej znajduje się jednocześnie kilka procesów.
Odpowiedzialność za system operacyjny i rezerwowanie pamięci oraz planowanie wykonania, radzenie sobie z zakleszczeniami i zapewnienie komunikacji między procesami. Program planujący kojarzy proces z procesorem, a następnie odłącza go od procesora, aby skojarzyć inny proces. Ta operacja kojarzenia/odłączania nazywana jest przełączaniem kontekstu . Podczas planowania system operacyjny rozważa, czy zasoby wykorzystywane przez proces są dostępne. Niektóre systemy operacyjne tworzą procesy do wykonywania określonych zadań systemowych.
Gdy program jest uruchomiony, może poprosić o zarezerwowanie zasobów komputera. Wykonywanie tego programu może zostać przerwane, a system operacyjny kontynuuje wykonywanie innego programu, jednak zasoby pozostają zarezerwowane. Gdy inny proces zażąda zarezerwowanego już zasobu, proces zostaje wstrzymany. W sytuacji silnej konkurencji na ten sam zasób może czekać kilka procesów. Po zwolnieniu zasobu system operacyjny decyduje, jaki jest następny proces, dla którego zasób zostanie zarezerwowany. Strategia przydzielania zasobów przez system operacyjny ma na celu uczciwe odpowiadanie na wszystkie żądania i unikanie konfliktów.
W niektórych aplikacjach kilka programów wykonuje to samo zadanie jednocześnie i wymienia informacje. Mechanizm ochrony pamięci (patrz dalej) uniemożliwia programom manipulowanie tymi samymi informacjami, a programy muszą odwoływać się do usług systemu operacyjnego.
System operacyjny kieruje wykorzystaniem pamięci. Zachowuje listę używanych lokalizacji pamięci i przez kogo, a także listę wolnych lokalizacji. System operacyjny rezerwuje lokalizację w pamięci, gdy proces tego zażąda, i zwalnia ją, gdy nie jest już używana, na przykład po zatrzymaniu procesu.
Funkcje kontroli wykorzystania pamięci będą w szczególności śledzić wykorzystanie pamięci, które lokalizacje są wolne, są używane i przez kogo. Funkcje te będą również decydować, który program otrzyma pamięć, kiedy i jaka jej ilość zostanie udostępniona, oraz odzyskają pamięć, która była używana przez program po jego wykonaniu, niezależnie od tego, czy program został zatrzymany celowo, czy przypadkowo.
Ilość pamięci używanej przez cały system komputerowy zależy przede wszystkim od tego, w jaki sposób system operacyjny dokonuje rezerwacji.
We współczesnych systemach operacyjnych kilka programów działa jednocześnie i jednocześnie korzysta z pamięci głównej. Jeśli proces zmieni - przypadkowo lub celowo - lokalizację pamięci używaną przez inny proces, naraża ten proces na ryzyko. Jeśli modyfikuje lokalizację używaną przez system operacyjny, zagraża całemu systemowi komputerowemu.
Aby uniknąć takiego problemu, system operacyjny rezerwuje przestrzeń adresową dla każdego programu - lokalizację w pamięci, którą może obsłużyć tylko dany program. System operacyjny wykrywa wszelkie próby uzyskania dostępu poza przestrzenią adresową i powoduje natychmiastowe zamknięcie programu, który próbuje wykonać takie operacje, poprzez ogólny błąd ochrony.
Pamięć wirtualnaTak zwany mechanizm pamięci wirtualnej ma symulować obecność lub brak pamięci głównej poprzez manipulację jednostką zarządzania pamięcią - komponentem elektronicznym (angielska jednostka zarządzania pamięcią w skrócie MMU ). Jest to powszechny mechanizm we współczesnych systemach operacyjnych.
Pamięć wirtualna umożliwia jednoczesne uruchamianie większej liczby programów niż pamięć główna. Ponieważ każdy program nie potrzebuje wszystkich informacji, które obsługuje, aby znajdować się w pamięci głównej, część informacji jest przechowywana w pamięci masowej (na ogół w pliku lub na partycji dysku twardego ), która jest zwykle większa, ale wolniejsza i jest przesyłana do pamięci głównej, gdy program tego potrzebuje.
Programy mają do pracy jedną (lub więcej) ciągłą przestrzeń pamięci wirtualnej. Adresy danych są określane jako wirtualne, o ile adresowana informacja niekoniecznie znajduje się ani w pamięci głównej, ani pod wskazanym adresem. Gdy program próbuje odczytać lub zapisać dane w swojej pamięci wirtualnej, jednostka zarządzająca pamięcią wyszukuje adres fizyczny odpowiadający żądanemu adresowi wirtualnemu za pomocą tablicy korespondencji. Jeśli lokalizacja nie jest obecna w pamięci głównej (nazywa się to błędem strony ), oczywiście nie będzie odpowiedniego adresu fizycznego. System operacyjny będzie wówczas musiał dążyć do zwolnienia miejsca w pamięci centralnej, zamieniając (angielski swap ) zawartość danej lokalizacji pamięci centralnej z żądaną zawartością, która znajduje się w pamięci masowej. Odbywa się to automatycznie, bez wiedzy programów.
W asocjacyjne wspomnienia , wbudowane w jednostkę zarządzania pamięcią, przyspieszyć obliczenia adresów. Systemy operacyjne zazwyczaj używają dwóch pamięci asocjacyjnych: jednej dla trybu jądra i jednej dla trybu użytkownika . Pamięć trybu jądra jest tak zaaranżowana, aby procesor mógł wykorzystać całą dostępną pamięć główną - podczas uruchamiania programów jądra systemu operacyjnego . W trybie użytkownika jeden jest ustawiony w celu ochrony jądra (które jest zatem niewidoczne dla danego programu) - podczas wykonywania programów poza jądrem. Nazywa się to ochroną, a te mechanizmy są głównymi cechami trybu chronionego .
Każdy program ma własną tabelę korespondencji, co pozwala na ich odizolowanie od siebie. Podczas przełączania kontekstu system operacyjny umieści tabelę bieżącego programu w pamięci asocjacyjnej. System operacyjny tworzy również nowe tabele dla programów, które się uruchamiają i decyduje, które lokalizacje pamięci wirtualnej będą lub nie będą obecne w pamięci głównej.
Peryferia to wszystkie urządzenia komputerowe, które umożliwiają procesorowi komunikację ze światem zewnętrznym: klawiatura, drukarka, karta sieciowa, pamięć, dysk twardy. Umożliwiają one w szczególności odbieranie informacji, ich przesyłanie, a także przechowywanie informacji - gromadzenie ich w celu późniejszego zwrotu.
Jednym z obowiązków systemu operacyjnego jest monitorowanie stanu użytkowania - wolnego lub zarezerwowanego - całego sprzętu w systemie komputerowym. Gdy proces wymaga bezpłatnego materiału, jest on zarezerwowany dla tego procesu. Do korzystania z urządzenia system operacyjny używa kontrolera i sterownika urządzenia.
KontrolerKontroler jest element elektroniczny, który ma pamięć buforową, i uchwyty pewnego rodzaju obwodową (dysk twardy, drukarki, pamięci czytnika taśmy magnetycznej, itp). Kontroler jest często wbudowany w urządzenie. Różne kontrolery dostępne na rynku nie są używane w ten sam sposób.
Kierowca (angielski kierowca )Instrukcje dotyczące obsługi danego zakresu kontrolerów zawarte są w sterowniku komputera : oprogramowaniu wykorzystującym możliwości oferowane przez kontrolery. Sterowniki komputerowe są częścią systemu operacyjnego i zapewniają jednolite usługi używane przez inne programy systemu operacyjnego.
Istnieją dwie strategie manipulowania kontrolerami:
Niektóre urządzenia nie mogą być współdzielone, więc ich użycie jest dedykowane dla jednego programu na raz. Niektóre urządzenia mogą być wirtualne lub ich użycie może być pośrednie. Na przykład użycie drukarki nie powoduje natychmiastowego drukowania, ponieważ informacje są najpierw zawieszane. Ta technika buforowania umożliwia współużytkowanie urządzenia, które w innym przypadku nie mogłoby być współużytkowane.
Plik to zbiór nazwanych informacji przechowywanych na nośniku, takim jak dysk twardy, taśma magnetyczna lub dysk optyczny. Każde medium ma swoją własną charakterystykę i własną organizację.
System operacyjny zajmuje się tworzeniem i niszczeniem plików i katalogów, rezerwowaniem miejsca na nośniki oraz kopiowaniem zawartości plików do iz pamięci głównej. Pomaga również oprogramowaniu aplikacyjnemu znajdować pliki, udostępniać pliki wielu użytkownikom, modyfikować zawartość plików i tworzyć katalogi (pozwalając na klasyfikowanie i organizowanie plików). Szybkość systemu komputerowego będzie zależeć od szybkości obsługi plików.
System operacyjny umożliwia w szczególności manipulację atrybutami: właściwościami pliku takimi jak jego nazwa, data utworzenia, rodzaj zawartości, rozmiar i lokalizacja. Pozwala także manipulować uprawnieniami: uprawnieniami, które wskazują, czy użytkownik będzie mógł czytać, pisać lub uruchamiać plik.
System operacyjny uwzględnia system plików: sposób organizacji i dystrybucji plików na urządzeniu pamięci masowej.
Pamięci wymienne takie jak płyty CD czy DVD mają ustandaryzowany układ, którego specyfikacje są publiczne, co zapewnia ich rozpoznawanie przez wszystkie systemy operacyjne (patrz ISO 9660 i UDF oraz hybryda ISO/UDF ).
Gdy system plików jest rozpowszechniany , a zatem pliki są przechowywane na różnych komputerach w sieci komputerowej , system operacyjny wysyła żądanie do komputera przechowującego plik dla każdej operacji, która ma zostać wykonana (patrz NFS lub CIFS ).
W systemie operacyjnym dla wielu użytkowników programy, które manipulują systemem plików, sprawdzają, czy żadne pliki nie są manipulowane przez nieuprawnioną osobę. Ten rodzaj systemu operacyjnego odrzuci wszelkie nieautoryzowane manipulacje.
W sieci komputerowej dwa połączone komputery komunikują się, gdy komunikacja odbywa się po obu stronach zgodnie z tymi samymi protokołami sieciowymi . Zgodnie z modelem OSI , różne istniejące protokoły są rozmieszczone na siedmiu poziomach, gdzie protokół danego poziomu może być połączony z dowolnym protokołem poziomów znajdujących się powyżej i poniżej (patrz enkapsulacja ).
System operacyjny zazwyczaj zawiera kilka programów niezbędnych do wymiany informacji w różnych protokołach poziomów od 1 do 4. Poziomy od 5 do 7 są obsługiwane przez oprogramowanie aplikacji i oprogramowanie pośredniczące .
W celu wymiany informacji zgodnie z protokołami poziomu 1 i 2, system operacyjny żąda operacji od sprzętu komputera za pośrednictwem sterownika komputerowego , który może być integralną częścią systemu, działaniem lub dostarczonym przez sprzęt producent.
Podczas przesyłania informacji przez sieć oprogramowanie aplikacji tworzy informacje, formatuje je zgodnie z protokołami poziomu 7 do 5, a następnie przesyła je do systemu operacyjnego. Różne programy systemu operacyjnego podzielą te informacje na ramki , a następnie sformatują ramki i wyślą je zgodnie z protokołami poziomu 4 do 1.
Podczas odbierania ramek z sieci różne programy systemu operacyjnego będą próbowały je zdekodować zgodnie z różnymi protokołami od poziomów 1 do 4, a następnie przekształcić serię ramek w ciągły strumień, który zostanie wysłany do oprogramowania aplikacji odbiorcy. Oprogramowanie będzie następnie dekodować strumień zgodnie z protokołami poziomów od 5 do 7. Oprogramowanie aplikacji najpierw nawiązuje połączenie , to znaczy łącze logiczne, przez które będzie skojarzone z określonym strumieniem.
Dokładny wybór używanych protokołów zależy od danego komputera i łączy sieciowych, które będą używane. Różne parametry konfiguracyjne mają wpływ na wybór protokołów. Umożliwiają na przykład zapobieganie korzystaniu z niedozwolonych protokołów w danej sieci.
Współczesne systemy operacyjne pozwalają wielu użytkownikom korzystać z komputera jednocześnie. System operacyjny zawiera mechanizmy kontroli wykorzystania zasobów przez użytkowników, procesy i programy. Mechanizmy te umożliwiają poświadczenie tożsamości programu lub użytkownika i upoważnienie go do dostępu do zasobu w zastosowaniu przepisów bezpieczeństwa.
Mechanizmy bezpieczeństwa systemu operacyjnego służą do ochrony systemu komputerowego zarówno od wewnątrz, jak i od zewnątrz: wewnętrzne mechanizmy bezpieczeństwa chronią procesy od siebie i zapewniają niezawodność systemu komputerowego. Zewnętrzne mechanizmy bezpieczeństwa chronią dane i programy przechowywane na komputerze przed nieautoryzowanym dostępem i błędami obsługi. System operacyjny zapobiega odczytaniu przez osoby nieuprawnione, manipulacji, usunięciu danych, a także nieautoryzowanemu użyciu urządzeń peryferyjnych.
Kilka programów jest wykonywanych jednocześnie i jednocześnie korzysta z pamięci głównej. Jeśli proces zmieni - przypadkowo lub celowo - lokalizację pamięci używaną przez inny proces, naraża ten proces na ryzyko. Jeśli modyfikuje lokalizację używaną przez system operacyjny, zagraża całemu systemowi komputerowemu.
Aby uniknąć takiego problemu, system operacyjny rezerwuje przestrzeń adresową dla każdego programu - lokalizację w pamięci, którą może obsłużyć tylko dany program. System operacyjny wykrywa wszelkie próby uzyskania dostępu poza przestrzenią adresową i powoduje natychmiastowe zamknięcie programu, który próbuje wykonać takie operacje.
System operacyjny odmówi również wycofania z eksploatacji programów podstawowych, takich jak oprogramowanie serwera lub programy systemu operacyjnego, przez każdego użytkownika, który nie otrzymał wcześniej uprawnień do wykonywania tej operacji – zgodnie z regulaminem wprowadzonym przez administratora bezpieczeństwa.
Gdy autonomiczne oprogramowanie ( bot komputerowy ) żąda operacji z systemu operacyjnego, oprogramowanie musi najpierw ujawnić swoją tożsamość jako produktu, a następnie, na podstawie tej tożsamości, system operacyjny przeprowadza takie same kontrole, jak w przypadku osoby fizycznej.
Mechanizmy kontroli dostępu mają również wpływ na zwalczanie złośliwego oprogramowania - złośliwe oprogramowanie często wykonuje operacje, które mogą zakłócać korzystanie z komputera.
Zestaw programów systemu operacyjnego odbiera informacje wysyłane przez oprogramowanie aplikacji i umieszcza je na obrazie cyfrowym, który zostanie przesłany do sprzętu za pośrednictwem sterownika. Ponadto inny zestaw programów odbiera operacje wykonywane przez użytkownika za pośrednictwem pilotów, a następnie przesyła je do odpowiedniego oprogramowania. Te dwa zestawy tworzą interfejs człowiek-maszyna, który umożliwia użytkownikowi komunikację z maszyną.
System operacyjny może komunikować się z użytkownikiem za pośrednictwem innego komputera lub terminala (interfejs rozproszony ). Informacje przesyłane przez oprogramowanie aplikacyjne zostaną następnie przesłane do drugiego komputera zgodnie z przewidzianym w tym celu protokołem, podczas gdy drugi komputer prześle operacje wykonywane przez użytkownika. Zobacz SSH , RFB lub X Window System .
Gdy interfejs jest w trybie tekstowym , obraz cyfrowy jest siatką, w której umieszczane są drukowane znaki. Siatka ma zwykle 80 kolumn i 35 wierszy. Interfejs obsługiwany jest za pomocą klawiatury. Ten rodzaj interfejsu, który istniał od początków przetwarzania danych, został obecnie zastąpiony interfejsami graficznymi.
Interfejs graficznyW graficznym interfejsie użytkownika (ang. Graphical User Interface w skrócie GUI ) obraz cyfrowy składa się z programu systemu operacyjnego poprzez nakładanie punktów, linii, piktogramów i druku. Interfejs jest zazwyczaj obsługiwany za pomocą myszy zgodnie z zasadą WIMP (angielski system Windows, ikony, menu i urządzenie wskazujące ). Obraz cyfrowy tworzony jest za pomocą procesora graficznego komputera .
Podczas operacji myszą system operacyjny przesuwa element obrazu będący wskaźnikiem i wykonuje obliczenia niezbędne do określenia, który element obrazu znajduje się tuż poniżej. Każdy element obrazu może być powiązany z programem. Widget to program, który przyciąga i animuje elementem obrazu, którego wygląd może być tak, że z przyciskiem , a wskaźnik światła , windzie, część tekstu, menu, etc. Z systemem operacyjnym dostarczane są różne widżety.
Programy dla GUI są dziś (2011) zawarte we wszystkich współczesnych systemach operacyjnych. X Window System jest zbiorem programów graficznych interfejsów użytkownika znajdują się we wszystkich systemach operacyjnych Unix rodziny . W systemie Windows odpowiednikiem jest program Explorer , zwany także Eksploratorem Windows (nie mylić z Internet Explorerem).
Oprogramowanie używane, aby pomóc użytkownikowi w działaniu. Oprogramowanie użytkowe to oprogramowanie użytkowe, które umożliwia użytkownikowi wykonywanie podstawowych operacji, takich jak uruchamianie programów, kopiowanie plików lub zmiana ustawień konfiguracyjnych . Z systemami operacyjnymi dostarczane jest różne oprogramowanie narzędziowe.
Interpreter poleceń jest programem, który pozwala na uruchamianie innych programów, pisząc swoje nazwisko, ewentualnie następnie przez różnych parametrów . Towarzyszy mu kilka programów, które umożliwiają manipulację plikami (kopiowanie, zmiana nazwy…). Ten typ programu służy do wykonywania manipulacji lub wykonywania skryptów - serii zarejestrowanych wcześniej manipulacji (patrz sterowanie komputerowe ). Program tego typu jest często dostarczany z systemem operacyjnym, ale nic go nie wymaga i można go bardzo dobrze zaimportować.
Środowisko biurowe to program, w którym różne elementy komputera (programy, pliki, dyski twarde) są przedstawiane w formie piktogramów na którym możliwe jest wykonywanie różnych czynności. Umożliwia uruchamianie programów, wykonywanie różnych operacji na plikach (kopiowanie, zmiana nazwy, przenoszenie lub usuwanie).
Niektóre programy umożliwiają użytkownikowi zmianę ustawień konfiguracyjnych systemu operacyjnego. Oferują one listy wielokrotnego wyboru i przeprowadzają kontrolę poprawności przed modyfikacją parametrów.
Inne programy służące do zainstalowania na oprogramowanie , to znaczy, kopiować pliki w miejscach przewidzianych do tego celu, i dokonać niezbędnych zmian w konfiguracji, aby program operacyjny. Programy te mogą być również używane do przeglądania listy oprogramowania aktualnie zainstalowanego na komputerze.
System operacyjny dla wielu użytkowników jest zazwyczaj dostarczany z programami monitorującymi korzystanie – przez innych – z komputera – w celu przeglądania dzienników aktywności – lub do modyfikowania list praw dostępu w celu „zezwolenia lub odmowy dostępu do pliku niektórym użytkownikom.
Istnieje pięć generacji systemów operacyjnych: wsadowe , wielozaplanowane, z podziałem czasu, w czasie rzeczywistym i rozproszone. Każda z zasad wdrażanych w jednym pokoleniu znajduje się w kolejnych pokoleniach.
Od generacji wieloprogramowych systemów operacyjnych, kilka programów jest wykonywanych jednocześnie przez planowanie . W tych wielozadaniowych systemach operacyjnych w pamięci głównej znajduje się kilka programów, a system operacyjny okresowo zawiesza wykonywanie jednego programu, aby kontynuować wykonywanie innego.
Każdy system operacyjny jest zaprojektowany do pracy z określoną gamą maszyn (rodzaj procesora, producent, architektura). Jeśli system operacyjny jest dostępny dla kilku różnych linii maszynowych, to ten sam kod źródłowy jest kompilowany i dostosowywany dla każdej linii maszynowej. Zakres sterowników zawartych w systemie operacyjnym dostosowany jest do dostępnego na rynku sprzętu komputerowego dla tej gamy maszyn.
Systemy operacyjne oparte na przetwarzaniu „wsadowym” (sekwencje instrukcji i dane w zestawie kart perforowanych) pojawiły się w latach 50. Program (z jego danymi) to nic innego jak program. „stos kart ze wskaźnikami początku i końca . Wykonanie programu polega na poproszeniu operatora o umieszczenie stosu kart w czytniku, następnie operator rozpoczyna sekwencyjny odczyt kart. Procesor centralny jest w stanie spoczynku podczas manipulacji operatora.
Partia to pakiet do zrobienia. Operator komponuje partię , umieszczając na sobie stosy kart różnych programów (z ich danymi) na żądanie użytkowników. Tworzy duży stos kart oddzielonych zakładkami, zwykle kartą określonego koloru, którą następnie umieszcza w czytniku. Grupowanie kilku programów w partię ogranicza interwencję operatora.
W systemie opartym na wsadach sercem systemu operacyjnego jest program monitorujący, który stale znajduje się w pamięci głównej i umożliwia operatorowi żądanie rozpoczęcia lub zatrzymania wykonywania wsadu. Po zakończeniu wykonywania każdego zadania w partii monitor wykonuje zadania czyszczenia, a następnie inicjuje wykonanie następnego zadania. W ten sposób operator interweniuje tylko na początku i na końcu partii.
W tych systemach operacyjnych polecenia dodane do zakładki sformułowane w języku JCL ( Język Kontroli Zadań ) są jednym z niewielu sposobów interakcji użytkownika z systemem operacyjnym.
Wsadowe systemy operacyjne są odpowiednie dla aplikacji wymagających bardzo dużych obliczeń, ale niewielkiego zaangażowania użytkownika: pogoda, statystyki, podatki... Użytkownicy nie oczekują od razu wyników. Składają prośby, a później wracają, aby zebrać wyniki.
Ze względu na dużą różnicę w szybkości między procesorem a urządzeniami peryferyjnymi, w systemie operacyjnym wsadowym procesor jest nieużywany przez 90% czasu, ponieważ programy czekają na zakończenie operacji przez jedno lub drugie urządzenie. W tych systemach operacyjnych nie ma konkurencji między różnymi zadaniami, implementacja wykorzystania procesora, pamięci i urządzeń peryferyjnych jest banalna, ale daleka od optymalnej.
Wieloprogramowe systemy operacyjne pojawiły się w latach 60. Celem takich systemów jest zwiększenie efektywności wykorzystania procesora i urządzeń peryferyjnych poprzez wykorzystanie możliwości ich równoległej pracy. Kilka programów jest umieszczanych w pamięci głównej, a gdy uruchomiony program czeka na wynik z urządzenia, system operacyjny instruuje procesor, aby wykonał inny program.
W wieloprogramowych systemach operacyjnych użycie procesora jest dzielone przez planowanie : za każdym razem, gdy używane jest urządzenie peryferyjne, system operacyjny wybiera, który program zostanie wykonany. Wybór ten dokonywany jest na podstawie priorytetów. System operacyjny zawiera mechanizm zabezpieczający, zapobiegający odczytywaniu lub zapisywaniu działającego programu do pamięci przydzielonej innemu programowi. Programy są wykonywane w trybie nieuprzywilejowanym , w którym wykonywanie niektórych instrukcji jest zabronione.
Systemy wieloprogramowe wymagają komputera i urządzeń peryferyjnych realizujących technikę DMA ( bezpośredni dostęp do pamięci ). Zgodnie z tym, procesor nakazuje urządzeniu peryferyjnemu wykonanie operacji, wynik operacji jest następnie umieszczany w pamięci głównej przez urządzenie peryferyjne, podczas gdy procesor wykonuje inne instrukcje. W systemach wieloprogramowych, podobnie jak w systemach wsadowych , użytkownik ma niewielki kontakt z programami i niewiele możliwości interwencji.
Systemy operacyjne z podziałem czasu pojawiły się w latach 70. Stosowane są w urządzeniach interaktywnych, w których kilku użytkowników jednocześnie prowadzi dialog z komputerem. System operacyjny typu timeshare ma na celu szybkie reagowanie na żądania użytkowników i sprawianie, by każdy użytkownik miał wrażenie, że jest jedynym użytkownikiem komputera.
System timeshare implementuje wyrafinowane techniki multiprogramowania , aby umożliwić interaktywne korzystanie z komputera przez wielu użytkowników i wiele programów jednocześnie. Pojawienie się w 1970 roku nowej generacji systemów operacyjnych było wynikiem dużego popytu ze strony konsumentów i spadku cen sprzętu komputerowego, który umożliwił jego realizację.
W systemach operacyjnych typu timeshare pojęcie wsadu ma niewielkie znaczenie. Systemy te wdrażają nowe mechanizmy wykorzystania procesora i pamięci, które pozwalają im szybko reagować na żądania dużej liczby użytkowników jednocześnie.
W tych systemach, podobnie jak w poprzedniej generacji, planowane jest wykorzystanie procesora. Jednak w przeciwieństwie do systemów poprzedniej generacji, w systemach z podziałem czasu każdy program jest wykonywany przez określony przedział czasowy, następnie system operacyjny przełącza się na wykonanie innego programu, co zapobiega monopolizacji przez program wykorzystania procesora w obsłudze jednego użytkownika, powodując opóźnienia dla innych użytkowników.
Systemy operacyjne typu timeshare implementują technikę wymiany : gdy uruchomiony program potrzebuje więcej pamięci niż jest dostępne, inny nieaktywny program jest usuwany w celu zaoszczędzenia miejsca, a nieaktywny program jest następnie tymczasowo zapisywany na dysku twardym. Jednak nagrywanie na dysk to znaczna strata czasu.
W 2011 roku wiele systemów operacyjnych jest opartych na systemie Unix , który jest systemem z podziałem czasu.
Systemy operacyjne czasu rzeczywistego pojawiły się w połowie lat 70., zwłaszcza w firmie Hewlett-Packard . Przeznaczone są do urządzeń, które muszą nie tylko dawać prawidłowe wyniki, ale dawać je w określonym czasie. Te systemy operacyjne są często używane przez komputery podłączone do urządzenia zewnętrznego (autopiloty, roboty przemysłowe, aplikacje wideo i audio), w przypadku których opóźnienie w odpowiedzi komputera spowodowałoby awarię urządzenia.
W tych systemach operacyjnych nacisk kładziony jest na to, ile czasu zajmuje ukończenie każdej operacji, aby szybko reagować na wymagania, aby sprostać ograniczeniom czasowym systemu, w którym jest używany.
Niektóre usługi oferowane przez te systemy operacyjne są realizowane jako oprogramowanie użytkowe i są z nimi konkurencyjne. System operacyjny czasu rzeczywistego umożliwia bezpośredni kontakt między oprogramowaniem aplikacji a urządzeniami peryferyjnymi. W niektórych systemach czasu rzeczywistego zasoby są rezerwowane, co pozwala uniknąć spowolnień spowodowanych rezerwacjami w locie i zapewnia ciągłą dostępność zasobów.
Systemy operacyjne czasu rzeczywistego unikają używania techniki wymiany ze względu na ryzyko opóźnień czasowych.
RTX , Windows CE , Embedded Linux , Symbian OS , Palm OS i VxWorks to systemy operacyjne czasu rzeczywistego .
Spadek cen sprzętu komputerowego umożliwił w latach 90. tworzenie systemów komputerowych składających się z kilku komputerów, a więc kilku procesorów, kilku pamięci i wielu urządzeń peryferyjnych. System rozproszony umożliwia współdzielenie zasobów między komputerami. Użytkownik niedrogiego komputera może korzystać z drogich zasobów istniejących na innym komputerze.
Mach , Amoeba , Andrew , Athena i Locus to rozproszone systemy operacyjne. Wszystkie zostały opracowane przez uniwersytety.
Historia systemów operacyjnych jest silnie powiązana z historią komputerów. Pierwsze generacje komputerów, w latach 1945-1955, nie zawierały systemu operacyjnego. W tych komputerach wyposażonych w lampy próżniowe programy manipulowały zasobami sprzętowymi komputera bez pośrednictwa. Z komputera korzystała jednocześnie jedna osoba: zadaniem operatora było umieszczanie w czytniku stosów kart perforowanych, gdzie każda karta zawierała instrukcje lub dane programu. Komputery lampowe tej generacji miały niewielką moc obliczeniową, były nieporęczne, niewygodne i zawodne (lampy próżniowe często się przepalały).
W latach 60., wraz z pojawieniem się półprzewodnikowych obwodów elektronicznych, moc obliczeniowa procesorów znacznie wzrosła. Pozwoliło to na realizację podstawowych systemów operacyjnych: komputery zostały wyposażone w spooler - kolejkę pozwalającą na wykorzystanie mocy obliczeniowej procesora podczas wprowadzania kart przez operatora. Wykorzystanie zasobów sprzętowych przez programy odbywało się następnie poprzez bibliotekę oprogramowania . Możliwe było wówczas jednoczesne przechowywanie kilku programów i jednoczesne ich wykonywanie; tak zwany program monitorujący rezydent stale znajdował się w pamięci głównej i sterował wykonywaniem różnych programów.
W 1965 roku Massachusetts Institute of Technology rozpoczął tworzenie pierwszego wielozadaniowego i wieloużytkownikowego systemu operacyjnego: Multics (dla MULTiplexed Information and Computing Service ). Na zasadzie multiprogramowania system operacyjny umożliwiał ładowanie kilku programów do pamięci i zarządzał przejściem od jednego do drugiego, ale tym razem bez czekania na zablokowanie programu. Każdy program działałby przez kilka milisekund, po czym system przechodził do następnego. Ten bardzo krótki czas dał złudzenie, że programy działają jednocześnie - złudzenie, które nadal istnieje we współczesnych systemach operacyjnych.
Ponadto programy te mogły być własnością oddzielnych użytkowników, z których każdy czuł, że maszyna pracuje tylko dla nich. Możliwość obsługi komputera przez wiele osób jednocześnie zwiększyła zwrot z inwestycji w zakup bardzo drogiego sprzętu przez firmy i instytucje. Jednak Multics , napisany w języku programowania PL/I , zbyt skomplikowanym dla ówczesnych komputerów, okazał się komercyjną porażką. Jednak w dużej mierze zainspirowało to gamę systemów GCOS opracowanych wspólnie przez Honeywell i Bull .
W 1969 roku inżynierowie Ken Thompson i Dennis Ritchie z Bell Labs marzyli o korzystaniu z systemu operacyjnego Multics, ale sprzęt do jego obsługi wciąż był drogi. Thompson postanawia napisać uproszczoną wersję Multics dla nieużywanego PDP-7 . Funkcjonalny system nazwano Unics (od UNiplexed Information and Computing Service ), a następnie nazwano UNIX . Szybko przeprogramowany na bardziej odpowiedni język programowania ( C , opracowany na tę okazję przez Ritchie), UNIX jest szczególnie łatwy do przeniesienia na nowe platformy, co zapewnia jego sukces.
Już w 1980 r. elektroniczne układy tranzystorowe zostały zastąpione mniejszymi układami scalonymi, co umożliwiło produkcję bardziej kompaktowych i tańszych urządzeń oraz zapoczątkowało rynek komputerów osobistych. Wielu projektantów systemów operacyjnych, którzy weszli na ten rynek, nie miało doświadczenia, co zaowocowało nowymi produktami, opartymi na nowych pomysłach, bez spuścizny lub wpływu tego, co zostało zrobione wcześniej. CP/M , wydany w 1974 roku, był pierwszym mikrokomputerowym systemem operacyjnym, jego bardzo przyjazny , łatwy do nauczenia i przyjazny dla użytkownika charakter sprawił, że stał się bardzo popularny i wpłynął na rynek komputerowy .
W 1980 roku IBM skontaktował się z Billem Gatesem , współzałożycielem firmy Microsoft , w sprawie dostosowania języka BASIC do jego nowego mikrokomputera: komputera osobistego (w skrócie PC ). IBM również szuka systemu operacyjnego, a Bill Gates radzi im zwrócić się do CP/M. Ale Gary Kildall odmawia podpisania umowy z IBM. Bill Gates skorzystał z okazji: kupił QDOS - szybki i brudny system operacyjny dla procesorów Intel 8086 - aby zaoferować IBM pakiet DOS / BASIC. Po kilku modyfikacjach dokonanych na zlecenie IBM system otrzymał nazwę MS-DOS .
Xerox , jedna z największych firm tamtych czasów, interesuje się perspektywą Steve'a Jobsa. Skupia garstkę naukowców i inżynierów w swoim centrum badawczym w Palo Alto i opracowuje pierwszy mikrokomputer wyposażony w graficzny interfejs użytkownika, na podstawie tez i badań z zakresu ergonomii przeprowadzonych w poprzednich latach. Wynik tych badań, Xerox Star , nigdy nie zostanie wprowadzony na rynek. Dziesięć lat później to Apple z Macintoshem spopularyzowało badania prowadzone przez Xerox.
W 1983 roku Richard Stallman z Massachusetts Institute of Technology przedstawił ideę systemu operacyjnego wolnej licencji: GNU . Tworzy narzędzia programistyczne , oprogramowanie użytkowe oraz tworzy Powszechną Licencję Publiczną GNU – umowę licencyjną uprawniającą do nieograniczonego korzystania oraz publikowania kodu źródłowego , jego modyfikacji i redystrybucji. Sukces był natychmiastowy, ale w 1990 roku system wciąż nie posiadał wolnego jądra, a próby jego opracowania były dalekie od sukcesu.
W 1987 Andrew Tanenbaum , profesor na Wolnym Uniwersytecie w Amsterdamie, stworzył system operacyjny Minix , klon UNIXa, którego kod źródłowy ma zilustrować jego kurs budowania systemów operacyjnych. Ale Minix, którego powołaniem jest edukacja, ma zbyt wiele ograniczeń technicznych i nie pozwala na szerokie wykorzystanie.
W 1989 roku w tym samym czasie pojawił się „ wolny system operacyjny ”: 4.4BSD . Berkeley Software Distribution (BSD) to wersja systemu UNIX opracowana przez studentów i naukowców w Berkeley od 1977 oprogramowanie użytkowe, utworzony na mocy wolnej licencji, jest sprzedawana z AT & T Unix jądra siebie. Pod licencją właściciela . Ta podwójna licencja BSD jest źródłem kilkuletnich sporów sądowych między University of Berkeley a AT&T. Studenci uczelni pracują nad zastąpieniem programów opracowanych przez AT&T własnymi programami, na otwartej licencji, w celu rozwiązania sporu. Sytuacja ta trwała do wydania 4.4BSD w 1994 roku, który prawie nie zawierał żadnego kodu AT&T.
W 1991 roku Linus Torvalds , student Uniwersytetu w Helsinkach , zainspirowany pracą Tanenbauma, wydał pierwszą wersję (0.0.1) własnego jądra: Linux , który początkowo był przepisanym Minixem . Linux został objęty licencją GNU w 1992 roku i dopiero w 1994 roku pojawiła się wersja 1.0, co dało początek dystrybucji całkowicie wolnego systemu operacyjnego, GNU / Linux .
To właśnie w ślad za inicjatywami i dziełami Linusa Torvaldsa i Richarda Stallmana, wspomaganych przez tysiące wolontariuszy, a następnie za pracą studentów Uniwersytetu w Berkeley, GNU/Linux i 4.4BSD stały się pierwszymi systemami pracy na wolnej licencji.
System operacyjny jest zasadniczo sterowany zdarzeniami - jest wykonywany, gdy coś się wydarzy, zwykle podczas wywołania systemowego, przerwania sprzętowego lub błędu. Jest to rozbudowane i złożone oprogramowanie, które oferuje wiele funkcji. Jest zbudowany jako seria modułów, z których każdy ma określoną funkcję.
Jądro jest centralną częścią systemu operacyjnego. Jest to drugi program wczytywany do pamięci (zaraz po bootloaderze ) i pozostaje tam na stałe - jego usługi są wykorzystywane w sposób ciągły.
Zwykle znajduje się w chronionej lokalizacji pamięci RAM, która nie może być modyfikowana ani wykorzystywana przez inne programy (tj. w przypadku systemu operacyjnego w trybie chronionym ).
Jest to krytyczny składnik: jeśli jądro ulegnie awarii i wyłączy się, komputer przestanie działać, a jeśli zatrzyma się inny program (np. program użytkownika), system operacyjny będzie nadal działał.
Zazwyczaj udostępnia funkcje do tworzenia lub niszczenia procesów (tj. uruchamiania programów), kierujące użyciem procesora, pamięci i urządzeń peryferyjnych. Oferuje również funkcje, które pozwalają programom komunikować się ze sobą i dopasowywać się w czasie (synchronizacja).
Rdzeń monolityczny W konstrukcji monolitycznej system operacyjny składa się z jednego programu: jądra. Jest to zazwyczaj zorganizowane w warstwy. Konstrukcja monolityczna jest najbardziej powszechna, stosowana w większości Uniksów; Rdzeń do mikrojądra W konstrukcji mikrojądra jądro zapewnia minimum usług: wiele funkcji systemu operacyjnego zostało usuniętych z jądra i są oferowane przez programy przez nie manipulowane, które nazywane są usługami (dla systemu w trybie chronionym duża różnica z system monolityczny będzie polegał na tym, że usługi te będą wykonywane w przestrzeni pamięci użytkownika, a nie jądra).Rok pojawienia się | Nazwisko | Rodzina | Redaktor | Obsługiwany sprzęt | posługiwać się | Rdzeń | Graficzny | Wielozadaniowość | Wielu użytkowników | Wieloprocesorowy | Czas rzeczywisty |
---|---|---|---|---|---|---|---|---|---|---|---|
1973 | SYSTEMOWE | R2E | Micral | komputery osobiste, stacje robocze | |||||||
1977 | VMS | DEC | VAX , DEC Alpha , Hewlett-Packard | serwery, komputery mainframe | |||||||
1978-1985 | CP / M | Badania cyfrowe | Amstrad CPC , Commodore 128 , TRS-80 | komputery osobiste | (przypadek MP/M) | ||||||
1981-1990 | Z POWROTEM | IBM i Microsoft | Kompatybilny z komputerem PC | komputery osobiste | |||||||
1982 | QNX | Systemy oprogramowania kwantowego | PC, MIPS , PowerPC , kompatybilny z ARM | systemy wbudowane , sterowniki przemysłowe | |||||||
1984 | System operacyjny Mac | jabłko | Apple Macintosh | komputery osobiste | |||||||
1985 | TOS | Atari | Atari ST , Orzeł, Meduza, Hades, Mediolan, FireBee , ColdFire | komputery osobiste | |||||||
1985 | AmigaOS | Komandor | Commodore Amiga , PowerPC | komputery osobiste i konsole do gier | |||||||
1986 | AIX | Uniksa | IBM | PS/2 , RS/6000 , PowerPC | komputery osobiste, serwery, stacje robocze, superkomputery | ||||||
1986 | Irix | Uniksa | SGI | Maszyny SGI | stacje robocze i serwery | ||||||
1986-1996 | Następny krok | Uniksa | Kolejny | PC, SPARC , Kompatybilny z Hewlett-Packard | stanowiska pracy | ||||||
1987-2006 | System operacyjny / 2 | IBM i Microsoft | Kompatybilny z PS / 2 i PC | komputery osobiste | |||||||
1987 | Minix | Andrzeja Tanenbauma | PC, m68k , kompatybilny ze SPARC | (pedagogiczny) | |||||||
1989 | System operacyjny Symbian | Symbian Sp | Nokia , Siemens , Samsung , Panasonic | telefony komórkowe, smartfony , asystenci osobiści | |||||||
1990 | Windows 3.x | Okna | Microsoft | Nakładka oprogramowania DOS | komputery osobiste | ||||||
1991 | Solaris | Uniksa | Słońce | Maszyny Sun i x86/64 | serwery, stacje robocze, superkomputery | ||||||
1991 | GNU / Linux | Uniksa | (społeczność) | liczny | wszystko | ||||||
1991 | Windows NT | Okna | Microsoft | Kompatybilny z komputerem PC | serwery, stacje robocze, komputery osobiste | ||||||
1994 | NetBSD | Uniksa | (społeczność) | liczny | wszystko | ||||||
1994 | FreeBSD | Uniksa | (społeczność) | liczny | wszystko | ||||||
1994 | OpenBSD | Uniksa | (społeczność) | liczny | wszystko | ||||||
1996 | Okna CE | Okna | Microsoft | x86 , MIPS , ARM | smartfon , asystenci osobiści, sterowniki przemysłowe | ||||||
1996 | RTX | Odstęp zero | x86 , x64 | komputery przemysłowe | |||||||
1999 | Mac OS X | Uniksa | jabłko | x86 , PowerPC z Apple | komputery osobiste, serwery, stacje robocze | ||||||
1999 | System operacyjny BlackBerry | Badania w ruchu | Telefony komórkowe BlackBerry | smartfon | ?? | ?? | |||||
2007 | Android | Uniksa | Konsorcjum Open Handset Alliance | produkty od producentów Open Handset Alliance | smartfon , tablet elektroniczny | ?? | ?? | ||||
2007 | ios | Uniksa | jabłko | Urządzenia Apple ( iPhone , iPod , iPad ...) | smartfon , tablet elektroniczny , cyfrowy odtwarzacz muzyki | ?? | |||||
2007 | Żaglica OS | Uniksa | Jolla | urządzenia fińskiej firmy Jolla | smartfon , tablet elektroniczny | ?? |
Narodził się w 1985 roku asortyment systemów Windows firmy Microsoft w 2008 roku blisko 90% komputerów osobistych, co stawia go w sytuacji monopolu obejmującego także ogół społeczeństwa. W 2008 roku jego udział w rynku spadł poniżej 90% po raz pierwszy od 15 lat. Następnie, po bardzo szybkim wzroście rynku smartfonów i opóźnieniu, jakie na tym rynku poczynił Microsoft , jego udział w rynku urządzeń osobistych wzrósł z 95% w 2005 r. do 20% w 2013 r.
Rozpoczęta w 1969 rodzina systemów operacyjnych Unix liczy ponad 25 członków. GNU / Linux , BSD i Mac OS X to obecnie najpopularniejsze systemy operacyjne w rodzinie Uniksów.
Rodzina Windows wyposaża teraz 38% serwerów, podczas gdy rodzina Unix wyposaża je w 31%, z czego około połowę w GNU/Linuksa . Rodzina Unixa obsługuje 60% witryn internetowych na świecie. Rodzina GNU/Linux zasila 100% z 500 superkomputerów na świecie. WMaj 2019, rodzina Unix zasila ponad 98% smartfonów .
Urodzony w 1990 roku, Symbian OS był najpopularniejszym systemem operacyjnym w telefonach komórkowych i osobistych asystentach w 2007 roku , z 67% udziałem w rynku.
W 2012 roku cztery systemy operacyjne Android od Google , Symbian , iOS od Apple i Blackberry od Research In Motion razem stanowiły 95% rynku smartfonów . Android, najpopularniejszy (75%), rośnie, podczas gdy reszta ma tendencję spadkową. Udział Symbiana w rynku to tylko 2,3%.
Jeśli chodzi o tablety, iOS firmy Apple był pierwszym szeroko rozpowszechnionym systemem operacyjnym z ponad 80% udziałem w rynku w 2010 roku. Trzy lata później jego udział w rynku wynosi 20%, a Android ponad 56%.
Większość serwerów i superkomputerów wyposażona jest w systemy operacyjne z rodziny UNIX .
Wiele aplikacji dostępnych na rynku jest stworzonych do pracy z określonym systemem operacyjnym lub konkretną rodziną, a system operacyjny jest stworzony do pracy z określonym zakresem maszyn. Dla nabywcy wybór rodziny maszyn ogranicza wybór systemu operacyjnego, co samo w sobie ogranicza wybór oprogramowania aplikacyjnego.
Każdy system operacyjny, w zależności od zakresu zawartych w nim programów, jest stworzony do pracy z określonymi sieciami komputerowymi. Dla kupującego, który posiada sieć komputerową (zazwyczaj firmy i instytucje) wybór systemu operacyjnego zależy od jego dopasowania do istniejącej sieci kupującego.
Przydatność systemu operacyjnego dla użytkownika jest proporcjonalna do liczby aplikacji , który jest przewidziany dla niego. Wysoka popularność systemu operacyjnego przyciąga wydawców oprogramowania aplikacyjnego, co dodatkowo zwiększa jego popularność ( efekt sieciowy ). Zjawisko to sprawia, że rynek podlega sytuacjom monopolistycznym .
Apple , Sun Microsystems i Silicon Graphics to marki produkujące sprzęt komputerowy i tworzące systemy operacyjne dla własnego sprzętu. Niektóre systemy operacyjne, takie jak Microsoft Windows i Android , są sprzedawane wraz ze sprzętem komputerowym na podstawie umów między producentami.
Kompatybilność jednego systemu operacyjnego to jego zdolność do używania zamiast innego, w szczególności do uruchamiania oprogramowania tego drugiego. Mówi się, że system operacyjny jest „kompatybilny” z drugim. Kompatybilność źródło poziomu jest zdolność do systemu operacyjnego A do uruchomienia oprogramowania aplikacja stworzona dla B po kompilacji z oprogramowania kod źródłowy do maszynowego A. i zgodność binarna jest zdolność do systemu operacyjnego A do uruchomienia oprogramowania aplikacja stworzona dla B jak jest, bez konieczności ponownej kompilacji.
Współdziałanie jest możliwość wielu systemów do stosowania razem, na przykład w jednym urządzeniu albo w sieci komputerowej .
Aby były kompatybilne, dwa systemy operacyjne muszą mieć wspólne punkty, w szczególności w interfejsie programistycznym. Kompatybilność binarna jest możliwa tylko między dwoma systemami operacyjnymi, które współpracują z tą samą rodziną procesorów.
Wydawcy zapewniają zgodność i interoperacyjność między systemami operacyjnymi, dostosowując swoje produkty do standardów branżowych oraz publicznie dostępnych technologii.
System operacyjny Unix , stworzony w 1969 roku, służył jako inspiracja dla całej rodziny systemów operacyjnych. Konkurencyjna gra, bardzo entuzjastyczna w latach 80., doprowadziła do odejścia różnych członków rodziny Unix i utraty kompatybilności ze sobą. Organy normalizacyjne, takie jak Open Group , przyjrzały się temu problemowi i wydały normy zapewniające kompatybilność w całej rodzinie Uniksów.
W latach 1995-2007 Microsoft , wydawca pakietu systemów operacyjnych Windows , był przedmiotem kilku pozwów o praktyki antykonkurencyjne, które szkodzą konkurencji i interoperacyjności. Firma została skazana przez Departament Sprawiedliwości Stanów Zjednoczonych za naruszenie ustawy antymonopolowej Shermana , a także przez Komisję Europejską za naruszenie traktatów o konkurencji w Unii Europejskiej .
Popularyzacja Internetu w latach 90. pomogła poprawić interoperacyjność między systemami operacyjnymi.
Wojna uniksowa i Grupa OtwartaSystem operacyjny Unix został opracowany przez American Telephone & Telegraph (AT&T). Do 1975 roku umowa z amerykańskim stanem federalnym zakazywała mu wprowadzania na rynek Uniksa, mającego monopol na telefonię w Stanach Zjednoczonych, dlatego kod źródłowy systemu operacyjnego był jawny. Jednak w 1975 roku monopol ten został zaatakowany w sądzie, aw 1982 roku firma została rozczłonkowana na mocy nakazu sądowego. AT&T, zrodzony z rozdrobnienia biznesu AT&T Corporation, był w końcu w stanie skomercjalizować Unixa inżynierowie opuścili firmę z kodem źródłowym dla wersji 7 ( otwartej ), aby zaowocować UNIX System V . W tym samym czasie inni wydawcy czerpali inspirację z wersji 7 do tworzenia systemów uniksowych, w szczególności Uniwersytet Berkeley wraz z jego dystrybucją oprogramowania Berkeley (BSD, 1979). Następnie posłużyły jako inspiracja dla innych systemów operacyjnych i tak dalej. W 2009 roku rodzina Unixa składała się z ponad 25 systemów operacyjnych.
Gra polegająca na współzawodnictwie skłoniła każdego wydawcę do dodania własnych ulepszeń i funkcji do swojego systemu operacyjnego zoptymalizowanego pod kątem konkretnego sprzętu. To spowodowało, że różni członkowie rodziny Unix odeszli i stracili ze sobą kompatybilność.
W 1987 roku, starając się zjednoczyć rodzinę Unix, AT&T zawarło umowę z Sun Microsystems (wiodący dostawca systemów operacyjnych opartych na BSD). Inni redaktorzy, nie widząc tej umowy dobrym okiem, tworzą fundację Open Software Foundation (OSF). W tym samym czasie Open Group , konsorcjum standardów, publikuje standardy dla systemów operacyjnych z rodziny Unix. Obie instytucje są teraz połączone.
POSIX to nazwa nadana standardom IEEE 1003. Ta rodzina standardów należąca do Open Group została uruchomiona w 1988 roku i dotyczy interfejsu programistycznego. Zgodność systemu operacyjnego z tym standardem zapewnia zgodność na poziomie źródłowym. W 2009 roku wiele systemów operacyjnych było zgodnych z tym standardem, w tym spoza rodziny Unix.
POSIX jest częścią Single Unix Specification , standardu wydanego w 1994 roku przez Open Group , który obejmuje systemy plików, oprogramowanie narzędziowe i 1742 funkcje interfejsu programistycznego . Nazwa „Unix” należy do Open Group i każdy system operacyjny musi być zgodny ze specyfikacją Single Unix, aby mógł być uznany za część rodziny Unix.
Microsoft i konkurencjaW 1995 roku, zgodnie z Sherman Antitrust Act – amerykańskim prawem dotyczącym zapobiegania nadużyciom pozycji dominującej , Departament Sprawiedliwości Stanów Zjednoczonych zabronił Microsoft niektórych praktyk uznanych za szkodliwe dla konkurencji. Dwa lata później zostaje wszczęty proces sądowy o nieprzestrzeganie zakazów z 1995 roku: Microsoft uzyskuje unieważnienie pozwu na podstawie argumentu, że „sprawiedliwość nie jest przygotowana do oceniania zasadności projektowania zaawansowanych produktów. technologia (sic!) ” .
W latach 1999-2001 wszczęto dochodzenie w sprawie stanowiska Microsoftu. Z dochodzenia przeprowadzonego przez sędziów Thomasa Jacksona i Richarda Posnera wynika, że Microsoft nadużywa swojej pozycji monopolistycznej, by praktykować „faworyzowanie” na powiązanym rynku przeglądarek internetowych , praktyki, które szkodzą jego konkurentom, utrudniają ich pojawienie się i hamują innowacyjność. Firma ledwo uniknęła podziału i została zmuszona do opublikowania specyfikacji swoich technologii, w szczególności interfejsów programistycznych i protokołów sieciowych, w celu zachowania interoperacyjności i konkurencji.
Później, w 2007 roku, Microsoft został skazany przez Komisję Europejską na karę grzywny w wysokości blisko 500 mln euro za naruszenie art. 82 TWE i art. 54 Porozumienia EOG (teksty dotyczące prawa konkurencji i nadużywania pozycji dominującej ). po odmowie opublikowania jednej ze swoich specyfikacji technicznych swojemu konkurentowi Sun Microsystems . Według Komisji Europejskiej działania Microsoftu podważają interoperacyjność systemów operacyjnych i negatywnie wpływają na konkurencję.
Sieć komputerowaKażdy system operacyjny zawiera szereg programów związanych z protokołami sieciowymi . Skład palety zależy od wyboru edytora i różni się w zależności od systemu operacyjnego. Jednak dwa komputery mogą komunikować się ze sobą tylko wtedy, gdy używają tych samych protokołów.
Popularyzacja Internetu w latach 90. skłoniła wielu producentów do włączania do swoich systemów operacyjnych programów związanych z protokołami TCP/IP (protokoły internetowe), poprawiając w ten sposób interoperacyjność między systemami operacyjnymi.