ภูต (คอมพิวเตอร์)

จากวิกิพีเดีย สารานุกรมเสรี
ข้ามไปที่การนำทาง ข้ามไปที่การค้นหา
ส่วนประกอบของบางลินุกซ์ สภาพแวดล้อมเดสก์ทอปที่มีภูต ได้แก่D-Bus , NetworkManager (ที่นี่เรียกว่าunetwork ) PulseAudio ( usound ) และAvahi

ในการทำงานแบบ multitaskingคอมพิวเตอร์ระบบปฏิบัติการเป็นภูต ( / d i เมตรən /หรือ/ d เมตรən / ) [1]เป็นโปรแกรมคอมพิวเตอร์ที่ทำงานเป็นกระบวนการพื้นหลังแทนที่จะอยู่ภายใต้การควบคุมโดยตรงของผู้ใช้แบบโต้ตอบ . ตามเนื้อผ้า ชื่อโปรเซสของ daemon จะลงท้ายด้วยตัวอักษรdเพื่อชี้แจงว่ากระบวนการนี้เป็น daemon จริงๆ และสำหรับการแยกความแตกต่างระหว่าง daemon กับโปรแกรมคอมพิวเตอร์ปกติ ตัวอย่างเช่นsyslogdเป็น daemon ที่ใช้สิ่งอำนวยความสะดวกในการบันทึกระบบ และsshdเป็น daemon ที่ให้บริการการเชื่อมต่อ SSHขาเข้า

ในสภาพแวดล้อมUnix กระบวนการพาเรนต์ของ daemon มักจะเป็นกระบวนการเริ่มต้นแต่ไม่เสมอไป daemon มักจะถูกสร้างขึ้นโดยกระบวนการfork โปรเซสลูกแล้วออกจากการทำงานทันที ซึ่งทำให้ init นำโปรเซสลูกมาใช้ หรือโดยกระบวนการ init ที่เรียกทำงาน daemon โดยตรง นอกจากนี้ daemon ที่เรียกใช้โดยการ forking และ exit โดยทั่วไปจะต้องดำเนินการอื่นๆ เช่น การแยกกระบวนการออกจากเทอร์มินัลการควบคุม(tty) ขั้นตอนดังกล่าวมักใช้ในกิจวัตรอำนวยความสะดวกต่างๆ เช่นdaemon(3)ใน Unix

ระบบมักจะเริ่มต้น daemons ในเวลาบูตซึ่งจะตอบสนองต่อการร้องขอของเครือข่าย กิจกรรมของฮาร์ดแวร์ หรือโปรแกรมอื่นๆ โดยดำเนินการบางอย่าง Daemons เช่นcronอาจทำงานที่กำหนดไว้ตามเวลาที่กำหนด

คำศัพท์

คำประกาศเกียรติคุณโดยโปรแกรมเมอร์ที่เอ็มไอทีโครงการ MAC ตามคำกล่าวของFernando J. Corbatóผู้ซึ่งทำงานในProject MACในปี 1963 ทีมงานของเขาเป็นคนแรกที่ใช้คำว่า daemon ซึ่งได้รับแรงบันดาลใจจากปีศาจของ Maxwellซึ่งเป็นตัวแทนจินตภาพในวิชาฟิสิกส์และอุณหพลศาสตร์ที่ช่วยจัดเรียงโมเลกุล โดยกล่าวว่า "เราเริ่มต้นอย่างเพ้อฝัน เพื่อใช้คำว่า daemon เพื่ออธิบายกระบวนการเบื้องหลังที่ทำงานอย่างไม่รู้จักเหน็ดเหนื่อยเพื่อทำงานระบบ" [2] ระบบ Unixสืบทอดคำศัพท์นี้ อสูรของแมกซ์เวลล์สอดคล้องกับการตีความของภูตในตำนานเทพเจ้ากรีกว่าเป็นสิ่งมีชีวิตเหนือธรรมชาติที่ทำงานอยู่เบื้องหลัง อย่างไรก็ตามBSDและบางส่วนของอนุพันธ์ได้นำปีศาจคริสเตียนเป็นของมิ่งขวัญมากกว่าภูตกรีก [ ต้องการการอ้างอิง ]

ในความหมายทั่วไป daemon เป็นรูปแบบที่เก่ากว่าของคำว่า "ปีศาจ" จากภาษากรีก δαίμων ในคู่มือการดูแลระบบ Unix Evi Nemethระบุสิ่งต่อไปนี้เกี่ยวกับภูต: [3]

หลายคนถือเอาคำว่า "ภูต" กับคำว่า "ปีศาจ" หมายความชนิดของซาตานเชื่อมต่อระหว่างระบบปฏิบัติการยูนิกซ์และนรกนี่เป็นความเข้าใจผิดอย่างมหันต์ "Daemon" เป็น "ปีศาจ" ที่เก่ากว่ามาก daemons ไม่มีอคติเฉพาะต่อความดีหรือความชั่ว แต่ใช้เพื่อช่วยกำหนดลักษณะหรือบุคลิกภาพของบุคคลกรีกโบราณแนวคิด 'ของ 'ภูตส่วนตัว' ก็คล้ายคลึงกับแนวคิดที่ทันสมัยของ 'เจ้าแม่' - eudaemoniaเป็นรัฐของถูกช่วยหรือป้องกันโดยจิตวิญญาณกรุณา ตามกฎแล้ว ระบบ UNIX ดูเหมือนจะเต็มไปด้วยภูตและปีศาจ

