Systemy operacyjne

System operacyjny to łącznik między hardwarem a softwarem. To jego podstawowa rola: umożliwia komunikację między fizycznymi komponentami komputera (procesorem, pamięcią, dyskiem, kartą graficzną itd.) a programami, które użytkownik uruchamia.



Co to jest system operacyjny?


System operacyjny to najważniejsze oprogramowanie w komputerze. Bez niego komputer nie potrafi działać. To on zarządza wszystkimi zasobami: procesorem, pamięcią RAM, dyskiem, urządzeniami zewnętrznymi i pozwala użytkownikowi korzystać z komputera.


Główne zadania systemu operacyjnego


  • Zarządzanie sprzętem – kontroluje działanie procesora, pamięci, dysków, drukarek itp.

  • Uruchamianie programów – pozwala użytkownikowi otwierać aplikacje i gry.

  • Zarządzanie plikami – umożliwia tworzenie, kopiowanie, przenoszenie i usuwanie plików.

  • Komunikacja z użytkownikiem – poprzez interfejs graficzny (GUI) lub tekstowy (CLI).

  • Bezpieczeństwo – kontroluje dostęp do danych i chroni system przed nieautoryzowanym dostępem.


Rodzaje systemów operacyjnych


    1. MS Windows – najpopularniejszy system dla komputerów osobistych. Łatwy w obsłudze, szeroko stosowany w biurach i szkołach.

    2. Linux – darmowy i otwarty system. Używany przez informatyków, serwery i w edukacji. Wymaga znajomości terminala.

    3. Mac OS – system firmy Apple, używany na komputerach Macintosh. Znany z estetyki i stabilności.

    4. Android – system operacyjny dla smartfonów i tabletów. Bazuje na jądrze Linuxa.

    5. iOS – system mobilny Apple, używany na iPhone’ach i iPadach.


Interfejsy systemów operacyjnych


  • GUI (Graficzny interfejs użytkownika) – obsługa za pomocą ikon, okien i myszki (np. Windows, Mac OS).
  • CLI (Interfejs tekstowy) – obsługa za pomocą komend wpisywanych w terminalu (np. Linux – Bash).


Struktura systemu operacyjnego


1. Jądro systemu operacyjnego (kernel)


Jądro to centralna część systemu operacyjnego, która działa najbliżej sprzętu. Odpowiada za najważniejsze zadania systemowe i działa w trybie uprzywilejowanym (trybie jądra).


Główne zadania jądra:

  • Zarządzanie pamięcią – przydzielanie i zwalnianie pamięci RAM dla procesów.

  • Zarządzanie procesami – tworzenie, planowanie i kończenie procesów.

  • Obsługa urządzeń – komunikacja z dyskami, kartami sieciowymi, klawiaturą itp.

  • System plików – dostęp do danych na dysku, organizacja plików i katalogów.

  • Bezpieczeństwo – kontrola dostępu do zasobów systemowych.


Typy jąder:

  • Monolityczne – wszystkie funkcje są zintegrowane w jednym dużym module (np. Linux).

  • Mikrojądro – tylko podstawowe funkcje w jądrze, reszta działa jako osobne procesy (np. MINIX).

  • Hybrydowe – połączenie obu podejść, np. Windows NT, macOS.


2. Powłoka systemu operacyjnego (shell)


Powłoka to interfejs między użytkownikiem a systemem operacyjnym. Umożliwia wydawanie poleceń i uruchamianie programów. Powłoka korzysta z funkcji jądra, ale działa w trybie użytkownika.


Rodzaje powłok:

  • Powłoka tekstowa (CLI – Command Line Interface)

    • Użytkownik wpisuje komendy w terminalu.

    • Przykłady: Bash (Linux), CMD (Windows), PowerShell.



  • Powłoka graficzna (GUI – Graphical User Interface)

    • Użytkownik korzysta z ikon, okien, menu.

    • Przykłady: Windows Explorer, GNOME, macOS Finder.




3. Jak współpracują jądro i powłoka?


Użytkownik wydaje polecenie (np. mkdir folder) → powłoka przekazuje je do jądra → jądro wykonuje operację na sprzęcie (np. tworzy folder na dysku).


Podsumowanie


  • Jądro – zarządza zasobami sprzętowymi i działa w tle.

  • Powłoka – umożliwia użytkownikowi komunikację z systemem.

  • Oba elementy są niezbędne do działania systemu operacyjnego.




Powłoka systemowa (shell) vs. wiersz poleceń


Co to jest powłoka (shell)?


