מערכת קבצים

מבנה של מערכות קבצים

רוב מערכות הקבצים עושות שימוש בהתקן אחסון הנתונים שמציע גישה למערך של סקטורים בגודל פיזי קבוע, בדרך כלל בחזקות של 2 (512 בתים או 1, 2, 4 או קילובייט הם הנפוצים ביותר). תוכנת מערכת הקבצים היא האחראית לארגון הסקטורים האלה כקבצים וכספריות, ולמעקב אחר סקטורים אשר שייכים לקבצים ואחר אלו שאינם בשימוש. רוב מערכות הקבצים יכולות לגשת ישירות רק ליחידות נתונים שנקראות בלוקים המכילות מספר מסוים של סקטורי דיסק (בדרך כלל 1-64). זהו הגודל הקטן ביותר של שטח הדיסק שניתן להקצות לקובץ (מערכות קבצים המשתמשות בדחיסה לא סובלות לרוב ממגבלה זו).
עם זאת, מערכות קבצים כלל לא חייבות לעשות שימוש בהתקן אחסון, ניתן להשתמש במערכת קבצים כדי לארגן ולייצג גישה לנתונים כלשהם, בין אם הם מאוחסנים במקום כלשהו או דינאמיים (למשל, procfs היא מערכת קבצים המכילה נתונים על התהליכים במערכת ההפעלה).

שמות קבצים

שם קובץ הוא שם שהוקצה לקובץ כדי להבטיח מקום אחסון בזיכרון המחשב והוא מאפשר גישה חוזרת למקום זה. בין אם מערכת הקבצים משתמשת בהתקן אחסון ובין אם לאו, בדרך כלל יש במערכות קבצים ספריות ששמות הקבצים מקשרים ביניהם לבין הקבצים, לרוב על ידי חיבור שם הקובץ לאינדקס בטבלת הקצאת קובץ כלשהו, כגון FAT בתוך מערכת הקבצים של DOS, או inode בתוך מערכת קבצים של Unix. מבנה הספריות עשוי להיות שטוח, או לאפשר היררכיות שבהן ספריות עשויות להכיל תת-ספריות. בכמה מערכות קבצים, שמות הקבצים הם בעלי תחביר מיוחד עבור סיומות ומספרי גרסה. במקרים אחרים, שמות הקבצים הן מחרוזות פשוטות, וכל המטא מידע של הקובץ מאוחסן במקום אחר.

מערכות קבצים היררכיות

מערכת הקבצים ההיררכית היא תוצאה של מחקר של דניס ריצ'י (Dennis Ritchie), יישומים קודמים של מערכת כזו היו מוגבלים רק למספר רמות, בעיקר ביישומים של IBM, אפילו של מסדי נתונים המוקדמים שלהם כמו IMS. לאחר ההצלחה של Unix, ריצ'י הרחיב את המושג מערכת הקבצים בכל מערכת ההפעלה המאוחרות יותר שלו, כגון Plan 9 ו־Inferno.

שירותים

מערכות קבצים מסורתית מציעות אפשרויות ליצור, להעביר ולמחוק קבצים וספריות. הן חסרות יכולות ליצור קישורים נוספים לספרייה (קישורים "קשים" במינוח של Unix), לשנות את הקישור לספריית האם (".." ב־Unix ), וליצור קישורים דו כיוונים לקבצים.
מערכות קבצים מסורתית מציעות גם יכולות לחתוך, להוסיף, ליצור, להעביר, למחוק ולשנות קבצים, כמו גם יכולת למנות את רשימת הקבצים בספריה ולקבוע אותה כספריה נוכחית. לרוב הן לא מציעות יכולת להוסיף להתחלה של קובץ או לחתוך אותו, ובוודאי שלא הכנסה שרירותית לתוך הקובץ במקום כלשהו או מחיקה של חלק כלשהו ממנו. פעולות אלו הן מאד בלתי סימטריות וחסרות את הכלליות בשביל להיות שימושיות בתנאים בלתי צפויים. לדוגמה, pipe-ים בין תהליכים ב־Unix צריכים להיות מיושמים מחוץ למערכת הקבצים כי pipe אינו מציע חיתוך בתחילת הקבצים.
מערכות קבצים מציעות גם בדרך כלל אפשרויות לטיפול במערכת הקבצים עצמה כמו איחוי מידע (Defrag) ואיתור תקלות (למשל קבצים כפולים).
שירותים אלו יכולים להתבצע לרוב על ידי קריאות לתוכניות שירות של מערכת ההפעלה או על ידי קריאה ל־API שלה (לעיתים יש צורך בדרייבר למערכת הקבצים הספיציפית).

