daemon บริการและกระบวนการทางเทคนิคต่างกันอย่างไร


120

ฉันต้องการที่จะรู้ว่าสิ่งที่แตกต่างในพฤติกรรมของภูตกระบวนการและบริการที่ทำงานใน Ubuntu


3
นี่เป็นแบบที่ดีกว่าสำหรับ StackOverflow ซึ่งมีการถามและตอบอย่างสะดวก
Tom Brossman

5
@Tom: ไม่โพสต์ SE ไม่ตอบว่าบริการคืออะไร และโดยรวมแล้วคำตอบที่นี่มีความละเอียดมากขึ้น
Mads Skjern

3
@ TomBrossman โพสต์ที่คุณเชื่อมโยงพูดถึงบริการใด ๆ
Pacerier

4
StackOverflow เป็นเรื่องเกี่ยวกับการเข้ารหัส deamons เป็นสิ่งที่ unix ไม่มีสถานที่ที่ดีกว่าที่จะถามกว่าที่นี่
Mr.Robot

1
ฮะ? คำถามนี้จะถูกปิดได้อย่างไร?
Jacob Vlijm

คำตอบ:


123

Daemons - Daemon ไม่สามารถใช้แทนDisk และ Execution Monitor ( http://www.takeourword.com/TOW146/page4.html ) พวกเขาเป็นกระบวนการที่ทำงานในพื้นหลังและไม่ได้โต้ตอบ พวกเขาไม่มีสถานีควบคุม

พวกเขาดำเนินการบางอย่างในเวลาที่กำหนดไว้ล่วงหน้าหรือตอบสนองต่อเหตุการณ์บางอย่าง ในศูนย์ * ชื่อของภูตสิ้นสุดในd

บริการ - ใน Windows ภูตจะเรียกว่าบริการ

หากคุณสงสัยว่าเหตุใด * NIX จึงมีคำสั่งชื่อบริการมันจะใช้เพื่อเรียกใช้สคริปต์เริ่มต้น (ย่อมาจากการเริ่มต้น scriptrunlevel )

กระบวนการ - กระบวนการเป็นโปรแกรมที่กำลังทำงานอยู่ ในทันทีโดยเฉพาะอย่างยิ่งเวลาก็สามารถเป็นได้ทั้งการทำงาน , การนอนหลับหรือผีดิบ (กระบวนการเสร็จสมบูรณ์ แต่รอให้มันเป็นกระบวนการหลักที่จะรับค่าตอบแทน)

แหล่งที่มาและข้อมูลเพิ่มเติม :


2
กระบวนการมีสถานะเพิ่มเติมอีกเล็กน้อยบน Linux นี่เป็นแผนภาพที่ยอดเยี่ยม: linux-tutorial.info/modules.php?name=MContent&pageid=84
Dietrich Epp

เอกสาร Ubuntu อย่างเป็นทางการชิ้นนี้พูดถึง "บริการ" และฉันคิดว่าพวกเขาไม่ได้พูดถึง Windows! ดังนั้นฉันควรอ่านมันในฐานะ daemon หรือไม่? help.ubuntu.com/community/UbuntuBootupHowto
Mads Skjern

1
ในความเป็นจริง OP ถามเกี่ยวกับบริการภายใน Ubuntu ในขณะที่คำตอบนี้บอกเกี่ยวกับบริการบน Windows เห็นได้ชัดว่าคำตอบของอานนท์นั้นเป็นคำตอบที่ถูกต้อง
Mads Skjern

อ้างถึงserverfault.com/questions/129055/… daemons และบริการไม่เหมือนกัน
Mr.Robot

41
  1. ภูตเป็นพื้นหลังที่ไม่ใช่แบบโต้ตอบโปรแกรม มันถูกถอดออกจากคีย์บอร์ดและการแสดงผลของผู้ใช้แบบโต้ตอบใด ๆ word daemon สำหรับแสดงโปรแกรมพื้นหลังนั้นมาจากวัฒนธรรม Unix มันไม่ได้เป็นสากล

  2. บริการเป็นโปรแกรมที่ตอบสนองต่อการร้องขอจากโปรแกรมอื่น ๆ ผ่านกลไกการสื่อสารระหว่างกระบวนการบางอย่าง (มักจะผ่านเครือข่าย) บริการคือสิ่งที่เซิร์ฟเวอร์ให้ ตัวอย่างเช่นเซอร์วิสการแม็พพอร์ต NFS ถูกจัดเตรียมเป็นเซอร์วิสพอร์ตแม็พที่แยกต่างหากซึ่งถูกใช้เป็นportmapddaemon

    บริการไม่จำเป็นต้องเป็นภูต แต่โดยทั่วไปจะเป็น แอปพลิเคชันผู้ใช้ที่มี GUI สามารถสร้างบริการได้: ตัวอย่างเช่นแอปพลิเคชันแชร์ไฟล์ อีกตัวอย่างหนึ่งคือบริการ X Window ซึ่งเป็นทุกอย่าง แต่อยู่ในพื้นหลัง: ใช้ผ่านหน้าจอคีย์บอร์ดและอุปกรณ์ชี้ตำแหน่งของคุณ มันเป็นบริการเพราะมันตอบสนองต่อการร้องขอจากแอปพลิเคชัน (เพื่อสร้างและจัดการ windows, และอื่น ๆ ), ซึ่งสามารถเป็นที่อื่นในเครือข่าย แต่บริการ X ยังตอบสนองการกดแป้นและการเคลื่อนไหวของเมาส์ทุกครั้ง

  3. กระบวนการคือหนึ่งหรือหลายกระทู้ของการดำเนินการร่วมกับชุดทรัพยากรที่ใช้ร่วมกันที่สำคัญที่สุดคือพื้นที่ที่อยู่และอธิบายไฟล์เปิด กระบวนการสร้างสภาพแวดล้อมสำหรับเธรดการดำเนินการเหล่านี้ซึ่งดูเหมือนว่าพวกเขามีเครื่องทั้งหมดด้วยตนเอง: มันเป็นเครื่องเสมือน

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

    กระบวนการและความสัมพันธ์กับเคอร์เนลและกระบวนการอื่น ๆ อาจถือเป็นนามธรรมที่สำคัญที่สุดในระบบปฏิบัติการยูนิกซ์ ทรัพยากรของระบบถูกแบ่งออกเป็นกระบวนการและเกือบทุกอย่างเข้าใจว่าเกิดขึ้นภายในกระบวนการหนึ่งหรืออีกกระบวนการ


คุณไม่สามารถรับหน่วยความจำของกระบวนการอื่น ๆ ได้โดยการสอบถาม RAM ของระบบโดยตรงหรือไม่
Pacerier

1
โดยทั่วไปกระบวนการไม่สามารถสอบถามโดยตรงกับ RAM ของระบบ ระบบปฏิบัติการสมัยใหม่ใช้พื้นที่ที่อยู่เสมือน ( en.wikipedia.org/wiki/Virtual_address_space ) ซึ่งหมายความว่าแต่ละกระบวนการสามารถโต้ตอบกับมุมมองหน่วยความจำปลอมโดยที่ระบบปฏิบัติการควบคุมสิ่งที่สามารถเข้าถึงได้อย่างแท้จริง
akroy

"กระบวนการสร้างสภาพแวดล้อมสำหรับเธรดการดำเนินการเหล่านี้ซึ่งดูเหมือนว่าพวกเขามีเครื่องทั้งหมดด้วยตนเอง: มันเป็นเครื่องเสมือน" เป็นวิธีที่ดีมากในการวางไม่เคยคิดเกี่ยวกับมันอย่างชัดเจน แต่แน่นอนสิ่งที่เป็นนามธรรมคือการรั่วไหล เช่นเดียวกับกระบวนการที่สามารถวัดเวลา (ซึ่งสามารถทำได้ผ่านตัวประมวลผลได้) สามารถสังเกตได้ว่ามันไม่ได้อยู่คนเดียวบนเครื่อง และแน่นอนว่าระบบปฏิบัติการมีกลไกในการระบุกระบวนการอื่น ๆ
masterxilo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.