Tôi muốn biết rằng sự khác biệt trong hành vi của một daemon, quy trình và dịch vụ đang chạy trong Ubuntu.
Tôi muốn biết rằng sự khác biệt trong hành vi của một daemon, quy trình và dịch vụ đang chạy trong Ubuntu.
Câu trả lời:
Daemons - Daemon không đại diện cho giám sát đĩa và thực thi ( http://www.takeourword.com/TOW146/page4.html ). Chúng là các quá trình chạy trong nền và không tương tác. Họ không có thiết bị đầu cuối kiểm soát.
Họ thực hiện một số hành động nhất định tại thời điểm được xác định trước hoặc để đáp ứng với các sự kiện nhất định. Trong * NIX, tên của daemon kết thúc bằng d .
Dịch vụ - Trong Windows, trình nền được gọi là dịch vụ .
Nếu bạn đang tự hỏi tại sao * NIX có một lệnh có tên là dịch vụ , thì nó chỉ được sử dụng để chạy các tập lệnh init (viết tắt cho việc khởi tạo scriptrunlevel ).
Quy trình - Quy trình là một chương trình đang chạy. Tại một thời điểm cụ thể, nó có thể là chạy , ngủ hoặc zombie (quá trình đã hoàn thành, nhưng chờ quá trình cha mẹ của nó nhận giá trị trả về).
Nguồn và thông tin thêm :
Một daemon là một nền tảng, chương trình không tương tác . Nó được tách ra khỏi bàn phím và hiển thị của bất kỳ người dùng tương tác nào. Từ daemon để biểu thị một chương trình nền là từ văn hóa Unix; nó không phải là phổ quát
Một dịch vụ là một chương trình mà đáp ứng các yêu cầu từ các chương trình khác qua một số cơ chế giao tiếp liên quá trình (thường là qua mạng). Một dịch vụ là những gì một máy chủ cung cấp. Ví dụ, dịch vụ ánh xạ cổng NFS được cung cấp dưới dạng dịch vụ portmap riêng, được triển khai dưới dạng portmapd
daemon.
Một dịch vụ không phải là một daemon, nhưng thường là vậy. Một ứng dụng người dùng có GUI có thể có một dịch vụ được tích hợp trong đó: ví dụ: ứng dụng chia sẻ tệp. Một ví dụ khác là dịch vụ X Window, là bất cứ thứ gì ngoại trừ trong nền: nó chiếm lấy màn hình, bàn phím và thiết bị trỏ của bạn. Đây là một dịch vụ vì nó đáp ứng các yêu cầu từ các ứng dụng (để tạo và thao tác với windows, et cetera), thậm chí có thể ở bất kỳ nơi nào khác trên mạng. Nhưng dịch vụ X cũng đáp ứng mọi cử động gõ phím và chuột của bạn.
Một quy trình là một hoặc nhiều luồng thực thi cùng với bộ tài nguyên được chia sẻ của chúng, trong đó quan trọng nhất là không gian địa chỉ và mô tả tệp mở. Một quá trình tạo ra một môi trường cho các luồng thực thi này trông giống như chúng có toàn bộ máy: đó là một máy ảo.
Bên trong một quy trình, tài nguyên của các quy trình khác và của hạt nhân là vô hình và không thể truy cập trực tiếp (ít nhất là không phải là một luồng đang thực thi mã không gian người dùng). Ví dụ, không có cách nào để tham khảo các tệp đang mở của một quá trình khác, hoặc không gian bộ nhớ của chúng; như thể những thứ đó thậm chí không tồn tại.
Quá trình và mối quan hệ của nó với kernel và các tiến trình khác, có lẽ tạo thành sự trừu tượng hóa quan trọng nhất trong các hệ điều hành giống như Unix. Các tài nguyên của hệ thống được phân chia thành các quy trình và gần như mọi thứ được hiểu là xảy ra bên trong quy trình này hay quy trình khác.