גישה מאובטחת

גישה מאובטחת לפעולות בסיסיות במערכת הקבצים יכולה להיות מבוססת על רשימות בקרת גישה (ACL) או "capabilities", כאשר מערכות קבצים מסחריות משתמשות כיום ברשימות בקרת גישה.

מערכות קבצים עבור דיסק

מערכת קבצים על דיסק היא מערכת קבצים המיועדת לאחסון של קבצים על התקן אחסון נתונים, לרוב דיסק, אשר עשוי להיות מקושר במישרין (DAS) או בעקיפין (SAN) למחשב. מערכות כאלו נקראות לעיתים גם מערכות קבצים מקומיות (להבדיל מרשתיות) או מערכות קבצים "סתם". במחשב סטנדרטי אתחול מערכת ההפעלה חייב להתבצע ממערכת קבצים כזו (וגם מספר ספריות המשמשות באתחול כמו /tmp‎ ב־Unix), בדרך כלל מתוך רשימה מצומצמת יחסית לרשימת מערכות הקבצים הנתמכות על ידה. מערכות כאלו הן למשל הן FAT ‏(FAT12, FAT16, FAT32, exFAT)‏, NTFS, HFS, HFS+, HPFS, UFS, ext2, ext3, ext4, btrfs, ISO 9660, ODS-5, VxFS, ZFS ו־UDF.

מערכות קבצים על בסיס מסד נתונים

מערכת הקבצים יכולה להיות מבוססת על מסד נתונים סטנדרטי או ייעודי. במערכת כזו, במקום, או בנוסף, לניהול היררכי מובנה, הקבצים מזוהים על פי המאפיינים שלהם, למשל סוג קובץ, נושא, מחבר, או מטא נתונים דומים. כיום אין שום מערכת הפעלה נפוצה המשתמשת במערכת קבצים מסוג זה אולם מערכות ניהול גרסאות מסוימות כמו ClearCase יכולות להיחשב למערכות מסוג זה.

מערכות קבצים טרנזקצאליות

כל פעולה במערכת הקבצים עשויה לכלול שינויים במספר קבצים שונים ובמבנים שונים בדיסק. במקרים רבים, שינויים אלה קשורים זה לזה, כלומר, חשוב שכולם יוצאו לפועל באותו זמן. למשל בזמן שליחה של כסף אלקטרוני מבנק לבנק אחר, המחשב של הבנק ישלח את ההוראה להעביר לבנק אחר וגם יעדכן את הרשומות שלו כדי לציין שההעברה התרחשה. אם מסיבה כלשהי המחשב קורס לפני שהוא הספיק לעדכן את הרשומות שלו, אזי באתחול מחדש של מערכת הקבצים, לא יהיה תיעוד של ההעברה אבל לבנק יהיה חסר כסף.
עיבוד בטרנזקציות מבטיח כי בכל נקודת זמן שהעסקה מעובדת, היא יכולה להיות מבוצעת לגמרי או מבוטלת לגמרי (אם כי לא בהכרח שתי האפשרויות זמינות בכל נקודה נתונה). משמעות הדבר היא שאם יש קריסה (של מערכת הקבצים או של מערכת ההפעלה כולה) או [הפסקת חשמל], הרי לאחר התאוששות, המידע המאוחסן יהיה עקבי (את הכסף יעבירו או לא יעבירו, אבל הוא לעולם לא ייעלם באמצע המעבר).
מערכת קבצים טרנזקצאלית מתוכננת להיות חסינת כשל, אבל היא סובלת מההשקעה הדרוש על מנת להבטיח זאת (יש צורך בפעולות כתיבה נוספות, בפעולות קריאה נוספות, בזיכרון נוסף וכיוצא באלו).
מערכות קבצים מתועדות הן אחת הטכניקות בשימוש להשגת עקביות ברמת מבני מערכת הקבצים.
מערכות קבצים כמו MVFS (לניהול גרסאות) ו־Wikifs (לשינוי ויקיפדיה) גם הן משתייכות חלקית לסוג זה וזאת מכיוון שהרישום במערכת הקבצים הבסיסית מתבצע אך ורק על ידי פעולה מיוחדת.

