ระบบไฟล์ proc อัพเดตบ่อยแค่ไหนบน Linux?


33

procระบบไฟล์อัพเดตบน Linux บ่อยแค่ไหน? มันคือ 20 มิลลิวินาที (ควอนตัมเวลา)


1
+1 นี่เป็นคำถามทำการบ้านที่ดีในการถามนักเรียน ขอบคุณ
Jonathan Ben-Avraham

5
@ JonathanBen-Avraham อย่าลังเลที่จะถามเมตาว่าชุมชนอนุญาตให้คุณสร้างแท็ก "การบ้านที่ยอดเยี่ยม" หรือไม่ ... 8-)
Hauke ​​Laging

คำตอบ:


46

ข้อมูลที่คุณอ่านจากระบบไฟล์ proc จะไม่ถูกเก็บไว้ในสื่อใด ๆ (ไม่ได้อยู่ใน RAM) ดังนั้นจึงไม่มีอะไรให้อัพเดท

วัตถุประสงค์ของระบบไฟล์ proc คือการอนุญาตให้โปรแกรม userspace ที่จะได้รับหรือข้อมูลชุดเคอร์เนลใช้ง่ายและระบบไฟล์ที่คุ้นเคยความหมาย ( open, close, read, write, lseek) แม้ว่าข้อมูลที่มีการอ่านหรือเขียนไม่ได้อยู่บนสื่อใด ๆ การตัดสินใจออกแบบนี้ถือว่าดีกว่า (เช่นมนุษย์สามารถอ่านได้และสคริปต์ได้อย่างง่ายดาย) สำหรับการรับและการตั้งค่าข้อมูลที่ไม่สามารถระบุรูปแบบล่วงหน้าได้กว่าการดำเนินการบางอย่างเช่น ASN1 ที่เข้ารหัส OID ซึ่งจะทำงานได้ดี

ข้อมูลที่คุณเห็นเมื่อคุณอ่านจากระบบไฟล์ proc ถูกสร้างขึ้นทันทีเมื่อคุณอ่านจากจุดเริ่มต้นของไฟล์ นั่นคือการทำการอ่านทำให้ข้อมูลถูกสร้างขึ้นโดยฟังก์ชันการเรียกกลับเคอร์เนลที่เฉพาะเจาะจงกับไฟล์ที่คุณกำลังอ่าน การดำเนินการlseekไปยังจุดเริ่มต้นของไฟล์และการอ่านอีกครั้งทำให้เกิดการเรียกไปยังการเรียกกลับที่สร้างข้อมูลอีกครั้ง ในทำนองเดียวกันเมื่อคุณเขียนไปยังไฟล์ที่เขียนได้ในระบบไฟล์ proc ฟังก์ชั่นการโทรกลับจะเรียกว่าที่แยกวิเคราะห์อินพุตและตั้งค่าตัวแปรเคอร์เนล ข้อมูลอินพุตในรูปแบบดิบไม่ถูกจัดเก็บ

ด้านบนเป็นเพียงวิธีพูดที่ละเอียดมากขึ้นเล็กน้อยว่าสิ่งที่ Hauke ​​Laging ระบุไว้อย่างรัดกุม ฉันขอแนะนำให้คุณยอมรับคำตอบของเขา


หากคุณต้องการหลักฐานว่าคำตอบนี้เป็นความจริงให้ลองเรียก inotify ใน "ไฟล์" หรือไดเรกทอรีใน / proc (หรือ / sys สำหรับเรื่องนั้น) ... มันแย่เกินไปมันจะทำให้ udev ไม่จำเป็นถ้าคุณบอกได้เลย กระบวนการ inotify ง่าย ๆ ในการรัน x เมื่อมีบางสิ่งปรากฏใน y
technosaurus

24

มันมีการปรับปรุงในทุกการเข้าถึง คุณเห็นสถานะของเคอร์เนลในขณะนั้น นั่นเป็นสาเหตุที่ขนาดที่แสดงสำหรับ "ไฟล์" ไม่ใช่ขนาดจริง ขนาดจริงสามารถเปลี่ยนแปลงได้และจะกำหนดช่วงเวลาที่คุณเข้าถึงไฟล์

คุณสามารถพูดได้ว่ามันอาจไม่ได้รับการปรับปรุงเป็นเวลาหลายวัน ถ้าคุณไม่มองมัน :-)


10
+1 มันเหมือนกับคำพูดเล็ก ๆ น้อย ๆ ว่า "ถ้าต้นไม้ล้มลงในป่าและไม่มีใครได้ยินมันมันจะส่งเสียงหรือไม่?" เช่น "ถ้ามีระบบไฟล์ proc และไม่มีใครอ่านมันจะมีอยู่หรือไม่ ?"
Jonathan Ben-Avraham

@ JonathanBen-Avraham คุณสามารถพูดได้ว่าเกี่ยวกับ FS ทุกตัวใช่มั้ย :-) แต่โปรดจำไว้ว่ามีการเข้าถึง proc มากกว่าที่จะเดา แสดงความคิดเห็นออกมาใน fstab รีบูตและนรกแตกหลวม ...
Hauke ​​Laging

สิ่งที่ฉันหมายถึงคือข้อมูลในระบบไฟล์ที่สำรองข้อมูลสื่อมีอยู่แม้ว่าจะไม่มีใครอ่านได้ในช่วงเวลาใดก็ตาม มันไม่ได้เกิดขึ้นในขณะที่อ่านเช่น proc และ sys คุณถูกต้อง proc มีผู้อ่านจำนวนมาก อย่างไรก็ตาม sys เป็นระบบไฟล์ที่คล้ายกันซึ่งคุณสามารถคอมเม้นต์จาก fstab อย่างน้อยในระบบที่เล็กกว่าและยังคงใช้งานได้ ไชโย
Jonathan Ben-Avraham

4
ดังนั้นแมวจะตายหรือไม่ ลองดูและดู มันคือจิมที่ตายแล้ว แมวที่น่าสงสาร.
0x7c0

@HaukeLaging ฉันไม่มี/proc/ไฟล์ fstab ในของฉัน
Hi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.