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.