מערכות קבצים על דיסק משותף

מערכת קבצים על דיסק משותפת היא כזו שבה כמה מחשבים (לרוב שרתים) הם בעלי גישה לאותה מערכת דיסקים חיצוני (בדרך כלל מסוג SAN, הגם שמערכות DAS מסוימות תומכות אף הן ביכולת זו). מערכת הקבצים מתווכת בגישה למערכת הקבצים למניעת התנגשות בזמן כתיבה. דוגמאות למערכות כאלו הן GFS של Red Hat ו־GPFS של IBM, מערכות קבצים אחרות מסוג זה מהוות הרחבה של מערכת קבצים מסוגים אחרים, כמו CFS ‏(Cluster File System) שהיא הרחבה של VxFS.

מערכות קבצים ייעודיות

מערכת קבצים ייעודית היא כל מערכת קבצים שהיא לא מערכת קבצים על דיסק (או זיכרון הבזק) או מערכת קבצים רשתית. קטגוריה זו כוללת מערכות שבהן הקבצים מסודרים באופן דינמי על ידי התוכנה, והן מיועדות למטרות כגון תקשורת בין תהליכים במחשב או שמירת הקבצים הזמניים.
מערכות קבצים ייעודיות הן נפוצות ביותר במערכות הפעלה המשתמשות במטאפורות של קובץ כגון Unix. דוגמאות לכך הן procfs ‏(‎/proc) שהיא מערכת קבצים בשימוש על ידי כמה גרסאות Unix המעניקה גישה למידע על תהליכים ושאר התכונות של מערכת ההפעלה.
מערכות מחקר מוקדמות לחלל העמוק, כמו וויאג'ר השתמשו בקלטת דיגיטלית עם מערכות קבצים ייעודיות. רוב מערכות חקר החלל המודרניות כמו קאסיני השתמשו במערכת הפעלה מערכות של זמן אמת (RTOS) ובמערכות קבצים שלהם או במערכות המושפעות מסוג זה. הרובוטים שנשלחו למאדים הם דוגמה אחת כזאת של מערכת קבצים RTOS, המיושמות בזיכרון הבזק.

מערכות קבצים שטוחות

במערכות קבצים שטוחות אין תת-תיקיות וכל המידע מאוחסן בתיקית השורש, בין אם היא נשמרת על דיסק קשיח, תקליטון או כל דבר אחר. גישה זאת אמנם פשוטה, אך הופכת במהירות ללא יעילה ככל שמספר הקבצים גדל, והיא מקשה על המשתמשים לארגן את הנתונים לקבוצות נושאיות.
מקינטוש המקורי, כמו מערכות מחשוב רבות לפניו, השתמש במערכת קבצים שטוחים, שנקראת MFS. אולם מערכת זו הייתה יוצאת דופן משום שתוכנת ניהול הקבצים (ה־Finder) יצרה מעליה אשליה של מערכת תיוק היררכית חלקית, מבנה שחייב שם ייחודי לכל קובץ בדיסק, גם אם הוא נראה בתיקייה נפרדת. מגבלה זו הביאה במהירות להחלפת MFS ב־HFS אשר תומך בספריות אמיתיות.
דוגמה חדשה יותר למערכת מסוג זה היא מערכת Amazon's S3 המספקת שירות אחסון מרוחק, שהוא פשטני במכוון כדי לאפשר למשתמשים להתאים אישית את הצורה בה הנתונים שלהם מאוחסנים. מערכת זו מכילה רק תאים המדמים כונן דיסקים בגודל בלתי מוגבל ואובייקטים (הדומים, אך לא זהים למושג הסטנדרטי של קובץ. מערכת ניהול מתקדמת מאפשר היכולת להשתמש כמעט בכל תו (כולל '/') בשם של האובייקט, ואת היכולת לבחור תת-קבוצות של תוכן המתבססות על תנאים של קידומות זהות.

