กลับไปหน้าบทความ

อ่าน 5 นาที

ระบบไฟล์ Unix

ระบบ ไฟล์ Unix ( UFS ) คือตระกูลของ ระบบไฟล์ ที่ได้รับการสนับสนุนโดยระบบ ปฏิบัติการ Unix และ ระบบปฏิบัติการ ที่คล้าย Unix...

ระบบไฟล์ Unix

ยูเอฟเอส
นักพัฒนาซีเอสอาร์จี
ชื่อเต็มระบบไฟล์ UNIX
แนะนำด้วย4.2BSD
โครงสร้าง
สารบัญตาราง
ข้อจำกัด
ขนาดปริมาตรสูงสุด2.73 ไบต์ (8 ไมโครไบต์ )
ขนาดไฟล์สูงสุด2.73 ไบต์ (8 ไมโครไบต์ )
ความยาวชื่อไฟล์สูงสุด255 ไบต์
คุณสมบัติ
วันที่บันทึกUFS1 และ UFS2: เวลาเข้าถึงครั้งสุดท้าย (atime), เวลาแก้ไขครั้งสุดท้าย (mtime), เวลาเปลี่ยนแปลง inode ครั้งสุดท้าย (ctime), UFS2: เวลาสร้าง inode (birthtime) [ 1 ]
ช่วงวันที่UFS1: 14 ธันวาคม พ.ศ. 2444–18 มกราคม พ.ศ. 2581, UFS2: ออฟเซ็ตจำนวนเต็ม 64 บิตแบบมีเครื่องหมายจากยุค[ 1 ]
ความละเอียดของวันที่UFS1 และ UFS2: นาโนวินาที[ 1 ]
อื่น
ระบบปฏิบัติการที่รองรับA/UX , DragonFly BSD , FreeBSD , FreeNAS , NAS4Free , HP-UX , NetBSD , NeXTSTEP , Linux , OpenBSD , illumos , Solaris , SunOS , Tru64 UNIX , UNIX System V , Orbis OSและอื่นๆ

ระบบไฟล์ Unix ( UFS ) คือตระกูลของระบบไฟล์ ที่ได้รับการสนับสนุนโดยระบบ ปฏิบัติการ Unixและ ระบบปฏิบัติการ ที่คล้าย Unixหลายระบบมันเป็นระบบไฟล์ที่พัฒนาต่อยอดมาจากระบบไฟล์ดั้งเดิมที่ใช้ในUnix เวอร์ชัน 7

ออกแบบ

วอลุ่ม UFS ประกอบด้วยส่วนต่างๆ ดังต่อไปนี้:

  • พื้นที่บางส่วนบริเวณต้นพาร์ติชั่นถูกสงวนไว้สำหรับบล็อกบูต (ซึ่งต้องเริ่มต้นใช้งานแยกต่างหากจากระบบไฟล์)
  • ซูเปอร์บล็อก ซึ่งประกอบด้วยหมายเลขวิเศษที่ระบุว่านี่คือระบบไฟล์ UFS และหมายเลขสำคัญอื่นๆ ที่อธิบายโครงสร้างและสถิติของระบบไฟล์นี้ รวมถึงพารามิเตอร์การปรับแต่งพฤติกรรม
  • กลุ่มของกระบอกสูบแต่ละกลุ่มประกอบด้วยส่วนประกอบดังต่อไปนี้:
    • สำเนาสำรองของซูเปอร์บล็อก
    • ส่วนหัวของกลุ่มกระบอกสูบ พร้อมสถิติ รายการฟรี ฯลฯ เกี่ยวกับกลุ่มกระบอกสูบนี้ คล้ายกับที่อยู่ในซูเปอร์บล็อก
    • โหนดจำนวนหนึ่งแต่ละโหนดประกอบด้วยคุณลักษณะของไฟล์
    • บล็อกข้อมูลจำนวนหนึ่ง

หมายเลข Inode จะเรียงลำดับกัน โดยเริ่มจาก 0 Inode 0 สงวนไว้สำหรับรายการไดเร็กทอรีที่ยังไม่ได้จัดสรร Inode 1 เคยเป็น inode ของไฟล์ bad block ในเวอร์ชัน UNIX รุ่นเก่า ตามด้วย inode สำหรับไดเร็กทอรีรูทซึ่งมักจะเป็น inode 2 และ inode สำหรับไดเร็กทอรีที่สูญหายและค้นพบ ซึ่งคือ inode 3

ไฟล์ไดเร็กทอรีจะมีเพียงรายชื่อไฟล์ในไดเร็กทอรีและ inode ที่เชื่อมโยงกับแต่ละไฟล์เท่านั้นข้อมูลเมตา ของไฟล์ทั้งหมด จะถูกเก็บไว้ใน inode

