SYSTEM OPERACYJNY – CZYLI CO SPRAWIA, ŻE TWÓJ KOMPUTER ŻYJE


Wyobraź sobie, że komputer to blok mieszkalny:

  • programy to lokatorzy,
  • pamięć RAM to mieszkania,
  • dysk to piwnice i archiwa,
  • drukarka to wspólna pralnia,
  • a system operacyjny (SO) to zarządca budynku: rozdziela zasoby, pilnuje zasad i rachunków.

SO robi trzy kluczowe rzeczy:

  1. uruchamia programy i daje im „czas na procesorze”,
  2. przydziela pamięć i pilnuje, by nikt nie podglądał sąsiada,
  3. organizuje dostęp do plików, urządzeń i sieci.

Bez SO programy kłóciłyby się o każdą myszkę i każdy bajt.


Co to jest system operacyjny?

System operacyjny (ang. Operating System, OS) to oprogramowanie, które:

  • pośredniczy między sprzętem a programami,
  • przydziela zasoby (czas procesora, pamięć, urządzenia),
  • dba o bezpieczeństwo i kolejność zadań.

Bez niego komputer to tylko pudełko z elektroniką.

Historia w skrócie

Pierwsze komputery działały bez systemów operacyjnych – programy ładowało się z taśm perforowanych.
Dopiero później pojawiły się systemy, które automatyzowały zarządzanie sprzętem.
Dziś bez OS nie zrobisz nic – nawet smartfon z Androidem ma jądro Linuxa.

Co robi OS w praktyce

  1. Uruchamia programy i zarządza ich wykonaniem (procesy, wątki).
  2. Przydziela pamięć i zasoby (RAM, pliki, urządzenia).
  3. Dba o komunikację między procesami (IPC).
  4. Obsługuje urządzenia (drukarki, dyski, mysz).
  5. Chroni system przed błędami i nieuprawnionym dostępem.
  6. Pozwala użytkownikowi komunikować się z komputerem (interfejs graficzny lub konsola).

Bez OS: kliknięcie „drukuj” wymagałoby ręcznego sterowania silnikiem drukarki.
Z OS: wystarczy wcisnąć Ctrl + P, a reszta dzieje się sama.


Jak działa system operacyjny od środka


2.1 Architektura warstwowa

[ Aplikacje: przeglądarka, edytor, gry ]
              │
[ API i biblioteki systemowe ]
              │
[ Jądro (kernel): serce systemu ]
              │
[ Sterowniki urządzeń ]
              │
[ Sprzęt: CPU, RAM, dysk, GPU ]

Jądro (kernel) to mózg systemu – zarządza wszystkim, co dzieje się „pod spodem”.


2.2 Procesy i wątki

Proces to uruchomiony program – ma własny kod, pamięć i dane.
Wątek to „nitka wykonania” w ramach procesu – kilka wątków może działać równolegle.

Przykład z życia:

Proces to kucharz, a wątki to jego ręce.
Jedna miesza zupę, druga kroi marchewkę – ale wszystko w tej samej kuchni (pamięci).

Stany procesu:

[NEW] → [READY] → [RUNNING] → [WAITING] → [TERMINATED]
  • READY – gotowy do startu, czeka na CPU
  • RUNNING – aktualnie działa
  • WAITING – czeka np. na dysk lub sieć
  • TERMINATED – zakończony

2.3 Planowanie zadań (CPU Scheduling)

Procesor nie wykonuje wszystkich programów naraz – system przełącza je co ułamek sekundy.

Najczęstsze algorytmy planowania:

  • FCFS (First Come First Served) – kto pierwszy, ten lepszy,
  • SJF (Shortest Job First) – krótsze zadania mają priorytet,
  • Round Robin (RR) – każdy proces dostaje kawałek czasu (tzw. kwant),
  • Priority Scheduling – priorytety decydują o kolejności,
  • CFS (Completely Fair Scheduler) – nowoczesny planista Linuksa, dzieli czas proporcjonalnie.

💡 Każde przełączenie kontekstu (ang. context switch) wymaga zapisania stanu programu i przywrócenia innego – to kosztowne operacje, dlatego im mniej ich, tym szybciej działa system.


2.4 Pamięć operacyjna i wirtualna

Każdy proces myśli, że ma własny ciągły blok pamięci,
ale w rzeczywistości OS tłumaczy to na adresy fizyczne.

Mechanizmy:

  • Stronicowanie (paging) – pamięć dzielona na strony (np. 4 KB).
  • Swap / plik stronicowania – jeśli RAM się kończy, system używa dysku.
  • Ochrona pamięci – proces A nie może nadpisać danych procesu B.

Zalety pamięci wirtualnej:

  • większe bezpieczeństwo,
  • możliwość pracy na dużych danych,
  • izolacja błędów (np. awaria jednego programu nie psuje całego systemu).

2.5 Komunikacja między procesami (IPC)

Procesy często muszą wymieniać dane – np. przeglądarka i system audio.
System udostępnia do tego:

  • potoki (pipes),
  • kolejki komunikatów,
  • pamięć współdzieloną,
  • gniazda sieciowe (sockets).

2.6 Przykład w Pythonie – symulacja planisty

import time, threading

def zadanie(n):
    print(f"Start {n}")
    time.sleep(1)
    print(f"Koniec {n}")

for i in range(3):
    threading.Thread(target=zadanie, args=(i,)).start()

Efekt: zadania „przeplatają się” – wątki działają równolegle.
Tak samo działa procesor, tylko w dużo mniejszej skali czasowej.


System plików, użytkownicy i bezpieczeństwo