Powłoka systemowa to program, który pośredniczy między użytkownikiem a jądrem systemu operacyjnego. Umożliwia uruchamianie programów, wykonywanie poleceń, zarządzanie plikami i procesami. Shell może być tekstowy (CLI) lub graficzny (GUI).


Co to jest wiersz poleceń?


Wiersz poleceń to okno lub interfejs, w którym użytkownik wpisuje komendy tekstowe. Wiersz poleceń uruchamia powłokę tekstową i umożliwia komunikację z systemem operacyjnym poprzez wpisywanie poleceń.


Różnice



  • Shell to program (np. Bash, PowerShell, CMD), który interpretuje polecenia.

  • Wiersz poleceń to środowisko, w którym działa shell — np. okno terminala.

  • Shell może działać w tle lub w skryptach, a wiersz poleceń jest interaktywny.


Składnia poleceń


Każde polecenie składa się z kilku elementów:



  • Nazwa polecenia – np. mkdir

  • Opcje – dodatkowe ustawienia, poprzedzone znakiem - lub --

  • Argumenty – dane wejściowe, np. nazwa pliku lub katalogu


Przykład składni:


mkdir -p /home/uzytkownik/dokumenty

Tworzy katalog dokumenty wraz z całą ścieżką, jeśli nie istnieje.


Przykładowe komendy wiersza poleceń


  • dir – wyświetla listę plików (Windows)

  • ls – wyświetla listę plików (Linux/macOS)

  • cd – zmienia katalog roboczy

  • mkdir – tworzy nowy katalog

  • rm – usuwa plik lub katalog

  • echo – wyświetla tekst

  • ping – sprawdza połączenie z adresem IP lub domeną


Skąd się wzięła nazwa „ping”?

Nazwa „ping” pochodzi od sygnału sonaru używanego w marynarce wojennej. Gdy okręt wysyła impuls dźwiękowy w wodzie, czeka na jego odbicie — to właśnie ten dźwiękowy „ping”. Program komputerowy działa podobnie: wysyła pakiet danych i czeka na odpowiedź.

Twórcą polecenia ping był Mike Muuss, który stworzył je w 1983 roku w systemie Unix. Nazwa była celowo wybrana jako analogia do działania sonaru — wysyłasz sygnał, czekasz na echo.

Ciekawostka: Ping jako skrót?

Choć pierwotnie „ping” nie był skrótem, z czasem użytkownicy zaczęli tworzyć dla niego rozwinięcia. Jednym z popularniejszych jest:

  • Packet Internet Groper – czyli „szperacz pakietów internetowych”

To oczywiście żartobliwa interpretacja, ale dobrze oddaje ideę: ping „szuka” drugiego komputera w sieci.

Jak działa ping?

  • Wysyła pakiet ICMP Echo Request
  • Czeka na ICMP Echo Reply
  • Mierzy czas odpowiedzi (RTT – Round Trip Time)

A „pinguje”?

W języku potocznym „pinguje” oznacza „sprawdzam, czy coś działa” — np. „pinguje serwer”, czyli wysyłam zapytanie, czy jest dostępny. To jedno z tych technicznych słów, które weszły do codziennego języka informatyków.

Przykładowe polecenia w systemie Linux

  • ls – wyświetla listę plików w katalogu
  • cd – zmienia katalog
  • mkdir – tworzy nowy katalog
  • rm – usuwa plik


Podsumowanie


  • Shell to interpreter poleceń, który wykonuje komendy.

  • Wiersz poleceń to miejsce, gdzie użytkownik wpisuje te komendy.

  • Znajomość składni poleceń pozwala na efektywne zarządzanie systemem operacyjnym.




Warstwowa struktura systemu operacyjnego


    1. Jądro (kernel) – zarządza sprzętem, pamięcią, procesami, systemem plików.

    2. Powłoka (shell) – pośredniczy między użytkownikiem a jądrem. Może być tekstowa (CLI) lub graficzna (GUI).

    3. GUI – graficzna forma powłoki, czyli interfejs użytkownika oparty na grafice. W rzeczywistości GUI często jest częścią powłoki lub działa jako warstwa nad nią.




Przykład prostego ASCII art


/\_/\_
( o.o )
> ^ <



System operacyjny jako pośrednik

System operacyjny to łącznik między sprzętem (hardware) a oprogramowaniem (software). Umożliwia komunikację między fizycznymi komponentami komputera a programami, które użytkownik uruchamia.