מערכות קבצים ומערכות הפעלה

מערכת קבצים היא חלק בלתי נפרד של כמעט כל מערכת הפעלה מודרנית (למעט חלק מאלו שבשימוש על ידי מכשירים מוטמעים) ורוב מערכות ההפעלה מספקות מערכת קבצים מותקנת מראש. למעשה המשימה האמיתית היחידה של מערכות הפעלה בראשית המחשוב האישי הייתה ניהול מערכת קבצים, עובדה לידי ביטוי את שמותיהם (למשל פירוש שמה של DOS הוא Disk Operation System). בכמה ממערכות הפעלה המוקדמות היה דיסקט נפרד לטיפול במערכות קבצים ושאר מערכת ההפעלה הייתה בדיסקט אחר. ברוב ממערכות הפעלה המוקדמות, היה בדרך כלל תמיכה רק במערכת קבצים אחת - המערכת המובנית; למשל, CP/M תומכת רק במערכת הקבצים שלה, העשויה להיקרא במידת הצורך "מערכת הקבצים של CP/M" אבל היא חסרת שם עצמאי.
כמעט תמיד ישנו ממשק תוכנה (API) המסופק על ידי מערכת ההפעלה בין המשתמש לבין מערכת הקבצים (למעט בהתקנים מוטמעים מסוימים בהם למשתמש אין כלל גישה למערכת הקבצים). ממשק זה יכול להיות ממשק טקסטואלי (כגון ממשק שורת הפקודה של חלונות, מעטפת Unix או OpenVMS DCL) או גרפי (כמו זה של Windows Explorer). בממשק גרפי, נעשה שימוש לעיתים קרובות במטפורה של תיקייה, המכילה מסמכים או קבצים אחרים ותיקיות מקוננות.

מערכות קבצים תחת חלונות

