<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Viết daemon trên Linux (2)</title>
	<atom:link href="http://www.openandfree.org/blog/?feed=rss2&#038;p=48" rel="self" type="application/rss+xml" />
	<link>http://www.openandfree.org/blog/?p=48</link>
	<description>There are 10 types of people in the world: Those who know the binary system and those who don&#039;t</description>
	<lastBuildDate>Tue, 24 Aug 2010 14:37:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Kiên</title>
		<link>http://www.openandfree.org/blog/?p=48&#038;cpage=1#comment-94</link>
		<dc:creator>Kiên</dc:creator>
		<pubDate>Wed, 16 Jul 2008 03:56:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.openandfree.org/blog/?p=48#comment-94</guid>
		<description>Đồng ý. Nếu viết cẩn thận về IPC thì sẽ mất 1 quyển sách dày.</description>
		<content:encoded><![CDATA[<p>Đồng ý. Nếu viết cẩn thận về IPC thì sẽ mất 1 quyển sách dày.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hoang Tran</title>
		<link>http://www.openandfree.org/blog/?p=48&#038;cpage=1#comment-79</link>
		<dc:creator>Hoang Tran</dc:creator>
		<pubDate>Fri, 04 Jul 2008 02:05:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.openandfree.org/blog/?p=48#comment-79</guid>
		<description>3. No, không phải chỉ vậy đâu. 
Hãy nghĩ rằng daemon chỉ giống như một process và mỗi một client connect đến daemon đó là một client process. Như vậy type of connection sẽ chính là cách thức để trao đổi giữa hai process. Người ta gọi đó là Inter-Processs Communication (IPC). Thông thường ở trên Linux có mấy cách trao đổi giữa các process là:
- Signal Handling - Trong PMS mà chú đang làm thì toàn sử dụng cái này thôi
- Message Queue (sys/msg.h)
- Shared Memory hoặc qua pipe
- Socket (Linux Socket, BSD Socket, Winsock, ...): Cái này cho phép giao tiếp qua TCP/IP nên server (daemon) có thể chạy ở một máy chủ và các client process thì chạy ở phía các máy client chứ không nhất thiết trên cùng một máy. 
Như vậy thì để viết một cái skeleton cho daemon thì tốt nhất không bao gồm phần này mà sẽ phụ thuộc vào kiểu IPC mà người thiết kế muốn. Cách viết cũng không cố định cho mỗi kiểu.
Về phương pháp logging thì nên có một blog khác. Log4j là một thư viện tuyệt vời của java đã được port qua .Net và cả cpp nữa. Nhưng với C và Linux lại có những cách log khác nữa. Mỗi cách có những ưu điểm và nhược điểm riêng.</description>
		<content:encoded><![CDATA[<p>3. No, không phải chỉ vậy đâu.<br />
Hãy nghĩ rằng daemon chỉ giống như một process và mỗi một client connect đến daemon đó là một client process. Như vậy type of connection sẽ chính là cách thức để trao đổi giữa hai process. Người ta gọi đó là Inter-Processs Communication (IPC). Thông thường ở trên Linux có mấy cách trao đổi giữa các process là:<br />
- Signal Handling &#8211; Trong PMS mà chú đang làm thì toàn sử dụng cái này thôi<br />
- Message Queue (sys/msg.h)<br />
- Shared Memory hoặc qua pipe<br />
- Socket (Linux Socket, BSD Socket, Winsock, &#8230;): Cái này cho phép giao tiếp qua TCP/IP nên server (daemon) có thể chạy ở một máy chủ và các client process thì chạy ở phía các máy client chứ không nhất thiết trên cùng một máy.<br />
Như vậy thì để viết một cái skeleton cho daemon thì tốt nhất không bao gồm phần này mà sẽ phụ thuộc vào kiểu IPC mà người thiết kế muốn. Cách viết cũng không cố định cho mỗi kiểu.<br />
Về phương pháp logging thì nên có một blog khác. Log4j là một thư viện tuyệt vời của java đã được port qua .Net và cả cpp nữa. Nhưng với C và Linux lại có những cách log khác nữa. Mỗi cách có những ưu điểm và nhược điểm riêng.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