3.1 Struktura systemu plików

Dane zapisujemy w strukturze drzewa katalogów.

Linux/macOS:

/
├── home/
│   └── uczen/
│       ├── dokumenty/
│       └── muzyka/
└── etc/

Windows:

C:\
├── Users\
│   └── Uczen\
│       ├── Dokumenty\
│       └── Pulpit\
└── Windows\

Każdy plik ma:

  • nazwę,
  • ścieżkę,
  • rozmiar,
  • daty (utworzenia, modyfikacji, dostępu),
  • właściciela,
  • prawa dostępu.

3.2 Prawa dostępu (rwx)

r = read (czytanie)
w = write (zapis)
x = execute (uruchamianie)

Trzy grupy:

UżytkownikSkrótZnaczenie
Właścicielusertwórca pliku
Grupagroupczłonkowie grupy
Inniothersreszta świata

Przykład:
-rwxr-xr--
→ właściciel: pełne prawa,
→ grupa: odczyt i uruchomienie,
→ inni: tylko odczyt.

chmod 755 skrypt.sh

3.3 Konta i uprawnienia

  • root / administrator – pełnia władzy.
  • użytkownik zwykły – może działać tylko we własnym katalogu.
  • grupy – np. audio, video, www-data.

Windows ma podobny model (konto administratora + UAC).
Linux – sudo, czyli czasowe podniesienie uprawnień.


3.4 Bezpieczeństwo

Zasada 3-2-1:

  • 3 kopie danych,
  • 2 różne nośniki,
  • 1 poza domem.

Szyfrowanie:

  • BitLocker (Windows),
  • LUKS (Linux),
  • FileVault (macOS).

Antywirus to nie wszystko — najważniejszy jest rozsądek i aktualizacje.


Urządzenia, sterowniki i sieć


4.1 Sterowniki (drivers)

Sterownik to tłumacz między jądrem a sprzętem.
Każda drukarka, kamera, karta graficzna ma swój „język”.
System operacyjny tłumaczy go na wspólny format – dzięki temu program nie musi znać sprzętu.


4.2 Wejście/wyjście (I/O)

Każde urządzenie jest widziane przez system jako plik:

  • /dev/sda – dysk,
  • /dev/tty – terminal,
  • /dev/null – czarna dziura na dane.

Zasada: wszystko jest plikiem – nawet urządzenia.


4.3 Sieć w systemie operacyjnym

Każdy OS ma stos sieciowy obsługujący:

  • IP (adresy),
  • TCP/UDP (transport),
  • DNS (nazwy domen),
  • porty (numery usług).

Przykład:

Adres IP: 192.168.0.10
Maska: 255.255.255.0
Brama: 192.168.0.1
DNS: 8.8.8.8

Praktyczne polecenia:

  • ping – sprawdzenie łączności,
  • ipconfig / ifconfig / ip a – konfiguracja sieci,
  • netstat / ss – otwarte porty,
  • tracert / traceroute – ścieżka do hosta.

4.4 Wirtualizacja i kontenery

  • Maszyna wirtualna (VM) – cały system w systemie (np. Windows na Linuxie).
  • Kontener (Docker) – lekki, izolowany proces z własnym środowiskiem, ale współdzielącym kernel.

Wirtualizacja jest wolniejsza, ale bardziej odizolowana.
Kontenery są szybkie, ale „dzielą” jądro.


Nowoczesne systemy operacyjne i praktyka maturalna


5.1 Typy systemów

TypOpisPrzykład
Jednozadaniowywykonuje jeden programstare DOS-y
Wielozadaniowywiele naraz (planista)Linux, Windows
Jednodostępnyjeden użytkownikkomputer osobisty
Wielodostępnywielu jednocześnieserwery, Linux
Rozproszonywiele maszyn = jeden systemchmura, klastry
Czasu rzeczywistegoreaguje natychmiastroboty, sterowniki, RTOS

5.2 Typowe zadania maturalne

  1. Wyjaśnij, czym różni się proces od wątku.
    Proces – własna pamięć; wątek – współdzielona pamięć w procesie.
  2. Czym jest system plików?
    Struktura organizacji danych na nośniku.
  3. Jakie są etapy uruchamiania komputera?
    POST → Bootloader → Kernel → Usługi → Pulpit.
  4. Podaj przykładowe polecenia powłoki do zarządzania plikami i procesami.
    Linux: ls, cp, mv, ps, kill.
    Windows: dir, copy, tasklist, taskkill.
  5. Co to pamięć wirtualna i po co jest potrzebna?
    Pozwala uruchamiać więcej programów niż mieści się w RAM, chroni pamięć między procesami.
  6. Na czym polega planowanie procesów?
    System przydziela czas CPU różnym programom wg algorytmu.

5.3 Mini-ściąga

  • rwx – odczyt, zapis, wykonanie
  • sudo / admin – uprawnienia
  • ping / traceroute – test sieci
  • df -h / free -h – pamięć i dysk
  • chmod / chown – prawa dostępu
  • top / htop – procesy

5.4 Podsumowanie

System operacyjny to jak orkiestra, gdzie każdy instrument (program) gra swoją partię,
a dyrygent (kernel) dba o harmonię, tempo i to, żeby nikt nie zagłuszał reszty.

Bez niego komputer byłby tylko zbiorem kabli i krzemu.
Dzięki niemu masz biurko, mysz, przeglądarkę i wrażenie, że „to działa”.

System operacyjny to cichy partner. Jeśli go rozumiesz – piszesz lepszy kod, szybciej rozwiązujesz problemy i masz więcej punktów na maturze.