Μετά από ένα χρόνο ανάπτυξης και 26 πειραματικές εκδόσεις, παρουσιάστηκε μια σταθερή έκδοση της ανοιχτής υλοποίησης του Win32 API - Wine 9.0, η οποία ενσωμάτωσε περισσότερες από 7000 αλλαγές. Τα βασικά επιτεύγματα της νέας έκδοσης περιλαμβάνουν την υλοποίηση της αρχιτεκτονικής WoW64 για εκτέλεση προγραμμάτων 32 bit σε περιβάλλον 64 bit, ενσωμάτωση προγραμμάτων οδήγησης για υποστήριξη Wayland, υποστήριξη για την αρχιτεκτονική ARM64, υλοποίηση του DirectMusic API και υποστήριξη για έξυπνες κάρτες.
Έχει επιβεβαιωθεί ότι 5336 (5266 πριν από ένα χρόνο, 5156 πριν από δύο χρόνια, 5049 πριν από τρία χρόνια) προγράμματα λειτουργούν σωστά στο Wine. WindowsΆλλα 4397 προγράμματα (4370 πριν από ένα χρόνο, 4312 πριν από δύο χρόνια, 4227 πριν από τρία χρόνια) λειτουργούν καλά με πρόσθετες ρυθμίσεις και εξωτερικά αρχεία DLL. 3943 προγράμματα (3888 πριν από ένα χρόνο, 3813 πριν από δύο χρόνια, 3703 πριν από τρία χρόνια) έχουν μικρά προβλήματα που δεν επηρεάζουν τη βασική λειτουργικότητα των εφαρμογών.
Βασικές καινοτομίες στο Wine 9.0:
- Έχει προστεθεί το πρόγραμμα οδήγησης winewayland.drv, επιτρέποντας τη χρήση του Wine σε περιβάλλοντα που βασίζονται στο Wayland χωρίς τη χρήση στοιχείων XWayland ή X11. Αυτή η ανάπτυξη στοχεύει στην παροχή ενός καθαρού περιβάλλοντος Wayland με υποστήριξη εκκίνησης. Windows- εφαρμογές που δεν απαιτούν την εγκατάσταση πακέτων που σχετίζονται με το X11, κάτι που επιτρέπει υψηλότερη απόδοση και ανταπόκριση στα παιχνίδια εξαλείφοντας τα περιττά επίπεδα. Η χρήση ενός καθαρού περιβάλλοντος Wayland για το Wine εξαλείφει επίσης τα προβλήματα ασφαλείας που είναι εγγενή στο X11 (για παράδειγμα, τα μη αξιόπιστα παιχνίδια X11 μπορούν να κατασκοπεύουν άλλες εφαρμογές επειδή το πρωτόκολλο X11 επιτρέπει την πρόσβαση σε όλα τα συμβάντα εισόδου και την εκτέλεση αντικατάστασης πλήκτρων).
Το πρόγραμμα οδήγησης έχει επισημανθεί ως πειραματικό και υπό ανάπτυξη, αλλά έχει ήδη υποστήριξη για πολλές λειτουργίες, όπως διαχείριση παραθύρων, εργασία με πολλαπλές οθόνες, υποστήριξη για κλιμάκωση εξόδου σε οθόνες υψηλού DPI, εργασία με σχετικές συντεταγμένες κατά την παρακολούθηση της κίνησης του ποντικιού και υποστήριξη για το API γραφικών Vulkan. Από προεπιλογή, το πρόγραμμα οδήγησης δεν είναι ενεργό και για να το ενεργοποιήσετε, θα πρέπει να προσθέσετε το "wayland" στην παράμετρο μητρώου "HKCU\Software\Wine\Drivers" και να βεβαιωθείτε ότι δεν έχει οριστεί η μεταβλητή περιβάλλοντος DISPLAY: wine reg.exe προσθέστε HKCU\\Software\\Wine\\Drivers /v Graphics /d x11,wayland
- Όλες οι μονάδες έχουν μετατραπεί στη διεπαφή κλήσεων συστήματος NT, αντί για απευθείας κλήσεις μεταξύ των επιπέδων PE και Unix, σηματοδοτώντας την ολοκλήρωση πολλών ετών εργασίας για τη μετατροπή όλων των βιβλιοθηκών DLL για χρήση της μορφής εκτελέσιμου αρχείου PE (Portable Executable).
- Η ανάπτυξη του επιπέδου WoW64 (64-bit) συνεχίστηκε Windows-επί-Windows), το οποίο σας επιτρέπει να εκτελέσετε 32-bit Windows- εφαρμογές σε συστήματα Unix 64-bit. Όλες οι ενότητες που έχουν πρόσβαση σε βιβλιοθήκες Unix χρησιμοποιούν μεταφραστές κλήσεων συστήματος WoW64 (ευχαριστώ), επιτρέποντας σε ενότητες 32-bit σε μορφή PE να έχουν πρόσβαση σε βιβλιοθήκες Unix 64-bit.
Η νέα λειτουργία εκκίνησης του WoW64 έχει βελτιωθεί, επιτρέποντας την εκτέλεση κώδικα 32-bit σε μια διεργασία 64-bit (στην παλιά λειτουργία WoW64, οι εφαρμογές 32-bit έτρεχαν σε διεργασίες Unix 32-bit). Έχει προστεθεί υποστήριξη για τη χρήση της νέας λειτουργίας WoW64 στην πλατφόρμα. macOSΔεδομένου ότι η νέα λειτουργία WoW64 έχει κάποια μικρά σφάλματα, όπως έλλειψη υποστήριξης 16-bit και μειωμένη απόδοση OpenGL λόγω της έλλειψης υποστήριξης για την επέκταση ARB_buffer_storage, δεν είναι ακόμη ενεργοποιημένη από προεπιλογή και απαιτεί δημιουργία με την επιλογή "--enable-archs=i386,x86_64" στο σενάριο ρύθμισης παραμέτρων.
- Προστέθηκε η δυνατότητα εκτέλεσης υπαρχόντων εκτελέσιμων αρχείων Windows Σε συστήματα με αρχιτεκτονική ARM64. Το Wine μπορεί πλέον να δημιουργηθεί για το ARM64EC (ARM64 Emulation Compatible) ABI και μπορούν να φορτωθούν μονάδες ARM64EC. Αυτές οι μονάδες χρησιμοποιούνται για την απλοποίηση της μεταφοράς εφαρμογών που γράφτηκαν αρχικά για την αρχιτεκτονική x86_64 σε συστήματα ARM64, επιτρέποντας την εκτέλεση μεμονωμένων μονάδων κώδικα x86_64 στο περιβάλλον ARM64 χρησιμοποιώντας έναν εξομοιωτή. Έχει προστεθεί υποστήριξη για τη μορφή αρχείου ARM64X PE, η οποία επιτρέπει τη φόρτωση ενός μόνο εκτελέσιμου αρχείου τόσο σε διεργασίες x64/Arm64EC όσο και σε διεργασίες ARM64. Έχει υλοποιηθεί μια διεπαφή για την εξομοίωση συστημάτων x86 32-bit, αλλά η βιβλιοθήκη εξομοιωτών δεν περιλαμβάνεται ακόμη στην κύρια διανομή Wine (ο εξωτερικός εξομοιωτής FEX μπορεί να χρησιμοποιηθεί για την εκτέλεση κώδικα x86 στο περιβάλλον ARM64).
- Υποσύστημα γραφικών
- Το πρόγραμμα οδήγησης PostScript έχει επανασχεδιαστεί για να υποστηρίζει αρχεία spool στη μορφή Windows, τα οποία αποθηκεύουν δεδομένα σχετικά με εργασίες εκτύπωσης. Εξαιρούνται οι άμεσες κλήσεις προς το πρόγραμμα οδήγησης από το περιβάλλον Unix.
- Η υποστήριξη Dark mode έχει προστεθεί στα θέματα WinRT. Προστέθηκε μια ρύθμιση στο WineCfg για να ενεργοποιηθεί η σχεδίαση σκοτεινής διεπαφής.
- Το πρόγραμμα οδήγησης για το API γραφικών Vulkan έχει προσθέσει υποστήριξη για την προδιαγραφή Vulkan 1.3.272 (8.0 υποστηρίχτηκε στο Wine 1.3.237).
- Οι λειτουργίες της βιβλιοθήκης GdiPlus έχουν βελτιστοποιηθεί, επιτρέποντας αυξημένη απόδοση γραφικών.
- Direct3D
- Η ανάλυση μιας ροής εντολών πολλαπλών νημάτων αναστέλλεται όταν δεν υποβάλλονται σε επεξεργασία εντολές απόδοσης, γεγονός που επιτρέπει τη μείωση της κατανάλωσης ενέργειας στο επίπεδο της επεξεργασίας ενός νήματος κατά την εκτέλεση προγραμμάτων που δεν καταλαμβάνουν ολόκληρο το εύρος ζώνης ροής εντολών.
- Το Direct3D 10 περιλαμβάνει υποστήριξη για πρόσθετα εφέ.
- Πραγματοποίησε βελτιστοποιήσεις απόδοσης στον κώδικα WineD3D και στο backend χρησιμοποιώντας το API γραφικών Vulkan.
- Ο κώδικας απόδοσης που βασίζεται σε Vulkan API ελέγχει τώρα ποιες δυνατότητες υποστηρίζει η συσκευή και ενημερώνει την εφαρμογή ποιο επίπεδο λειτουργικότητας Direct3D είναι διαθέσιμο.
- Οι συναρτήσεις D3DXFillTextureTX και D3DXFillCubeTextureTX έχουν υλοποιηθεί.
- Το κλασικό backend του OpenGL ARB shader έχει προσθέσει υποστήριξη για τον ορισμό σκιών χρησιμοποιώντας την επέκταση ARB_fragment_program_shadow.
- Το D3DXLoadMeshHierarchyFromX και παρόμοιες λειτουργίες έχουν προσθέσει υποστήριξη για τη φόρτωση δεδομένων χρήστη χρησιμοποιώντας τη διεπαφή ID3DXLoadUserData.
- Ήχος και βίντεο
- Έχει προταθεί μια αρχική εφαρμογή του DirectMusic API. Προστέθηκε υποστήριξη για συλλογές, όργανα και δείγματα ήχου σε μορφή SoundFont. Προστέθηκε υποστήριξη για το φαινόμενο Doppler. Έχουν εφαρμοστεί δοκιμές για την επαλήθευση της σωστής υλοποίησης κατά τη λειτουργία του dmime sequencer και του dmsynth MIDI synthesizer.
- Η βιβλιοθήκη FluidSynth είναι ενσωματωμένη στο DirectMusic API για χρήση.
- Υλοποιήθηκε υποστήριξη για τη φόρτωση γραμματοσειρών ήχου (SoundFont - μορφές για σύνθεση βασισμένη σε δείγματα που χρησιμοποιούνται για την αναπαραγωγή αρχείων MIDI) στις μορφές DLS1 και DLS2, καθώς και στη μορφή SF2 που χρησιμοποιείται στο Linux.
- Προστέθηκε η δυνατότητα αναπαραγωγής περιεχομένου MIDI χρησιμοποιώντας τη βιβλιοθήκη dmsynth, χρησιμοποιώντας το πρόγραμμα σύνθεσης λογισμικού FluidSynth και το DirectSound API για έξοδο ήχου.
- Προστέθηκε αποκωδικοποιητής βίντεο σε μορφή κωδικοποιητή βίντεο Indeo IV50.
- DirectShow
- Το στοιχείο DMO (DirectX Media Object) με αποκωδικοποιητή μορφής WMV έχει υλοποιηθεί (Windows Βίντεο πολυμέσων).
- Προστέθηκε ένα φίλτρο καταγραφής ήχου (DirectShow Audio Capture Filter).
- Εκτός από τις ροές ήχου, το DirectShow MPEG-1 Stream Splitter υποστηρίζει πλέον ροές βίντεο και υπηρεσιών.
- Έχει εφαρμοστεί ένα φίλτρο για την αποκωδικοποίηση βίντεο σε μορφή MPEG-1 (DirectShow MPEG-1 Video Decoder).
- Συσκευές εισόδου
- Το DirectInput υποστηρίζει την αντιστοίχιση ενεργειών, η οποία σας επιτρέπει να συνδέετε κουμπιά σε έναν ελεγκτή παιχνιδιών σε συγκεκριμένες ενέργειες σε παιχνίδια.
- Ενοποίηση επιφάνειας εργασίας
- Οι δεσμεύσεις έχουν εξαχθεί στο κύριο περιβάλλον χρήστη, επιτρέποντας στις εφαρμογές που εκτελούνται στο Wine να καλούνται ως χειριστές πρωτοκόλλου κατά το άνοιγμα μιας διεύθυνσης URL (για παράδειγμα, εκκίνηση του spotify.exe κατά το άνοιγμα συνδέσμων όπως "spotify:user:spotify:playlist:848218482355482821").
- Υλοποίησε την εξαγωγή δεδομένων EDID (Extended Display Identification Data) με πληροφορίες σχετικά με τις παραμέτρους της συνδεδεμένης οθόνης, όπως το όνομα και το μοντέλο της συσκευής.
- Είναι δυνατό να κλείσετε ένα παράθυρο επιφάνειας εργασίας που έχει αναπτυχθεί σε λειτουργία πλήρους οθόνης χρησιμοποιώντας το κουμπί "Έξοδος από την επιφάνεια εργασίας" στο μενού "Έναρξη".
- Διεθνοποίηση
- Η υποστήριξη για IME (Input Method Editors) έχει επεκταθεί. Έχουν πραγματοποιηθεί εργασίες για να διασφαλιστεί η συμβατότητα με την εγγενή έκδοση. Windows Υλοποιήσεις IME και βελτιωμένη ενσωμάτωση με Linux IME
- Παρέχεται τοπικές βάσεις δεδομένων σε μορφή locale.nls από τη βάση δεδομένων Unicode CLDR (Unicode Common Locale Data Repository) έκδοση 44 Υποστήριξη για πρόσθετες τοπικές ρυθμίσεις bew-ID, blo-BJ, csw-CA, ie-EE, mic-CA. , έχει προστεθεί prg-PL , skr-PK, tyv-RU, vmw-MZ, xnr-IN και za-CN.
- Η διεπαφή έχει μεταφραστεί στα γεωργιανά. Παρέχονται πλήρεις μεταφράσεις για 16 γλώσσες και μερικές μεταφράσεις για 31 γλώσσες.
- Οι πίνακες χαρακτήρων Unicode έχουν ενημερωθεί στην τυπική έκδοση 15.1.0. Η βάση δεδομένων της ζώνης ώρας έχει ενημερωθεί.
- Πυρήνας (διεπαφές πυρήνα Windows)
- Όπως η εκδοθείσα έκδοση Windows ορίζεται από προεπιλογή Windows 10.
- Για εκτελέσιμα αρχεία σε μορφή PE, εφαρμόζεται υποστήριξη για τυχαιοποίηση χώρου διευθύνσεων (ASLR), αλλά οι διευθύνσεις για τη φόρτωση του κώδικα στη μνήμη δεν έχουν ακόμη τυχαιοποιηθεί πλήρως.
- Έχει υλοποιηθεί υποστήριξη για έναν ασθενώς κατακερματισμένο σωρό (LFH, Low Fragmentation Heap), γεγονός που έχει αυξήσει την απόδοση των λειτουργιών εκχώρησης μνήμης.
- Η υποστήριξη για κράτηση μνήμης (placeholder) έχει προστεθεί στον μηχανισμό εκχώρησης εικονικής μνήμης, επιτρέποντας σε μια εφαρμογή να δεσμεύει μια συγκεκριμένη περιοχή εικονικής μνήμης για μελλοντική χρήση.
- Οι φορτωτές 64 bit (φόρτωση και προφόρτωση) εκτελέσιμων αρχείων και βιβλιοθηκών μεταγλωττίζονται σε μορφή PIE (Εκτελέσιμα ανεξάρτητα από τη θέση) για να ελευθερωθεί μέρος του χώρου διευθύνσεων 32 bit.
- Το σωστό ξετύλιγμα στοίβας παρέχεται πλέον για κλήσεις συστήματος NT και επανακλήσεις χρηστών.
- Δυνατότητες δικτύωσης
- Η μηχανή MSHTML υποστηρίζει τον μηχανισμό συλλογής σκουπιδιών «Cycle Collection».
- Το MSHTML έχει προσθέσει υποστήριξη για σύγχρονη επεξεργασία αιτημάτων XMLHttpRequest.
- Το jscript.dll προσθέτει υποστήριξη για ένα αντικείμενο WeakMap για να λειτουργεί με μια συλλογή ζευγών κλειδιών/τιμών στα οποία το κλειδί είναι ένα αντικείμενο που μπορεί να έχει μια αυθαίρετη τιμή συνδεδεμένη σε αυτό. Υλοποιήθηκαν οι μέθοδοι WeakMap.get(), WeakMap.delete(), WeakMap.clear() και WeakMap.has().
- Η μηχανή του προγράμματος περιήγησης Gecko έχει ενημερωθεί στην έκδοση 2.47.4.
- Έχει υλοποιηθεί υποστήριξη για ειδοποιήσεις σχετικά με αλλαγές στην κατάσταση της διεπαφής δικτύου.
- Κρυπτογραφία και Ασφάλεια
- Η υποστήριξη για έξυπνες κάρτες έχει προστεθεί στη βιβλιοθήκη Winscard.dll, η οποία υλοποιείται μέσω της βιβλιοθήκης συστήματος PCSClite.
- Το BCrypt έχει προσθέσει υποστήριξη για το πρωτόκολλο ανταλλαγής κλειδιών Diffie-Hellman.
- Το πακέτο Negotiate έχει υλοποιηθεί, παρέχοντας ένα επίπεδο για τη χρήση της διεπαφής παρόχου υποστήριξης ασφαλείας (SSPI) για πρόσβαση σε παρόχους υποστήριξης ασφαλείας (SSP).
- Ενσωματωμένες εφαρμογές
- Το Wine Debugger (winedbg) χρησιμοποιεί τη βιβλιοθήκη Zydis για να αποσυναρμολογήσει τις οδηγίες του μηχανήματος X86.
- Η διεπαφή WineCfg έχει ενημερωθεί για να υποστηρίζει παλαιότερες εκδόσεις σε πλατφόρμες 64-bit. Windows (πριν από τα XP), το οποίο σας επιτρέπει να εκτελείτε παλαιότερες εφαρμογές χρησιμοποιώντας τη λειτουργία WoW64.
- Όλες οι ενσωματωμένες εφαρμογές γραφικών εμφανίζουν πλέον πληροφορίες σφάλματος σε ξεχωριστό παράθυρο διαλόγου, αντί να τις εμφανίζουν στην κονσόλα.
- Το πρόγραμμα systeminfo παρέχει την εμφάνιση πληροφοριών από τη βάση δεδομένων WMI (Windows Οργανολογία Διαχείρισης).
- Προστέθηκε εφαρμογή klist για εμφάνιση εισιτηρίων Kerberos.
- Η εφαρμογή taskkill υλοποιεί τη δυνατότητα αναγκαστικού τερματισμού θυγατρικών διεργασιών.
- Το βοηθητικό πρόγραμμα έναρξης έχει τώρα μια επιλογή "/machine" για να επιλέξει την αρχιτεκτονική που χρησιμοποιείται κατά την εκτέλεση υβριδικών εκτελέσιμων που υποστηρίζουν x86 και ARM.
- Το μεγαλύτερο μέρος της λειτουργικότητας του προγράμματος λίστας εργασιών έχει υλοποιηθεί.
- Προστέθηκε μια βασική υλοποίηση της εφαρμογής findstr.
- Εργαλεία ανάπτυξης
- Το βοηθητικό πρόγραμμα WineDump έχει τη δυνατότητα εμφάνισης του περιεχομένου των αρχείων μητρώου. Windows (μορφή REGF), καθώς και εμφάνιση δεδομένων για όλες τις αρχιτεκτονικές (x86/ARM64) που υποστηρίζονται σε υβριδικά αρχεία PE.
- Ο μεταγλωττιστής IDL υποστηρίζει πλέον τα χαρακτηριστικά "composable", "default_overload", "deprecated" και "protected".
- Καταργήθηκε η βιβλιοθήκη libwine.so, η οποία καταργήθηκε στο Wine 6.0 και δεν χρησιμοποιείται πλέον στο Wine. Τα προγράμματα ELF που είναι ενσωματωμένα σε παλαιότερες εκδόσεις Wine (5.0 και νεότερες) με το libwine.so απαιτούν ανακατασκευή για να εκτελεστούν στο Wine 9.0.
- Ενσωματωμένες βιβλιοθήκες και εξωτερικές εξαρτήσεις
- Οι βιβλιοθήκες FluidSynth 2.3.3, Musl 1.2.3 (μόνο μαθηματικές συναρτήσεις) και Zydis 4.0.0 είναι ενσωματωμένες στο πακέτο.
- Τα ακόλουθα στοιχεία έχουν ενημερωθεί σε νέες εκδόσεις: Vkd3d 1.10, Faudio 23.12, OpenLDAP 2.5.16, LCMS2 2.15, LibMPG123 1.32.2, LibPng 1.6.40, LibTiff 4.6.0, LibTiff 2, Li.X2.11.5lt, Lib. 1.1.38 και Zlib 1.3. Ο κινητήρας Wine Mono με εφαρμογή πλατφόρμας .NET έχει ενημερωθεί για να κυκλοφορήσει την έκδοση 8.1.0.
- Το πρόγραμμα οδήγησης winewayland.drv χρησιμοποιεί τη βιβλιοθήκη πελάτη Wayland ως εξωτερικές εξαρτήσεις, καθώς και τις βιβλιοθήκες xkbcommon και xkbregistry.
- Για την υποστήριξη έξυπνων καρτών, χρησιμοποιείται η εξωτερική βιβλιοθήκη PCSClite (σε macOS — PCSC).
- Η δημιουργία αρχείων PE σε πλατφόρμες που δεν είναι i386 απαιτεί πλέον έναν cross-compiler με υποστήριξη για οδηγίες ".seh" για τη διαχείριση εξαιρέσεων.
Πηγή: opennet.ru
