Linux มีการเรียกของระบบเพื่อเข้าถึงคุณลักษณะทั้งหมดของระบบไฟล์ที่รองรับหรือไม่?


12

Linux รองรับระบบไฟล์จำนวนมาก (เช่น ext3, NTFS, FAT32 เป็นต้น)

แผนภาพต่อไปนี้แสดงให้เห็นว่า Linux อนุญาตให้กระบวนการเข้าถึงไฟล์ได้อย่างไร:

ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้นสมมติว่ากระบวนการที่เรียกว่าการเรียกread()ระบบเพื่ออ่านไฟล์สิ่งที่จะเกิดขึ้นคือเลเยอร์ VFS จะเข้าถึงได้และเลเยอร์ VFS จะตัดสินใจว่าไดรเวอร์ระบบไฟล์ใดที่จะเข้าถึงตามระบบไฟล์ของพาร์ติชันที่ไฟล์นั้นไป จะอ่านอยู่บน

ลินุกซ์ให้สายระบบจำนวนมากในการเข้าถึงไฟล์ (ตัวอย่างเช่น: read(), write(), rename()ฯลฯ )

ตอนนี้read()และwrite()และrename()การทำงานในทุกระบบแฟ้มที่สนับสนุนลินุกซ์

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

ตอนนี้คำถามของฉันคือ Linux มีการเรียกระบบเพื่อเข้าถึงคุณลักษณะทั้งหมดของระบบไฟล์ที่รองรับหรือไม่? ตัวอย่างเช่น: Linux มีการเรียกระบบเพื่อตั้งค่าบิตเก็บถาวรสำหรับไฟล์บนระบบไฟล์ NTFS หรือไม่?

คำตอบ:


10

Linux มีการเรียกระบบเพื่อตั้งค่าบิตเก็บถาวรสำหรับไฟล์บนระบบไฟล์ NTFS หรือไม่?

ในกรณีพิเศษนี้ntfs-3gไดรเวอร์ส่งออกไฟล์แอททริบิวต์ผ่านแอททริบิวต์เสริมโปรดดูที่ฉันจะตั้งบิต "เก็บถาวร" บนไฟล์บน NTFS บน Linux ได้หรือไม่

(V) ระบบไฟล์ FAT มีแอตทริบิวต์ของแฟ้มที่คล้ายกัน แต่มันใช้ฟังก์ชั่นในการเข้าถึงพวกเขาเห็นioctl() ioctl_fat(2)( ioctl()เป็นการจัดเรียงของการเรียกใช้ระบบอเนกประสงค์ซึ่งใช้สำหรับทุกสิ่งเฉพาะของอุปกรณ์ที่ไม่รับประกันการเรียกใช้ระบบจริง)

ตอนนี้คำถามของฉันคือ Linux มีการเรียกระบบเพื่อเข้าถึงคุณลักษณะทั้งหมดของระบบไฟล์ที่รองรับหรือไม่?

เป็นการยากที่จะตอบอย่างแน่นอนแต่มีอย่างน้อยหนึ่งตัวอย่างของสิ่งที่ตรงกันข้าม ext4 สนับสนุนการประทับเวลา "เวลาเกิด" สำหรับไฟล์ (เช่นเวลาสร้างจริงซึ่งไม่เหมือนกับctimeการเปลี่ยนแปลงในการดัดแปลง inode) แต่ถึงแม้ว่า ext4 จะเป็นระบบไฟล์ "มาตรฐาน" เป็นเวลานาน แต่ก็ไม่มีการเรียกระบบให้เข้าถึงเวลาเกิด

ควรได้รับการสนับสนุนในขณะนี้ด้วยการเพิ่มการstatx()เรียกของระบบในLinux 4.11ในเดือนเมษายน 2017

ที่เกี่ยวข้อง:


3
ntfs! = อ้วน อย่างน้อยรุ่นเคอร์เนลของ ntfs ไม่มีวิธีการตั้งค่าหรือรับค่าสถานะการเก็บถาวรแม้ว่าส่วนหัวจะกำหนดไว้ ดูเหมือนว่าจะรองรับเฉพาะฟิวส์ที่ใช้ ntfs-3g เท่านั้น (ผ่านคุณสมบัติเพิ่มเติมไม่ใช่ ioctls พิเศษ)
ลุง Billy

สิ่งนี้ไม่ได้เกี่ยวข้องโดยตรงกับคำถาม แต่เป็นส่วนเสริมตามที่คุณกล่าวถึงstatxตอนนี้ได้รับการสนับสนุนในไลบรารี C และ coreutils เวอร์ชันล่าสุดซึ่งเผยแพร่เมื่อไม่กี่วันที่ผ่านมา
Stephen Kitt

@ UncleBilly, d'oh เห็นได้ชัดว่าฉันไม่สามารถอ่านได้ แต่คิดโดยอัตโนมัติ (v) อ้วน ขอบคุณที่สังเกตว่าฉันจะดูว่าฉันสามารถหาข้อมูลอ้างอิงที่เหมาะสมกว่านี้ได้หรือไม่
ilkkachu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.