On 24/09/2010 05:55, Nguyen Thai Ngoc Duy wrote: > >>> "Everything" thì chắc chắn cả hai đều sai. Network interface trong >>> Linux không phải là "file". Gần mức "everything is a file" nhất chắc >>> là Plan 9. >>> >> Hiểu thoáng hơn một chút có lẽ coi network interface là một số những "file" >> trong /proc/net/ >> Không rõ hiểu vậy có đúng không? >> > Không. Socket không phải là file trong Linux. Điều khiển network > interface (eth0, eth1, lo...) hoặc thông qua netlink, hoặc ioctl _trên > socket handle_. Hoàn toàn không có dính đến file. Kiến trúc net của > Linux, nếu nhớ không nhầm, cũng không sử dụng VFS như block hay char > device vẫn dùng. > Mình tham gia tranh luận một tý. Socket là kiểu thứ năm trong file system của UNIX và do BSD thêm vào [1] (trước đó chỉ có 4 kiểu là ordinary-data file, directory, special-device file và symbolic link). Ngoài ra API của socket cũng có signature giống như API của file. Socket cũng có cơ chế bảo vệ giống như file. Vì thế socket là một mở rộng của FS trong UNIX.
Theo quan điểm của mình thì có lẽ nói "almost things in UNIX/Linux are file" chắc chắn là không ngoa. Cách nói như Hưng thì đúng là trong jargon của "Unixians" đấy. Các bạn có thể xem ở [2] và [3]. [1] http://en.wikipedia.org/wiki/Berkeley_sockets [2] http://en.wikipedia.org/wiki/Unix_architecture [3] http://ph7spot.com/musings/in-unix-everything-is-a-file Quang _______________________________________________ POST RULES : http://wiki.hanoilug.org/hanoilug:mailing_list_guidelines _______________________________________________ HanoiLUG mailing lists: http://lists.hanoilug.org/ HanoiLUG wiki: http://wiki.hanoilug.org/ HanoiLUG blog: http://blog.hanoilug.org/