חלונות עושה שימוש בעיקר במערכות הקבצים FAT ו־NTFS שמגיעות איתה בתור מערכות הקבצים המקומיות (וכן ב־CDFS עבור תקליטורים), מערכת הקבצים הרשתית המקובלת היא CIFS. שימוש במערכות קבצים אחרות, הן מקומיות כמו VxFS והן רשתיות כמו NFS מחייב התקנת תוכנות נוספות.
מערכת הקבצים FAT ‏(File Allocation Table), נתמכת על ידי כל הגרסאות של חלונות, והיא שיפור של מערכת הקבצים של מערכת ההפעלה הקודמת של מיקרוסופט (MS-DOS אשר הייתה מבוססת על 86-DOS) ושורשיה של FAT מגיעים בסופו של דבר עד הפרויקט קצר הימים M-DOS ו־Standalone disk BASIC לפניו. במהלך השנים נוספו למערכת תכונות שונות, לרוב בהשראת תכונות דומות נמצאו על מערכות קבצים בשימוש במערכות הפעלה אחרות (בעיקר Unix אך גם VMS).
בגרסאות ישנות יותר של מערכת הקבצים FAT ‏(FAT12 ו־FAT16) יש מגבלות על אורך שם הקובץ, על מספר הקבצים בספריית השורש של מערכת הקבצים ומגבלות על גודל מקסימלי של דיסקים או מחיצות בדיסק. ליתר דיוק, ב־FAT12 וב־FAT16 יש מגבלה של 8 תווים עבור שם הקובץ, ועוד 3 תווים עבור הסיומת (כגון Exe), שילוב המכונה 8.3.
VFAT, שהיא הרחבה של FAT12 ו־FAT16 אשר הוצגה לראשונה בגרסה 3.5 של חלונות NT מתירה שמות קובץ ארוכים (LFN). גרסת FAT32 שהוצגה בחלונות 95 טיפלה בנוסף גם במגבלות רבות אחרות של FAT12 ו־FAT16, אך עדיין נשארה מוגבל בהשוואה ל־NTFS.
במערכת הקבצים NTFS, ששוחררה לראשונה כחלק מחלונות NT, מאפשרת גישה לפי רשימות בקרת גישה. בנוסף נתמכים (אם כי לא כל התכונות הללו מתועדות היטב) גם קישורים קשיחים, stream-ים רבים באותו קובץ (משמש למשל לשמירת מאפייני מסמך ב־Microsoft Office), אינדוקס, מכסת הקצאת מקום, קבצים דלילים, הצפנה, דחיסה, reparse points (בדומה לנקודות mount במערכות קבצים אחרות), קישורים סימובליים ו־junctions (קישורים לאחסון מרוחק).
חלונות משתמשת באות כונן כהפשטה ברמת המשתמש על מנת להבדיל בין דיסקים או מחיצות. לדוגמה, הנתיב C:\WINDOWS מייצג את הספרייה Windows במחיצה המיוצגת על ידי האות C. כונן C מוגדר בדרך כלל כמחיצת הדיסק הקשיח העיקרי, שעליו מותקן חלונות, וממנו בדרך כלל מתבצע אתחול המחשב. מסורת זו הפכה כל כך מושרשת היטב עד כי ידוע על באגים בגרסאות ישנות יותר של חלונות בשל הנחות כי מערכת ההפעלה הותקנה על C. מסורת זו של שימוש ב־"C" עבור אות הכונן הגיעה מ־MS-DOS, בה האותיות A ו־B שמורות לעד שני כונני תקליטונים. כונני רשת יכולים להיות ממופים גם הם לאותיות כונן (לרוב מסוף ה-ABC).

תהליך הגישה לנתונים

מערכת ההפעלה קורא למנהל IFS ‏(Installable File System). ה־IFS קורא ל־FSD (File System Driver)‏המתאים בשביל לפתוח את הקובץ המבוקש. ישנם ארבעה FSD-ים מותקנים בברירת המחדל המיועדים לעבוד מערכות אחסון שונות: NTFS, VFAT, CDFS ו־CIFS. ה־FSD מקבל את המיקום בדיסק של הגוש (רצף סקטורים השייכים לאותו קובץ) הראשון של הקובץ מ־FAT ‏(File Allocation Table), FAT32, VFAT ‏(Virtual File Allocation Table), או, במקרה של חלונות NT ונגזרותיה, מטבלת הקבצים הראשית (MFT). כלומר, הייעוד של FAT, FAT32, VFAT וטבלת הקבצים הראשית היא למפות את כל הקבצים בדיסק ולרשום היכן הם ממוקמים (רק הגוש הראשון נשמר בטבלה, שאר הקובץ מתקבל על ידי מעקב אחר הקישורים בין הגושים השונים של הקובץ).

מערכות קבצים תחת Unix

