Dalam symlink yang menunjuk ke '127.0.1.1:+xxxxx', untuk apa karakter plus?

52

Pada sistem file Linux saya, sebuah symlink menunjuk ke 127.0.1.1:+xxxxx.

Mengapa tanda plus? Mungkinkah ada juga minus? Kenapa tidak adil 127.0.1.1:xxxxx?

Metode saya
sumber
Apakah tautan simbolis ini dalam / proc?
Yosua
4
@ Yosua: Lebih mungkin di bawah ~ / .mozilla / atau serupa. Firefox / Thunderbird, dan iirc Steam, gunakan symlink seperti itu untuk mengunci.
grawity
2
Apakah xxxxx angka, atau karakter xxxxx?
Mawg
2
Mungkin tidak berhubungan tetapi hanya untuk informasi. Dalam beberapa klien IRC tanda plus sebelum port ada di sana untuk menunjukkan server jauh menggunakan SSL / TLS.
eKKiM

Jawaban:

93

Tautan simbolik yang tidak mengarah ke file tidak memiliki arti umum sama sekali. Dalam hal ini mungkin ID proses, atau port dengan beberapa protokol khusus yang diucapkan di atasnya, atau pengidentifikasi lainnya. Itu semua tergantung pada program apa yang membuatnya.

Perangkat lunak yang membuat tautan ini hanya mengambil keuntungan dari fakta bahwa 1) target symlink mungkin tidak ada atau bahkan omong kosong total; 2) membuat symlink adalah operasi atom sepenuhnya-syscall sepenuhnya (seperti membaca targetnya), tidak seperti membuat file biasa yang membutuhkan setidaknya 3 panggilan sistem terpisah.

Dengan demikian pembuatan symlink dapat disalahgunakan sebagai cara mengunci (memastikan satu contoh program) bahkan ketika mekanisme lain mungkin tidak dapat diandalkan. Program tidak perlu symlink untuk benar-benar menyelesaikan ke file nyata: itu hanya peduli apakah membuat tautan berhasil, atau apakah gagal karena sudah ada.

grawity
sumber
5
"* tidak seperti membuat file biasa yang membutuhkan setidaknya 3 panggilan sistem terpisah. *" - Bisakah Anda mengklarifikasi? Apakah yang Anda maksud fopen, fwritedan fclose?
Nic Hartley
11
@NicHartley: Panggilan sistem adalah open(atau mungkin creatdalam perangkat lunak lama) write,, dan close, bukan versi f * yang disediakan stdio. Tapi, ya, Anda harus melakukan setidaknya opendan writeuntuk membuat file dan memasukkan sesuatu yang bermakna ke dalamnya. Sekarang jika Anda ingin beberapa kode untuk "mencoba membuatnya, jika berhasil, masukkan beberapa informasi ke dalamnya, jika tidak, baca beberapa informasi dari itu", proses kedua hanya bisa mencoba readsebelum proses pertama memiliki kesempatan untuk melakukannya write. symlinkhindari itu; baik berhasil dan membuat tautan, atau gagal dan yakin readlinkmemiliki informasi untuk Anda.
Guntram Blohm mendukung Monica
"... dapat disalahgunakan sebagai cara ..." Apakah penyalahgunaan ini seperti dalam "digunakan dengan cara yang tidak dimaksudkan untuk digunakan" atau "digunakan dengan cara yang seharusnya tidak digunakan"?
The Guy with The Hat
22

Sejauh yang saya tahu "+" berarti bahwa angka setelah IP ("xxxxx") mengacu pada "ID proses" (bukan port yang biasanya menggunakan notasi [alamat IP]: [portnumber]).

Mungkin saja "notasi" ini (tidak yakin saya akan menyebutnya "notasi" karena saya tidak tahu dokumentasi "resmi") merujuk pada sesuatu yang lain jika digunakan oleh aplikasi tertentu - tetapi sekali lagi, itu selalu menjadi kemungkinan tidak hanya dengan symlink. Satu-satunya kasus yang saya ketahui (dan dapat ditemukan dengan pencarian yang tidak terlalu luas) "+ XXXX" selalu merujuk ke ID proses.

Albin
sumber
1
Saya baru saja memeriksanya. Dalam kasus saya itu benar-benar terjadi.
myMethod
1
Apakah ada dokumentasi format ini di suatu tempat yang bisa Anda tautkan?
David Z
1
Tidak yakin, saya hanya mengingatnya dari pengalaman.
Albin
2
Sepertinya Anda berbicara tentang symlink di direktori khusus, suka /procatau /dev. Bisakah Anda menjelaskan untuk apa symlink ini digunakan?
Barmar
4
Ini adalah pertama kalinya saya melihat notasi ini sama sekali, jadi saya terkejut mendengar Anda mengatakan bahwa ini notasi umum. Di mana Anda melihatnya dulu berarti ID proses?
Barmar