ประวัติศาสตร์และวิวัฒนาการ

ระบบไฟล์ Unix ในยุคแรกๆ เรียกง่ายๆ ว่าFS FS ประกอบด้วยบล็อกบูต ซูเปอร์บล็อก กลุ่มของอิโนดและบล็อกข้อมูลเท่านั้น ซึ่งใช้งานได้ดีกับดิสก์ขนาดเล็กที่ Unix ในยุคแรกๆ ถูกออกแบบมา แต่เมื่อเทคโนโลยีพัฒนาขึ้นและดิสก์มีขนาดใหญ่ขึ้น การเคลื่อนหัวอ่านไปมาระหว่างกลุ่มของอิโนดและบล็อกข้อมูลที่อ้างถึงทำให้เกิดการทำงานที่ติดขัดมาร์แชลเคิร์ก แมคคูซิกซึ่งในขณะนั้นเป็น นักศึกษาปริญญาโท ของเบิร์กลีย์ได้ปรับปรุงโครงสร้าง FS ของ V7 เพื่อสร้าง FFS (Fast File System) ของ BSD 4.2โดยการคิดค้นกลุ่มกระบอกสูบ ซึ่งแบ่งดิสก์ออกเป็นส่วนย่อยๆ โดยแต่ละกลุ่มจะมีอิโนดและบล็อกข้อมูลของตัวเอง[ 2 ] [ 3 ]

จุดประสงค์ของ BSD FFS คือการพยายามจัดวางบล็อกข้อมูลและเมตาเดตาที่เกี่ยวข้องไว้ในกลุ่มกระบอกสูบเดียวกัน และในอุดมคติแล้ว เนื้อหาทั้งหมดของไดเร็กทอรี (ทั้งข้อมูลและเมตาเดตาสำหรับไฟล์ทั้งหมด) ควรอยู่ในกลุ่มกระบอกสูบเดียวกันหรือใกล้เคียงกัน ซึ่งจะช่วยลดการแตกกระจายของข้อมูลที่เกิดจากการกระจายเนื้อหาของไดเร็กทอรีไปทั่วทั้งดิสก์

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

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

ขนาดดิสก์ที่ใหญ่ขึ้นก็เป็นไปได้เช่นกัน เนื่องจากจำนวนบล็อกสูงสุดถูกจำกัดด้วยจำนวนบล็อกความกว้างบิตคงที่ อย่างไรก็ตาม ด้วยขนาดบล็อกที่ใหญ่ขึ้น ดิสก์ที่มีไฟล์ขนาดเล็กจำนวนมากจะสิ้นเปลืองพื้นที่ เนื่องจากแต่ละไฟล์ต้องใช้พื้นที่อย่างน้อยหนึ่งบล็อก ด้วยเหตุนี้ BSD จึงเพิ่มการแบ่งส่วนระดับบล็อกหรือที่เรียกว่าการจัดสรรย่อยบล็อก การรวมส่วนท้าย หรือการบรรจุส่วนท้ายซึ่งบล็อกข้อมูลส่วนสุดท้ายจากหลายไฟล์อาจถูกจัดเก็บไว้ในบล็อก "ส่วนย่อย" เดียวแทนที่จะเป็นบล็อกที่ว่างเปล่าส่วนใหญ่หลายบล็อก[ 4 ]

ผลงานเกี่ยวกับ Berkeley FFS ได้รับการนำไปใช้อย่างกว้างขวางโดยผู้จำหน่าย Unix รายอื่นๆ และตระกูลของระบบไฟล์ที่พัฒนาต่อยอดมาจากนั้นเรียกรวมกันว่า UFS

การนำไปใช้

ผู้จำหน่ายระบบ Unix ที่เป็นกรรมสิทธิ์บางระบบ เช่นSunOS / Solaris , System V Release 4 , HP-UXและTru64 UNIXรวมถึงระบบที่พัฒนามาจาก Unix แบบเปิด เช่นillumosได้นำ UFS มาใช้แล้ว

ตั้งแต่Solaris 7เป็นต้น มา Sun Microsystemsได้รวม UFS Logging ซึ่งนำการบันทึกข้อมูลของระบบไฟล์มาสู่ UFS ซึ่งยังคงมีอยู่ใน Solaris และ illumos เวอร์ชันปัจจุบัน[ 5 ] Solaris UFS ยังมีส่วนขยายสำหรับไฟล์ขนาดใหญ่และดิสก์ขนาดใหญ่ รวมถึงคุณสมบัติอื่นๆ อีกด้วย

