ระบบไฟล์เป็นเพียงเลย์เอาต์ของโฟลเดอร์หรือไม่?


56

ฉันใช้ Windows มาตั้งแต่เด็กและเมื่อฉันได้ยินวลี "ระบบแฟ้มของ Windows" ฉันคิดถึงไดเรกทอรี (โฟลเดอร์) ภายในไดเรกทอรีโฟลเดอร์ที่ชื่อว่า SYSTEM โฟลเดอร์ที่เรียกว่า PROGRAM FILES เป็นต้นระบบนี้คืออะไร แค่เค้าโครงของโฟลเดอร์?

จากนั้นฉันเพิ่งเริ่มใช้ Linux และหนังสืออ้างอิงของฉันบอกว่าในระบบไฟล์ linux ทุกอย่างเริ่มต้นที่รูทและแตกสาขาออกจากที่นั่น มันแตกต่างจาก Windows จริงๆอย่างไร ฉันหมายถึงดูเหมือนว่าระบบ linux และระบบ windows เป็นเพียงสองวิธีในการตั้งค่าทรีไดเรกทอรี นี่คือความหมายของระบบไฟล์หรือไม่?


3
คุณได้ลองอ่านen.wikipedia.org/wiki/Filesystem แล้วหรือยัง?
choroba

2
FYI, ไม่มี "ระบบไฟล์ Linux" สิ่งที่หนังสือเล่มนี้พูดถึงคือต้นไม้ไดเรกทอรีลินุกซ์ และใช่ไดเรกทอรีต้นไม้เป็นเพียงเค้าโครงของโฟลเดอร์
user606723

2
ลินุกซ์ขาดแนวคิดของไดรฟ์/ดังกล่าวว่าทุกอย่างจะติดตั้งอยู่ภายใต้ ใน Windows นี่ไม่ใช่กรณีเนื่องจากมันขาดการติดตั้งแบบ UNIX (แก้ไขให้ฉันถ้าฉันผิดที่นี่) ดังนั้นทุกอย่างจะถูกจัดระเบียบรอบไดรฟ์
new123456

1
@ new123456 รู้สึกถูกต้อง Windows รองรับการติดตั้ง (ตั้งแต่ W2k หรือ NT) ถึงแม้ว่าคุณสมบัตินี้จะไม่ค่อยได้ใช้
kubanczyk

1
หนึ่งความแตกต่างก็คือคำว่า "ระบบแฟ้ม" มีสามความหมายที่แตกต่างกัน
JdeBP

คำตอบ:


130

แค่เค้าโครงของโฟลเดอร์?

ฟังดูดีเกินกว่าที่จะเป็นจริง ...

ลองใช้ระบบไฟล์ FAT32 เป็นตัวอย่าง ฉันสามารถติดตั้ง Windows XP ได้ แต่ฉันสามารถใช้กับการ์ดหน่วยความจำได้ ในการ์ดหน่วยความจำคุณไม่มีโฟลเดอร์เหล่านั้นที่คุณสรุป

ดังนั้น ...อย่าสับสนเลย์เอาต์ไดเรกทอรีของตระกูลของระบบปฏิบัติการกับระบบไฟล์

นี่คือความหมายของระบบไฟล์หรือไม่?

ไม่ ...มันหมายถึงบิตและไบต์พื้นฐานที่ทำให้โครงสร้างไดเรกทอรีของคุณใช้งานได้

บิตและไบต์พื้นฐาน? แสดงให้ฉันเห็น FAT32!

มาดูกันว่าFAT32มีหน้าตาเป็นอย่างไร:

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

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

รายการไดเรกทอรีจะชี้ไปที่รายการของรายการไดเรกทอรี / ไฟล์ ...

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

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

ระบบไฟล์อื่นแตกต่างกันหรือไม่? แสดงให้ฉันเห็น NTFS!

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

แนวคิดหลักคือ NTFS นั้นมีการปรับปรุงอย่างมากเหนือ FAT32 ที่มีความแข็งแกร่ง / มีประสิทธิภาพมากขึ้น การมีความคิดที่ดีขึ้นเกี่ยวกับ (un) ใช้พื้นที่โดยใช้บิตแมปเพื่อช่วยในการต่อต้านการแตกแฟรกเมนต์ และอื่น ๆ ...

- http://thinkdifferent.typepad.com/photos/uncategorized/04ntfsfilesystem.png

ระบบไฟล์บน Linux เป็นอย่างไร? แสดง ext2 / 3!

