Co to jest system operacyjny?
System operacyjny (OS) to oprogramowanie, które zarządza sprzętem komputera i uruchamia wszystkie inne programy, dzieląc między nie procesor, pamięć i miejsce na dysku oraz dając im pliki, sieć, wejście i wyjście. Windows, macOS, Linux, Android i iOS to systemy operacyjne.
Aktualizacja: 24 września 2026
Naciśnij klawisz, gdy otwarty jest edytor tekstu. Klawiatura wysyła sygnał elektryczny, a sterownik w systemie operacyjnym go odczytuje. System operacyjny ustala, które okno jest na wierzchu, dostarcza klawisz do tego programu, a edytor rysuje literę. Edytor w ogóle nie rozmawia z klawiaturą. Zapisywanie pliku, odtwarzanie dźwięku i ładowanie strony internetowej działają tak samo: programy proszą, a system operacyjny wykonuje pracę ze sprzętem.
Co robi system operacyjny
System operacyjny ma kilka zadań, a każdy program w komputerze zależy od nich wszystkich:
- Uruchamianie programów (zarządzanie procesami). Na laptopie z 8 rdzeniami procesora może działać kilkaset programów i usług w tle. Planista systemu daje każdemu z nich krótkie tury na rdzeniu, przełączając się wiele razy na sekundę, więc wydaje się, że wszystkie działają jednocześnie.
- Zarządzanie pamięcią. Każdy program dostaje własną, prywatną przestrzeń adresową. Gdy program odczytuje pamięć, która do niego nie należy, system go zatrzymuje; w C jest to słynny błąd segmentacji.
- Przechowywanie plików. System zamienia dysk, który przechowuje tylko ponumerowane bloki bajtów, w foldery i nazwane pliki, co jest podręcznikowym przykładem abstrakcji. Format nazywa się systemem plików: NTFS w Windowsie, APFS w macOS, ext4 w większości systemów Linux.
- Komunikacja ze sprzętem. Sterowniki tłumaczą między systemem a każdym urządzeniem: kartą graficzną, układem Wi-Fi, drukarką, kamerą.
- Sieć. System implementuje TCP/IP, więc program może otworzyć połączenie z serwerem, nie wiedząc nic o karcie sieciowej.
- Bezpieczeństwo i użytkownicy. Konta, hasła i uprawnienia do plików decydują, kto może co czytać albo zmieniać.
- Interfejs użytkownika. Pulpit, okna i pasek zadań albo powłoka tekstowa, taka jak Bash czy PowerShell.
Jądro i wywołania systemowe
Rdzeniem systemu operacyjnego jest jądro (kernel). Działa z pełną kontrolą nad sprzętem, a zwykłe programy działają w trybie ograniczonym i nie mogą bezpośrednio dotykać urządzeń. Gdy program czegoś potrzebuje, wykonuje wywołanie systemowe: prośbę do jądra, taką jak "otwórz ten plik", "wyślij te bajty" albo "uruchom nowy proces".
Zwykle nie widzisz wywołań systemowych, bo twój język je opakowuje. open() i print() w Pythonie kończą się wywołaniami jądra. Moduł os pozwala wykonywać je niemal bezpośrednio:
Identyfikator procesu i liczba rdzeni zależą od maszyny; ostatnia linia zawsze wyświetla File size: 23 bytes. os.open zwraca deskryptor pliku, czyli małą liczbę, którą jądro śledzi otwarty plik, a os.write wysyła do niego 23 bajty. W C te same prośby wyglądają niemal identycznie, bo te funkcje to cienkie nakładki na wywołania systemowe:
int fd = open("note.txt", O_WRONLY | O_CREAT | O_TRUNC, 0644);
write(fd, "saved by a system call\n", 23);
close(fd);
W Linuksie możesz obejrzeć każde wywołanie systemowe programu poleceniem strace python3 script.py.
Przykłady i rodzaje systemów operacyjnych
| System operacyjny | Gdzie działa | Jądro |
|---|---|---|
| Windows 11 | Większość komputerów stacjonarnych i laptopów | Windows NT |
| macOS | Komputery Mac firmy Apple | XNU (Darwin) |
| Linux (Ubuntu, Fedora, Debian i inne) | Większość serwerów i maszyn w chmurze, część komputerów biurkowych | Linux |
| Android | Większość smartfonów na świecie | Linux |
| iOS | iPhone | XNU (Darwin) |
| ChromeOS | Chromebooki | Linux |
Oprócz tych systemów ogólnego przeznaczenia istnieją systemy operacyjne czasu rzeczywistego, takie jak FreeRTOS i Zephyr, które działają na mikrokontrolerach w sprzęcie AGD, czujnikach i maszynach przemysłowych i gwarantują odpowiedź w określonym czasie. Wiele małych urządzeń działa na systemach wbudowanych, stworzonych do jednego celu.
Tabela pokazuje, że jedno jądro może napędzać bardzo różne produkty. Android i ChromeOS używają jądra Linux z własnym oprogramowaniem na wierzchu, a iOS dzieli jądro z macOS.
Dlaczego system operacyjny ma znaczenie przy programowaniu
Skompilowany program jest budowany dla jednego systemu operacyjnego. Plik .exe z Windowsa nie uruchomi się natywnie w Linuksie, nawet na tym samym komputerze, bo format pliku i wywołania systemowe są inne. Dlatego strony pobierania oferują osobne wersje i dlatego istnieją środowiska uruchomieniowe, takie jak JVM, Node.js i CPython: są budowane raz dla każdego systemu operacyjnego, żeby twój kod nie musiał być. Zobacz środowisko uruchomieniowe.
Drobne różnice i tak przeciekają. Uruchom to i porównaj z kimś, kto ma inny system:
W Linuksie i macOS wyświetla się:
Path separator: '/'
Line ending: '\n'
projects/notes/todo.txt
W Windowsie separatorem jest '\\' (pojedynczy ukośnik wsteczny), koniec linii to '\r\n', a ścieżka staje się projects\notes\todo.txt. Używanie os.path.join (albo pathlib) zamiast ręcznego wpisywania / sprawia, że skrypt działa we wszystkich trzech systemach.
Częste nieporozumienia
- "Linux to system operacyjny." Ściśle mówiąc, Linux to jądro. Dystrybucja Linuksa, taka jak Ubuntu, dodaje powłokę, narzędzia systemowe, menedżer pakietów i zwykle pulpit, tworząc kompletny system operacyjny. W codziennej mowie oba nazywa się Linuksem.
- "BIOS jest częścią systemu operacyjnego." Firmware BIOS albo UEFI mieszka na płycie głównej. Sprawdza sprzęt, a potem ładuje system operacyjny z dysku i na tym kończy się jego główne zadanie.
- "Pulpit to system operacyjny." Pulpit to jeden program działający na jądrze. Serwery zwykle działają w ogóle bez pulpitu, sterowane tylko przez powłokę tekstową.
- "Aplikacje rozmawiają ze sprzętem." Zwykłym programom nie wolno tego robić. Każdy odczyt pliku, pakiet sieciowy i piksel na ekranie przechodzi przez system operacyjny, dlatego awaria aplikacji zwykle nie pociąga za sobą całego komputera.
Co dalej
System operacyjny to najniższa warstwa; środowisko uruchomieniowe leży między nim a twoim kodem. Ochrona pamięci to źródło błędu segmentacji, a strona o bajcie wyjaśnia jednostkę, której system używa dla plików i pamięci. Żeby sterować systemem operacyjnym z jego powłoki tekstowej, wypróbuj kurs terminala.
Najczęściej zadawane pytania
Czy komputer może działać bez systemu operacyjnego?
Jakie jest 5 najpopularniejszych systemów operacyjnych?
Jakie są główne rodzaje systemów operacyjnych?
Jak sprawdzić, jaki mam system operacyjny?
winver. Na Macu otwórz menu Apple i wybierz Ten Mac. W Linuksie uruchom w terminalu cat /etc/os-release, a uname -r pokaże wersję jądra.