Seberapa sering sistem file proc diperbarui di Linux?


33

Seberapa sering procsistem file diperbarui di Linux? Apakah 20 milidetik (kuantum waktu)?


1
+1. Ini adalah pertanyaan pekerjaan rumah yang bagus untuk ditanyakan kepada siswa. Terima kasih.
Jonathan Ben-Avraham

5
@ JonathanBen-Avraham Jangan ragu untuk bertanya tentang meta apakah komunitas mengizinkan Anda untuk membuat tag "pekerjaan rumah yang bagus" ... 8-)
Hauke ​​Laging

Jawaban:


46

Informasi yang Anda baca dari sistem file proc tidak disimpan di media apa pun (bahkan di RAM), jadi tidak ada yang diperbarui.

Tujuan dari sistem file proc adalah untuk memungkinkan program userspace untuk mendapatkan atau kumpulan data kernel menggunakan sistem file akrab sederhana dan semantik ( open, close, read, write, lseek), meskipun data yang dibaca atau ditulis tidak berada pada media apapun. Keputusan desain ini dianggap lebih baik (misalnya yang dapat dibaca manusia dan mudah dituliskan) untuk mendapatkan dan mengatur data yang formatnya tidak dapat ditentukan sebelumnya daripada mengimplementasikan sesuatu seperti ASN1 yang disandikan OID, yang juga akan berfungsi dengan baik.

Data yang Anda lihat ketika Anda membaca dari sistem file proc dihasilkan saat Anda membaca dari awal file. Yaitu, melakukan pembacaan menyebabkan data dihasilkan oleh fungsi callback kernel yang khusus untuk file yang sedang Anda baca. Melakukan lseekke awal file dan membaca lagi menyebabkan panggilan lain ke panggilan balik yang menghasilkan data lagi. Demikian pula, ketika Anda menulis ke file yang dapat ditulis dalam sistem file proc, fungsi callback disebut yang mem-parsing input dan menetapkan variabel kernel. Data input dalam bentuk mentah itu tidak disimpan.

Di atas hanyalah cara yang sedikit lebih verbal untuk mengatakan apa yang Hauke ​​Laging nyatakan dengan ringkas. Saya sarankan Anda menerima jawabannya.


Jika Anda perlu bukti bahwa jawaban ini benar, coba jalankan inotify pada "file" atau direktori di / proc (atau / sys dalam hal ini) ... terlalu buruk, itu akan membuat udev benar-benar tidak diperlukan jika Anda bisa memberi tahu sebuah proses sederhana untuk menjalankan x ketika sesuatu muncul di y
technosaurus

24

Itu diperbarui pada setiap akses. Anda melihat status kernel pada saat itu. Itu sebabnya ukuran yang ditunjukkan untuk "file" bukan ukuran sebenarnya. Ukuran sebenarnya dapat berubah dan ditentukan saat Anda mengakses file.

Bisa dibilang, mungkin tidak diperbarui selama berhari-hari. Jika Anda tidak melihatnya. :-)


10
+1. Ini sedikit seperti pepatah, "Jika sebuah pohon tumbang di hutan dan tidak ada yang mendengarnya, apakah itu mengeluarkan suara?", Yaitu "Jika ada sistem file proc dan tidak ada yang membacanya, apakah itu ada ? "
Jonathan Ben-Avraham

@ JonathanBen-Avraham Anda bisa mengatakan itu tentang setiap FS, bukan? :-) Tetapi ingatlah bahwa ada jauh lebih banyak akses ke proc daripada yang bisa diduga. Komentari di fstab, reboot, dan semua kacau ...
Hauke ​​Laging

Yang saya maksud adalah bahwa data dalam sistem file yang didukung media ada bahkan ketika tidak ada yang membacanya pada saat tertentu. Itu tidak muncul pada saat membaca seperti proc dan sys. Anda benar, proc memiliki banyak pembaca. Namun, sys adalah sistem file serupa yang dapat Anda komentari dari fstab, setidaknya pada sistem yang lebih kecil dan masih menjalankan Ok. Tepuk tangan.
Jonathan Ben-Avraham

4
Jadi, apakah kucing itu mati atau tidak? Coba lihat dan lihat. Sudah mati, Jim. Kucing malang.
0x7c0

@ HaukeLaging Saya tidak punya /proc/file fstab saya ☹
Hi-Angel
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.