/ / מה ההבדל בין התיקיות "System32" ו- "SysWOW64" ב- Windows?

מה ההבדל בין התיקיות "System32" ו- "SysWOW64" ב- Windows?

בגירסאות 64 סיביות של Windows, יש לך שתייםתיקיות קבצי תוכנית נפרדות. אבל זה לא נגמר שם. יש לך גם שני ספריות מערכת נפרדות בהן מאוחסנות ספריות וביצים של DLL: System32 ו- SysWOW64. למרות השמות, System32 מלא בקבצי 64 סיביות ו- SysWOW64 מלא בקבצי 32 סיביות. אז מה נותן?

מה זה System32?

קשורים: מהם קבצי DLL, ומדוע חסר אחד מהמחשב האישי שלי?

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

יישומים הפועלים במערכת שלך עשויים להיות מותקנים בתיקיית קבצי התוכנית או במקום אחר, אך לעתים קרובות הם טוענים ספריות ברחבי המערכת מהתיקיה System32.

הפרדת ספריות 32 סיביות ו 64 סיביות

קשורים: מה ההבדל בין התיקיות "קבצי תוכנית (x86)" ו- "קבצי תוכנה" ב- Windows?

בגירסת 64 סיביות של Windows, יש לך C:תיקיית קבצי תוכנה המכילה תוכניות 64 סיביות והקבצים שלהם, ותיקיה C: קבצי תוכנה (x86) המכילה תוכניות של 32 סיביות וקבצים שלהן. מועיל להפריד בין קבצים אלה מכיוון שתוכניות 64 סיביות צריכות קבצי DLL של 64 סיביות, ותוכניות 32 סיביות צריכות קבצי DLL עם 32 סיביות.

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

עם זאת, לא כל קבצי ה- DLL מאוחסנים בתוכניתקבצים. ספריות רבות ומגוונות הכוללות מערכת Windows מאוחסנות ב- C: System32, ותוכנות מסוימות מטילות כאן גם קבצי ספריה משלהם. לכן, ממש כמו של Windows יש תיקיות קבצי תוכניות 32 סיביות ו 64 סיביות, כך יש לה גם גרסאות 32 סיביות ו 64 סיביות נפרדות של התיקיה System32.

System32 ו- SysWOW64

במחשב 32 סיביות, כל התוכניות עם 32 סיביות מאחסנות את הקבצים שלהן ב- C: קבצי תוכנה, ומיקום הספריה כולו הוא C: System32.

במחשב 64 סיביות, תוכניות 64 סיביות מאחסנות את התוכניות שלהםקבצים ב- C: קבצי תוכנה, ותיקיית C: WindowsSystem32 כוללת מערכת ספריות של 64 סיביות. תוכניות 32 סיביות מאחסנות את הקבצים שלהן ב- C: קבצי תוכנה (x86), והתיקיה הכוללת מערכת היא C: WindowsSysWOW64.

זה בהחלט לא אינטואיטיבי. למרות "32" בשם, תיקיית System32 מכילה ספריות של 64 סיביות. ולמרות ה 64 בשם, תיקיית SysWOW64 מכילה ספריות 32 סיביות - לפחות בגירסאות 64 סיביות של Windows.

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

WOW64, הסביר

קשורים: מדוע רוב התוכניות עדיין 32 סיביות בגירסת 64 סיביות של Windows?

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

לדוגמה, אם אתה מתקין תוכנית 32 סיביות ב-גרסת 64 סיביות של Windows והיא מנסה לכתוב לתיקיה C: Program Files, WoW64 מצביע אותה על C: Program Files (x86). ואם הוא רוצה לגשת לתיקיה C: WindowsSystem32, WoW64 מצביע אותה על C: WindowsSysWOW64. Windows עושה זאת באמצעות ניתוב מחדש של מערכת הקבצים.

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

אז מדוע מערכת 32 64 סיביות ו- SysWOW64 32 סיביות?

כל מה שמחזיר אותנו לשאלת מיליון הדולר: מדוע התיקיה "System32" היא 64 סיביות, ו- SysWOW64 32 סיביות?

נראה כי התשובה היא שרבה 32 סיביותהיישומים קידוד הקשיח לשימוש בספריית C: WindowsSystem32. כאשר מפתחים גיבשו מחדש יישומים אלה עבור גרסאות 64 סיביות של Windows, הם המשיכו להשתמש בספריית C: WindowsSystem32.

במקום לשנות את שם הספרייה ולאכוףמפתחים לעבור לחדש, ושברו יישומים רבים בתהליך, מיקרוסופט השאירה את "System32" כספריית ספריית המערכת הרגילה. הם יצרו ספריית ספרייה חדשה ליישומים הפועלים תחת שכבת WoW64, ושמו הם “SysWOW64”. כשחושבים על זה בצורה כזו, השם הגיוני יותר.

כן, זה קצת טיפשי שספרייה עם "32"בשם הוא עכשיו 64 סיביות. אולי מיקרוסופט הייתה צריכה לראות את זה בא כשהכינו אותה C: WindowsSystem32 בשנות ה 90. אבל, למרות שתכנית שמות פשוטה יותר תהיה נחמדה, לא שווה לשבור חבורה של תוכניות וליצור יותר עבודה למפתחים רק כדי להגיע לשם. המשמעות היא שאנחנו תקועים עם System32 ו- SysWOW64 בעתיד הנראה לעין.