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

อ่าน 3 นาที

ไดเร็กทอรี (คอมพิวเตอร์)

ใน ด้านคอมพิวเตอร์ ไดเร็กทอรีคือ โครงสร้างการจัดทำรายการ ไฟล์ระบบ ที่มีการอ้างอิงถึง ไฟล์คอมพิวเตอร์ อื่นๆ และอาจรวมถึงไดเร็กทอรีอื่นๆ ด้วย ในคอมพิวเตอร์หลายเครื่อง...

ไดเร็กทอรี (คอมพิวเตอร์)

ภาพหน้าจอของ หน้าต่าง พร้อมท์คำสั่งMicrosoft Windows ที่แสดงรายการไดเร็กทอรี

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

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

ประเภท สื่อ freedesktop.orgสำหรับไดเร็กทอรีภายใน ระบบ ที่คล้าย Unix หลาย ระบบ ซึ่งรวมถึงแต่ไม่จำกัดเฉพาะระบบที่ใช้GNOME , KDE Plasma 5หรือROX Desktopเป็นสภาพแวดล้อมเดสก์ท็อป คือ "inode/directory" [ 2 ]นี่ไม่ใช่ประเภทสื่อที่ลงทะเบียนกับ IANA

ภาพรวม

แผนภาพแสดงโครงสร้างลำดับชั้นของไดเร็กทอรี ไดเร็กทอรีรากในที่นี้เรียกว่า "MFD" ซึ่งย่อมาจาก Master File Directory โดยปกติแล้วไฟล์หนึ่งไฟล์จะอยู่ในไดเร็กทอรีเดียวได้ในเวลาเดียวกัน แต่ในที่นี้ไฟล์ที่ 2 ถูกสร้างเป็นฮาร์ดลิงก์จึงปรากฏอยู่ในสองไดเร็กทอรี

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

การอ้างอิงถึงตำแหน่งในระบบไดเร็กทอรีเรียกว่าเส้นทาง (Path )

ในระบบปฏิบัติการ หลายๆ ระบบ โปรแกรมจะมีไดเร็กทอรีทำงาน ที่เชื่อมโยงอยู่ ซึ่งเป็นที่ที่โปรแกรมนั้นทำงาน โดยทั่วไปแล้ว ชื่อไฟล์ที่โปรแกรมเข้าถึงจะถือว่าอยู่ในไดเร็กทอรีนี้ หากไม่ได้ระบุชื่อไดเร็กทอรีอย่างชัดเจน

ระบบปฏิบัติการบางระบบจำกัด การเข้าถึง ของผู้ใช้เฉพาะไดเร็กทอรีโฮมหรือไดเร็กทอรีโปรเจกต์ของตนเองเท่านั้น ทำให้กิจกรรมของผู้ใช้รายนั้นแยกออกจากผู้ใช้รายอื่น ใน Unix เวอร์ชันแรก ๆ ไดเร็กทอรีรูทคือไดเร็กทอรีโฮมของผู้ใช้ rootแต่ Unix รุ่นใหม่มักใช้ไดเร็กทอรีอื่น เช่น/rootสำหรับจุดประสงค์นี้

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

อุปมาอุปไมยของโฟลเดอร์

ไอคอนโฟลเดอร์ตัวอย่าง (จากKDE )

ชื่อโฟลเดอร์ซึ่งนำเสนอการเปรียบเทียบกับโฟลเดอร์ไฟล์ที่ใช้ในสำนักงาน และใช้ในการออกแบบระบบไฟล์แบบลำดับชั้นสำหรับเครื่องบันทึกอิเล็กทรอนิกส์ การบัญชี (ERMA) Mark 1 ที่เผยแพร่ในปี พ.ศ. 2501 [ 5 ]เช่นเดียวกับXerox Star [ 6 ]ถูกใช้ใน สภาพแวดล้อมเดสก์ท็อปของ ระบบปฏิบัติการ สมัยใหม่เกือบทั้งหมด โฟลเดอร์มักจะแสดงด้วยไอคอน ที่มี ลักษณะคล้ายกับโฟลเดอร์ไฟล์จริง

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

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

แคชการค้นหา

ระบบปฏิบัติการที่รองรับระบบไฟล์แบบลำดับชั้นจะใช้การแคชใน หน่วยความจำ RAMเพื่อเพิ่มความเร็วในการค้นหาเส้นทางไฟล์ กลไกนี้ช่วยลดภาระที่เกิดจากการสำรวจลำดับชั้นของระบบไฟล์ซ้ำๆ เพื่อแปลงชื่อเส้นทางเป็นหมายเลขอ้างอิง inode

ใน ระบบ ที่คล้าย Unixอาจเรียกว่าแคชการค้นหาชื่อไดเร็กทอรี ( DNLC) แคชรายการไดเร็กทอรีหรือdcache [ 7 ] [ 8 ]

ภาพรวม

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

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

ภูมิหลังทางประวัติศาสตร์