แนวคิดคือ ext2 / ext3 ใช้ super block และ inodes สิ่งนี้ทำให้ซอฟต์และฮาร์ทลิงค์ไดเรกทอรีที่เป็นไฟล์ไฟล์ที่มีชื่อหลาย ๆ ชื่อเป็นต้น สาระสำคัญหลักคือใจลอยไปเพื่อให้ระบบไฟล์สามารถทำสิ่งเพิ่มเติมmeta-ish ...

- http://thinkdifferent.typepad.com/photos/uncategorized/03extfilesystem.png


@Shadok: ฉันอาจปรับปรุงส่วนต่อมาในภายหลังฉันค่อนข้างยุ่งในวันนี้แม้ว่า ... ขอบคุณ
Tamara Wijsman

2
ฉันจะ +1 สิ่งนี้ถ้าทำได้ ตอนนี้เหตุใดจึงไม่สามารถมีเอกสารและรายละเอียดมากกว่านี้ได้แบบนี้!
greatwolf

บางทีคุณควรเขียนโพสต์บล็อกเกี่ยวกับ @TomWijsman ;-) นี้
Ivo Flipse

@IvoFlipse: A "การจัดเก็บข้อมูล: มันทำงานอย่างไร" ชุดอาจจะเป็นไปได้นี่คือคำตอบอีก รูปภาพใหญ่ & $ # พูดมากกว่าคำพูด ... :)
Tamara Wijsman

แน่นอนดูเหมือนความคิดที่ดี
Ivo Flipse

14

ความแตกต่างที่สำคัญระหว่าง Linux และ Windows อย่างน้อยก็เมื่อพูดถึงระบบไฟล์และแผนผังต้นไม้ของพวกเขาก็คือใน Linux "ทุกอย่างเป็นไฟล์" และทุกอย่างก็มาจากรูทเดียว สิ่งนี้ยังใช้กับระบบปฏิบัติการ Unix ที่ได้มาเกือบทั้งหมดเช่น BSD, OS X, Solaris เป็นต้น แต่ฉันจะพูดว่า "Linux" เป็นแบบทั่วไป (ถ้าไม่แม่นยำทั้งหมด)

แต่นั่นหมายความว่าในทางปฏิบัติ

Windows อนุญาตให้มีหลายชื่อที่รูทสำหรับระบบไฟล์ คุณเข้าใจสิ่งเหล่านี้เป็นตัวอักษรไดรฟ์: C: D: E:และอื่น ๆ แต่ละคนมีราก ( \) และต้นไม้ที่สืบทอดมาจากมัน Windows รุ่นล่าสุดอนุญาตให้ใช้สิ่งต่าง ๆ เช่นจุดเมานต์ระดับเสียงซึ่งสามารถติดตั้งไดรฟ์ข้อมูล (สิ่งที่คุณต้องการให้เป็นพาร์ทิชัน) ไปยังโฟลเดอร์ว่างที่มีอยู่แล้ว ดังนั้นแทนที่จะเป็นD:\ แทนรากของพูดไดรฟ์ออปติคัล (CD / DVD / BR) ของคุณคุณสามารถติดตั้งC:\Opticalแทน นี่คล้ายกับสิ่งที่ Linux ทำ นอกจากนี้ยังมีเนมสเปซพื้นฐานที่มีรูทรากเดียวสำหรับทุกสิ่งใน Windows ซึ่งคล้ายกับที่ใช้กับ Linux และจัดการโดยObject Managerแต่ผู้ใช้ส่วนใหญ่ไม่ค่อยเห็นว่ามีการอ้างอิงเนื่องจากส่วนใหญ่ใช้สำหรับเคอร์เนล

