מערכת קבצים
יש לשכתב ערך זה. הסיבה היא: מבולגן, לא ברור.
| ||
יש לשכתב ערך זה. הסיבה היא: מבולגן, לא ברור. |
מערכת קבצים היא שיטה לאחסון ולארגון קבצים במכשירים אלקטרוניים על מנת להקל על הגישה אליהם. מערכות קבצים עשויות להשתמש בהתקן אחסון נתונים (כגון דיסק קשיח, תקליטור, דיסקט, סרט מגנטי, זיכרון הבזק וכדומה) ולנהל את המיקום הפיזי של הקבצים, לספק גישה לנתונים בשרת קבצים כלקוחות בפרוטוקול רשת (למשל, NFS, SMB, או Plan 9), או לספק נתונים וירטואליים (למשל procfs המספק גישה לנתוני התהליכים). באופן יותר פורמלי, מערכת קבצים היא מסד נתונים ייעודי עבור אחסון, ארגון, מניפולציה, ואחזור של נתונים.
במקרים מסוימים מאפשרת מערכת ההפעלה גם לדמות בחלק מהזיכרון הפנימי של המחשב מערכת קבצים, בצורה של דיסק זיכרון, הנדמה ליישומים כדיסק רגיל. אפשרות זו הייתה אפקטיבית בעיקר כאשר המחשבים היו ללא דיסק קשיח ודיסק הזיכרון איפשר לאחסן נתונים בלי תלות בדיסקט. כיום לעומת זאת משתמשים לעיתים קרובות בזיכרון וירטואלי המאפשר להתייחס לזיכרון החיצוני כחלק מהזיכרון הפנימי, במקרה כזה המידע נשמר על הזיכרון החיצוני ללא שימוש במערכת קבצים. גם מסדי נתונים עשויים לאחסן מידע על זיכרון חיצוני ללא שימוש כלשהו במערכת קבצים חיצונית.
רוב התקני הזיכרון החיצוני הם מסוג "זיכרון גישה אקראית" (כלומר גישה ישירה לאזור המבוקש בזיכרון) אולם קיימים התקנים (כמו כוננים לגיבוי בקלטת על סרט מגנטי) המחייבים אחסון ואיחזור המידע בצורה סדרתית (דבר שמחייב את ההתקן לעבור על כל המידע מתחילתו עד למציאת המידע המבוקש). מגבלות דומות עשויות להיות גם בסוגים האחרים (רשת, וירטואלית) של מערכות קבצים. הגדרה נוספת הקיימת בעיקר למערכות מיני מחשבים ומיינפריים היא של סוג הקובץ (סדרתי, גישה ישירה, אינדקס סדרתי וכדומה) היכולה להגביל גם היא את יכולת הגישה לנתונים בקובץ.
מערכת הקבצים בנויה לרוב בצורה של ספריות (נקראות גם תיקים, מדורים, תיקיות וכדומה) המקוננות אחת בתוך השנייה שבתוכן יש קבצים. המידע על מבנה הספריות נשמר כמעט תמיד במקום מיוחד בתחילת המדיה אולם דבר איננו הכרחי (למשל בתקליטור שניתן להקליט על כל אזור בו פעם אחת ייתכן שיהיו מספר אזורים בהם יהיה מידע זה כך שניתן לבצע מספר הקלטות על אותו תקליטור).
לרוב מאותר המידע על ידי מציאת הגוש הראשון של המידע בטבלה מרכזית ומעבר לגושים האחרים על ידי הצבעה, אולם הדבר תלוי בסוג המדיה ובמערכת ההפעלה.
מערכת הקבצים תלויה במערכת ההפעלה, לעיתים קרובות ישנן מספר מערכות הפעלה התומכות באותה מערכת קבצים (למשל NFS) ולפעמים ישנן מספר מערכות קבצים שנתמכות על ידי מערכת הפעלה (חלונות 2000 תומכת למשל הן ב־FAT והן ב־NTFS). מערכת הקבצים עובדת לרוב מעל שכבת ה־LVM המייצגת כוננים לוגיים (שאינם בהכרח זהים לכוננים פיזיים). ברוב מערכות ההפעלה המודרניות ישנה אפשרויות להוסיף תמיכה במערכות קבצים אחרות על ידי התקנת דרייברים מתאימים, דבר המאפשר למשל למחשב חלונות לגשת למידע הנשמר על שרת Unix.
מבנה של מערכות קבצים
רוב מערכות הקבצים עושות שימוש בהתקן אחסון הנתונים שמציע גישה למערך של סקטורים בגודל פיזי קבוע, בדרך כלל בחזקות של 2 (512 בתים או 1, 2, 4 או קילובייט הם הנפוצים ביותר). תוכנת מערכת הקבצים היא האחראית לארגון הסקטורים האלה כקבצים וכספריות, ולמעקב אחר סקטורים אשר שייכים לקבצים ואחר אלו שאינם בשימוש. רוב מערכות הקבצים יכולות לגשת ישירות רק ליחידות נתונים שנקראות בלוקים המכילות מספר מסוים של סקטורי דיסק (בדרך כלל 1-64). זהו הגודל הקטן ביותר של שטח הדיסק שניתן להקצות לקובץ (מערכות קבצים המשתמשות בדחיסה לא סובלות לרוב ממגבלה זו).
עם זאת, מערכות קבצים כלל לא חייבות לעשות שימוש בהתקן אחסון, ניתן להשתמש במערכת קבצים כדי לארגן ולייצג גישה לנתונים כלשהם, בין אם הם מאוחסנים במקום כלשהו או דינאמיים (למשל, procfs היא מערכת קבצים המכילה נתונים על התהליכים במערכת ההפעלה).
שמות קבצים
שם קובץ הוא שם שהוקצה לקובץ כדי להבטיח מקום אחסון בזיכרון המחשב והוא מאפשר גישה חוזרת למקום זה. בין אם מערכת הקבצים משתמשת בהתקן אחסון ובין אם לאו, בדרך כלל יש במערכות קבצים ספריות ששמות הקבצים מקשרים ביניהם לבין הקבצים, לרוב על ידי חיבור שם הקובץ לאינדקס בטבלת הקצאת קובץ כלשהו, כגון FAT בתוך מערכת הקבצים של DOS, או inode בתוך מערכת קבצים של Unix. מבנה הספריות עשוי להיות שטוח, או לאפשר היררכיות שבהן ספריות עשויות להכיל תת-ספריות. בכמה מערכות קבצים, שמות הקבצים הם בעלי תחביר מיוחד עבור סיומות ומספרי גרסה. במקרים אחרים, שמות הקבצים הן מחרוזות פשוטות, וכל המטא מידע של הקובץ מאוחסן במקום אחר.
נתונים נוספים
המידע שנשמר עבור כל קובץ תלוי במערכת הקבצים הספיציפית (למשל מערכות הפעלה רבות בתחילת ימי המחשוב לא עקבו אחר הזמנים הקשורים לקובץ) אולם לרוב מכיל את הפריטים הבאים:
- שם הקובץ (כולל גם את הנתיב)
- גודל הנתונים השמורים בקובץ - עשוי להיות מאוחסן כמספר בלוקים שהוקצו עבור הקובץ או כגודל הקובץ המדויק
- מזהה הקובץ
- מיקום פיזי שבו נמצא הגוש הראשון של המידע בקובץ (למשל בדיסק קשיח מדובר על מספר הדיסק הפיזי ועל מספר הסקטור)
- זמן השינוי האחרון של הקובץ, לרוב כחותמת הזמן של הקובץ
- זמן יצירת הקובץ
- זמן הגישה האחרונה לקובץ
- הזמן בו מטא המידע של הקובץ שונה
- סוג הקובץ (לדוגמה, התקן בלוקים, התקן תווי, socket, ספריית משנה, וכו')
- זיהוי של בעל הקובץ והקבוצה אליה הוא משתייך
- הגדרות הגישה (למשל, אם הקובץ הוא לקריאה בלבד, ניתן להפעלה, וכו')
- הרשאות
במחשבים גדולים מקובל לשמור גם את הפרטים הבאים:
- טיפוס הקובץ - סדרתי, אינדקס סדרתי, גישה ישירה
- סוג השדות וגודלם
- השדות המשמשים לאינדקס
במערכות קבצים מתקדמות (כגון XFS, ext2-4, כמה גרסאות של UFS, וב־HFS+) ניתן להוסיף גם פריטי מידע שרירותיים, באמצעות שינוי של מאפייני קובץ כאלו. תכונה זו מיושמת בליבות של Linux, FreeBSD ו־Mac OS X, והיא מאפשר למידע על המידע (באנגלית: Metadata) להיות משויך לקובץ ברמת מערכת הקבצים. מאפיינים אלו יכולים, למשל, להכיל את שם המחבר של מסמך, את קידוד התווים של מסמך טקסט רגיל, או סיכום ביקורת. מאפייני המסמך בחלונות לעומת זאת מאוחסנים בתור stream-ים נפרדים, כלומר כחלק מהקובץ עצמו.
מערכות קבצים היררכיות
מערכת הקבצים ההיררכית היא תוצאה של מחקר של דניס ריצ'י (Dennis Ritchie), יישומים קודמים של מערכת כזו היו מוגבלים רק למספר רמות, בעיקר ביישומים של IBM, אפילו של מסדי נתונים המוקדמים שלהם כמו IMS. לאחר ההצלחה של Unix, ריצ'י הרחיב את המושג מערכת הקבצים בכל מערכת ההפעלה המאוחרות יותר שלו, כגון Plan 9 ו־Inferno.
שירותים
מערכות קבצים מסורתית מציעות אפשרויות ליצור, להעביר ולמחוק קבצים וספריות. הן חסרות יכולות ליצור קישורים נוספים לספרייה (קישורים "קשים" במינוח של Unix), לשנות את הקישור לספריית האם (".." ב־Unix ), וליצור קישורים דו כיוונים לקבצים.
מערכות קבצים מסורתית מציעות גם יכולות לחתוך, להוסיף, ליצור, להעביר, למחוק ולשנות קבצים, כמו גם יכולת למנות את רשימת הקבצים בספריה ולקבוע אותה כספריה נוכחית. לרוב הן לא מציעות יכולת להוסיף להתחלה של קובץ או לחתוך אותו, ובוודאי שלא הכנסה שרירותית לתוך הקובץ במקום כלשהו או מחיקה של חלק כלשהו ממנו. פעולות אלו הן מאד בלתי סימטריות וחסרות את הכלליות בשביל להיות שימושיות בתנאים בלתי צפויים. לדוגמה, pipe-ים בין תהליכים ב־Unix צריכים להיות מיושמים מחוץ למערכת הקבצים כי pipe אינו מציע חיתוך בתחילת הקבצים.
מערכות קבצים מציעות גם בדרך כלל אפשרויות לטיפול במערכת הקבצים עצמה כמו איחוי מידע (Defrag) ואיתור תקלות (למשל קבצים כפולים).
שירותים אלו יכולים להתבצע לרוב על ידי קריאות לתוכניות שירות של מערכת ההפעלה או על ידי קריאה ל־API שלה (לעיתים יש צורך בדרייבר למערכת הקבצים הספיציפית).
גישה מאובטחת
גישה מאובטחת לפעולות בסיסיות במערכת הקבצים יכולה להיות מבוססת על רשימות בקרת גישה (ACL) או "capabilities", כאשר מערכות קבצים מסחריות משתמשות כיום ברשימות בקרת גישה.
אפשרויות נוספות
אפשרויות אחרות שלעיתים נתמכות על ידי מערכות קבצים הן:
- דחיסה - לצורך הקטנת נפחם של נתונים.
- הצפנה - אחסון המידע באופן שלא יהיה קריא למי שאינו מורשה
- מידור - גישה למידע במערכת הקבצים לגורמים מורשים בלבד
- תיעוד - מאפשר שחזור מידע שנמחק או נפגם
- שחזור קבצים שעברו מחיקה
- מיקום כפול (באמצעות קישורים "קשיחים") - במערכת קבצים כמו JFS מזהה הקובץ איננו קשור לשמו ולכן ניתן לשים את הקובץ בשני מקומות לוגיים
- קישורים סימבוליים (קיצורי דרך או קישורים "רכים")
- מכסת מקום מקסימלית (לספריה, למשתמש, לקבוצה או לאלמנטים אחרים)
- הטמעה של מערכות קבצים אחרות
- אי שמירת מידע החוזר על עצמו (לרוב אפסים בינאריים)
- שמירת גרסאות מרובות של אותו קובץ
- טיפול בחלוקה לרשומות
סוגים של מערכות קבצים
מערכות קבצים עבור דיסק
מערכת קבצים על דיסק היא מערכת קבצים המיועדת לאחסון של קבצים על התקן אחסון נתונים, לרוב דיסק, אשר עשוי להיות מקושר במישרין (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.
מערכות קבצים עבור התקני זיכרון הבזק
מערכת קבצים של זיכרון הבזק היא מערכת הקבצים שתוכננה במיוחד לאחסון קבצים על התקני זיכרון הבזק. מערכות כאלו הופכות להיות נפוצות יותר ככל שההתקנים הללו נהיים נפוצים, ויכולותיהם גדלות. דוגמאות למערכות קבצים כאלה כוללות את JFFS2 ו־YAFFS.
מערכת הקבצים עבור דיסק אמנם ניתנת לשימוש בזיכרון הבזק אולם היא לא אופטימלית מכמה סיבות:
- מחיקת בלוקים: בלוקים בזיכרון הבזק צריכים להימחק במפורש לפני שניתן לכתוב מחדש עליהם. ישנה תועלת במחיקת בלוקים שאינם בשימוש עוד בזמן ההתקן אינו פעיל משום שהזמן הנדרש למחיקת בלוקים יכול להיות משמעותי
- גישה אקראית: מערכות קבצים דיסק ממוטבות להימנע מחיפוש בדיסק בכל הזדמנות אפשרית וזאת בשל העלות (זמן תגובה, שחיקה, תפיסת ראשים וכדומה) הגבוהה, עלות זו איננה קיימת בזיכרון הבזק שבו ההתקן הוא אלקטרוני לחלוטין
- פיזור שכתובים: התקני זיכרון הבזק נוטים להתבלות כאשר התוכן של בלוק יחיד מוחלף שוב ושוב; מערכות קבצים ייעודית מתוכננת לפרוש את הכתיבה באופן שווה
למערכות קבצים בעלות יומן יש במובנים רבים את המאפיינים של המערכת הרצויה לזיכרון הבזק ולכן JFFS2 למשל משתמשת בנויה בצורה כזאת.
מערכות קבצים על בסיס מסד נתונים
מערכת הקבצים יכולה להיות מבוססת על מסד נתונים סטנדרטי או ייעודי. במערכת כזו, במקום, או בנוסף, לניהול היררכי מובנה, הקבצים מזוהים על פי המאפיינים שלהם, למשל סוג קובץ, נושא, מחבר, או מטא נתונים דומים. כיום אין שום מערכת הפעלה נפוצה המשתמשת במערכת קבצים מסוג זה אולם מערכות ניהול גרסאות מסוימות כמו ClearCase יכולות להיחשב למערכות מסוג זה.
מערכות קבצים טרנזקצאליות
כל פעולה במערכת הקבצים עשויה לכלול שינויים במספר קבצים שונים ובמבנים שונים בדיסק. במקרים רבים, שינויים אלה קשורים זה לזה, כלומר, חשוב שכולם יוצאו לפועל באותו זמן. למשל בזמן שליחה של כסף אלקטרוני מבנק לבנק אחר, המחשב של הבנק ישלח את ההוראה להעביר לבנק אחר וגם יעדכן את הרשומות שלו כדי לציין שההעברה התרחשה. אם מסיבה כלשהי המחשב קורס לפני שהוא הספיק לעדכן את הרשומות שלו, אזי באתחול מחדש של מערכת הקבצים, לא יהיה תיעוד של ההעברה אבל לבנק יהיה חסר כסף.
עיבוד בטרנזקציות מבטיח כי בכל נקודת זמן שהעסקה מעובדת, היא יכולה להיות מבוצעת לגמרי או מבוטלת לגמרי (אם כי לא בהכרח שתי האפשרויות זמינות בכל נקודה נתונה). משמעות הדבר היא שאם יש קריסה (של מערכת הקבצים או של מערכת ההפעלה כולה) או [הפסקת חשמל], הרי לאחר התאוששות, המידע המאוחסן יהיה עקבי (את הכסף יעבירו או לא יעבירו, אבל הוא לעולם לא ייעלם באמצע המעבר).
מערכת קבצים טרנזקצאלית מתוכננת להיות חסינת כשל, אבל היא סובלת מההשקעה הדרוש על מנת להבטיח זאת (יש צורך בפעולות כתיבה נוספות, בפעולות קריאה נוספות, בזיכרון נוסף וכיוצא באלו).
מערכות קבצים מתועדות הן אחת הטכניקות בשימוש להשגת עקביות ברמת מבני מערכת הקבצים.
מערכות קבצים כמו MVFS (לניהול גרסאות) ו־Wikifs (לשינוי ויקיפדיה) גם הן משתייכות חלקית לסוג זה וזאת מכיוון שהרישום במערכת הקבצים הבסיסית מתבצע אך ורק על ידי פעולה מיוחדת.
מערכות קבצים רשתיות
- ערך מורחב – מערכת קבצים רשתיות
מערכת קבצים רשתית היא מערכת קבצים אשר פועלת כלקוח עבור פרוטוקול גישה לקובץ מרוחק ונותנת גישה לקבצים בשרת. דוגמאות לפרוטוקלים עבור מערכות קבצים רשתיות הם NFS, AFS, SMB, ומערכת קבצים המתפקדות כלקוחות של FTP ו־WebDAV.
מערכות קבצים על דיסק משותף
מערכת קבצים על דיסק משותפת היא כזו שבה כמה מחשבים (לרוב שרתים) הם בעלי גישה לאותה מערכת דיסקים חיצוני (בדרך כלל מסוג SAN, הגם שמערכות DAS מסוימות תומכות אף הן ביכולת זו). מערכת הקבצים מתווכת בגישה למערכת הקבצים למניעת התנגשות בזמן כתיבה. דוגמאות למערכות כאלו הן GFS של Red Hat ו־GPFS של IBM, מערכות קבצים אחרות מסוג זה מהוות הרחבה של מערכת קבצים מסוגים אחרים, כמו CFS (Cluster File System) שהיא הרחבה של VxFS.
מערכות קבצים ייעודיות
מערכת קבצים ייעודית היא כל מערכת קבצים שהיא לא מערכת קבצים על דיסק (או זיכרון הבזק) או מערכת קבצים רשתית. קטגוריה זו כוללת מערכות שבהן הקבצים מסודרים באופן דינמי על ידי התוכנה, והן מיועדות למטרות כגון תקשורת בין תהליכים במחשב או שמירת הקבצים הזמניים.
מערכות קבצים ייעודיות הן נפוצות ביותר במערכות הפעלה המשתמשות במטאפורות של קובץ כגון Unix. דוגמאות לכך הן procfs (/proc) שהיא מערכת קבצים בשימוש על ידי כמה גרסאות Unix המעניקה גישה למידע על תהליכים ושאר התכונות של מערכת ההפעלה.
מערכות מחקר מוקדמות לחלל העמוק, כמו וויאג'ר השתמשו בקלטת דיגיטלית עם מערכות קבצים ייעודיות. רוב מערכות חקר החלל המודרניות כמו קאסיני השתמשו במערכת הפעלה מערכות של זמן אמת (RTOS) ובמערכות קבצים שלהם או במערכות המושפעות מסוג זה. הרובוטים שנשלחו למאדים הם דוגמה אחת כזאת של מערכת קבצים RTOS, המיושמות בזיכרון הבזק.
מערכות קבצים שטוחות
במערכות קבצים שטוחות אין תת-תיקיות וכל המידע מאוחסן בתיקית השורש, בין אם היא נשמרת על דיסק קשיח, תקליטון או כל דבר אחר. גישה זאת אמנם פשוטה, אך הופכת במהירות ללא יעילה ככל שמספר הקבצים גדל, והיא מקשה על המשתמשים לארגן את הנתונים לקבוצות נושאיות.
מקינטוש המקורי, כמו מערכות מחשוב רבות לפניו, השתמש במערכת קבצים שטוחים, שנקראת MFS. אולם מערכת זו הייתה יוצאת דופן משום שתוכנת ניהול הקבצים (ה־Finder) יצרה מעליה אשליה של מערכת תיוק היררכית חלקית, מבנה שחייב שם ייחודי לכל קובץ בדיסק, גם אם הוא נראה בתיקייה נפרדת. מגבלה זו הביאה במהירות להחלפת MFS ב־HFS אשר תומך בספריות אמיתיות.
דוגמה חדשה יותר למערכת מסוג זה היא מערכת Amazon 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.
מערכת הקבצים HFS+ זכתה לביקורת קשה מצד מפתחי תוכנה, במיוחד מצד לינוס טורבלדס (מפתח ליבת לינוקס) שקרא לה "מערכת הקבצים הגרועה ביותר שמשחיתה באופן פעיל ומודע את הקבצים של המשתמש".
החל מגרסה 10.13, מערכת ההפעלה macOS משתמשת במערכת קבצים חדשה בשם Apple File System.
מערכות קבצים תחת OpenVMS
מערכת OpenVMS משתמשת במערכת הקבצים Files-11, שהיא בשימוש (בצורה חלקית) גם במערכת RSX-11 הישנה יותר. Files-11 היא מערכת הקבצים הירארכית, עם תמיכה ברשימות בקרת גישה (ACL), מערכת קלט/פלט באורינטצית רשומות (כלומר הנתונים נקראים ברשומות שלמות ולא כתווים בודדים), בעלת יכולת גישה לקבצים מרוחקים, ובעלת תמיכה בריבוי גרסאות של קובץ. Files-11 דומה למערכות הקבצים של מערכות ההפעלה הקודמות של Digital Equipment כגון TOPS-20 ו־RSTS/E אבל היא מתקדמת יותר במידה משמעותית.
למעשה "Files-11" היא מונח כללי המייצג חמש מערכות קבצים נפרד, המכונה מבנה על דיסק (on-disk structure - ODS) רמות 1 עד 5:
- ODS-1 היא מערכת קבצים שטוחה המשמשת את מערכת ההפעלה של RSX-11, נתמך על ידי מערכות VMS ישנות עבור תאימות RSX, אבל אף פעם לא תמכה ב־VMS עצמה; מערכת זו כבר הוחלפה ברובה על ידי ODS-2 ו־ODS-5.
- ODS-2 היא מערכת הקבצים הסטנדרטית של VMS ונשארה מערכת הקבצים הנפוצים ביותר עבור דיסקי מערכת (הדיסק שעליו מותקנת מערכת ההפעלה)
- הגם שלעיתים רחוקות משתמשים ברמות ה־ODS שלהם, ODS-3-4 הם התמיכה של Files-11 בתקליטורים עם ISO 9660 ו־High Sierra, בהתאמה
- ODS-5 היא גרסה מורחבת של ODS-2 הזמינה על אלפא ומחשבי אינטל (IA-64) אשר מוסיפה תמיכה בשמירה על אותיות קטנות/גדולות ובשמות קבצים שאינם תווי ASCII כמו גם שיפורים בהיררכית הספריות. גרסה זו הייתה מיועדת במקור עבור שרתי קבצים התומכים בחלונות או מערכות אחרות שאינן VMS כחלק זיקה לפרויקט "NT", אך היא משמשת גם בדיסקי המשתמש בשרתי האינטרנט.
מערכות קבצים תחת MVS (מיינפריים של IBM)
שמות קבוצות מידע (DSNs - Data set names, המונח במיינפריים עבור שמות קבצים) מאורגנים בהיררכיה ברמות אשר מופרדות עם נקודות, למשל "DEPT01.SYSTEM01.FILE01". כל רמה בהיררכיה יכולה להכיל עד שמונה תווים ואורכו הכולל (כולל הנקודות) המרבי של שם קובץ הוא 44 תווים. מקובל להשתמש ברכיבים המופרדים בנקודות בצורה הדומה לארגון הקבצים בספריות במערכות הפעלה אחרות. לדוגמה קיימות תוכניות שירות אשר מבצעות פונקציות דומות לאלו המעטפת של Unix (בדרך כלל העיבוד נעשה במצב אצווה) - הוספה, שינוי שם או מחיקת אלמנטים חדשים ודיווח את כל התוכן של רכיב מסוים. אולם, בניגוד למערכות רבות אחרות, רמות אלו אינן ספריות בפועל אלא רק מוסכמה למתן שמות (כמו במערכת קבצים של מקינטוש המקורי - MFS, שבו היררכית התיקיות הייתה אשליה שנוצרה על ידי Finder). ממשק TSO תומך בקידומת ברירת המחדל עבור קבצים (בדומה להגדרת "הספרייה הנוכחית"), ואילו תת-המערכת RACF תומכת בהגדרת בקרות גישה המבוססות על דפוסי שמות קבצים, יכולת האנלוגית לבקרות גישה על ספריות בפלטפורמות אחרות.
כמו המערכות האחרות מאותה משפחה, MVS היא מערכות נתונים מכוונת רשומות. MVS ירשה שלושה סוגי קבצים עיקריים מקודמותיה:
- קבצים סדרתיים שבדרך כלל נקראים רשומה אחת בכל פעם מההתחלה ועד הסוף
- קובצי BDAM (גישה ישירה), תוכניות ניגשות אליהם על ידי ציון של המיקום הפיזי של הנתונים אליהם הן רוצה לגשת (בדרך כלל על ידי ציון ההיסט מתחילת הנתונים)
- קובצי ISAM שבהם הוגדר מפתח עבור כל רשומה אשר יכול לשמש לחיפוש רשומות ספציפיות. המפתח כולל לעיתים קרובות שדות מרובים אבל אלה חייבת להיות סמוכים ובסדר הנכון וכל רשומה חייבת להיות בעלת ערך ייחודי עבור המפתח ולפיכך לכל קובץ ISAM יכול להיות רק מפתח אחד, השקול להמפתח הראשי של טבלה במסדי נתונים יחסיים, ואין תמיכה במפתחות זרים.
קבצים סדרתיים ו־ISAM יכולים לאחסן רשומות באורך קבוע או באורך משתנה ומכיוון שכל סוגי הקבצים משתמשים במבנה VTOC על הדיסקים הרי הם יכולים להתפשט על יותר מדיסק אחד. מערכות ניהול מסדי נתונים מוקדמות של IBM השתמשו בשילובים שונים של קובצי BDAM ו־ISAM, בדרך כלל ב־BDAM לאחסון נתונים בפועל וב־ISAM עבור אינדקסים.
בשנות ה-70 המוקדמות מערכות הפעלה של IBM שהשתמשו בזיכרון וירטואלי הציגו רכיב ניהול הקבצים חדש, VSAM, אשר סיפק יכולות דומות אך:
- קובץ סדרתי עם כניסות (ESDS) מספק יכולות דומות לאלה של קבצים סדרתיים ו־BDAM, מאחר שניתן לקרוא אותו גם מתחילתו ועד סופו וגם ישירות על ידי ציון ההיסט מתחילת הקובץ
- קובץ מפתח-סדרתי (KSDS) המהווה שדרוג גדול של ISAM: תומך במפתחות משניים עם ערכים לא ייחודיים ומפתחות שהם שילוב של שדות בלתי רציפים בכל סדר שהוא; קבצים אלו הקטינו באופן משמעותי את בעיות הביצועים הנגרמת על ידי שכפול רשומות ב־ISAM וכן הקטינו באופן משמעותי את הסיכון כי כשל בתוכנה או בחומרה באמצע עדכון אינדקס ישחית את האינדקס
תכונות אלו הפכו את VSAM לבסיס של מערכות של IBM לניהול מסדי נתונים, IMS/DB ו־DB2 - שבדרך כלל ESDS משמש לאחסון נתונים עצמם ו־KSDS משמש לאחסון האינדקסים.
VSAM כולל גם רכיב קטלוג ששימש כקטלוג הראשי של MVS.
קובצי נתונים עם מחיצות (Partitioned datasets) הם קבצים רציפים שהיו לחלק לתוך "חברים" אותם ניתן לעבד כמו קבצים רציפים נפרדים. השימוש החשוב ביותר של PDS הוא עבור ספריות תוכניות - מנהלי מערכת משתמשים ב־PDS הראשי כדרך להקצות שטח דיסק לפרויקט ולאחר מכן צוות הפרויקט יוצר ועורך את החברים.
קבוצות נתונים דוריות (Generation Data Groups - GDGs) תוכננו במקור כדי לתמוך בהליכי גיבוי של סבא-אבא-בן - אם קובץ שונה, הגרסה החדשה הפכה ל"בן", ה"בן" הקודם הפך ל"אבא", ה"אבא" הקודם הפך ל"סבא" וה"סבא" הקודם נמחק. אבל משום שניתן להגדיר GDG-ים עם הרבה יותר מ־3 דורות הרי כמה יישומים משתמשים בהם כדי לאסוף נתונים ממקורות שונים ולהכניס את המידע לתוכנית אחת - כל תוכנית איסוף יוצרת דור חדש של הקובץ והתוכנית הסופית קוראת את כל הקבוצה כקובץ אחד רציף (על ידי השמטת ציון הדור ב־JCL).
גרסאות מודרנית של MVS (כלומר z/OS) תומכת בתאימות למערכות קבצים מסוג POSIX (כאלו הדומות ל־Unix ומשתמשות ב-/) יחד עם יכולות לשילוב שני סוגי מערכות הקבצים. כלומר, מערכת ההפעלה יכולה להשתמש במערכי נתונים של MVS כקובץ בתת-מערכת או תוכנית POSIX. מערכות קבצים אלו כוללות מערכת קבצים היררכית חדשה HFS (איננה קשורה לזו של אפל) ו־ZFS (אין קשר ל־ZFS של Sun).
מערכות קבצים תחת Plan 9
מערכת ההפעלה Plan 9 תוכננה במקור כדי להרחיב כמה נקודות מוצלחות ב־Unix, ולהכניס כמה רעיונות חדשים תוך תיקון הליקויים של Unix (שכמו Plan 9 תוכננה במעבדות בל).
לגבי מערכות קבצים, הטיפול של מספר עצמים כדמויי קבצים במערכת Unix נשאר, אבל ב־Plan 9, ההתייחסות לכל העצמים במערכת היא כאל קובץ, וגם הגישה היא כקובץ (כלומר, ללא קריאות ioctl או mmap). רשימת העצמים שלא נחשבים במערכת Unix כקבצים אך כן נחשבים כך ב־Plan 9 כוללת בין השאר: רשתות, גרפיקה, איתור באגים, אימות משתמשים, יכולות, ושירותים אחרים אליהם ניתן לגשת באמצעות פעולות קלט/פלט על מצביעים לקובץ. בנוסף לתכונת האוניברסליות שלו ממשק הקובץ גם מפושט במידה ניכרת, קישורים סימבוליים וקשים, ו־suid לא מומלצים לשימוש, ויצירה ופתיחה אטומיות (כלומר כפעולות שלא ניתנות לחלוקה) נוספו. בנוסף סט הפעולות שניתן להפעיל על קובץ מוגדר היטב ותת גרסאות של קריאות כמו זו של ioctl בוטלו.
יתר על כן, הפרוטוקול הבסיסי של Plan 9 מבטל את ההבדל בין קבצים מקומיים ומרוחקים (למעט הבדל אפשרי בזמן התגובה ותפוקת הקלט/פלט). דבר זה מהווה יתרון כי ניתן להתייחס להתקן או התקנים, המיוצגים על ידי קבצים, במחשב מרוחק כאילו היו של המחשב המקומי עצמו. המשמעות היא כי לפי ה־Plan 9, שרתי קבצים המספקים גישה להתקנים, מסווגים כמערכות קבצים. שרתים עבור מערכות קבצים "סינתטיות" ניתן גם להפעיל במרחב המשתמש וכך לקבל את היתרונות של מערכות המיקרו ליבה תוך שמירה על פשטות של המערכת. מערכות קבצים אלה מאורגנים בעזרת תחום פרטי לכל תהליך, המאפשר לכל תהליך ליצור ייצוג שונה של מערכות קבצים רבות המספקות משאבים במערכת מבוזרת.
דוגמאות לשימושים ביכולות אלו כוללות:
- שימוש במחסנית ה־IP של מכונת gateway ללא צורך ב־NAT
- אספקת העברת רשת שקופה ללא צורך בכל קוד נוסף
- קבלת שירות ה־FTP על ידי פתיחת אתר FTP, כאשר תהליך ה־ftpfs מטפל בפתיחה על ידי mount של אתר ה־FTP המרוחק כחלק ממערכת הקבצים המקומית. עם ה־ftpfs כמתווך, היישום יכול כעת להשתמש בפעולות המערכת הרגילות בקובץ כדי לגשת לאתר FTP כאילו היה חלק של מערכת הקבצים המקומית
- מערכת דואר שמשתמשת בשירותי קובץ על מנת לסנתז קבצים וירטואליות וספריות על מנת לייצג את תיבת הדואר של כ־/mail/fs/mbox.
- Wikifs מספק ממשק למערכת ויקי כמערכת קבצים
מערכת ההפעלה Inferno חולקת מושגים אלה עם Plan 9.
ראו גם
קישורים חיצוניים
27459955מערכת קבצים