เราทุกคนใช้ ไฟล์หรือไฟล์ ทุกวันและเราทุกคนก็ใช้มันเช่นกัน โฟลเดอร์หรือไดเร็กทอรีไม่ว่าจะเป็นในระบบไฟล์ของเดสก์ท็อปพีซี บนแล็ปท็อป อุปกรณ์พกพา ฯลฯ ดังนั้นในบทความนี้ ฉันจะอธิบายทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับเรื่องนี้ เพื่อให้คุณเข้าใจได้ ข้อมูลคืออะไรและเก็บไว้อย่างไร ในความทรงจำของ.
ระบบไฟล์คืออะไร?
Un ระบบไฟล์ ระบบไฟล์ (FS) คือวิธีการและโครงสร้างข้อมูลที่ระบบปฏิบัติการใช้เพื่อควบคุมวิธีการจัดเก็บและดึงข้อมูล หากไม่มีระบบไฟล์ ข้อมูลที่จัดเก็บในสื่อบันทึกข้อมูลจะเป็นเอนทิตีข้อมูลเดี่ยว โดยไม่มีวิธีแยกแยะว่าชุดข้อมูลชุดหนึ่งสิ้นสุดและชุดข้อมูลชุดถัดไปเริ่มต้นที่ใด หรือชุดข้อมูลใดอยู่ที่ใดเมื่อจำเป็นต้องดึงข้อมูล ซึ่งเรียกว่าข้อมูลดิบ
เมื่อคุณฟอร์แมตไดรฟ์จัดเก็บข้อมูลโดยใช้ NTFS, FAT, ext4, btrfs, HFS+ ฯลฯ จริงๆ แล้วคุณกำลังสร้างระบบไฟล์เพื่อจัดการข้อมูลบนไดรฟ์นั้น กล่าวอีกนัยหนึ่ง สิ่งที่เราเรียกว่าฟอร์แมตนั้น จริงๆ แล้วคือ FS
โดยการแยกข้อมูลออกเป็นส่วนๆ และตั้งชื่อแต่ละส่วนข้อมูลสามารถแยกและระบุได้อย่างง่ายดายเพื่อให้ทั้งหมดนี้เป็นไปได้ ระบบไฟล์จึงประกอบด้วยสองหรือสามเลเยอร์ บางครั้งเลเยอร์เหล่านี้จะถูกแยกออกจากกันอย่างชัดเจน และบางครั้งก็รวมฟังก์ชันเข้าด้วยกัน เลเยอร์ที่เรากำลังพูดถึงคือ:
- ระบบไฟล์ลอจิก: รับผิดชอบการโต้ตอบกับแอปพลิเคชันของผู้ใช้ โดยมี API สำหรับการดำเนินการกับไฟล์ เช่น เปิด ปิด อ่าน ฯลฯและส่งต่อการดำเนินการที่ร้องขอไปยังเลเยอร์ที่อยู่ด้านล่างเพื่อประมวลผล ระบบไฟล์เชิงตรรกะจะจัดการรายการตารางไฟล์ที่เปิดอยู่และตัวอธิบายไฟล์สำหรับแต่ละกระบวนการ เลเยอร์นี้ทำหน้าที่ในการเข้าถึงไฟล์ การดำเนินการไดเรกทอรี ความปลอดภัย และการป้องกัน
- ระบบไฟล์เสมือน:อินเทอร์เฟซนี้รองรับอินสแตนซ์ของระบบไฟล์ทางกายภาพหลายอินสแตนซ์พร้อมกัน เลเยอร์นี้เป็นทางเลือกและอาจไม่ปรากฏอยู่เสมอ
- ระบบไฟล์ทางกายภาพ: จัดการการทำงานทางกายภาพของอุปกรณ์จัดเก็บข้อมูล ประมวลผลบล็อกทางกายภาพที่กำลังอ่านหรือเขียน จัดการการบัฟเฟอร์ การจัดการหน่วยความจำ และรับผิดชอบการจัดวางบล็อกทางกายภาพในตำแหน่งเฉพาะบนสื่อบันทึกข้อมูล ระบบไฟล์ทางกายภาพจะโต้ตอบกับไดรเวอร์อุปกรณ์ฮาร์ดแวร์จัดเก็บข้อมูลหรือช่องทางเพื่อควบคุมอุปกรณ์จัดเก็บข้อมูล
คุณสมบัติของ FS
ระบบไฟล์ทุกระบบที่มีอยู่มีข้อจำกัดของตัวเอง ตัวอักษร ที่คุณควรรู้ เช่น
- การจัดการหรือจัดสรรพื้นที่: ระบบไฟล์จะจัดสรรพื้นที่อย่างละเอียด โดยปกติจะจัดสรรให้กับไดรฟ์ทางกายภาพหลายตัวบนอุปกรณ์ ระบบไฟล์มีหน้าที่จัดระเบียบไฟล์และไดเรกทอรี และติดตามว่าพื้นที่ใดในสื่อบันทึกเป็นของไฟล์ใด และส่วนใดที่ไม่ได้ใช้งาน
- การกระจายตัว: ปัญหานี้จะเกิดขึ้นเมื่อไฟล์เดียวกันถูกจัดเก็บไว้ในส่วนต่างๆ ของไดรฟ์จัดเก็บข้อมูล ซึ่งหมายความว่าแต่ละส่วนของไฟล์จะไม่ติดกัน เมื่อมีการสร้าง แก้ไข และลบไฟล์ อาจทำให้มีพื้นที่ใช้งานและพื้นที่ไม่ได้ใช้มีขนาดแตกต่างกัน นอกจากนี้ ปัญหายังส่งผลกระทบต่อระบบไฟล์ (FS) บางส่วน (เช่น FAT และ NTFS ของ Microsoft) ซึ่งทำให้การอ่านไฟล์ช้าลง
- ชื่อไฟล์: ระบบไฟล์จะจัดการข้อจำกัดความยาว ความไวต่อตัวพิมพ์ใหญ่-เล็ก และการใช้ตัวอักษรพิเศษในชื่อไฟล์
- ไดเรกทอรี: พวกเขามักจะมีไดเร็กทอรีสำหรับจัดระเบียบไฟล์เป็นคอลเล็กชันแยกต่างหาก ซึ่งอาจเป็นแบบแบนหรือแบบลำดับชั้นก็ได้ ผมจะอธิบายรายละเอียดเพิ่มเติมในภายหลัง เพราะนี่คือแก่นแท้ของเรื่องนี้...
- ข้อมูลเมตา: มีข้อมูลเมตาข้อมูลที่เกี่ยวข้อง ซึ่งรวมถึงรายละเอียดต่างๆ เช่น ความยาวข้อมูล ไทม์สแตมป์ สิทธิ์การเข้าถึง และแอตทริบิวต์ของไฟล์
- สาธารณูปโภคและการเข้าถึง: ใช้ในการเริ่มต้น แก้ไข และลบอินสแตนซ์ของระบบไฟล์ รวมถึงสร้าง เปลี่ยนชื่อ และลบไดเรกทอรีและไฟล์ การเข้ารหัส โควตา การโยกย้าย การแปลง การสำรองข้อมูล ฯลฯ
- การจัดการความสมบูรณ์และข้อผิดพลาด: FS จะต้องรักษาความสมบูรณ์ของโครงสร้างระบบไฟล์บนหน่วยเก็บข้อมูลรองหรือไดรฟ์ภายนอก แม้ว่าระบบปฏิบัติการจะล้มเหลวหรือไฟฟ้าดับก็ตาม
- ข้อมูลผู้ใช้: ต้องอนุญาตให้มีการจัดการข้อมูลผู้ใช้ รวมถึงการจัดเก็บ การเรียกค้น และการอัปเดตข้อมูล
- ระบบไฟล์หลายไฟล์: เป็นไปได้ที่จะมีระบบไฟล์หลายระบบในระบบเดียว
- ข้อจำกัดในการออกแบบ: ระบบไฟล์มีข้อจำกัดด้านการทำงานที่กำหนดความจุสูงสุดในการจัดเก็บข้อมูลภายในระบบนั้น ขนาดสูงสุดของไฟล์ จำนวนไฟล์ เป็นต้น
พาร์ติชันคืออะไร?
Una การแบ่ง พาร์ติชันคือส่วนเชิงตรรกะหรือการแบ่งย่อยของอุปกรณ์จัดเก็บข้อมูล เช่น HDD, SSD, แฟลชไดรฟ์ ฯลฯ พาร์ติชันนี้มีวัตถุประสงค์การใช้งานหลายประการ ช่วยให้จัดระเบียบและจัดการข้อมูลที่จัดเก็บไว้ได้ดีขึ้น ตัวอย่างเช่น แต่ละพาร์ติชันอาจถูกใช้เพื่อวัตถุประสงค์เฉพาะ หรือสามารถติดตั้งระบบปฏิบัติการได้หลายระบบ เป็นต้น
มันเป็นสิ่งสำคัญที่จะต้องทราบว่า การสร้าง การลบ และการปรับขนาด การเปลี่ยนแปลงพาร์ติชันอาจทำให้ข้อมูลสูญหาย ดังนั้นจึงจำเป็นต้องดำเนินการเหล่านี้ด้วยความระมัดระวังและสำรองข้อมูลสำคัญไว้ก่อนทำการเปลี่ยนแปลงโครงสร้างพาร์ติชันครั้งใหญ่
ในทางกลับกัน สรุปแล้วคุณควรเข้าใจด้วยว่ามี พาร์ติชั่นหลากหลายประเภท พื้นฐานในระบบ MBR (ความเป็นไปได้ขยายออกไปใน GPT โดยมีพาร์ติชันที่เป็นไปได้สูงสุด 128 พาร์ติชันบนหน่วยเดียวกัน แม้ว่านี่จะเป็นหัวข้ออื่นก็ตาม…):
- พาร์ติชันหลัก: ไดรฟ์จัดเก็บข้อมูลแต่ละไดรฟ์สามารถมีพาร์ติชันหลักได้สูงสุดสี่พาร์ติชัน พาร์ติชันเหล่านี้คือพาร์ติชันหลักที่ติดตั้งระบบปฏิบัติการและจัดเก็บข้อมูลไว้ พาร์ติชันหลักหนึ่งพาร์ติชันสามารถกำหนดให้เป็นพาร์ติชันที่ใช้งานอยู่หรือพาร์ติชันสำหรับบูต ซึ่งระบบปฏิบัติการจะบูตจากพาร์ติชันดังกล่าว
- พาร์ติชันเสริม: พาร์ติชันเสริมคือพาร์ติชันหลักพิเศษที่ใช้สร้างพาร์ติชันตรรกะเพิ่มเติมภายในพาร์ติชันนั้น พาร์ติชันนี้ไม่ได้เก็บข้อมูลโดยตรง แต่ทำหน้าที่เป็นคอนเทนเนอร์สำหรับพาร์ติชันตรรกะ คุณสามารถมีพาร์ติชันตรรกะได้หลายพาร์ติชันภายในพาร์ติชันเสริม ซึ่งทำให้คุณสามารถเอาชนะข้อจำกัดของพาร์ติชันหลักสี่พาร์ติชันบนฮาร์ดไดรฟ์ได้
- โลจิคัลพาร์ติชัน: พาร์ติชันเหล่านี้ถูกสร้างขึ้นภายในพาร์ติชันเสริม ซึ่งไม่ได้ใช้สำหรับบูตระบบปฏิบัติการ และโดยทั่วไปจะใช้เพื่อจัดระเบียบข้อมูลหรือไฟล์ คุณสามารถมีพาร์ติชันลอจิคัลได้หลายพาร์ติชันภายในพาร์ติชันเสริม ซึ่งทำให้การจัดระเบียบข้อมูลง่ายขึ้น
ตารางพาร์ติชั่นคืออะไร?
La โต๊ะพาร์ติชั่น โครงสร้างข้อมูลนี้อยู่ที่จุดเริ่มต้นของฮาร์ดไดรฟ์ และประกอบด้วยข้อมูลเกี่ยวกับการแบ่งพาร์ติชันของไดรฟ์ โดยทั่วไปแล้วจะถูกเก็บไว้ในมาสเตอร์บูตเซกเตอร์ (MBR) บนระบบที่ใช้ BIOS หรือใน GPT (ตารางพาร์ติชัน GUID) บนระบบที่ใช้ UEFI รุ่นใหม่กว่า ตารางพาร์ติชันประกอบด้วยรายละเอียดต่างๆ เช่น ขนาดของแต่ละพาร์ติชัน ประเภท (เช่น NTFS, FAT32, ext4 เป็นต้น) และตำแหน่งบนสื่อบันทึกข้อมูล
ดังนั้นความสัมพันธ์ระหว่างตารางพาร์ติชันและระบบไฟล์จึงขึ้นอยู่กับข้อเท็จจริงที่ตารางพาร์ติชันระบุ โดยแต่ละพาร์ติชันเริ่มต้นและสิ้นสุด บนดิสก์จริง แต่ละพาร์ติชันจะถูกฟอร์แมตด้วยระบบไฟล์เฉพาะ เมื่อมีการเข้าถึงพาร์ติชันเพื่ออ่านหรือเขียนไฟล์ ระบบปฏิบัติการจะใช้ข้อมูลในตารางพาร์ติชันเพื่อค้นหาและทำความเข้าใจว่าระบบไฟล์มีโครงสร้างอย่างไรบนพาร์ติชันนั้น
ประเภทระบบไฟล์
ในบรรดาระบบไฟล์ที่แตกต่างกัน ควรเน้นประเภทต่อไปนี้:
- ระบบไฟล์ดิสก์: ระบบเหล่านี้ใช้ประโยชน์จากความสามารถของสื่อบันทึกข้อมูลบนดิสก์ในการเข้าถึงข้อมูลแบบสุ่มและรวดเร็ว ช่วยให้ผู้ใช้หรือกระบวนการหลายรายสามารถเข้าถึงข้อมูลบนดิสก์ได้โดยไม่คำนึงถึงตำแหน่งที่เรียงตามลำดับ ตัวอย่าง ได้แก่ FAT, exFAT, NTFS, Reiser FS, HFS, HFS+, HPFS, APFS, UFS, ext2, ext3, ext4, XFS, btrfs, VMFS, ZFS, ReiserFS, NSS และ ScoutFS นอกจากนี้ อาจพิจารณาสิ่งต่อไปนี้ด้วย:
- ออปติคัลดิสก์: รูปแบบทั่วไปเช่น ISO 9660 และ Universal Disk Format (UDF) ที่ใช้กับ CD, DVD และ Blu-ray
- ระบบไฟล์แฟลช: ระบบเหล่านี้ได้รับการออกแบบมาโดยเฉพาะสำหรับอุปกรณ์หน่วยความจำแฟลช โดยคำนึงถึงคุณลักษณะและข้อจำกัดของอุปกรณ์นั้นๆ ขอแนะนำให้ใช้ระบบไฟล์ที่ออกแบบมาสำหรับอุปกรณ์แฟลชแทนการปรับเปลี่ยนระบบดิสก์ ตัวอย่างเช่น JFFS, JFFS2, YAFFS, UBIFS, LogFS และ F2FS
- ระบบไฟล์เทปแม่เหล็ก: ระบบเหล่านี้จัดการการจัดเก็บข้อมูลบนเทป ซึ่งมีระยะเวลาการเข้าถึงแบบสุ่มนานกว่าดิสก์ ระบบเหล่านี้แตกต่างกันในด้านการจัดการไดเร็กทอรี และเน้นย้ำถึงความจำเป็นในการหลีกเลี่ยงการเคลื่อนไหวเชิงเส้นที่เกิดขึ้นบ่อยครั้งบนเทป ตัวอย่างเช่น ระบบ LTFS ของ IBM
- ระบบไฟล์ฐานข้อมูล: ระบบไฟล์แบบฐานข้อมูล ซึ่งไฟล์จะถูกระบุด้วยคุณลักษณะต่างๆ เช่น ประเภท ผู้เขียน หรือข้อมูลเมตา ตัวอย่างเช่น IBM DB2 เป็นต้น
- ระบบไฟล์ธุรกรรม: ระบบเหล่านี้รับประกันการทำงานแบบอะมิโนมิตีและการแยกส่วนการทำงานบนไฟล์ ตัวอย่างเช่น NTFS ใน Microsoft Windows และระบบไฟล์ทรานแซคชันต้นแบบอื่นๆ สำหรับ UNIX/Linux เช่น LFS, ext3 เป็นต้น
- ระบบไฟล์เครือข่าย: ระบบไฟล์เครือข่ายที่อนุญาตให้เข้าถึงไฟล์บนเซิร์ฟเวอร์ระยะไกลผ่านโปรโตคอลต่างๆ เช่น NFS, AFS, SMB, FTP และ WebDAV กล่าวคือ ได้รับการออกแบบมาสำหรับการประมวลผลแบบกระจาย
- ระบบไฟล์ที่ใช้ร่วมกัน: ระบบเหล่านี้ช่วยให้เซิร์ฟเวอร์หลายเครื่องสามารถเข้าถึงระบบย่อยดิสก์เดียวกันได้อย่างปลอดภัย ตัวอย่างเช่น GFS2, GPFS, SFS, CXFS, StorNext และ ScoutFS
- ระบบไฟล์พิเศษ: พวกมันค่อนข้างเฉพาะเจาะจง และไม่มีองค์ประกอบไฟล์ แต่สามารถเข้าถึงได้ผ่าน API ตัวอย่างเช่น เรากำหนด Device File System เป็น devfs ซึ่งใช้ใน Linux เป็นต้น ในทางกลับกัน เรามีไฟล์พิเศษอื่นๆ เช่น configfs, sysfs และ procfs ซึ่งรู้จักกันในโลก Linux เช่นกัน
- ระบบไฟล์ขั้นต่ำ / การจัดเก็บเทปเสียง: เทปคาสเซ็ตเสียงถูกใช้เป็นระบบจัดเก็บข้อมูลเพื่อขับเคลื่อนไมโครคอมพิวเตอร์บางรุ่นในสมัยนั้น เช่น Commodore PET
- ระบบไฟล์แบบแบน (Flat File System): ระบบเหล่านี้ไม่มีไดเรกทอรีย่อยและจัดเก็บรายการไดเรกทอรีทั้งหมดไว้ในไดเรกทอรีหลักเดียว ตัวอย่างของ FS เหล่านี้ ได้แก่ ระบบที่ใช้ในระบบ CP/M และระบบไฟล์ Macintosh สำหรับ Mac รุ่นคลาสสิกของ Apple
บริษัท เอฟเอส เทคโนโลยีส์

