Przyjęto podział na trzy główne elementy budowy systemu operacyjnego:
* jądro systemu
* powłoka - specjalny program komunikujący użytkownika z systemem operacyjnym,
* system plików - sposób zapisu struktury danych na nośniku.
Jądro systemu operacyjnego
Jądro (ang. kernel) - to podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania. Za zarządzanie procesami odpowiada jądro systemu operacyjnego.
Jądro systemu składa się z trzech programów:
1. programu wstępnej obsługi przerwań, który inicjuje obsługę wszystkich przerwań;
2. programu zwanego dyspozytorem, który przełącza CPU od jednego do drugiego procesu;
3. procedur, które realizują operacje podstawowe służące do komunikacji między procesami. Te procedury wywołuje się w procesach za pośrednictwem odwołań do systemu.
Powłoka
Drugim po zarządzaniu zasobami głównym zadaniem systemu operacyjnego jest przekształcenie surowego sprzętu komputerowego w maszynę która jest łatwiejsza w użyciu. Można na to spojrzeć tak, jak na stworzenie dla użytkownika maszyny wirtualnej, której właściwości użytkowe są wprawdzie inne niż danej maszyny fizycznej, ale znacznie dla niego przydatniejsze.
Maszyna wirtualna
Ponieważ sprzęt komputerowy jest funkcjonalnie skomplikowany, zazwyczaj nie zezwala się programom na bezpośrednie korzystanie z możliwości sprzętu, zmuszając je do korzystania z niego za pośrednictwem SO. Umożliwia to systemowi zachowanie kontroli nad niemal wszystkimi czynnościami komputera i podłączonych do niego urządzeń,
a jednocześnie uwalnia programistów i użytkowników systemów komputerowych od
gruntownej znajomości zasad pracy komputera i podłączonych do niego urządzeń,
zatem można powiedzieć, że system operacyjny tworzy pomost między użytkownikiem a komputerem.
Można powiedzieć, że maszyna wirtualna to środowisko w pamięci wyglądające, z punktu widzenia aplikacji, jak samodzielny komputer.
Co więcej, są dla niego dostępne wszystkie zasoby, w które faktycznie jest wyposażony fizyczny komputer, a które są wymagane przez aplikację podczas jej działania. Przydzielenie aplikacji wymaganych przez nią zasobów jest jednym z zadań Menedżera maszyny wirtualnej.
Menedżer maszyny wirtualnej
Odpowiada za tworzenie i utrzymywanie maszyn wirtualnych, w których są uruchamiane aplikacje i procesy systemowe.
Menedżer maszyny wirtualnej jest odpowiedzialny za świadczenie trzech podstawowych rodzajów usług:
szeregowanie procesów,
stronicowanie pamięci,
obsługa aplikacji wymagających wyłącznego dostępu do zasobów systemowych.
Komunikacja użytkownika z systemem komputerowym
Sposób komunikowania się użytkownika z systemem operacyjnym, nazywamy interfejsem użytkownika (ang. user interface).
Do komunikowania się
użytkownika z systemem jest potrzebny pewien prosty język. Charakter tego języka zależy przede wszystkim od rodzaju systemu operacyjnego. Oczywiście komunikacja między użytkownikiem a systemem nie przebiega tylko w jednym kierunku; musi być również drugi interfejs, który będzie uzupełnieniem poprzedniego i pozwoli systemowi przekazywać informacje powiadamiające użytkownika o tym, co wykonał system.
Interfejs użytkownika
Maszyna wirtualna daje użytkownikowi środki manipulowania programami i danymi w systemie komputerowym. Użytkownik otrzymuje interfejs, za którego pośrednictwem może przekazywać maszynie wirtualnej swoje polecenia – sterować programami. W nowoczesnych systemach operacyjnych stosuje się zarówno języki poleceń jak i języki sterowania pracami. Języki te są zbliżone do języków programowania. Pozwala to porozumiewać się z maszyną w języku wyższego poziomu niż kod rozkazowy maszyny fizycznej i jest łatwiejszy w użyciu.
Taki interfejs może mieć postać języka poleceń – interfejs tekstowy lub powłoki graficznej (systemu wskazującego) –– interfejs graficzny.