ลักษณะพิเศษเพิ่มเติมของสัญลักษณ์ในตำนานคือภูตเป็นสิ่งที่มองไม่เห็นแต่มีอยู่เสมอและทำงานตามความประสงค์ของมัน ในTheagesประกอบกับเพลโต , โสกราตีสอธิบายภูตส่วนตัวของเขาเองที่จะเป็นสิ่งที่ชอบแนวคิดที่ทันสมัยของจิตสำนึกทางศีลธรรม: "ความโปรดปรานของพระเจ้าได้ให้ฉันเป็นของขวัญที่ยิ่งใหญ่ซึ่งไม่เคยทิ้งฉันตั้งแต่วัยเด็กของฉันมันเป็น. เสียงที่เมื่อได้ยินแล้ว ขัดขวางข้าพเจ้าจากสิ่งที่ข้าพเจ้ากำลังจะทำ และไม่เคยชักชวนข้าพเจ้าเลย" [ ต้องการการอ้างอิง ]

ในปัจจุบันการใช้คำภูตเด่นชัด/ d i เมตรən / DEE -mənในบริบทของซอฟแวร์คอมพิวเตอร์, การออกเสียงเดิม/ d i เมตรən /ได้ลอยไป/ d เมตรən / วัน -mənสำหรับลำโพงบาง[1]

เงื่อนไขทางเลือกสำหรับdaemonคือบริการ (ใช้ใน Windows ตั้งแต่ Windows NT เป็นต้นไป — และต่อมาใน Linux) งานที่เริ่มต้น (IBM z/OS ), [4]และghost job (XDS UTS )

หลังจากที่มีการใช้คำนี้กับคอมพิวเตอร์ คำนั้นก็ถูกทำให้เป็นbackronymสำหรับ Disk And Execution MONitor [5]

ภูตที่เชื่อมต่อกับเครือข่ายคอมพิวเตอร์เป็นตัวอย่างของการให้บริการเครือข่าย

การใช้งาน

ระบบคล้ายยูนิกซ์

ในความหมายทางเทคนิคอย่างเคร่งครัด กระบวนการของระบบที่เหมือน Unix คือ daemon เมื่อกระบวนการหลักสิ้นสุดลง และ daemon ถูกกำหนดกระบวนการinit (กระบวนการหมายเลข 1) เป็นกระบวนการหลัก และไม่มีเทอร์มินัลควบคุม อย่างไรก็ตาม โดยทั่วไปแล้ว daemon อาจเป็นกระบวนการพื้นหลังใดๆ ไม่ว่าจะเป็นกระบวนการลูกของกระบวนการ init หรือไม่ก็ตาม

บนระบบที่เหมือน Unix วิธีการทั่วไปสำหรับกระบวนการที่จะกลายเป็น daemon เมื่อกระบวนการเริ่มต้นจากบรรทัดคำสั่งหรือจากสคริปต์เริ่มต้น เช่นสคริปต์initหรือสคริปต์SystemStarterประกอบด้วย:

  • ทางเลือกในการลบตัวแปรที่ไม่จำเป็นออกจากสภาพแวดล้อม
  • ดำเนินการเป็นงานพื้นหลังโดยการฟอร์กและออก (ในพาเรนต์ "ครึ่ง" ของทางแยก) สิ่งนี้ทำให้พาเรนต์ของ daemon (เชลล์หรือกระบวนการเริ่มต้น) รับการแจ้งเตือนการออกและดำเนินการดำเนินการตามปกติต่อไป
  • การแยกตัวออกจากเซสชันที่เรียกใช้ ซึ่งมักจะทำได้โดยการดำเนินการเพียงครั้งเดียวsetsid():
    • dissociating จากการควบคุมTTY
    • การสร้างเซสชันใหม่และกลายเป็นผู้นำเซสชันของเซสชันนั้น
    • การเป็นผู้นำกลุ่มกระบวนการ
  • หาก daemon ต้องการให้แน่ใจว่าจะไม่ได้รับ tty การควบคุมใหม่แม้โดยบังเอิญ (ซึ่งเกิดขึ้นเมื่อผู้นำเซสชันที่ไม่มี tty ควบคุมเปิด tty อิสระ) ก็อาจแยกและออกอีกครั้ง ซึ่งหมายความว่าจะไม่เป็นหัวหน้าเซสชันในเซสชันใหม่อีกต่อไป และไม่สามารถรับ tty ที่ควบคุมได้
  • การตั้งค่าไดเรกทอรีราก ( / ) ในขณะที่ปัจจุบันไดเรกทอรีการทำงานเพื่อให้กระบวนการไม่ให้ไดเรกทอรีใด ๆ ในการใช้งานที่อาจจะอยู่ในการติดตั้งระบบไฟล์ (ปล่อยให้มันเป็นเดินเท้า)
  • การเปลี่ยนumaskเป็น 0 เพื่ออนุญาตopen(), creat(), และการเรียกระบบปฏิบัติการอื่น ๆ เพื่อจัดเตรียมมาสก์การอนุญาตของตนเองและไม่ต้องพึ่งพา umask ของผู้โทร
  • การเปลี่ยนเส้นทางfile descriptors 0, 1 และ 2 สำหรับสตรีมมาตรฐาน ( stdin , stdoutและstderr ) เป็น/dev/nullหรือlogfileและปิด file descriptor อื่นๆ ทั้งหมดที่สืบทอดมาจากกระบวนการพาเรนต์

