Wine היא שכבת תאימות של Windows המאפשרת למשתמשים להריץ אפליקציות Windows על מערכות הפעלה אחרות. Wine for Android הגיע כעת לגרסה 5.0 -- בדוק את זה!
המערכת האקולוגית של אפליקציית אנדרואיד התפתחה בהתמדה במהלך שנות קיומה של אנדרואיד, מונעת מהאימוץ המתמיד של הנייד כאינטראקציה העיקרית במחשב עבור רוב האנשים. הרבה משתמשים נמשכו לסגנון חיים לנייד בלבד, וזה בגלל שהאפליקציות והאקולוגית של האפליקציה בנייד הצליחו למלא את הצרכים המיוחדים שלהם. אבל אם אי פעם תמצא את עצמך זקוק ליישום שולחן עבודה מבלי שתהיה לך גישה לשולחן עבודה, מה היית עושה? לכאן מגיע Wine, שכבת תאימות של Windows המאפשרת למשתמשים להפעיל יישומי Windows מלאים על מערכות הפעלה שונות. Wine for Android יש הגיע כעת לגרסה 5.0, אוסף מאמצי פיתוח של שנה מהצוות.
Wine היא שכבת תאימות חינמית וקוד פתוח עבור Windows, שמטרתה לאפשר לתוכניות מחשב שפותחו עבור Windows לפעול במערכות הפעלה אחרות. Wine for Android מביא את Wine לאנדרואיד, מובן מאליו. יין אינו אמולטור (שהוא למעשה כינוי רקורסיבי לשם), אז הוא יכול לפעול רק גרסאות ספציפיות לארכיטקטורה של אפליקציות -- גרסת ARM של Wine for Android תפעיל רק יישומי ARM, ולא x86.
הדגשים במהדורה היציבה של Wine 5.0 כוללים תמיכה בריבוי צגים ותמיכה ב-Vulkan 1.1. יומן השינויים המלא עבור העדכון הוא כדלקמן:
Wine 5.0 Changelog:
- מודולי PE:
- רוב המודולים בנויים בפורמט PE (Portable Executable, הפורמט הבינארי של Windows) במקום ELF כאשר המהדר MinGW זמין. זה עוזר לתוכניות שונות להגנת העתקה שבודקות שהתוכן בדיסק והזיכרון של מודולי המערכת זהים.
- הקבצים הבינאריים של PE בפועל מועתקים לקידומת Wine במקום קבצי DLL מזויפים. זה גורם לקידומת להיראות יותר כמו התקנת Windows אמיתית, במחיר של שטח דיסק נוסף.
- מודולים שהומרו ל-PE יכולים להשתמש בפונקציות C סטנדרטיות של תווים רחבים, כמו גם בקבועי תו רחב כמו L"abc". זה עושה את הקוד קל יותר לקריאה.
- עדיין לא כל המודולים הומרו ל-PE; זהו תהליך מתמשך שימשיך במהלך סדרת הפיתוח של Wine 5.x.
- זמן הריצה של Wine C מעודכן כדי לתמוך בקישור לקבצים בינאריים מהודרים של MinGW; הוא משמש כברירת מחדל במקום זמן הריצה MinGW בעת בניית קובצי DLL.
- גרָפִיקָה:
- מתאמי תצוגה וצגים מרובים נתמכים כראוי, כולל שינויי תצורה דינמיים.
- מנהל ההתקן של Vulkan תומך עד גרסה 1.1.126 של מפרט Vulkan.
- ספריית WindowsCodecs מסוגלת להמיר יותר פורמטים של מפת סיביות, כולל פורמטים עם אינדקס ללוח.
- ישיר תלת מימד:
- יישומי Direct3D במסך מלא מעכבים את שומר המסך.
- מצגות DXGI swapchain מודיעות לאפליקציה כאשר החלון המתאים ממוזער. זה בדרך כלל מאפשר ליישומים להפחית את השימוש במעבד תוך מזעור, ובמקרים מסוימים נדרש כדי לאפשר שחזור של חלון היישום.
- מעבר בין מצבי מסך מלא וחלונות באמצעות השילוב הסטנדרטי Alt+Enter מיושם עבור יישומי DXGI.
- התכונות הבאות מיושמות עבור יישומי Direct3D 12:
- מעבר בין מסך מלא לחלונות.
- שינוי מצבי תצוגה.
- מתנות בקנה מידה.
- החלפת מרווחים. תכונות אלה כבר יושמו בעבר עבור גרסאות קודמות של ה-API של Direct3D.
- הטיפול במקרי קצה שונים משופר. בין היתר:
- ערכי ייחוס מחוץ לטווח עבור בדיקות האלפא והסטנסיל.
- דגימת משאבי 2D עם דגמי 3D ולהיפך.
- ציור עם מרקמים ממופים ומאגרים.
- שימוש באובייקטי קוצץ לא חוקיים של DirectDraw.
- יצירת התקני Direct3D ב-Windows לא חוקי, כמו חלון שולחן העבודה.
- יציאות צפייה עם Z מינימום גדול או שווה למקסימום Z.
- משאבים מאוגדים באמצעות תצוגות משאבי הצללה ותצוגות מיקוד רינדור או שבלונות עומק בו-זמנית.
- יציאות בין פורמטים עם ובלי רכיבי אלפא. מכיוון שיישומים מתנהגים היטב אינם מסתמכים על מקרי קצה אלו, הם בדרך כלל משפיעים רק על יישום אחד או שניים כל אחד. בכל זאת יש לא מעט כאלה.
- אזורי טקסטורה מלוכלכים עוקבים בצורה מדויקת יותר עבור העלאות טקסטורות Direct3D 8 ו-9.
- העלאות של טקסטורות תלת מימד דחוסות S3TC דורשות פחות שטח כתובות. מכיוון שטקסטורות תלת מימד עשויות להיות גדולות, ומיצוי הכתובת מהווה דאגה עבור יישומי 32 סיביות, טקסטורות תלת מימד דחוסות S3TC מועלות לכל פרוסה, במקום בהעלאה בודדת.
- ממשק ID3D11Multithread מיושם.
- בוצעו תיקוני חישוב תאורה ושיפורים שונים עבור יישומי DirectDraw ישנים יותר.
- מיושמת תמיכה מוגבלת בבליטים על פני רשתות החלפה.
- ממשקי API של השתקפות הצללה יותר מיושמים.
- Wined3d CPU Bliter יכול להתמודד עם משאבי מקור דחוסים. תמיכה במשאבי יעד דחוסים כבר יושמה במהדורה קודמת.
- מסד הנתונים של כרטיסים גרפיים Direct3D מזהה יותר כרטיסים גרפיים.
- מפתחות רישום חדשים HKEY_CURRENT_USER\Software\Wine\Direct3D:
- "shader_backend" (REG_SZ) הקצה האחורי של הצללה לשימוש. ערכים אפשריים הם "glsl" (ברירת מחדל) עבור GLSL, "arb" עבור תוכניות ARB קודקוד/fragment ו-"none" כדי להשבית את תמיכת הצללה.
- "strict_shader_math" (REG_DWORD) אפשר (0x1) או השבת (0x0, ברירת מחדל) תרגום מחמיר של הצללות Direct3D, אולי במחיר ביצועים. זה עושה כרגע את ההבדל רק עם ברירת המחדל האחורי של GLSL shader בשילוב עם מנהלי ההתקן הקנייניים של NVIDIA.
- מפתח רישום HKEY_CURRENT_USER\Software\Wine\Direct3D הוצא משימוש:
- "UseGLSL" זה הוחלף על ידי ההגדרה "shader_backend" למעלה.
- D3DX:
- מיושמת תמיכה בדחיסת טקסטורות באמצעות S3TC-compression.
- פעולות שונות, כמו למשל. מילוי מרקם, על משטחים בלתי ניתנים למיפוי מיושמים בצורה נכונה יותר. בעבר היישום שלהם הסתמך על היישום הבסיסי של Direct3D לא אוכף הגבלות מיפוי.
- בוצעו שיפורים ותיקונים שונים למסגרת האפקט.
- גַרעִין:
- רוב הפונקציות שהיו בעבר ב-Kernel32 מועברות ל-KernelBase, כדי לעקוב אחר הארכיטקטורה של גרסאות Windows האחרונות.
- ספריות של 32/64 סיביות לא נכונות מתעלמות כשהן נמצאות בנתיב החיפוש, כדי לאפשר טעינת הקובץ הנכון אם הוא נמצא בהמשך הנתיב.
- אובייקטי ליבה מקבלים חיקוי טוב יותר עבור מנהלי התקנים שמצפים לתפעל אובייקטים מצד הליבה.
- מיושמים אובייקטי הסנכרון ברמת הליבה כמו נעילות ספין, שינויים מהירים, הסרת מנעולים ומשתני משאבים.
- מצב סוללת המערכת מדווח כהלכה ליישומים.
- ממשק משתמש:
- חלונות ממוזערים מוצגים באמצעות שורת הכותרת שלהם במקום הסמלים הישנים בסגנון Windows 3.1.
- סגנונות הלחצנים החדשים Split Buttons ו-Command Links מיושמים.
- פקד העריכה מגדיר את השוליים בצורה נכונה גם עבור גופני CJK.
- שילוב שולחן העבודה:
- נוצרים קישורים סמליים לספריות Unix המתאימות עבור התיקיות 'הורדות' ו'תבניות'.
- התקני קלט:
- ניתן להתקין ולטעון מנהלי התקנים של Plug & Play בעת האתחול.
- בקרי משחק נתמכים טוב יותר, כולל תמיכה נכונה עבור מתג כובע, גלגלים, גז ובלמים.
- ה-API הישן של הג'ויסטיק של גרסאות לינוקס קודמים מ-2.2 אינו נתמך עוד.
- .נֶטוֹ:
- מנוע המונו מעודכן לגרסה 4.9.4, כולל חלקים ממסגרת Windows Presentation Foundation (WPF).
- התוספות Gecko ומונו תומכות בהתקנה משותפת, שבה נעשה שימוש בקבצים ישירות ממיקום גלובלי תחת /usr/share/wine במקום להיות מועתקים לכל קידומת חדשה.
- אינטרנט ורשת:
- מנוע Gecko מתרענן כדי לתמוך בשרשרת הכלים האחרונה.
- מספר ממשקי HTML חדשים מיושמים.
- MSHTML תומך בחלק ממרכיבי SVG.
- אובייקט שגיאה והפצת חריגים נתמכים ב-VBScript.
- מיושמות מספר פונקציות מובנות של VBScript.
- מצב תואם JScript EcmaScript מורחב כדי לתמוך בתכונות נוספות.
- אובייקטי סקריפט של JScript ו-VBScript חושפים ממשקי מידע מסוגים.
- ניתן לאחזר את תצורת ה-proxy של HTTP באמצעות DHCP.
- הפניות HTTP של דרכון נתמכות.
- שירות ה-HTTP וספריית צד הלקוח המקבילה (HTTPAPI) מיושמים חלקית.
- קריפטוגרפיה:
- מפתחות ECC (עקומה אליפטית) נתמכים בעת שימוש ב-GnuTLS.
- ייבוא מפתחות ואישורים מ-PFX blobs מיושם.
- אלגוריתם גזירת מפתח PBKDF2 נתמך.
- טקסט וגופנים:
- תכונות המיקום של OpenType נתמכות ב-DirectWrite, ומופעלות עבור סקריפט לטיני כברירת מחדל, כולל ליבה.
- הגישה לנתוני גופנים נעשית בטוחה יותר על ידי אימות טבלאות הנתונים השונות לפני השימוש בהן.
- ממשקי DirectWrite מעודכנים ל-SDK עדכני, תוך יישום של כמה מהתוספות ה-API האחרונות.
- אודיו / וידאו:
- ספריות XAudio2 מיושמות מחדש כדי להשתמש בספריית FAudio החיצונית, לתאימות טובה יותר.
- ספריות קרן המדיה מתגבשות, כולל:
- תמיכה בתורי עבודה מובנים וסנכרון משתמשים.
- יכולת הגשת התקשרויות חוזרות תקופתיות, פריטי עבודה ממתינים, מתוזמנים וקבועים, עם תמיכה בעדיפות פריט.
- תמיכה בתורי אירועי מדיה.
- API ליבה שונים לטיפול באובייקטים מסוג מדיה, מתארי זרימה ומצגת, תכונות אובייקט, אובייקטי זרם בתים, דוגמאות ומאגרים.
- יישום ראשוני של פותר מקור.
- יישום ראשוני של Source Reader API.
- יישום עבור אובייקט Sample Grabber.
- תמיכת ליבה לבניית אובייקטים טופולוגיים.
- יישום שעון מצגת מובנה, החל ביישום פונקציונליות Media Session.
- מסנן לכידת הווידאו הועבר לשימוש ב-v4l2 במקום ב-v4l1 API שהוצא משימוש, מה שמאפשר שימוש במצלמות מסוימות שאינן תומכות ב-v4l1.
- תמיכה בתרגום YUV ל-RGB וקריאה ממכשירי v4l2 באמצעות mmap() הוסרה; כעת אנו תלויים ב-libv4l2 עבור שני הדברים הללו.
- מפענחי ה-AVI, MPEG-I ו-WAVE המובנים הוסרו; כעת אנו תלויים ב-GStreamer או ב-Mac QuickTime Toolkit כדי לפענח קבצי מדיה כאלה.
- עוד כמה ממשקי API של תצורת VMR7 מיושמים.
- מנהלי ההתקן של הסאונד תומכים בהתאמות ווליום לכל ערוץ.
- בִּנאוּם:
- טבלאות תווים של Unicode מבוססות על גרסה 12.1.0 של תקן Unicode.
- נורמליזציה של Unicode מיושמת.
- מזהה האזור הגיאוגרפי מוגדר אוטומטית ברישום בהתבסס על המקום הנוכחי. ניתן לשנות אותו במידת הצורך תחת HKEY_CURRENT_USER\Control Panel\International\Geo.
- האזורים הסינהלים והאסטוריים נתמכים.
- דף קוד 28601 (לטינית/תאילנדית) נתמך.
- RPC/COM:
- ה-typelib marshaller תומך במבנים ומערכים מורכבים.
- יש יישום ראשוני של ספריית זמן הריצה של Windows Script.
- יש יישום ראשוני של ספריית Microsoft ActiveX Data Objects (ADO).
- מתקינים:
- קבצי תיקון של Microsoft Installer (MSI) נתמכים.
- הכלי WUSA (Windows Update Standalone Installer) תומך בהתקנת קבצי עדכון MSU.
- פלטפורמות ARM:
- שחרור חריג מיושם עבור ARM64, באמצעות ספריית libunwind.
- פרוקסי OLE סטאבלים נתמכים ב-ARM64.
- כלי פיתוח / Winelib:
- ניתן להשתמש במאתר הבאגים המרוחק של Visual Studio כדי לנפות באגים ביישומים הפועלים תחת Wine.
- ספריית מנוע Debug (DBGENG) מיושמת חלקית.
- קבצים בינאריים שנבנו עבור יעד של Windows אינם תלויים עוד בספריית libwine, כדי לאפשר להם לפעול על Windows ללא תלות נוספת. ספריית libwine כבר לא בנויה עבור Windows בכלל.
- ה-Resource Compiler ו-IDL Compiler תומכים באפשרות '--sysroot' כדי לאפשר איתור קבצי כותרות בסביבות הידור צולבות.
- Winegcc תומך באפשרויות '--target', '--wine-objdir', '--winebuild' ו-'-fuse-ld' המקלות על השימוש כ-cross-compiler, או עם שרשרות כלים מותאמות אישית.
- הכותרת wine/unicode.h אינה זמינה יותר ליישומים, מכיוון שהפונקציות יוסרו בסופו של דבר ויוחלף על ידי פונקציות ה-C הסטנדרטיות של התווים רחבי זמן הריצה.
- בניית תשתית:
- קבצי בדיקה בינאריים בנויים בפורמט PE אם MinGW זמין, כך שאותו בינארי בדיקה יכול לרוץ גם על Wine וגם על Windows. אין צורך או נתמך עוד ב-'Crosstest'.
- קונבנצית השיחות 'fastcall' נתמכת בקבצי מפרט. הוא משתמש בשינוי השם הנכון עבור בניית Windows.
- דגל נקודת כניסה '-import' נתמך בקבצי מפרט, כדי לסמן פונקציות שצריכות להפיק קידומת קוד hotpatch עבור ה-thunks הייבוא שלהן.
- Winebuild תומך באפשרות '--builtin' להוסיף חתימה מיוחדת לקבצים בינאריים של PE כדי לסמן אותם כ-Wine buildins.
- יישומים מובנים:
- הכלי CHCP מיושם. זה מאפשר להגדיר את דף הקוד של המסוף.
- הכלי MSIDB מיושם. זה מאפשר מניפולציה של מסדי נתונים של MSI.
- שיפורים בביצועים:
- פונקציות הזמן השונות משתמשות בשעוני מערכת בעלי ביצועים גבוהים יותר אם זמינים, כדי להפחית את התקורה בלולאת העיבוד של משחקים רבים.
- חיפושי קבצים מנצלים את התמיכה בקיפול מקרים של מערכת הקבצים ext4 אם היא מופעלת בספרייה שמחפשים אותה.
- לתיבות רשימה בסגנון ללא נתונים (LBS_NODATA) יש ביצועים טובים יותר עבור מספר גדול של פריטים.
- מנעולי Slim Reader/Writer, אירועים עם מפתח ומשתני מצב משתמשים ב-futexes ב-Linux כדי להימנע מנסיעות הלוך ושוב של שרת היין.
- תלות חיצונית חדשה:
- המהדר הצולב MinGW-w64 משמש לבניית מודולים בפורמט PE.
- ספריית FAudio משמשת ליישום XAudio2.
- ספריית Inotify משמשת להתראות על שינוי קבצים בפלטפורמות BSD.
- ספריית Unwind משמשת לטיפול בחריגים ב-ARM64.
- נעשה שימוש בספריית Video4Linux גרסה 2 במקום גרסה 1.
קרא עוד
מָקוֹר: מטה יין
סיפור דרך: משטרת אנדרואיד