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
- MS Windows – najpopularniejszy system dla komputerów osobistych. Łatwy w obsłudze, szeroko stosowany w biurach i szkołach.
- Linux – darmowy i otwarty system. Używany przez informatyków, serwery i w edukacji. Wymaga znajomości terminala.
- Mac OS – system firmy Apple, używany na komputerach Macintosh. Znany z estetyki i stabilności.
- Android – system operacyjny dla smartfonów i tabletów. Bazuje na jądrze Linuxa.
- 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 katalogucd
– zmienia katalogmkdir
– tworzy nowy katalogrm
– 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
- Jądro (kernel) – zarządza sprzętem, pamięcią, procesami, systemem plików.
- Powłoka (shell) – pośredniczy między użytkownikiem a jądrem. Może być tekstowa (CLI) lub graficzna (GUI).
- 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
- Sprzęt (hardware) – fizyczne komponenty
- Jądro systemu – zarządza zasobami
- Powłoka (shell) – interfejs użytkownika
- 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
Program | Rok | Rozmiar | Funkcje |
---|
Norton Commander | 1990 | ~300 KB | Dwupanelowy menedżer plików |
Visual Studio Code | 2020+ | ~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?
- System operacyjny utrzymuje kolejkę zadań
- Każde zadanie ma priorytet i status (gotowe, oczekujące, wykonujące się)
- Scheduler wybiera zadanie i przydziela mu kwant czasu
- 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.