Ý nghĩa của nội dung của / Proc / net / unix là gì?


11

Trên thiết bị Android của tôi có tệp có tên là nội dung/proc/net/unix của ai không phù hợp với bất kỳ phân phối linux tiêu chuẩn nào (hiển thị các ổ cắm tên miền unix.) Vài dòng đầu tiên:

Num       RefCount Protocol Flags    Type St Inode Path
00000000: 00000002 00000000 00000000 0002 01 5287581 /data/misc/wifi/sockets/wpa_ctrl_789-3189
00000000: 00000003 00000000 00000000 0001 03    6402 /dev/socket/qmux_radio/qmux_client_socket    297
00000000: 00000002 00000000 00010000 0001 01    7180 /dev/.secure_storage/ssd_socket
00000000: 00000002 00000000 00010000 0001 01    6424 /dev/socket/cnd
00000000: 00000002 00000000 00010000 0001 01    6400 @QMulticlient
...

(1) Những cột khác nhau này có nghĩa là gì?


EDIT : Ok tôi đã tìm thấy điều này :

Ở đây 'Num' là số vị trí của bảng nhân, 'RefCount' là số người dùng của ổ cắm, 'Giao thức' hiện luôn là 0, 'Cờ' biểu thị các cờ nhân bên trong giữ trạng thái của ổ cắm. Hiện tại, loại luôn là '1' (ổ cắm gram dữ liệu miền Unix chưa được hỗ trợ trong kernel). 'St' là trạng thái bên trong của ổ cắm và Đường dẫn là đường dẫn bị ràng buộc (nếu có) của ổ cắm.

Tuy nhiên, đó không phải là cập nhật vì chúng tôi có typevà không làm rõ "trạng thái nội bộ" nghĩa là gì.

(2) Cũng ở cuối đường dẫn, đôi khi có một số bổ sung không có tên cột riêng. Đó là gì?

Ngoài ra, nơi mã nguồn kernel tôi có thể mong đợi để tìm nơi này được tạo ra?

EDIT: 2016-04-27 (Đã giải quyết)

Nhờ trả lời bên dưới, tôi đã xác nhận thông qua lsof |grep qmux, rằng số trong cột cuối cùng cho qmux_client_socketscác mục, là PID của quy trình sử dụng nó.

Câu trả lời:


6

Mã tạo tệp này nằm trong unix_seq_show()hàm trong net/unix/af_unix.cnguồn kernel . Nhìn vào include/net/af_unix.hcũng hữu ích, để xem cấu trúc dữ liệu được sử dụng.

Đường dẫn ổ cắm luôn là cột cuối cùng trong đầu ra và nguồn nhân Android khớp với kernel stock về mặt này. Vì vậy, trừ khi tôi nhầm, con số đó trông giống như một cột không thực sự là một cột riêng biệt.

Bạn có thể đặt tên cho các socket miền UNIX thực tế bất cứ thứ gì bạn muốn, miễn là tổng chiều dài đường dẫn nhỏ hơn 108 byte. Vì vậy, bạn không thể đưa ra bất kỳ giả định nào về việc những con đường này sẽ trông như thế nào. Có thể mã không gian người dùng đang chọn các tên đó đang sử dụng một ký tự tab theo sau là một số hoặc thậm chí đệm tên đó theo một độ dài nhất định bằng dấu cách. Để kiểm tra lý thuyết của tôi, bạn có thể thử xem các tệp ổ cắm trong /dev/socket/qmux_radio/.


1
Cảm ơn, điều đó đã làm nó! Không có số ổ cắm được hiển thị dưới /dev/socket/qmux_radio/chỉ có công cụ mở ổ cắm ảo được đặt tên qmux_client_socket. Nhưng sự giúp đỡ của bạn khiến tôi kiểm tra psgiống nhau.
not2qubit
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.