banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Thắc mắc về (Domain) sockets ,Named pipes trong phân loại file  XML
  [Question]   Thắc mắc về (Domain) sockets ,Named pipes trong phân loại file 16/03/2011 15:14:35 (+0700) | #1 | 233265
mthien
Member

[Minus]    0    [Plus]
Joined: 19/12/2010 10:54:50
Messages: 14
Offline
[Profile] [PM]
Em đang tìm hiểu về phân loại file trong Linux , trong tài liệu em đọc có nhắc tới 2 loại file đó là: (Domain) sockets ,Named pipes . Nhưng hiện tại em chưa tìm thấy phân tích và ví dụ cụ thể cho 2 loại file kể trên. Hy vọng mọi người có thể giải thích về 2 thuật ngữ này qua các khái niệm và ví dụ rõ rằng, hoặc cho em 1 link tài liệu. Em cảm ơn trước ạ. smilie
[Up] [Print Copy]
  [Question]   Thắc mắc về (Domain) sockets ,Named pipes trong phân loại file 18/03/2011 13:43:44 (+0700) | #2 | 233422
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Mình đưa ra ví dụ nhé:

- Liệt kê các Unix sockets trên máy bạn với netstat -x
- Nếu bạn có cài MySQL thì thử thay đổi đường dẫn socket (trong my.cnf) đi rồi kết nối từ command line với mysql -u <username> -p xem được không nhé.

- Về named pipes, mở 3 cái Terminal rồi lần lượt chạy:
  • trên Terminal 1: mkfifo pipe
  • trên Terminal 2: whoami > pipe
  • trên Terminal 3: cat < pipe
Let's build on a great foundation!
[Up] [Print Copy]
  [Question]   Thắc mắc về (Domain) sockets ,Named pipes trong phân loại file 21/03/2011 10:22:31 (+0700) | #3 | 233628
[Avatar]
Michael_Scotfield
Member

[Minus]    0    [Plus]
Joined: 12/10/2009 02:23:16
Messages: 43
Location: Fox River Prison
Offline
[Profile] [PM]
Phần 1 : em thử comment phần socket sử dụng mysql.sock của mysql thì thấy vẫn connect bình thường.

Theo em hiểu thì unix socket domain là những socket để các service trong 1 máy giao tiếp với nhau. Vậy thì khi đóng socket của mysql thì ta sẽ không connect được tới mysql.

Phần 2: sau khi test thì em nhận thấy named pipes giống như 1 file tạm, nhưng khác ở chỗ là ta có thể truyền command thông qua named pipes còn file tạm thì ko được.
Breaking!!!!!
[Up] [Print Copy]
  [Question]   Thắc mắc về (Domain) sockets ,Named pipes trong phân loại file 23/03/2011 22:22:38 (+0700) | #4 | 233855
Mr.Khoai
Moderator

Joined: 27/06/2006 01:55:07
Messages: 954
Offline
[Profile] [PM]

Michael_Scotfield wrote:
Phần 1 : em thử comment phần socket sử dụng mysql.sock của mysql thì thấy vẫn connect bình thường.

Theo em hiểu thì unix socket domain là những socket để các service trong 1 máy giao tiếp với nhau. Vậy thì khi đóng socket của mysql thì ta sẽ không connect được tới mysql.

Phần 2: sau khi test thì em nhận thấy named pipes giống như 1 file tạm, nhưng khác ở chỗ là ta có thể truyền command thông qua named pipes còn file tạm thì ko được. 


Michael_Scotfield,

named piped, socket vân vân chỉ các phương thức cho các process giao tiếp với nhau trên cùng một máy thông qua files. Mỗi loại có các điểm mạnh yếu khác nhau:

Unix Domain Socket tuy là một file, nhưng vẫn phải được sử dụng như là một socket. Các process phải sử dụng network API để open/read/write đến file đó. Nếu process đó được thiết kế như một network service (giống như mysql vậy) thì các hàm đọc/ghi dữ liệu có thể sử dụng chung network API mà không cần bận tâm đó là socket thiệt (TCP/IP socket) hay là socket file. Chỉ có các hàm open/close mới cần phải cụ thể cho từng trường hợp.

Named Pipe giống như cái ống nước, một đầu chảy vào, một đầu chảy ra. Bạn dùng cái gì "đổ vào" cũng được, và dùng cái gì hứng nước chảy ra cũng được. Dữ liệu được truyền đi theo dạng stream. Named Pip chỉ được một chiều. Nếu muốn truyền dữ liệu theo chiều ngược lại, mình phải làm thêm một cái pipe nữa.

Vậy file tạm khác named pipe ở điểm nào? File tạm không phải ống nước mà chỉ là một thùng nước tạm. Bạn đổ nước vào rồi phải "save" thì mới có thể lấy nước ra được. Một điểm khác biệt quan trọng nữa là file thông thường khi được mở, process đó thường exclusive lock, nghĩa là cả file đều bị lock. Một process khác không thể mở file đó để đọc trừ khi process đầu unlock file tạm. Named Pipe thì khác, cả hai process có thể dùng mở một named piped (một ghi, một đọc) để truyền dữ liệu cho nhau dễ dàng hơn.

khoai
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|