/ Proc / net / unix içeriğinin anlamı nedir?


11

Android cihazımda, /proc/net/unixkimin içeriği herhangi bir standart linux dağıtımına (unix alan soketlerini gösteren) uymayan adlı bir dosya var İlk birkaç satır:

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) Bu farklı sütunlar ne anlama geliyor?


DÜZENLEME : Tamam buldum bu :

Burada 'Num' çekirdek tablo yuvası numarasıdır, 'RefCount' soketin kullanıcı sayısıdır, 'Protokol' şu anda her zaman 0'dır, 'Bayraklar' soketin durumunu tutan iç çekirdek bayraklarını temsil eder. Şu anda, tür her zaman '1'dir (Unix alan veri-gram soketleri henüz çekirdekte desteklenmemektedir). 'St' soketin dahili durumudur ve Yol soketin bağlı yoludur (varsa).

Ancak bu güncel typedeğil ve “iç devlet” in ne anlama geldiğini açıklığa kavuşturmamak.

(2) Ayrıca yolun sonunda, bazen kendi sütun adı olmayan ek bir sayı vardır. O nedir?

Buna ek olarak, çekirdeğin kaynak kodunda bunun nerede oluşturulduğunu bulmayı bekleyebilirim?

DÜZENLEME: 2016-04-27 (Çözüldü)

Aşağıdaki cevap sayesinde lsof |grep qmux, qmux_client_socketsöğeler için son sütundaki sayının, onu kullanan sürecin PID'si olduğunu doğruladım .

Yanıtlar:


6

Bu dosyayı oluşturan kod olduğu unix_seq_show()işlevin net/unix/af_unix.cçekirdek kaynak . Baktığımızda include/net/af_unix.hda yararlıdır kullanımda veri yapılarını görmek için.

Soket yolu her zaman çıktıdaki son sütundur ve Android çekirdek kaynağı bu bağlamda stok çekirdeğiyle eşleşir . Yanılmıyorsam, bir sütuna benzeyen sayı aslında ayrı bir sütun değildir.

Toplam yol uzunluğu 108 bayttan az olduğu sürece, UNIX etki alanı yuvalarını pratik olarak istediğiniz herhangi bir adla adlandırabilirsiniz. Dolayısıyla, bu yolların nasıl görüneceğine dair herhangi bir varsayımda bulunamazsınız. Bu adları seçen kullanıcı alanı kodunun bir sekme karakteri ve ardından bir sayı kullanması, hatta adı boşluklarla belirli bir uzunlukta doldurması mümkündür. Teoremi test etmek için içindeki soket dosyalarına bakmayı deneyebilirsiniz /dev/socket/qmux_radio/.


1
Teşekkürler, başardı! /dev/socket/qmux_radio/Yalnızca adlı sanal soket açıcı altında görüntülenen soket numarası yok qmux_client_socket. Ama yardımın bana pshangisinin aynı olduğunu kontrol etmemi sağladı .
not2qubit
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.