במערכות הפעלה Unix קיימת מערכת קבצים וירטואלית, כך שכל הקבצים על כל ההתקנים מופיעים תחת היררכיה אחת. קרי, קיימת ספריית שורש אחת וכל קובץ קיים במערכת נמצא היכנשהו מתחתיה. בחלק ממערכות ה־Unix ניתן להשתמש בדיסק זיכרון או במשאב משותף ברשת בתור ספריית השורש.
במערכות Unix יש להקצות שם התקן לכל התקן, אולם הקצאה זו לא קובעת כיצד ניתן לגשת לקבצים בו. במקום זאת, על מנת לקבל גישה לקבצים בהתקן, חייבים לקבוע היכן בעץ התיקיות תופיע מערכת קבצים השמורה עליו. תהליך זה מכונה mount של מערכת קבצים. לדוגמה, כדי לגשת לקבצים ב־CD-ROM, חייבים להורות למערכת ההפעלה: "קחי את מערכת הקבצים מתוך התקליטור הזה וגרמי לו להופיע בספרייה זו". הספרייה עליה מופיע התוכן של מערכת הקבצים מכונה נקודת mount ויכולה להיות, למשל, להיות ‎/media. ספריית ‎/media קיימת במערכות Unix רבות ומשתמשים בה עבור מדיה נשלפת כגון תקליטורים, DVD ודיסקטים. ספרייה זו יכולה להיות ריקה, או להכיל תת-ספריות לשימוש בהתקנים בודדים. 
בדרך כלל, רק מנהל (כלומר root) רשאי לבצע mount של מערכת קבצים ובכמעט כל המקרים תוכן הספרייה הקודם (לפני ה־mount) מוסתר או שיש שהפעולה ניתנת לביצוע על ספרייה ריקה בלבד.
מערכות הפעלה Unix כוללות לעיתים קרובות תוכנות וכלים המסייעים בתהליך ומספקים פונקציונליות חדשה, כמו למשל תהליך auto-mounting המבצע mount בעליית מערכת ההפעלה.
בכל מערכות Unix יש תוכנה לביצוע mount של מערכות קבצים בזמן האתחול וזאת משום שבמקרים רבים, מערכות קבצים חוץ מהשורש צריכות להיות זמינות בזמן שמערכת ההפעלה עולה (למשל ספריית הקבצים הזמנית ‎/tmp). מנהלי המערכת מגדירים מערכות קבצים יעלו בזמן זה בקובץ התצורה fstab (או vfstab בסביבת Solaris), אשר גם מציין נקודות ו־mount-ים נוספים. לעומת זאת ישנם מצבים מסוימים בהם אין צורך להעלות חלק ממערכות הקבצים בזמן האתחול, אולם השימוש בהם עשוי להיות רצוי לאחר מכן ולשם כך יש כמה כלי שירות עבור מערכות Unix המאפשרים mount של מערכות קבצים מוגדרות מראש לפי דרישה.
עבור מדיה נשלפת (כמו כונני הבזק USB, תקליטורים, ו־DVD) ישנם כלי עזר הבודקים נוכחות וזמינות של מדיום ולאחר מכן מבצעים mount כי ללא התערבות המשתמש. במערכות Unix מתקדמות ישנה גם יכולת supermount, המאפשרת להוציא CD מהמערכת (בתנאי שבוצע סינכרון נתונים מולו לפני כן) ולהחליפו באחר וזאת מבלי שיש צורך בביטול ה־mount וביצועו מחדש, מערכת ההפעלה מבחינה בעצמה בשינוי הדיסק ומשנה את הספרייה המתאימה בהתאם לתוכן החדש (וזאת בדומה לטכנולוגיה דומה הקיימת במערכות חלונות). ישנו גם חידוש דומה המועדף על ידי חלק מהמשתמשים והוא השימוש במערכת AutoFS, שכמו supermount, מבטלת את הצורך בפקודות mount ידניות. ההבדל בינה לבין supermount, מלבד תאימות לטווח גדול יותר של יישומים כגון גישה למערכות קבצים על שרתי רשת, הוא שה־mount של התקנים מבוצע באופן שקוף כאשר ניגשים לקבצים השמורים על מערכות הקבצים (כפי שמתבצע במערכות קבצים רשתיות), ולא מסתמכים על אירועים כגון הוספה של מדיה. 
מערכות קבצים המשתמשות בדיסק משותף, כמו גם אשכולות מחשבים משתמשים לרוב בתוכנות הייחודיות להן על מנת לבצע את ה־mount רק בשעת הצורך (למשל כאשר אשכול מסד הנתונים הוא מסוג אקטיבי-פסיבי הרי יש צורך בביצוע mount רק בהפיכת השרת הפסיבי לאקטיבי).

מערכות קבצים תחת לינוקס