Bez systemu operacyjnego aplikacje nie miałyby bezpośredniego dostępu do sprzętu. System udostępnia interfejsy programistyczne (API), dzięki którym software może korzystać z zasobów sprzętowych w sposób kontrolowany i bezpieczny.

Jak to działa?

  • Użytkownik uruchamia program (np. edytor tekstu)
  • Program wysyła żądanie do systemu operacyjnego (np. „zapisz plik”)
  • System operacyjny komunikuje się z dyskiem twardym i wykonuje operację
  • Sprzęt wykonuje polecenie, a wynik wraca do programu

Przykład warstwowy

    1. Sprzęt (hardware) – fizyczne komponenty
    2. Jądro systemu – zarządza zasobami
    3. Powłoka (shell) – interfejs użytkownika
    4. Programy (software) – aplikacje, gry, narzędzia

Dlaczego to takie ważne?

Dzięki systemowi operacyjnemu:

  • Programy są przenośne – nie muszą znać szczegółów sprzętu
  • System może kontrolować dostęp – np. kto może zapisać plik
  • Sprzęt jest efektywnie wykorzystywany – np. procesor nie jest przeciążony



Ciekawostka

Cała misja Apollo 11 miała komputer pokładowy z pamięcią 64 KB. Dziś tyle zajmuje jedno zdjęcie w średniej rozdzielczości. A mimo to — polecieli na Księżyc.



Porównanie

ProgramRokRozmiarFunkcje
Norton Commander1990~300 KBDwupanelowy menedżer plików
Visual Studio Code2020+~200 MB+Edytor z rozszerzeniami, GUI, integracją z chmurą

Ciekawostka

Gra Doom z 1993 roku mieściła się na kilku dyskietkach 1,44 MB i działała płynnie na komputerze z 4 MB RAM. Dziś jej remake zajmuje ponad 50 GB i wymaga karty graficznej z ray tracingiem.





Co to jest rozdzielanie zadań?

Rozdzielanie zadań (ang. task scheduling) to proces, w którym system operacyjny decyduje, które zadanie (proces lub wątek) ma być aktualnie wykonywane przez procesor. Ponieważ CPU może wykonywać tylko jedno zadanie na rdzeniu w danym momencie, musi szybko przełączać się między nimi — to właśnie wielozadaniowość.


Priorytetyzacja zadań

  • Każdy proces ma przypisany priorytet — im wyższy, tym częściej dostaje czas procesora.
  • System operacyjny może dynamicznie zmieniać priorytety, np. procesy interaktywne (kliknięcia, okna) mają wyższy priorytet niż zadania w tle.
  • Użytkownik może ręcznie ustawić priorytet procesu (np. w Menedżerze zadań Windows).

Podział taktów procesora

Procesor działa w rytmie zegara — każdy takt to jednostka czasu, w której może wykonać operację. System operacyjny dzieli czas procesora na kwanty czasu (np. 10 ms) i przydziela je kolejnym zadaniom.


  • Round Robin – każde zadanie dostaje równy kwant czasu
  • Preemptive Scheduling – zadania mogą być „przerwane” przez ważniejsze
  • Real-Time Scheduling – zadania mają gwarantowany czas wykonania (np. w systemach przemysłowych)

Jak to wygląda w praktyce?

    1. System operacyjny utrzymuje kolejkę zadań
    2. Każde zadanie ma priorytetstatus (gotowe, oczekujące, wykonujące się)
    3. Scheduler wybiera zadanie i przydziela mu kwant czasu
    4. Po upływie kwantu — przełącza się na kolejne zadanie

Ciekawostka

Choć wygląda to jak chaos, wszystko dzieje się w ułamkach milisekund. Dzięki temu użytkownik ma wrażenie, że wszystkie programy działają jednocześnie — nawet na jednordzeniowym procesorze.




Ciekawostka: Demoscena


W latach 90. i 2000. istniała subkultura programistów zwana demosceną, która tworzyła niesamowite animacje i muzykę w plikach o rozmiarze zaledwie 256 kB. Wszystko było generowane w czasie rzeczywistym — bez gotowych grafik czy dźwięków. To była sztuka kodu, optymalizacji i kreatywności.


Przykłady legendarnych 256kB dem

  • fr-08: .the .product – grupa Farbrausch, 2000. Absolutna klasyka. Efekty 3D, muzyka techno, wszystko w 64 kB!
  • Elevated – grupa Rgba & TBC, 2009. Niesamowita atmosfera, generowana w 4kB!
  • Debris – grupa Farbrausch, 2007. Co prawda większe niż 256kB, ale pokazuje możliwości demosceny.