לדלג לתוכן

שמירת מידע בווינדוס - Registry מול קבצים

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

מה זה הרגיסטרי בקצרה

הרגיסטרי הוא מסד נתונים היררכי מרכזי שמובנה בתוך ווינדוס עצמו. הוא מאורגן כמו עץ תיקיות, עם "מפתחות" - keys - שמכילים "ערכים" - values. כמעט כל הגדרה מערכתית בווינדוס, מהתקנת תוכנות ועד הגדרות רשת, נשמרת שם. אפשר לצפות בו ולערוך אותו ישירות דרך הכלי Regedit.

מה זה קבצי קונפיגורציה

הגישה השנייה, המוכרת מאוד גם ממערכות אחרות כמו לינוקס, היא שמירת הגדרות בקבצים רגילים - לרוב בפורמט טקסט כמו INI, XML, JSON, או YAML - שמונחים איפשהו בתיקיית התוכנה או בתיקיית המשתמש. תוכנה קוראת את הקובץ הזה בהפעלה, ומעדכנת אותו כשמשהו משתנה.

היתרונות של הרגיסטרי

  • מרכזיות. כל ההגדרות של המערכת נמצאות במקום אחד, מה שמקל על כלי ניהול מרכזיים לגשת אליהן ולנהל אותן, למשל דרך מדיניות קבוצתית - Group Policy.
  • ביצועים. גישה לרגיסטרי מהירה, כי המערכת שומרת אותו בזיכרון בצורה אופטימלית, בניגוד לפתיחה וסגירה חוזרת של קבצים בדיסק.
  • מבנה אחיד. כל תוכנה שמשתמשת ברגיסטרי עוקבת אחרי אותו מבנה בסיסי, מה שמקל על כלים לקרוא ולסרוק הגדרות באופן גנרי.

החסרונות של הרגיסטרי

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

אז מתי משתמשים במה

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

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

למה זה חשוב להבין

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

מי שרוצה להבין את ווינדוס לעומק, כולל איך המערכת שומרת ומנהלת מידע, מוזמן להתחיל בקורס שלנו: קורס ווינדוס בסיסי.

יש לכם שאלה על ערך רגיסטרי ספציפי, או תוכנה שמתנהגת מוזר אחרי הסרה? בואו נדבר על זה.

הצטרפו לקהילה בדיסקורד