นี่เป็นคำถามระดับต่ำและฉันเข้าใจว่าอาจไม่ใช่สถานที่ที่ดีที่สุดสำหรับการถาม แต่ดูเหมือนจะเหมาะสมกว่าเว็บไซต์ SE อื่น ๆ ดังนั้นที่นี่จะไป
ฉันรู้ว่าบนระบบไฟล์ Linux บางไฟล์มีอยู่จริงตัวอย่างเช่น: /usr/bin/bash
เป็นไฟล์ที่มีอยู่จริง อย่างไรก็ตาม (เท่าที่ผมเข้าใจมัน) บางคนก็ไม่ได้มีอยู่จริงเช่นนี้และมีมากขึ้นเสมือนไฟล์เช่น: /dev/sda
, /proc/cpuinfo
ฯลฯ คำถามของฉัน (พวกเขาเป็นสอง แต่เกี่ยวข้องอย่างใกล้ชิดเกินไปที่จะเป็นคำถามที่แยกต่างหาก):
- เคอร์เนลของ Linux ทำงานอย่างไรว่าไฟล์เหล่านี้เป็นของจริง (และอ่านจากดิสก์) หรือไม่เมื่อมีการใช้คำสั่ง read (หรือเช่นนั้น)?
- หากไฟล์ไม่จริง: เป็นตัวอย่างที่อ่านจาก
/dev/random
จะกลับข้อมูลแบบสุ่มและอ่านจากจะกลับมา/dev/null
EOF
มันทำงานอย่างไรข้อมูลที่จะอ่านจากไฟล์เสมือนนี้ (และดังนั้นสิ่งที่จะทำเมื่อ / ถ้าข้อมูลที่เขียนไปยังไฟล์เสมือนด้วย) - มีแผนที่บางชนิดที่มีพอยน์เตอร์เพื่อแยกคำสั่งอ่าน / เขียนที่เหมาะสมสำหรับแต่ละไฟล์ หรือแม้แต่สำหรับไดเรกทอรีเสมือนเอง ดังนั้นรายการสำหรับก็สามารถกลับ/dev/null
EOF