Jądro

Definicja w oczekiwaniu.

Jądro jest podstawowym elementem systemu operacyjnego (OS), działającym jako główny interfejs między sprzętem systemu a aplikacjami oprogramowania działającymi na nim. Zarządza zasobami systemu, w tym procesorami, pamięcią i urządzeniami I/O, i zapewnia niezbędne usługi, takie jak zarządzanie procesami, zarządzanie pamięcią i zarządzanie urządzeniami. Kiedy aplikacja użytkownika potrzebuje dostępu do zasobów sprzętu, wykonuje połączenie systemowe z jądrem. Jądro następnie tłumaczy to żądanie na instrukcje, które sprzęt może zrozumieć i wykonać. Zajmuje się również planowaniem zadań, decydując, które procesy mogą korzystać z procesora i jak długo, oraz zarządza alokacją pamięci, zapewniając, że procesy mają pamięć, której potrzebują, bez

        graph LR
  Center["Jądro"]:::main
  Rel_advanced_propulsion_systems["advanced-propulsion-systems"]:::related -.-> Center
  click Rel_advanced_propulsion_systems "/terms/advanced-propulsion-systems"
  Rel_instruction_set["instruction-set"]:::related -.-> Center
  click Rel_instruction_set "/terms/instruction-set"
  Rel_os_kernel["os-kernel"]:::related -.-> Center
  click Rel_os_kernel "/terms/os-kernel"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Wyjaśnij jak 5-latkowi

Jądro jest jak mózg twojego komputera, mówi wszystkim różnym częściom (jak ekran, klawiatura i programy), jak mają ze sobą współpracować i sprawiedliwie się dzielić.

🤓 Expert Deep Dive

Architektury jądra można szeroko skategoryzować na monolityczne, mikrojądra i hybrydowe. Jądra monolityczne, takie jak Linux, integrują większość usług systemu operacyjnego (zarządzanie procesami, zarządzanie pamięcią, systemy plików, sterowniki urządzeń) w jeden, duży plik wykonywalny. Oferuje to wysoką wydajność dzięki bezpośrednim wywołaniom funkcji, ale może prowadzić do większych baz kodu i potencjalnych problemów ze stabilnością, jeśli jeden komponent zawiedzie. Mikrojądra natomiast przenoszą usługi nieistotne do przestrzeni użytkownika, pozostawiając w jądrze tylko podstawowe funkcje (IPC, podstawowe planowanie, zarządzanie pamięcią). Zwiększa to modularność i bezpieczeństwo, ale wiąże się z narzutem wydajnościowym z powodu częstych przełączeń kontekstu i IPC. Jądra hybrydowe próbują zrównoważyć te kompromisy, włączając więcej usług niż czyste mikrojądro, zachowując jednocześnie pewien stopień modularności. Kluczowe wyzwania w projektowaniu jądra obejmują efektywne planowanie zasobów (np. czas CPU, przepustowość I/O), solidne mechanizmy ochrony pamięci zapobiegające eskalacji uprawnień i uszkodzeniu danych oraz bezpieczne protokoły komunikacji międzyprocesowej.

📚 Źródła