System operacyjny bardzo często występujący również pod nazwą OS, czyli jest to skrót od angielskiego zwrotu Operating System. Jest to oprogramowanie, które ma za zadanie zarządzać sprzętem komputerowym. System operacyjny w sposób bezpośredni tworzy środowisko, służące do uruchamiania i jednoczesnej kontroli wszelkich planowanych zadań użytkownika. System operacyjny ma kilka bardzo ważnych zadań, które musi wypełniać w celu zapewniania bezawaryjnego wypełniania zadań użytkownika, a zaliczamy do nich przede wszystkim planowanie i przydzielanie czasu procesora dla poszczególnych zadań, następnie zajmuje się kontrolą oraz podziałem pamięci operacyjnej, potrzebnej do uruchamiania zadań, musi również sprawnie dostarczać mechanizmy do synchronizacji wszelkich zadań, przy jednoczesnym zapewnieniu komutacji między zadaniami, jak również system operacyjny musi zapewniać równoległe wykonywanie poszczególnych zadać oraz zapewniać wolny od interfejsu oraz łatwy dostęp do sprzętu. Warto również nadmienić iż system operacyjny posiada również zadania, którymi może aczkolwiek nie koniecznie musi się zajmować, a są to przede wszystkim ustalanie bezpiecznych połączeń sieciowych oraz szybkie i sprawne zarządzanie plikami. Nowoczesna technologia w dzisiejszych czasach stawia przede wszystkim na wygląd, który w znacznym stopniu jest w stanie ułatwić użytkownikowi korzystanie z systemów operacyjnych, tak więc wiele z nich posiada bardzo zaawansowane środowisko graficzne, które jak już wcześniej wspomniano efektywnie polepsza komunikacje maszyny z operatorem. Systemy operacyjne najczęściej są potocznie określane mianem programów czy oprogramowania, które powinno być dołączone do zakupionego sprzętu komputerowego, nie jest to zbyt dokładna i poprawna nazwa, ale jednak jest ona dość mocno zakorzeniona w naszej świadomości. Niekiedy ludzie poprzez określenie system operacyjny mają na myśli wyłącznie jądro systemu operacyjnego czy program rozruchowy co w gruncie rzeczy okazuje się być dość wielkim nadużyciem powyższego pojęcia. Jednak najczęściej posługujemy się nazwami rodzin systemów operacyjnych jak między innymi Mac OS czy Microsoft Windows. Nazewnictwo jednak nie powinno mieć znaczącego wpływu na funkcje oraz niezawodność pracy systemów operacyjnych, ponieważ w przypadku awarii takiego oprogramowania okazuje się iż najczęściej cały sprzęt komputerowy traci zdolność do pracy, a co to wiąże się w największej ilości przypadków z bardzo wielkimi stratami jakie ponoszą właściciele.
System operacyjny jest ważnym programem, który występuje w każdym komputerze dzięki niemu można wykonywać kilka żądań w tej samej jednostce czasu oraz przydzielać procesorowi odpowiedni czas na ich wykonanie. System operacyjny jest bardzo złożony z podstawowego kryterium wynika, że dzieli się on na system operacyjny czasu rzeczywistego, który zamiennie nazywany jest rtos i na system operacyjny czasowo niedeterministyczny. Podział ten dotyczy przede wszystkim planowania pracy komputera oraz przydzielania procesorowi poszczególnych zadań. Drugi podział systemu operacyjnego dotyczy sposobu realizacji przełączeń zadań, wyróżniamy tutaj system z wywłaszczaniem zadań lub system bez wywłaszczania zadań. Kolejny podział to podział na otwarte systemy operacyjne oraz na wbudowane systemy operacyjne. Systemy te różnią się przede wszystkim tym, że systemy otwarte można uruchomić na dowolnej maszynie i dodatkowo dowolnie modyfikować z kolei systemy wbudowane znajdują się wewnątrz urządzeń użytkowych i nie można ich dowolnie konfigurować. Systemy operacyjne można też podzielić pod względem środowiska zastosowanego do implementacji systemu. W tym wypadku wyróżniamy podział na programowe i sprzętowe systemy operacyjne. Sprzętowe systemy to przede wszystkim programowe rozwiązania, które są integrowane z wybraną architekturą naszego procesora. W tym wypadku dzięki sprzętowej części sytemu przyspieszona zostaje praca czynności wykonywanych przez system może to być na przykład przełączanie zadań. Miedzy wymienionym kryteriami podziału sytemu operacyjnego można ustalić pewną małą relacje, ponieważ systemy programowe zazwyczaj spotyka się jako otwarte systemy programowe są one czasowo niedeterministyczne i stosują one zazwyczaj wywłaszczanie przy przełączaniu zadań. Z kolie wbudowane systemy operacyjne wręcz przeciwnie są najczęściej czasowo deterministyczne, najczęściej nie stosują też wywłaszczania zadań. Co ważne bardzo często wbudowane systemy operacyjne są realizowane również w samym sprzęcie. Komputer bardzo często musi wykonywać kilka żądań w jednym czasie nosi to nazwę wielozadaniowości może jednak wtedy dojść do interferencji procesorów, aby temu zapobiec organizuje się często ustanowienie zasobów systemowych, które mają przed tym chronić. Do głównych zasobów zarządzanych przez system operacyjny nalezą sam procesor, który odpowiada za czas pracy naszego procesora następnie jest pamięć oraz urządzenia wewnętrzne, czyli dysk twardy, uradzenia odpowiedzialne za sterowanie drukarkami, skanerami.
Zanim komputer rozwiąże wszystkie polecone mu zadania musi zostać odpowiednio uruchomiony program. Pierwszy krok polega na umieszczeniu w pamięci komputera programu i następnie wskazanie mu adresu naszej pierwszej instrukcji po wykonaniu tego zadania komputer a dokładniej mówiąc procesor dalej poradzi sobie sam, czyli samodzielnie będzie wykonywał dalsze czynności aż do ich zakończenia. Naturalnie mogą zakończyć się one poprawnie lub blednie. Wersja poprawna oznacza, że wszystko przebiegło zgodnie z życzeniem użytkownika z kolei wersja błędna jest równoznaczna z negatywnym zakończeniem się pracy programu najczęściej występuje ona, kiedy jest awaria sprzętu lub wtedy, kiedy program wykonana operację nie dozwoloną. Specjalnym gatunkiem programu komputerowego jest system operacyjny jest on bardzo istotny, ponieważ odpowiada za uruchamianie programu i nadzorowanie zadań. Można śmiało stwierdzić, że zarządza on sprzętem, ponieważ odpowiada za pamięć komputera czas procesora na wykonanie określonego zadania a nawet dostęp do urządzeń peryferyjnych. Zanim jednak jakikolwiek program zostanie uruchomiony musy przede wszystkim zostać do tego celu przygotowany sprzęt, odpowiada za to oprogramowanie typu firmware z kolei w komputerach typu PC nosi ono nazwę bios. Oprogramowanie to nie tylko uruchamia sprzęt, ale ląduje też system operacyjny a tym samym przekazuje ma kontrole nad komputerem. Problem jednak pojawia się wtedy, kiedy program nie ma postaci binarnej tylko kodu czytelnego dla człowieka, ponieważ wtedy procesor nie może go wykonać. W takim wypadku można jedna sobie pomóc istnieją tutaj dwa zasadnicze rozwiązania, czyli skorzystanie z programu o nazwie kompilator, który bezpośrednio tłumaczy kod źródłowy na kod maszynowy, co za tym idzie komputer może je odczytać. Drugie rozwiązanie to nie, co inny program znany pod nazwa interpretera. Zadaniem tego programu jest odczytywanie kodu źródłowego, czyli zrozumiałego dla człowieka. Program ten jednak tłumaczy kod nie całościowo tylko częściowo, co w rezultacie daje nam kilka porcji przetłumaczonego kodu zwanego skryptem. Każdy program można podzielić na dwa zasadnicze obszary, czyli cześć kodu i cześć danych. Pierwsza cześć odnosi się do szeregu instrukcji, które wpływają na parce procesora z kolei cześć danych składa się z danych wykorzystywanych i opracowywanych przez program. Mimo to bardzo trudno jest przewidzieć zachowanie programów, które modyfikują własny kod, dlatego tez przyjęło się założenie, że obszar kodu w pamięci jest tylko i wyłącznie do odczytu