ระบบไฟล์แต่ละระบบมีลักษณะเฉพาะของตัวเองและรองรับ เทคโนโลยีที่แตกต่างกัน. สิ่งที่สำคัญที่สุดคือ:
- การรักษาตัวเอง: หมายถึงความสามารถของระบบไฟล์ในการตรวจจับและแก้ไขข้อผิดพลาดและปัญหาที่อาจเกิดขึ้นในระบบจัดเก็บข้อมูลโดยอัตโนมัติ ข้อผิดพลาดเหล่านี้อาจรวมถึงเซกเตอร์เสียบนฮาร์ดไดรฟ์หรือความเสียหายของข้อมูลประเภทอื่นๆ เมื่อตรวจพบข้อผิดพลาด ระบบไฟล์จะพยายามกู้คืนข้อมูลที่ได้รับผลกระทบโดยการกู้คืนจากข้อมูลสำรองหรือซ่อมแซมข้อมูลที่เสียหาย ซึ่งจะช่วยรักษาความสมบูรณ์ของข้อมูลที่เก็บไว้ในระบบไฟล์
- การบีบอัด: เป็นฟีเจอร์ที่ช่วยให้คุณลดขนาดไฟล์และข้อมูลที่เก็บไว้ในระบบไฟล์ การบีบอัดข้อมูลสามารถประหยัดพื้นที่ดิสก์และเพิ่มความเร็วในการถ่ายโอนไฟล์ เมื่อเปิดใช้งานการบีบอัด ระบบไฟล์จะบีบอัดไฟล์ที่เขียนลงไปโดยอัตโนมัติ และแตกไฟล์เมื่อถูกอ่าน ฟีเจอร์นี้มีประโยชน์สำหรับระบบจัดเก็บข้อมูลที่มีทรัพยากรจำกัด แม้ว่าอาจทำให้การเข้าถึงช้าลงก็ตาม
- การเข้ารหัส: เป็นเทคนิคที่ใช้เพื่อปกป้องความลับของข้อมูลที่เก็บไว้ในระบบไฟล์ ข้อมูลจะถูกเข้ารหัสก่อนเขียนลงดิสก์ และถอดรหัสเมื่ออ่าน การเข้ารหัสช่วยให้มั่นใจได้ว่าข้อมูลจะไม่สามารถอ่านได้หากไม่มีคีย์ถอดรหัสที่เหมาะสม ซึ่งเป็นสิ่งสำคัญสำหรับการปกป้องความเป็นส่วนตัวและความปลอดภัยของข้อมูลสำคัญ เช่นเดียวกับการบีบอัดข้อมูล การเข้ารหัสข้อมูลยังสามารถทำให้การเข้าถึงข้อมูลช้าลงได้อีกด้วย
- การบันทึกรายการ (บันทึกธุรกรรม): เป็นฟีเจอร์ที่บันทึกการทำงานทั้งหมดที่ดำเนินการบนระบบไฟล์ เช่น การสร้าง การแก้ไข หรือการลบไฟล์ เรคคอร์ดนี้เรียกว่า "เจอร์นัล" หรือ "บันทึกธุรกรรม" ในกรณีที่ระบบล้มเหลว เช่น ไฟฟ้าดับโดยไม่คาดคิด ระบบไฟล์สามารถใช้บันทึกธุรกรรมเพื่อกู้คืนสถานะให้สอดคล้องกัน วิธีนี้ช่วยป้องกันความเสียหายของข้อมูลและรักษาความสมบูรณ์ของระบบไฟล์
- ความจุสแนปช็อต: สแนปช็อตคือสำเนาของระบบไฟล์ ณ จุดเวลาใดจุดเวลาหนึ่ง สำเนาเหล่านี้คือสแนปช็อตและจะถูกเก็บไว้พร้อมกับข้อมูลปัจจุบันในระบบไฟล์ สแนปช็อตช่วยให้สามารถกู้คืนระบบไฟล์กลับสู่สถานะก่อนหน้าได้หากเกิดข้อผิดพลาดหรือการเปลี่ยนแปลงที่ไม่ต้องการ วิธีนี้มีประโยชน์สำหรับการสำรองข้อมูล การกู้คืนข้อมูล และการทดสอบการเปลี่ยนแปลงก่อนที่จะนำไปใช้งานอย่างถาวรในระบบ
ไดเร็กทอรีหรือโฟลเดอร์คืออะไร?

