Demon
Demon to program komputerowy działający jako proces w tle, zamiast być bezpośrednio kontrolowanym przez interaktywnego użytkownika, często wykonujący zadania na...
W informatyce demon (wymowa 'di-mon') to rodzaj programu, który działa jako proces w tle, zamiast być pod bezpośrednią kontrolą interaktywnego użytkownika. Demony są zazwyczaj uruchamiane podczas startu systemu lub gdy inicjowana jest określona usługa i kontynuują działanie w nieskończoność, czekając na wystąpienie zdarzeń lub wykonując zadania okresowo. Są często używane do świadczenia usług, do których inne programy lub użytkownicy mogą uzyskać dostęp, takich jak serwery WWW (np. Apache httpd), serwery baz danych (np. mysqld) lub usługi sieciowe (np. sshd). Nazwa 'demon' pochodzi z mitologii greckiej, odnosząc się do istoty nadprzyrodzonej, i została przyjęta w informatyce, aby oznaczyć proces, który niestrudzenie pracuje w tle. Demony są zaprojektowane do długotrwałego działania i często są odłączone od jakiegokolwiek terminala kontrolującego, co oznacza, że nadal wykonują się, nawet jeśli użytkownik, który je uruchomił, się wyloguje. Zazwyczaj wykonują zadania na poziomie systemu, zarządzają zasobami lub odpowiadają na żądania sieciowe. W kontekście węzłów blockchain (np. Bitcoin Core lub Geth dla Ethereum), procesy demonów są kluczowe dla utrzymania połączenia sieciowego, walidacji transakcji, synchronizacji księgi blockchain i przekazywania informacji innym węzłom. Te demony nasłuchują przychodzących transakcji i bloków, przetwarzają je zgodnie z zasadami protokołu i aktualizują lokalną kopię rozproszonej księgi.
graph LR
Center["Demon"]:::main
Rel_advanced_propulsion_systems["advanced-propulsion-systems"]:::related -.-> Center
click Rel_advanced_propulsion_systems "/terms/advanced-propulsion-systems"
Rel_function["function"]:::related -.-> Center
click Rel_function "/terms/function"
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
To jak pomocny robot, który cicho pracuje w tle twojego komputera, wykonując ważne zadania, bez potrzeby ciągłego mówienia mu, co ma robić.
🤓 Expert Deep Dive
Procesy demonów są fundamentalne dla działania systemów rozproszonych, w tym sieci blockchain. Zazwyczaj działają jako procesy na poziomie użytkownika, często z podwyższonymi uprawnieniami, i są zarządzane przez system inicjujący systemu operacyjnego (np. systemd, launchd). Kluczowe cechy obejmują odłączenie od terminala kontrolującego (za pomocą wywołań systemowych fork i setsid w systemach typu Unix), ciągłe wykonywanie i reagowanie na zdarzenia systemowe lub I/O sieciowe. W klientach blockchain proces demona jest odpowiedzialny za podstawową logikę węzła: sieci P2P, uczestnictwo w konsensusie, zarządzanie mempoolem transakcji i propagację bloków. Solidne zarządzanie błędami, logowanie i zarządzanie zasobami są kluczowe dla stabilności demona, ponieważ awarie mogą wpłynąć na łączność sieciową i uczestnictwo w konsensusie. Projekt często obejmuje pętle zdarzeń i asynchroniczne I/O, aby efektywnie obsługiwać wiele jednoczesnych połączeń sieciowych i zadań bez blokowania.