ในระบบ 4.4BSD และ ระบบ Unix BSDที่พัฒนาต่อยอดมาจาก 4.4BSD เช่นFreeBSD , NetBSD , OpenBSDและDragonFly BSDการใช้งาน UFS1 และ UFS2 ถูกแบ่งออกเป็นสองชั้น: ชั้นบนที่ให้โครงสร้างไดเร็กทอรีและรองรับเมตาเดตา (สิทธิ์การเข้าถึง การเป็นเจ้าของ ฯลฯ) ในโครงสร้าง inode และชั้นล่างที่ให้คอนเทนเนอร์ข้อมูลที่นำมาใช้ในรูปแบบ inode การแบ่งเช่นนี้ทำขึ้นเพื่อรองรับทั้งระบบไฟล์แบบบันทึกโครงสร้าง FFS และLFS แบบดั้งเดิม โดยใช้โค้ดร่วมกันสำหรับฟังก์ชันทั่วไป ชั้นบนเรียกว่า "UFS" และชั้นล่างเรียกว่า "FFS" และ "LFS" ในบางระบบ คำว่า "FFS" ใช้สำหรับการรวมกันของชั้นล่าง FFS และชั้นบน UFS และคำว่า "LFS" ใช้สำหรับการรวมกันของชั้นล่าง LFS และชั้นบน UFS

McKusick ได้นำเทคนิคการจัดสรรบล็อกใหม่มาใช้ ซึ่งเป็นเทคนิคที่จัดเรียงบล็อกในระบบไฟล์ใหม่ก่อนที่จะทำการเขียนข้อมูล เพื่อลดการแตกกระจายของบล็อกและควบคุมการเสื่อมสภาพของระบบไฟล์ นอกจากนี้ เขายังได้นำการอัปเดตแบบนุ่มนวล มาใช้ ซึ่งเป็นกลไกที่รักษาความสอดคล้องของระบบไฟล์โดยไม่จำกัดประสิทธิภาพในแบบที่โหมดการซิงค์แบบดั้งเดิมทำ ผลข้างเคียงของวิธีนี้คือการลดความจำเป็นในการตรวจสอบระบบไฟล์หลังจากเกิดความผิดพลาดหรือไฟฟ้าดับ เพื่อแก้ไขปัญหาที่เหลืออยู่หลังจากเกิดความล้มเหลว จึงได้มีการนำยูทิลิตี้ fsck ที่ทำงานเบื้องหลังมาใช้

ใน UFS2 นั้น McKusick และPoul-Henning Kampได้ขยายเลเยอร์ FFS และ UFS ของ FreeBSD โดยเพิ่มตัวชี้บล็อก 64 บิต (ทำให้วอลุ่มสามารถขยายได้ถึง 8 เซบิไบต์ ) บล็อกขนาดแปรผัน (คล้ายกับเอ็กซ์เทนต์ ) ฟิลด์แฟล็กที่ขยายเพิ่มเติม การประทับเวลาเกิดเพิ่มเติม การสนับสนุนแอตทริบิวต์ที่ขยายเพิ่มเติม และ ACL ตามมาตรฐาน POSIX1.e UFS2 กลายเป็นเวอร์ชัน UFS ที่ได้รับการสนับสนุนอย่างเป็นทางการตั้งแต่ FreeBSD 5.0 ​​เป็นต้นไป FreeBSD ยังได้แนะนำการอัปเดตแบบซอฟต์และการสร้างสแนปช็อต ของระบบไฟล์ สำหรับทั้ง UFS1 และ UFS2 สิ่งเหล่านี้ได้รับการพอร์ตไปยัง NetBSD ในภายหลัง แต่ในที่สุดการอัปเดตแบบซอฟต์ (เรียกว่าการพึ่งพาแบบซอฟต์ใน NetBSD) ก็ถูกลบออกจาก NetBSD 6.0 โดยใช้กลไกการบันทึกข้อมูลระบบไฟล์ที่ซับซ้อนน้อยกว่าที่เรียกว่าWAPBL (หรือเรียกว่าการบันทึก) ซึ่งถูกเพิ่มเข้าไปใน FFS ใน NetBSD 5.0 ​​แทน OpenBSD รองรับการอัปเดตแบบซอฟต์ตั้งแต่เวอร์ชัน 2.9 [ 6 ]จนกระทั่งยกเลิกการสนับสนุนในเวอร์ชัน 7.4 [ 7 ]และมีการสนับสนุน UFS2 (FFS2) (ไม่มี ACL) ตั้งแต่เวอร์ชัน 4.2 [ 8 ] OpenBSD กำหนดให้ UFS2 เป็นเวอร์ชัน UFS เริ่มต้นในเวอร์ชัน 6.7 [ 9 ]ตั้งแต่ FreeBSD 7.0 เป็นต้นมา UFS ยังรองรับการบันทึกการเปลี่ยนแปลงของระบบไฟล์โดยใช้ผู้ให้บริการ gjournal GEOM FreeBSD 9.0 เพิ่มการสนับสนุนการบันทึกการเปลี่ยนแปลงแบบเบาบนการอัปเดตแบบซอฟต์ (SU+J) ซึ่งช่วยลดความจำเป็นในการตรวจสอบระบบไฟล์พื้นหลังและ ACL ของ NFSv4 ได้อย่างมาก