לינוקס תומכת במערכות קבצים שונות ורבות, אבל המערכות הנפוצות עבור דיסק המערכת כוללות את משפחת *ext‎ (כגון ext2, ext3, ext4) ואת XFS, JFS, ReiserFS ו־btrfs.
מערכת ההפעלה הרשתית הנפוצה היא NFS אולם בסביבות מעורבות עם חלונות יש שימוש גם ב־CIFS. ניתן להריץ בלינוקס מערכות קבצים בסביבת המשתמש (userspace), דבר המתאים במיוחד למערכות קבצים וירטואליות (כמו GmailFS הכותבת את הנתונים ל־Gmail ולא לדיסק), מקצת מערכות הקבצים, למשל ZFS חייבות לרוץ במוד זה בשל בעיות של רישיונות.

מערכות קבצים תחת Solaris

ברירת המחדל לגרסאות המוקדמות של מערכת ההפעלה Solaris היא UFS (שאינה מתועדת והפעולות בה אינן נרשמות). תמיכה עבור מערכות קבצים אחרות וכן שיפורים משמעותיים נוספו במשך הזמן, כולל תמיכה ב־VxFS של VERITAS, במערכת QFS (לאשכולות) של סאן עצמה, בתיעוד של UFS ובמערכת ZFS (הכתובה בקוד פתוח, תומכת במאגרי אחסון, תומכת בדחיסה, משתמשת במבנים בגודל 128 סיביות, ותומכת בתיקון שגיאות אוטומטית).
בנוסף נוספו לגרעין הרחבות כדי לאפשר פעולת אתחול מ־VxFS. תיעוד ורישום נוספו ל־UFS בגרסה 7 ומאוחר יותר נוספה לגרסאות הקוד הפתוחות תמיכה באחתול מ־ZFS.
ה־LVM של המערכת מאפשר למערכת קבצים להשתמש במספר התקנים לצורך הוספת יתירות, קיבולת או לצורך הגדלת קצב הקלט/פלט. סביבות ישנות עשויות להשתמש ב־Solaris Solaris Volume Manager (הידוע יותר בשמו הקודם Solstice DiskSuite). כיום משתמשים יותר במערכת Veritas Volume Manager הנתמכת במערכות הפעלה נוספות. מערכות חדשות עשויות להשתמש גם בניהול האחסון הווירטואלי של ZFS.

מערכות קבצים תחת Mac OS X

Mac OS X משתמשת במערכת הקבצים שירשה מ־Mac OS בשם +HFS (המסתמכת על מערכת ישנה יותר הנקראת HFS) המכילה מטא מידע עשיר. שמות הקבצים במערכת זו יכולים להכיל עד 255 תווים מסוג Unicode והמערכת שומרת על אותיות גדולות/קטנות. סוג הקובץ ב־Mac OS X, יכול להיקבע על פי קוד סוג (שנשמר כמו במקינטוש קלאסי במטא המידע של הקובץ) או על פי הסיומת בשם הקובץ.
בעקבות שורשי ה־Unix של Mac OS X נוספו ל+־HFS הרשאות בסגנון הסטנדרטי של Unix. בגרסאות המאוחרות יותר של +HFS התווסף גם תיעוד על מנת למנוע השחתה של מבנה מערכת הקבצים והוצגו מספר אלגוריתמים לאופטימיזציות של הקצאה בניסיון לאפשר איחוי של הקבצים באופן אוטומטי וללא צורך בשימוש במאחה חיצוני.
ב+־HFS יש שלושה סוגים של קישורים: קישורים "קשים" (כלומר מיקום כפול של הקובץ), בסגנון קישורים "רכים" (סיבוליים) וכינויים. כינויים נועדו לשמור על קישור לקובץ המקורי גם אם הם הועברו או שמם שונה והם לא מפוענחים על ידי מערכת הקבצים עצמה, אלא על ידי קוד מנהל הקבצים בסביבת המשתמש.
המערכת תומכת גם ב־UFS, הנגזר מ־BSD Unix Fast File System (כחלק מהקוד שנורש מ־NeXTSTEP). עם זאת, כמו החל מגרסה 10.5 (Leopard), כבר לא ניתן להתקין את מערכת ההפעלה עצמה על UFS, ולא ניתן לשדרג מערכת שכבר מותקנת על UFS ל־10.5.