SunOSได้นำแคชการค้นหามาใช้เป็นส่วนหนึ่งของการใช้งานNFS [ 7 ] อย่างไรก็ตามแคชนี้ไม่ได้ถูกใช้โดย NFS เพียงอย่างเดียว แต่ได้รับการดัดแปลงและขยายเพิ่มเติมในระบบต่างๆ เช่น Linux, BSD, Solaris และ macOS

การนำไปใช้

วินโดวส์

ระบบปฏิบัติการ Windows ใช้กลไกการแคชเส้นทางภายในเป็นส่วนหนึ่งของเลเยอร์ NTFS และตัวจัดการอ็อบเจ็กต์เคอร์เนล แม้ว่ากลไกเหล่านี้จะไม่เปิดเผยโดยตรงเสมอไปก็ตาม

ตัวแปร BSD

ระบบปฏิบัติการ BSD หลายเวอร์ชัน รวมถึงFreeBSD , NetBSD , [ 9 ] OpenBSD , [ 10 ]และDragonFly BSDใช้แคชการค้นหาไดเร็กทอรี

ระบบปฏิบัติการ macOS

macOSผสานการแคชการค้นหาเข้ากับเลเยอร์ VFS [ 11 ]

ลินุกซ์

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

นอกเหนือจากการเร่งความเร็วในการค้นหาไฟล์แล้ว dcache ยังมีบทบาทในการรักษาความสม่ำเสมอในระบบไฟล์ที่เชื่อมต่ออยู่ รวมถึงการตั้งค่าที่ซับซ้อนที่มีการซ้อนทับหรือการเชื่อมต่อแบบผูกมัดด้วย

ความสอดคล้องของแคชในระบบไฟล์แบบกระจาย

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

  • การหมดเวลาของแอตทริบิวต์
  • การล็อกตามสัญญาเช่า (เช่น การมอบหมายสิทธิ์ ใน NFSv4 )
  • การยกเลิกฟังก์ชันเรียกกลับ (เช่น AFS)

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

ผลกระทบต่อประสิทธิภาพ

แคชการค้นหาไดเร็กทอรีที่ได้รับการปรับแต่งอย่างเหมาะสมสามารถลดความหน่วงของระบบสำหรับการดำเนินการกับไฟล์ เช่น `open()`, `stat()` และ `execve()` ได้อย่างมาก ในการทดสอบประสิทธิภาพ ระบบที่มีการแคช dentry อย่างเข้มข้นแสดงให้เห็นถึงการปรับปรุงเวลาในการเข้าถึงโค้ดเบสขนาดใหญ่และเวลาในการบูตระบบที่ดีขึ้นหลายเท่าตัว

ดูเพิ่มเติม

ค้นหาแคชที่เกี่ยวข้อง
โครงสร้างระบบไฟล์
แนวคิดระบบปฏิบัติการ
คำสั่งทั่วไป
  • คำจำกัดความของไดเร็กทอรีโดยโครงการข้อมูลลินุกซ์ (LINFO)
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Directory_(computing)&oldid=1359485657 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ ไดเร็กทอรี (คอมพิวเตอร์)

ใน ด้านคอมพิวเตอร์ ไดเร็กทอรีคือ โครงสร้างการจัดทำรายการ ไฟล์ระบบ ที่มีการอ้างอิงถึง ไฟล์คอมพิวเตอร์ อื่นๆ และอาจรวมถึงไดเร็กทอรีอื่นๆ ด้วย ในคอมพิวเตอร์หลายเครื่อง...

ภาพรวม

ในอดีต และแม้แต่ใน ระบบฝัง ตัวสมัยใหม่บาง ระบบ ระบบไฟล์ไม่มีการรองรับไดเร็กทอรีเลย หรือมีเพียง โครงสร้างไดเร็กทอรี แบบ "แบนราบ" เท่านั้น ซึ่งหมายความว่าไม่รองรับไดเร็กทอรีย่อย มีเพียงกลุ่มของไดเร็กทอรีระดับบนสุด ซึ่งแต่ละไดเร็กทอรีจะบรรจุไฟล์อยู่ภายใน...

อุปมาอุปไมยของโฟลเดอร์

ชื่อ โฟลเดอร์ ซึ่งนำเสนอการเปรียบเทียบกับ โฟลเดอร์ไฟล์ ที่ใช้ในสำนักงาน และใช้ในการออกแบบระบบไฟล์แบบลำดับชั้นสำหรับ เครื่องบันทึกอิเล็กทรอนิกส์ การบัญชี (ERMA) Mark 1 ที่เผยแพร่ในปี พ.ศ.

แคชการค้นหา

ระบบปฏิบัติการที่รองรับระบบไฟล์แบบลำดับชั้นจะใช้ การแคช ใน หน่วยความจำ RAM เพื่อเพิ่มความเร็วในการค้นหาเส้นทางไฟล์ กลไกนี้ช่วยลดภาระที่เกิดจากการสำรวจลำดับชั้นของระบบไฟล์ซ้ำๆ เพื่อแปลง ชื่อเส้นทาง เป็นหมายเลขอ้างอิง inode