ตอนนี้เรารู้แล้วว่าข้อมูลถูกจัดเก็บในหน่วยจัดเก็บข้อมูลและโครงสร้างข้อมูลที่จำเป็นอย่างไร ถึงเวลาที่จะอธิบายต่อไปว่า โฟลเดอร์หรือไดเร็กทอรี.
ไดเรกทอรีหรือโฟลเดอร์คือ โครงสร้างสำหรับการจัดทำแคตตาล็อกไฟล์อื่น ๆ ภายในระบบไฟล์ ทำให้มีลำดับชั้นหรือการจัดระเบียบที่เข้าใจง่ายยิ่งขึ้นสำหรับผู้ใช้หรือระบบปฏิบัติการ การดำเนินการนี้ประกอบด้วยการอ้างอิงไปยังไฟล์อื่นๆ และอาจมีไดเรกทอรีหรือโฟลเดอร์อื่นๆ ซึ่งในกรณีนี้เรียกว่าไดเรกทอรีย่อยหรือโฟลเดอร์ย่อย
ระบบปฏิบัติการบางระบบที่มีระบบไฟล์แบบลำดับชั้น เช่น Unix มักจะมีแคชไดเรกทอรีพร้อมพาธล่าสุดที่เก็บไว้ใน RAM ใน Unix ส่วนนี้เรียกว่า DNLC (Directory Name Lookup Cache) ในขณะที่ใน Linux เรียกว่า dcache หน่วยความจำส่วนนี้จะได้รับการอัปเดตด้วยพาธที่เข้าถึงล่าสุด ในขณะที่ในระบบไฟล์เครือข่าย จำเป็นต้องมีกลไกเพื่อให้แน่ใจว่ามีความสอดคล้องกันโดยการจัดการรายการที่ถูกทำให้ไม่ถูกต้องหรือถูกสร้างโดยผู้ใช้
ในหนึ่ง ระบบไฟล์แบบลำดับชั้น พื้นที่จัดเก็บมีลักษณะคล้ายต้นไม้ คำว่า "parent" และ "child" มักใช้เพื่ออธิบายความสัมพันธ์ระหว่างไดเรกทอรีย่อยและไดเรกทอรีที่ไดเรกทอรีย่อยนั้นถูกจัดหมวดหมู่ไว้ โดยไดเรกทอรีย่อยจะเป็นไดเรกทอรีหลัก ไดเรกทอรีที่มีลำดับชั้นสูงสุดในระบบไฟล์ดังกล่าว ซึ่งไม่มีไดเรกทอรีหลักเป็นของตัวเอง เรียกว่าไดเรกทอรีราก ซึ่งจะเห็นได้ชัดเจนที่สุดในระบบปฏิบัติการ Unix หรือ Linux ซึ่งมีลำดับชั้นเฉพาะ และไดเรกทอรีรากคือ root หรือ / ซึ่งเป็นไดเรกทอรีหลักที่ไดเรกทอรีอื่นๆ ทั้งหมดจะวางอยู่ แม้ว่าจะไม่ได้อยู่ในพาร์ติชันเดียวกันก็ตาม
ไดเรกทอรีเสมือน (Virtual Directory) คือรูปแบบการจัดระเบียบไฟล์แบบหนึ่งที่ไม่ต้องอาศัยตำแหน่งที่ตั้งในโครงสร้างไดเรกทอรีแบบลำดับชั้น แต่จะรวบรวมผลลัพธ์จากแหล่งข้อมูล เช่น ฐานข้อมูลหรือดัชนีที่กำหนดเอง และนำเสนอในรูปแบบเดียวกับมุมมองโฟลเดอร์
โฟลเดอร์หรือไดเร็กทอรีเหล่านี้ สามารถจัดการได้ โดยใช้เครื่องมือทั้ง GUI และ CLI ตัวอย่างเช่น เราสามารถใช้คำสั่งหรือตัวจัดการไฟล์เพื่อสร้าง ลบ เปลี่ยนชื่อ ย้าย คัดลอก ฯลฯ แม้ว่าระบบปฏิบัติการบางระบบอาจมีข้อจำกัดบางประการเกี่ยวกับสิทธิ์และการดำเนินการที่คุณสามารถทำได้กับโฟลเดอร์บางโฟลเดอร์...
รายละเอียดเกี่ยวกับโฟลเดอร์หรือไดเร็กทอรีบนระบบปฏิบัติการที่แตกต่างกัน
ในแต่ละครั้ง ระบบไฟล์และระบบปฏิบัติการไฟล์และโฟลเดอร์ได้รับการปฏิบัติแตกต่างกัน:
- ราก:นี่คือจุดที่ลำดับชั้นโฟลเดอร์ที่เหลือของระบบวางอยู่หรือตำแหน่งที่มันอยู่ ใน Windows มักจะเป็น C:\ ในขณะที่ใน Unix/Linux จะเป็นพาร์ติชันรูทหรือ /
- เส้นทางหรือเส้นทางนี่คือพาธที่โฟลเดอร์หรือไฟล์ตั้งอยู่ภายใน FS ตัวอย่างเช่น ใน Windows เราอาจมีไฟล์ C:\Program Files\Office\Word.exe ใน Unix/Linux ไฟล์จะเป็นประมาณ /home/user/example.c อย่างที่เราเห็น ใน Windows จะใช้แบ็กสแลช ในขณะที่ในระบบปฏิบัติการ *nix จะใช้สแลชแบบดั้งเดิม
- ชื่อไฟล์ หรือ ชื่อไฟล์:นี่คือชื่อที่กำหนดให้กับแต่ละไฟล์ภายใน FS เฉพาะ ระบบไฟล์แต่ละระบบจะมีข้อจำกัดของตัวเองเกี่ยวกับจำนวนอักขระสูงสุดที่จำกัดสำหรับชื่อไฟล์ นอกจากนี้ จำเป็นต้องแยกความแตกต่างระหว่างชื่อฐานและนามสกุลไฟล์ ระบบในยุคแรกๆ บางระบบก็มีข้อจำกัดเกี่ยวกับความยาวของนามสกุลไฟล์เช่นกัน โดยทั่วไปคือสามนามสกุล นี่คือเหตุผลที่บางครั้งคุณอาจเห็น .htm แทน .html เพื่อให้มั่นใจว่าสามารถใช้งานร่วมกับระบบ DOS ได้ ตัวอย่างของชื่อไฟล์อาจเป็น example.txt โดยที่ "example" คือชื่อไฟล์ และ "txt" คือนามสกุลไฟล์ ซึ่งในกรณีนี้แสดงว่าเป็นข้อความ
กรณีเฉพาะของ Unix/Linux
ซุปเปอร์บล็อคคืออะไร?
Un ซุปเปอร์บล็อก เป็นโครงสร้างข้อมูลพื้นฐานที่พบที่จุดเริ่มต้นของระบบไฟล์ ซูเปอร์บล็อกประกอบด้วยข้อมูลสำคัญเกี่ยวกับตัวระบบไฟล์เอง และใช้เพื่อจัดการและเข้าถึงข้อมูลที่เก็บไว้ในระบบไฟล์นั้น ระบบไฟล์ยูนิกซ์ทุกระบบมีซูเปอร์บล็อกของตัวเอง และรูปแบบเฉพาะของซูเปอร์บล็อกอาจแตกต่างกันไปขึ้นอยู่กับระบบไฟล์ที่ใช้ (เช่น ext4, XFS, UFS เป็นต้น)
La ข้อมูลที่ถูกเก็บไว้ ในซุปเปอร์บล็อกอาจรวมถึง:
- ขนาดระบบไฟล์: ระบุขนาดรวมของระบบไฟล์
- จำนวนอินโหนด: ระบุจำนวน inode ที่มีอยู่ในระบบไฟล์ Inode คือโครงสร้างข้อมูลที่แสดงถึงไฟล์และไดเรกทอรี
- บล็อคฟรี: บันทึกจำนวนบล็อกข้อมูลว่างที่เหลืออยู่ในระบบไฟล์เพื่อจัดเก็บข้อมูล
- จุดเมานท์: ระบุไดเร็กทอรีที่ระบบไฟล์ถูกติดตั้งบนระบบปฏิบัติการ
- การระบุระบบไฟล์: ตัวระบุเฉพาะสำหรับระบบไฟล์ที่แยกแยะจากระบบไฟล์อื่น ๆ ในระบบเดียวกัน
- วันที่และเวลาประกอบ : บันทึกเมื่อระบบไฟล์ถูกเมาท์ครั้งสุดท้าย
- ตัวนับอินโหนดและบล็อกที่ใช้: ติดตามจำนวนอินโหนดและบล็อกข้อมูลที่กำลังถูกใช้บนระบบไฟล์
- Checksum และเมตาข้อมูลความสมบูรณ์อื่น ๆ: ซูเปอร์บล็อกสมัยใหม่บางตัวอาจมีข้อมูลเพิ่มเติมเพื่อตรวจสอบความสมบูรณ์ของข้อมูลที่จัดเก็บไว้ในระบบไฟล์
เมื่อติดตั้งระบบไฟล์ เช่น พาร์ติชันที่ฟอร์แมตแล้ว ระบบปฏิบัติการจะเข้าถึงซูเปอร์บล็อกเพื่อรับข้อมูลสำคัญเกี่ยวกับโครงสร้างและสถานะของระบบไฟล์ ข้อมูลนี้มีความสำคัญต่อการอ่านและเขียนข้อมูลลงระบบไฟล์ รวมถึงการตรวจสอบความสมบูรณ์และความสอดคล้องของข้อมูลที่จัดเก็บไว้
อินโหนดและไดเร็กทอรี
En ยูนิกซ์/ลินุกซ์, ทุกอย่างเป็นไฟล์ เช่น พาร์ติชัน ไดรฟ์อุปกรณ์ ฯลฯ ซึ่งไม่เหมือนกับระบบอื่น เช่น Windows อย่างไรก็ตาม เมื่อทุกอย่างเป็นไฟล์ แม้แต่โฟลเดอร์หรือไดเร็กทอรีก็ถือเป็นไฟล์ประเภทพิเศษ
ดังนั้นไดเร็กทอรีจึงเป็นไฟล์พิเศษที่ประกอบด้วยชื่อไฟล์ (และไดเร็กทอรีย่อย) และ หมายเลขอินโหนด สำหรับไฟล์ในระบบไฟล์เดียวกัน หรือชื่อของลิงก์สัญลักษณ์ไปยังไฟล์หรือไดเรกทอรีบนระบบไฟล์เดียวกันหรือต่างกัน ในกรณีของฮาร์ดลิงก์ อินโหนดจะติดตามจำนวนรายการไดเรกทอรีที่อยู่ในฮาร์ดลิงก์นั้น และจะลบบล็อกไฟล์เมื่อจำนวนลิงก์ถึงศูนย์ ซึ่งแตกต่างจากในกรณีของซอฟต์ลิงก์หรือลิงก์สัญลักษณ์ การลบลิงก์สัญลักษณ์จะไม่ส่งผลกระทบต่อไฟล์เป้าหมาย อย่างไรก็ตาม หากไฟล์ที่มีลิงก์สัญลักษณ์ถูกลบ ลิงก์เหล่านั้นจะไม่สามารถใช้งานได้
ในระบบไฟล์ Unix/Linux ไฟล์ สามารถมีชื่อเรียกได้หลายชื่อ โดยมีรายการไดเร็กทอรีสำหรับแต่ละชื่อในไดเร็กทอรีเดียวกันหรือต่างกัน โดยทั้งหมดชี้ไปที่โครงสร้างอินโหนดเดียวกันที่ดูแลรายการของบล็อกดิสก์ที่จัดเก็บข้อมูลไว้
เพื่อให้เข้าใจทั้งหมดนี้ได้ดีขึ้น สิ่งสำคัญคือต้องจำไว้ว่า inode (index node) คืออะไร ซึ่งเป็นโครงสร้างข้อมูลพื้นฐานในระบบไฟล์ *nix แสดงและจัดเก็บข้อมูลที่จำเป็น ในไฟล์หรือไดเร็กทอรีภายในระบบไฟล์ ดังนั้น ทั้งโฟลเดอร์และไฟล์จะถูกมองว่าเป็นอินโหนดโดยระบบ
เพื่อให้สิ่งนี้เป็นไปได้ แต่ละ inode จะชี้ไปที่ถัดไป ข้อมูล:
- หมายเลขอินโหนด: ตัวระบุที่ไม่ซ้ำกันสำหรับแต่ละไฟล์หรือไดเร็กทอรี
- ประเภทไฟล์: ระบุว่า inode อ้างอิงถึงไฟล์ทั่วไป (f), ไดเร็กทอรี (d), ลิงก์สัญลักษณ์ (l) หรือไฟล์ประเภทอื่น
- ขนาดไฟล์: ขนาดปัจจุบันของไฟล์เป็นไบต์
- สิทธิ์อนุญาตและเจ้าของ: ข้อมูลเกี่ยวกับผู้ที่มีสิทธิ์เข้าถึง (อ่าน เขียน ดำเนินการ) และแก้ไขไฟล์ รวมถึงเจ้าของไฟล์ (ผู้ใช้หรือรูท) เจ้าของอาจเป็นผู้ใช้ที่ไม่มีตัวตนอยู่จริง แต่อาจเป็นอุปกรณ์ ฯลฯ
- วันที่และเวลาสร้าง/แก้ไข: บันทึกเวลาที่สร้าง inode ครั้งแรกและเวลาที่แก้ไขครั้งล่าสุด อาจรวมข้อมูลเมตาหรือสิทธิ์เพิ่มเติมอื่นๆ ไว้ด้วย
- จำนวนลิงก์: ระบุจำนวนชื่อไฟล์หรือไดเรกทอรีที่เชื่อมโยงกับ inode นี้ ไดเรกทอรีมีอย่างน้อยสองลิงก์: ลิงก์หนึ่งไปยังตัวเองและอีกลิงก์หนึ่งไปยังไดเรกทอรีหลัก
- ตัวชี้ไปยังบล็อกข้อมูล: ประกอบด้วยการอ้างอิงถึงบล็อกข้อมูลบนหน่วยจัดเก็บข้อมูลที่เก็บเนื้อหาจริงของไฟล์ บล็อกเหล่านี้อาจเป็นที่อยู่แบบตรง ทางอ้อม หรือทางอ้อมคู่ ขึ้นอยู่กับการใช้งานระบบไฟล์เฉพาะและขนาดของไฟล์
ไอโหนดมีความสำคัญอย่างยิ่งต่อการทำงานของระบบไฟล์ เนื่องจากช่วยให้ระบบปฏิบัติการสามารถติดตามตำแหน่งทางกายภาพและข้อมูลที่เกี่ยวข้องกับแต่ละไฟล์และไดเรกทอรีได้ เมื่อมีการเข้าถึงไฟล์หรือไดเรกทอรี ระบบปฏิบัติการจะตรวจสอบหมายเลขไอโหนดที่เกี่ยวข้องเพื่อค้นหาตำแหน่งของข้อมูลและข้อมูลอื่นๆ ที่เกี่ยวข้องกับไฟล์นั้น