Linux มีรากเดียว: /. ทุกสิ่งสืบทอดมาจากมันและมันไม่จำเป็นต้องเป็นตัวแทนของฮาร์ดไดรฟ์ของคุณ ฮาร์ดไดรฟ์ออปติคัลไดรฟ์การ์ดหน่วยความจำเครือข่ายเครื่องพิมพ์พรินเตอร์สแกนเนอร์ซีพียู RAM กระบวนการ ... ทุกอย่างจะถูกนำเสนอที่ไหนสักแห่งภายในเนมสเปซเดียวนี้และสามารถเข้าถึงได้ทุกขั้นตอนด้วย API การจัดการไฟล์มาตรฐาน ระดับการเข้าถึงสูงพอ เพียงเพราะคุณสามารถอ่านหรือเขียนไม่ได้หมายความว่ามันเป็นไฟล์ในฮาร์ดไดรฟ์ของคุณใน Linux ยกตัวอย่างเช่นอุปกรณ์ที่ติดตั้งมักจะเข้าไป/devเพื่อให้เข้าถึงสิ่งที่อยู่ในนั้นมักจะหมายความว่าคุณกำลังพูดคุยกับอุปกรณ์ - บางทีมันอาจจะเป็นการ์ดเสียงหรือสแกนเนอร์หรือกล้อง ฯลฯ เหล่านี้เป็นที่รู้จักกันเป็นแฟ้มอุปกรณ์ procfsเป็น "ระบบไฟล์" พิเศษที่ปกติแล้วจะติดตั้ง/procและมี "ไดเรกทอรี" สำหรับทุกกระบวนการที่กำลังทำงานโดยมีไฟล์ในแต่ละไดเรกทอรีที่เกี่ยวข้องกับสิ่งต่าง ๆ เช่นบรรทัดคำสั่งที่ใช้เรียกกระบวนการนั้นแผนที่หน่วยความจำไฟล์ที่เปิดเป็นต้น Sysfsเป็นอีกหนึ่ง ระบบไฟล์พิเศษ (ที่ติดตั้งอยู่/sys) ใช้เพื่อเปิดเผยข้อมูลจำนวนมากเกี่ยวกับวัตถุเคอร์เนลที่กำลังทำงานและยังสามารถใช้เพื่อปรับแต่งเคอร์เนลที่กำลังทำงานอยู่โดยการเขียนลงในไฟล์เฉพาะ


2
โปรดทราบว่ามันเป็นเรื่องง่ายที่จะสร้างความสับสนให้กับระบบไฟล์ด้วยการจัดวางไดเรกทอรีจากมุมมองของผู้ใช้ ในขณะที่คำว่าระบบไฟล์หมายถึงการมองให้เกี่ยวกับ internals ของระบบไฟล์ เช่น. ความแตกต่างระหว่าง FAT และ NTFS เช่นเดียวกับความแตกต่างระหว่าง ext2 และ ext3 ...
Tamara Wijsman

4
@ ทอม: ดูเหมือนว่า OP จะถามถึงความแตกต่างในลำดับชั้นของวัตถุต่าง ๆ ระหว่าง Linux และ Windows มากกว่าการวางบิตบนดิสก์ udev, procfs, sysfs, tmpfs, ฯลฯ เป็นระบบไฟล์เพียงเท่าที่ ext2 หรือ NTFS อยู่ใน Linux แม้ว่าพวกเขาจะไม่เกี่ยวข้องกับข้อมูลบนดิสก์
afrazier

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

+1 สำหรับ "ทุกอย่างเป็นไฟล์" ใน Linux นี่คือความแตกต่างที่สำคัญระหว่าง Linux และ Windows สำหรับฉัน
Rabarberski

3

ระบบไฟล์ไม่เพียง แต่เกี่ยวกับการตั้งค่าทรีไดเรกทอรี แต่ยังรวมถึงวิธีการเข้ารหัสข้อมูลนี้ในสื่อด้วย มีระบบไฟล์ต่าง ๆ สำหรับ Linux: ext3, xfs, raiserfs เป็นต้น


3

คุณสามารถนึกถึงระบบไฟล์เป็นรูปแบบที่แตกต่างกันสำหรับการจัดเก็บไฟล์และโฟลเดอร์ค่อนข้างคล้ายกับวิธีที่ MS Word และ PDF เป็นรูปแบบที่แตกต่างกันสำหรับการจัดเก็บเอกสารหรือ MP3 และ WAV เป็นรูปแบบที่แตกต่างกันสำหรับการจัดเก็บเสียง

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

และเช่นเดียวกับที่ผู้เล่นวิดีโอทุกคนไม่สามารถเล่นได้ทุกรูปแบบวิดีโอระบบปฏิบัติการทั้งหมดไม่สามารถอ่านระบบไฟล์ทั้งหมดได้ เช่นถ้าคุณจัดเก็บไฟล์จาก Linux บนแท่ง USB ที่จัดรูปแบบ ext3 Windows จะไม่สามารถอ่านไฟล์ได้เนื่องจากไม่ทราบวิธีจัดการกับระบบไฟล์ ext3

ระบบไฟล์ทั่วไป ได้แก่

  • FAT และ NTFS (Windows, NTFS เป็นมาตรฐานสำหรับ Windows รุ่นใหม่กว่า)
  • ext3 และ ext4 (Linux)
  • HFS plus (OS X)
  • ISO 9660 และ UDF (CD, DVD และ Blu-Ray)

ดูวิกิพีเดียสำหรับการเปรียบเทียบของระบบไฟล์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.