לדלג לתוכן

Daemon

מתוך ויקיפדיה, האנציקלופדיה החופשית
השדון, הסמל של מערכת FreeBSD וכמה מערכות BSD אחרות

במערכות הפעלה יוניקס ודמויות-יוניקס, ובמערכות הפעלה אחרות התומכות בריבוי משימות, daemon (דימון) היא תוכנית מחשב שרצה כתהליך רקע, להבדיל מתוכניות הנמצאות תחת שליטתו הישירה של משתמש אינטראקטיבי. בדרך כלל מערכות מפעילות דימונים בזמן האתחול, ולרוב הם משרתים פונקציות כגון תגובה לבקשות רשת, לפעילות חומרה, או לתוכניות אחרות על ידי ביצוע של משימה כלשהי. דימונים יכולים גם להגדיר תצורה של חומרה (כמו udevd בחלק ממערכות GNU/Linux), להריץ משימות מתוזמנות (כמו cron) ולבצע מגוון משימות אחרות.

בסביבות יוניקס, תהליך האב של daemon הוא לעיתים קרובות, אבל לא תמיד, התהליך init. בדרך כלל תהליכים הופכים לדימונים על ידי יצירת תהליך בן באמצעות קריאת המערכת fork, ואז מיידית סגירה של תהליך האב ובכך גורמים לתהליך init לאמץ את התהליך הבן. בנוסף לכך, ה-daemon או מערכת ההפעלה בדרך כלל חייבים לבצע פעולות נוספות כגון ניתוק התהליך מכל מסוף (tty) ששולט בו. לעיתים קרובות פרוצדורות כאלה ממומשות ברוטינות נוחוּת שונות, כגון (daemon(3 ביוניקס.

לרוב, השמות של דימונים מסתיימים באות d: לדוגמה, syslogd הוא daemon המממש את שירות הרישום (logging) של המערכת, ו-sshd הוא תהליך המטפל בבקשות התחברות נכנסות ב-SSH.

אטימולוגיה

[עריכת קוד מקור | עריכה]

המילה daemon היא איות אלטרנטיבי למילה האנגלית - demon (שֵד).
המושג daemon הוטבע בידי מתכנתים מהפרויקט MAC ב-MIT. הם אימצו את השם מהשד של מקסוול (Maxwell's demon), יצור דמיוני מניסוי מחשבתי מפורסם, הפועל תמיד ברקע וממיין מולקולות. מערכות יוניקס ירשו את הטרמינולוגיה הזאת. דימונים הם גם דמויות בין אל לאדם במיתולוגיה היוונית, שטיפלו במשימות שאסור היה להטריח בהן את האלים (כלומר דימון הוא סוג של רוח טובה ולא רוח רעה כמו שד). מערכת ההפעלה BSD וכמה מנגזרותיה אימצו את ה-daemon כקמע שלהן, אם כי הקמע הזה הוא וריאציה של השדים המופיעים בעבודות אומנות נוצריות.

מימוש ב-MS-DOS ו-Microsoft Windows

[עריכת קוד מקור | עריכה]

במערכת ההפעלה Microsoft DOS, תוכניות דמויות-דימונים מומשו כתוכניות TSR. במשפחת מערכות ההפעלה Windows NT של מיקרוסופט, תוכניות מסוג Windows service מבצעות את הפונקציות של דימונים. הן רצות כתהליכים שבדרך כלל לא יוצרים אינטראקציה עם המסך, המקלדת והעכבר, וניתנים להפעלה על ידי מערכת ההפעלה בזמן האתחול. ב-Windows 2000 ובגרסאות מאוחרות יותר, services (שירותים) ניתנים להגדרה, להפעלה ולעצירה ידנית דרך לוח הבקרה (Control Panel), או דרך שורות הפקודה net start ו-net stop.

עם זאת, כל יישום Windows יכול לתפקד כ-daemon, לא רק services, וחלק מהדימונים ל-Windows יכולים לרוץ כתהליכים רגילים.