Jądro systemu
Aby zabezpieczyć się przed możliwością bezpośredniego sterowania sprzętem przez aplikacje, konstruktorzy procesorów podzielili
zbiór instrukcji procesora na dwie części (niekiedy na więcej, ale pominiemy te przypadki). Jeden zbiór instrakcji. zawierający jedynie instrukcje nie sterujące bezpośrednio sprzętem i odwołujące się do wydzielonych obszarów pamięci, dopuszczono do użytku przez aplikacje (i oczywiście system operacyjny). Drugi zbiór, zawierający instrukcje sterujące sprzętem, lub odwołujące się do dowolnych miejsc w pamięci dopuszczono do użytku tylko przez system operacyjny.
Aby w praktyce zorganizować właściwe użycie tych instrukcji wprowadzono także dwa tryby pracy procesora: tryb użytkownika i tryb jądra. W trybie użytkownika dopuszczone są tylko instrukcje nie sterujące sprzętem i o ogr aniczonym dostępie do pamięci, jest on przeznaczony dla aplikacji. W trybie jądra dopuszczone są wszystkie instnikcje, jest on przeznaczony dla systemu operacyjnego.
Nie cały system operacyjnym musi się wykonywać w tr ybie jądra, wobec czego wyodrębnia się z systemu operacyjnego zbiór podprogramów o żywotnym znaczeniu. Zbiór ten nosi nazwę jądra systemu operacyjnego.
Wywołanie podprogramu jądra przez aplikację (w celu dostępu do zasobów) powoduje natychmiastowe przełączenie się procesora w tryb jądra, w trybie tym wykonuje się wielokrotnie sprawdzony podprogram jądra, który tuż pized powrotem do aplikacji przełącza się z powrotem do trybu użytkownika.
Twórcy nowoczesnych systemów operacyjnych nadają jądra modułową budowę, co między innymi pozwala wydzielić grapy podprogramów zwane sterownikami programowymi we/wy (ang driver) obsługujących konkretne urządzenia i włączać je do jądra zależnie od potrzeb