หากกระบวนการเริ่มต้นโดยsuper-server daemon เช่นinetd , launchdหรือsystemd super-server daemon จะทำหน้าที่เหล่านั้นสำหรับกระบวนการ[6] [7] [8]ยกเว้น daemons แบบเก่าที่ไม่ แปลงให้ทำงานภายใต้systemdและระบุเป็นประเภท = ฟอร์ก[8]และ "มัลติเธรด" เซิร์ฟเวอร์ดาต้าภายใต้inetd [6]

MS-DOS

ในสภาพแวดล้อมMicrosoft DOSโปรแกรมที่เหมือนภูตถูกนำไปใช้เป็นซอฟต์แวร์ยุติและอยู่อาศัย (TSR)

Windows NT

ในระบบ Microsoft Windows NTโปรแกรมที่เรียกว่าWindows services จะทำหน้าที่ของ daemons พวกมันทำงานเป็นกระบวนการ โดยปกติแล้วจะไม่โต้ตอบกับจอภาพ คีย์บอร์ด และเมาส์ และระบบปฏิบัติการอาจเปิดใช้งานได้ในขณะบู๊ต ในWindows 2000และรุ่นที่ใหม่กว่า บริการ Windows จะได้รับการกำหนดค่าและเริ่มและหยุดด้วยตนเองโดยใช้แผงควบคุม โปรแกรมควบคุม/กำหนดค่าเฉพาะ คอมโพเนนต์ Service Controller ของService Control Manager ( คำสั่งsc ) คำสั่งnet startและnet stopหรือPowerShellระบบการเขียนสคริปต์

อย่างไรก็ตาม แอปพลิเคชัน Windows ใดๆ สามารถทำหน้าที่เป็น daemon ไม่ใช่แค่บริการเท่านั้น และ Windows daemon บางตัวมีตัวเลือกให้ทำงานเป็นกระบวนการปกติ

Mac OS แบบคลาสสิกและ macOS

ในMac OS แบบคลาสสิกฟีเจอร์และบริการเสริมมีให้โดยไฟล์ที่โหลดตอนเริ่มต้นซึ่งแก้ไขระบบปฏิบัติการ เหล่านี้เป็นที่รู้จักกันเป็นส่วนขยายระบบและแผงควบคุม เวอร์ชันต่อมาของ Mac OS แบบคลาสสิกได้เพิ่มสิ่งเหล่านี้ด้วยแอปพลิเคชันพื้นหลังแบบไร้หน้า : แอปพลิเคชันปกติที่ทำงานในพื้นหลัง สำหรับผู้ใช้ สิ่งเหล่านี้ยังคงถูกอธิบายว่าเป็นส่วนขยายของระบบปกติ

macOSซึ่งเป็นระบบ Unixใช้ daemons โปรดทราบว่า macOS ใช้คำว่า "บริการ" เพื่อกำหนดซอฟต์แวร์ที่ทำหน้าที่ที่เลือกจากเมนู Servicesแทนที่จะใช้คำนั้นสำหรับ daemons เช่นเดียวกับ Windows

ดูเพิ่มเติม

อ้างอิง

  1. a b Eric S. Raymond . "ภูต" . ไฟล์ศัพท์แสง . สืบค้นเมื่อ2008-10-22 .
  2. ^ "ที่มาของคำว่าภูต" .
  3. ^ "ภูต BSD" . Freebsd.org . สืบค้นเมื่อ2008-11-15 .
  4. ^ "ไอบีเอ็มศูนย์ความรู้ - คำศัพท์ของ z / OS เงื่อนไขและตัวย่อ" ไอบีเอ็ม .
  5. ^ "นิยามภูตผีปีศาจ" . www.linfo.org .
  6. ^ a b inetd(8)  –  FreeBSD System Manager's Manual
  7. ^ launchd.plist(5)  – คู่มือรูปแบบไฟล์ดาร์วินและ macOS
  8. ^ a b "systemd.service" . freedesktop.org สืบค้นเมื่อ25 สิงหาคม 2555 .

ลิงค์ภายนอก