FreeBSD, NetBSD, OpenBSD และ DragonFly BSD ยังมี ระบบ Dirhashซึ่งพัฒนาโดย Ian Dowse ระบบนี้ใช้ตารางแฮชในหน่วยความจำเพื่อเพิ่มความเร็วในการค้นหาไดเร็กทอรี Dirhash ช่วยลดปัญหาด้านประสิทธิภาพหลายประการที่เกี่ยวข้องกับไดเร็กทอรีขนาดใหญ่ใน UFS

NeXTStepซึ่งพัฒนามาจาก BSD ก็ใช้ UFS เวอร์ชันหนึ่งเช่นกัน ในMac OS XของAppleนั้น UFS มีให้เลือกใช้เป็นทางเลือกแทนHFS+ซึ่งเป็นระบบไฟล์ที่เป็นกรรมสิทธิ์ของ Apple อย่างไรก็ตาม ตั้งแต่Mac OS X Leopard เป็นต้นไปไม่สามารถติดตั้ง Mac OS X บนไดรฟ์ที่ฟอร์แมตเป็น UFS ได้อีกต่อไป นอกจากนี้ ยังไม่สามารถอัปเกรด Mac OS X เวอร์ชันเก่าที่ติดตั้งบนไดรฟ์ที่ฟอร์แมตเป็น UFS ไปเป็น Leopard ได้ การอัปเกรดจำเป็นต้องฟอร์แมตไดรฟ์เริ่มต้นใหม่[ 10 ]มีข้อจำกัดขนาดไฟล์ 4 GB สำหรับดิสก์ที่ฟอร์แมตเป็น UFS ใน Mac OS X ตั้งแต่Mac OS X Lion เป็นต้น ไป การสนับสนุน UFS ถูกยกเลิกอย่างสมบูรณ์[ 11 ]

ดูเพิ่มเติม

  • เจโรน ซี. ฟาน เกลเดเรน (23-04-2546) "คำถามที่พบบ่อยเกี่ยวกับ UFS2 ตัวน้อย " ฟรีบีเอสดี . เก็บถาวรจากต้นฉบับเมื่อ 2026-02-06 . สืบค้นเมื่อ2013-04-08 .
  • "คู่มือการใช้งานระบบไฟล์: ระบบไฟล์อื่นๆ"โครงการเอกสารลินุกซ์ 27 มกราคม 2550
  • ระบบไฟล์ Solaris UFSที่เก็บถาวรดูเพิ่มเติมที่[1]
  • รูปแบบ USF(sic)/UFS2
  • ตำแหน่งที่ตั้งและระบบไฟล์ความเร็วสูง
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Unix_File_System&oldid=1350778367 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ระบบไฟล์ Unix

ระบบ ไฟล์ Unix ( UFS ) คือตระกูลของ ระบบไฟล์ ที่ได้รับการสนับสนุนโดยระบบ ปฏิบัติการ Unix และ ระบบปฏิบัติการ ที่คล้าย Unix...

ออกแบบ

วอลุ่ม UFS ประกอบด้วยส่วนต่างๆ ดังต่อไปนี้:

ประวัติศาสตร์และวิวัฒนาการ

ระบบไฟล์ Unix ในยุคแรกๆ เรียกง่ายๆ ว่า FS FS ประกอบด้วยบล็อกบูต ซูเปอร์บล็อก กลุ่มของ อิโนด และบล็อกข้อมูลเท่านั้น ซึ่งใช้งานได้ดีกับดิสก์ขนาดเล็กที่ Unix ในยุคแรกๆ ถูกออกแบบมา แต่เมื่อเทคโนโลยีพัฒนาขึ้นและดิสก์มีขนาดใหญ่ขึ้น...

การนำไปใช้

ผู้จำหน่ายระบบ Unix ที่เป็นกรรมสิทธิ์บางระบบ เช่น SunOS / Solaris , System V Release 4 , HP-UX และ Tru64 UNIX รวมถึงระบบที่พัฒนามาจาก Unix แบบเปิด เช่น illumos ได้นำ UFS มาใช้แล้ว