Σταθερή κυκλοφορία του Wine 7.0

Μετά από ένα χρόνο ανάπτυξης και 30 πειραματικές εκδόσεις, παρουσιάστηκε μια σταθερή έκδοση της ανοιχτής υλοποίησης του Win32 API - Wine 7.0, η οποία ενσωμάτωσε περισσότερες από 9100 αλλαγές. Τα βασικά επιτεύγματα της νέας έκδοσης περιλαμβάνουν τη μετάφραση των περισσότερων μονάδων Wine σε μορφή PE, υποστήριξη θεμάτων, επέκταση της στοίβας για joysticks και συσκευές εισόδου με διεπαφή HID και υλοποίηση της αρχιτεκτονικής WoW64 για την εκτέλεση προγραμμάτων 32 bit σε Περιβάλλον 64 bit.

Η Wine επιβεβαίωσε την πλήρη λειτουργία 5156 (πριν από ένα χρόνο 5049) προγραμμάτων για Windows, άλλα 4312 (πριν ένα χρόνο 4227) προγράμματα λειτουργούν τέλεια με πρόσθετες ρυθμίσεις και εξωτερικά DLL. 3813 προγράμματα (πριν από 3703 χρόνια) έχουν μικρά λειτουργικά προβλήματα που δεν παρεμποδίζουν τη χρήση των κύριων λειτουργιών των εφαρμογών.

Βασικές καινοτομίες στο Wine 7.0:

  • Ενότητες σε μορφή PE
    • Σχεδόν όλα τα DLL έχουν μετατραπεί για να χρησιμοποιούν τη μορφή εκτελέσιμου αρχείου PE (Portable Executable, που χρησιμοποιείται στα Windows) αντί για ELF. Η χρήση PE επιλύει προβλήματα με την υποστήριξη διαφόρων σχημάτων προστασίας από αντιγραφή που επαληθεύουν την ταυτότητα των μονάδων συστήματος στο δίσκο και στη μνήμη.
    • Έχει υλοποιηθεί η δυνατότητα αλληλεπίδρασης μονάδων PE με βιβλιοθήκες Unix χρησιμοποιώντας την τυπική κλήση συστήματος πυρήνα NT, η οποία σας επιτρέπει να αποκρύπτετε την πρόσβαση στον κώδικα Unix από τους εντοπιστές σφαλμάτων των Windows και να παρακολουθείτε την εγγραφή νημάτων.
    • Τα ενσωματωμένα DLL φορτώνονται πλέον μόνο εάν υπάρχει αντίστοιχο αρχείο PE στο δίσκο, ανεξάρτητα από το αν πρόκειται για πραγματική βιβλιοθήκη ή στέλεχος. Αυτή η αλλαγή επιτρέπει στην εφαρμογή να βλέπει πάντα τη σωστή σύνδεση σε αρχεία PE. Για να απενεργοποιήσετε αυτήν τη συμπεριφορά, μπορείτε να χρησιμοποιήσετε τη μεταβλητή περιβάλλοντος WINEBOOTSTRAPMODE.
  • WoW64
    • Η αρχιτεκτονική WoW64 (64-bit Windows-on-Windows) έχει υλοποιηθεί, επιτρέποντάς σας να εκτελείτε εφαρμογές Windows 32-bit σε διαδικασίες Unix 64-bit. Η υποστήριξη υλοποιείται μέσω της σύνδεσης ενός επιπέδου που μεταφράζει τις κλήσεις συστήματος NT 32 bit σε κλήσεις 64 bit στο NTDLL.
    • Τα επίπεδα WoW64 προετοιμάζονται για τις περισσότερες βιβλιοθήκες Unix και επιτρέπουν σε μονάδες PE 32-bit να έχουν πρόσβαση σε βιβλιοθήκες Unix 64-bit. Αφού μετατραπούν όλες οι μονάδες σε μορφή PE, θα είναι δυνατή η εκτέλεση εφαρμογών Windows 32 bit χωρίς εγκατάσταση βιβλιοθηκών Unix 32 bit.
  • Θέματα
    • Η υποστήριξη θεμάτων έχει υλοποιηθεί. Περιλαμβάνονται τα θέματα σχεδίασης "Light", "Blue" και "Classic Blue", τα οποία μπορούν να επιλεγούν μέσω του διαμορφωτή WineCfg.
    • Προστέθηκε η δυνατότητα προσαρμογής της εμφάνισης όλων των στοιχείων ελέγχου διεπαφής μέσω θεμάτων. Η εμφάνιση των στοιχείων ενημερώνεται αυτόματα μετά την αλλαγή του θέματος σχεδίασης.
    • Η υποστήριξη θεμάτων έχει προστεθεί σε όλες τις ενσωματωμένες εφαρμογές Wine. Οι εφαρμογές έχουν προσαρμοστεί σε οθόνες με υψηλή πυκνότητα pixel (High DPI).
  • Υποσύστημα γραφικών
    • Προστέθηκε μια νέα βιβλιοθήκη Win32u, η οποία περιλαμβάνει τμήματα των βιβλιοθηκών GDI32 και USER32 που σχετίζονται με την επεξεργασία γραφικών και τη διαχείριση παραθύρων σε επίπεδο πυρήνα. Στο μέλλον, θα ξεκινήσουν οι εργασίες για τη μεταφορά στοιχείων προγραμμάτων οδήγησης όπως το winex32.drv και το winemac.drv στο Win11u.
    • Το πρόγραμμα οδήγησης Vulkan υποστηρίζει την προδιαγραφή API γραφικών Vulkan 1.2.201.
    • Παρείχε υποστήριξη για την έξοδο διαγραμμένων γεωμετρικών αντικειμένων μέσω του Direct2D API, με δυνατότητα ελέγχου εάν χτυπάει ένα κλικ (hit-test).
    • Το Direct2D API παρέχει αρχική υποστήριξη για οπτικά εφέ που εφαρμόζονται χρησιμοποιώντας τη διεπαφή ID2D1Effect.
    • Το Direct2D API έχει προσθέσει υποστήριξη για τη διεπαφή ID2D1MultiThread, η οποία χρησιμοποιείται για την οργάνωση της αποκλειστικής πρόσβασης σε πόρους σε εφαρμογές πολλαπλών νημάτων.
    • Το σύνολο βιβλιοθηκών WindowsCodecs παρέχει υποστήριξη για αποκωδικοποίηση εικόνων σε μορφή WMP (Windows Media Photo) και κωδικοποίηση εικόνων σε μορφή DDS (DirectDraw Surface). Δεν υποστηρίζουμε πλέον την κωδικοποίηση εικόνων σε μορφή ICNS (για macOS), η οποία δεν υποστηρίζεται στα Windows.
  • Direct3D
    • Η νέα μηχανή απόδοσης έχει βελτιωθεί σημαντικά, μεταφράζοντας τις κλήσεις Direct3D στο API γραφικών Vulkan. Στις περισσότερες περιπτώσεις, το επίπεδο υποστήριξης για το Direct3D 10 και 11 στον κινητήρα που βασίζεται στο Vulkan έχει εξισωθεί με τον παλαιότερο κινητήρα που βασίζεται στο OpenGL. Για να ενεργοποιήσετε τη μηχανή απόδοσης Vulkan, ορίστε τη μεταβλητή μητρώου Direct3D "renderer" σε "vulkan".
    • Υλοποιούνται πολλές δυνατότητες του Direct3D 10 και 11, συμπεριλαμβανομένων των Deferred Contexts, των αντικειμένων κατάστασης που λειτουργούν στο περιβάλλον της συσκευής, των επίμονων μετατοπίσεων σε buffers, της εκκαθάρισης προβολών υφής εκτός σειράς, της αντιγραφής δεδομένων μεταξύ των πόρων σε μορφές χωρίς τύπο (DXGI_FORMAT_BC3_TYPELESS, DXGI32AG32BTY_R). .
    • Προστέθηκε υποστήριξη για διαμορφώσεις πολλαπλών οθονών, επιτρέποντάς σας να επιλέξετε μια οθόνη για εμφάνιση μιας εφαρμογής Direct3D σε λειτουργία πλήρους οθόνης.
    • Το DXGI API παρέχει διόρθωση γάμμα οθόνης, η οποία μπορεί να χρησιμοποιηθεί από εφαρμογές που βασίζονται σε Direct3D 10 και 11 για αλλαγή της φωτεινότητας της οθόνης. Ενεργοποιήθηκε η ανάκτηση μετρητών εικονικών buffers frames (SwapChain).
    • Το Direct3D 12 προσθέτει υποστήριξη για υπογραφές ρίζας έκδοσης 1.1.
    • Στον κώδικα απόδοσης μέσω του Vulkan API, η αποτελεσματικότητα της επεξεργασίας ερωτημάτων έχει βελτιωθεί όταν το σύστημα υποστηρίζει την επέκταση VK_EXT_host_query_reset.
    • Προστέθηκε η δυνατότητα εξόδου εικονικών buffer πλαισίων (SwapChain) μέσω GDI, εάν το OpenGL ή το Vulkan δεν μπορούν να χρησιμοποιηθούν για εμφάνιση, για παράδειγμα, κατά την έξοδο σε ένα παράθυρο από διαφορετικές διεργασίες, για παράδειγμα, σε προγράμματα που βασίζονται στο πλαίσιο CEF (Chromium Embedded Framework).
    • Όταν χρησιμοποιείτε το backend του shader GLSL, διασφαλίζεται ο "ακριβής" τροποποιητής για οδηγίες shader.
    • Το DirectDraw API προσθέτει υποστήριξη για τρισδιάστατη απόδοση στη μνήμη του συστήματος χρησιμοποιώντας συσκευές λογισμικού όπως "RGB", "MMX" και "Ramp".
    • Οι κάρτες AMD Radeon RX 3M, AMD Radeon RX 5500/6800 XT/6800 XT, AMD Van Gogh, Intel UHD Graphics 6900 και NVIDIA GT 630 έχουν προστεθεί στη βάση δεδομένων των καρτών γραφικών Direct1030D.
    • Το κλειδί "UseGLSL" έχει αφαιρεθεί από το μητρώο HKEY_CURRENT_USER\Software\Wine\Direct3D, αντί του οποίου, ξεκινώντας με το Wine 5.0, πρέπει να χρησιμοποιήσετε το "shader_backend".
    • Για να υποστηρίξετε το Direct3D 12, χρειάζεστε τώρα τουλάχιστον την έκδοση 3 της βιβλιοθήκης vkd1.2d.
  • D3DX
    • Η υλοποίηση του D3DX 10 έχει βελτιωμένη υποστήριξη για το πλαίσιο οπτικών εφέ και πρόσθεσε υποστήριξη για τη μορφή εικόνας Windows Media Photo (JPEG XR)
    • Προστέθηκαν λειτουργίες δημιουργίας υφής που παρέχονται στο D3DX10, όπως το D3DX10CreateTextureFromMemory().
    • Οι διεπαφές λογισμικού ID3DX10Sprite και ID3DX10Font έχουν εν μέρει υλοποιηθεί.
  • Ήχος και βίντεο
    • Τα πρόσθετα GStreamer για το DirectShow και το πλαίσιο Media Foundation συνδυάζονται σε ένα κοινό σύστημα υποστήριξης WineGStreamer, το οποίο αναμένεται να απλοποιήσει την ανάπτυξη νέων API αποκωδικοποίησης περιεχομένου.
    • Με βάση το WineGStreamer backend, τα αντικείμενα Windows Media υλοποιούνται για σύγχρονη και ασύγχρονη ανάγνωση.
    • Η υλοποίηση του πλαισίου του Media Foundation έχει βελτιωθεί περαιτέρω, έχει προστεθεί υποστήριξη για τη λειτουργικότητα του IMFPMediaPlayer και τον εκχωρητή δειγμάτων και έχει βελτιωθεί η υποστήριξη για buffer απόδοσης EVR και SAR.
    • Η βιβλιοθήκη wineqtdecoder, η οποία παρέχει έναν αποκωδικοποιητή για τη μορφή QuickTime, έχει αφαιρεθεί (όλοι οι κωδικοποιητές χρησιμοποιούν πλέον το GStreamer).
  • Συσκευές εισόδου
    • Η στοίβα για συσκευές εισόδου που υποστηρίζουν το πρωτόκολλο HID (Human Interface Devices) έχει βελτιωθεί σημαντικά, παρέχοντας δυνατότητες όπως ανάλυση περιγραφέων HID, επεξεργασία μηνυμάτων HID και παροχή προγραμμάτων οδήγησης mini-HID.
    • Στα backend του προγράμματος οδήγησης winebus.sys, η μετάφραση των περιγραφών συσκευών σε μηνύματα HID έχει βελτιωθεί.
    • Προστέθηκε ένα νέο backend DirectInput για joystick που υποστηρίζουν το πρωτόκολλο HID. Έχει εφαρμοστεί η δυνατότητα χρήσης εφέ ανάδρασης σε joysticks. Βελτιωμένος πίνακας ελέγχου joystick. Βελτιστοποιημένη αλληλεπίδραση με συσκευές συμβατές με XInput. Στο WinMM, η υποστήριξη του joystick έχει μετακινηθεί στο DInput, αντί να χρησιμοποιείται το backend evdev στο Linux και το IOHID στο macOS IOHID. Το παλιό πρόγραμμα οδήγησης joystick winejoystick.drv έχει αφαιρεθεί.
    • Νέες δοκιμές έχουν προστεθεί στη μονάδα DInput, που βασίζονται στη χρήση εικονικών συσκευών HID και δεν απαιτούν φυσική συσκευή.
  • Κείμενο και γραμματοσειρές
    • Προστέθηκε αντικείμενο συνόλου γραμματοσειρών στο DirectWrite.
    • Το RichEdit εφαρμόζει σωστά τη διεπαφή TextHost.
  • Πυρήνας (Διεπαφές πυρήνα των Windows)
    • Όταν εκτελείτε ένα μη αναγνωρισμένο εκτελέσιμο αρχείο (όπως το 'wine foo.msi') στο Wine, καλείται τώρα το start.exe, το οποίο καλεί χειριστές που σχετίζονται με τον τύπο αρχείου.
    • Προστέθηκε υποστήριξη για μηχανισμούς συγχρονισμού NtAlertThreadByThreadId και NtWaitForAlertByThreadId, παρόμοιοι με τα futexes στο Linux.
    • Προστέθηκε υποστήριξη για αντικείμενα εντοπισμού σφαλμάτων NT που χρησιμοποιούνται για τον εντοπισμό σφαλμάτων των λειτουργιών του πυρήνα.
    • Προστέθηκε υποστήριξη για δυναμικά κλειδιά μητρώου για αποθήκευση δεδομένων απόδοσης.
  • C Χρόνος εκτέλεσης
    • Ο χρόνος εκτέλεσης C υλοποιεί ένα πλήρες σύνολο μαθηματικών συναρτήσεων, οι οποίες μεταφέρονται κυρίως από τη βιβλιοθήκη Musl.
    • Όλες οι πλατφόρμες CPU παρέχουν σωστή υποστήριξη για λειτουργίες κινητής υποδιαστολής.
  • Δυνατότητες δικτύωσης
    • Βελτιωμένη λειτουργία συμβατότητας για τον Internet Explorer 11 (IE11), η οποία χρησιμοποιείται πλέον από προεπιλογή για την επεξεργασία εγγράφων HTML.
    • Η βιβλιοθήκη mshtml υλοποιεί τη λειτουργία JavaScript ES6 (ECMAScript 2015), η οποία παρέχει υποστήριξη για λειτουργίες όπως η έκφραση let και το αντικείμενο Map.
    • Η εγκατάσταση πακέτων MSI με προσθήκες στον κινητήρα Gecko στον κατάλογο εργασίας Wine γίνεται τώρα όταν είναι απαραίτητο και όχι κατά τη διάρκεια μιας ενημέρωσης Wine.
    • Προστέθηκε υποστήριξη για το πρωτόκολλο DTLS.
    • Έχει υλοποιηθεί η υπηρεσία NSI (Network Store Interface), η οποία αποθηκεύει και μεταδίδει πληροφορίες σχετικά με τη δρομολόγηση και τις διεπαφές δικτύου στον υπολογιστή σε άλλες υπηρεσίες.
    • Οι χειριστές WinSock API όπως οι setsockopt και getsockopt έχουν μετακινηθεί στο NTDLL και στο πρόγραμμα οδήγησης afd.sys για να συμμορφώνονται με την αρχιτεκτονική των Windows.
    • Τα αρχεία βάσης δεδομένων δικτύου της Wine, όπως τα /etc/protocols και /etc/networks, είναι πλέον εγκατεστημένα στον κατάλογο εργασίας Wine, αντί να έχουν πρόσβαση σε παρόμοιες βάσεις δεδομένων Unix.
  • Εναλλακτικές πλατφόρμες
    • Προστέθηκε υποστήριξη για εξοπλισμό Apple που βασίζεται σε τσιπ M1 ARM (Apple Silicon).
    • Η υποστήριξη των λειτουργιών BCrypt και Secur32 στο macOS απαιτεί πλέον εγκατάσταση της βιβλιοθήκης GnuTLS.
    • Τα εκτελέσιμα 32-bit για πλατφόρμες ARM είναι πλέον ενσωματωμένα σε λειτουργία Thumb-2, παρόμοια με τα Windows. Για τη φόρτωση τέτοιων αρχείων χρησιμοποιείται ένα πρόγραμμα προφόρτωσης.
    • Για πλατφόρμες ARM 32-bit, έχει υλοποιηθεί υποστήριξη για εξαιρέσεις ξετυλίγματος.
    • Για το FreeBSD, ο αριθμός των υποστηριζόμενων ερωτημάτων για πληροφορίες συστήματος χαμηλού επιπέδου, όπως η κατάσταση της μνήμης και το επίπεδο φόρτισης της μπαταρίας, έχει επεκταθεί.
  • Ενσωματωμένες εφαρμογές και εργαλεία ανάπτυξης
    • Το βοηθητικό πρόγραμμα reg.exe έχει προσθέσει υποστήριξη για προβολές μητρώου 32 και 64 bit. Προστέθηκε υποστήριξη για την αντιγραφή κλειδιών μητρώου.
    • Το βοηθητικό πρόγραμμα WineDump έχει προσθέσει υποστήριξη για την απόρριψη μεταδεδομένων των Windows και την εμφάνιση λεπτομερών πληροφοριών σχετικά με τις καταχωρίσεις CodeView.
    • Το Wine Debugger (winedbg) παρέχει τη δυνατότητα εντοπισμού σφαλμάτων σε διαδικασίες 32 bit από ένα πρόγραμμα εντοπισμού σφαλμάτων 64 bit.
    • Η δυνατότητα φόρτωσης βιβλιοθηκών που είναι ενσωματωμένες σε αρχεία PE έχει προστεθεί στον μεταγλωττιστή IDL (widl), παρέχεται υποστήριξη για χαρακτηριστικά και δομές ειδικά για το WinRT και έχει υλοποιηθεί μια αναζήτηση βιβλιοθήκης για συγκεκριμένη πλατφόρμα.
  • Σύστημα συναρμολόγησης
    • Στους καταλόγους που αφορούν την αρχιτεκτονική, οι βιβλιοθήκες αποθηκεύονται πλέον με ονόματα που αντικατοπτρίζουν την αρχιτεκτονική και τον τύπο του εκτελέσιμου αρχείου, για παράδειγμα, «i386-windows» για τη μορφή PE και «x86_64-unix» για βιβλιοθήκες unix, επιτρέποντας υποστήριξη για διαφορετικές αρχιτεκτονικές σε ένα μεμονωμένη εγκατάσταση Wine και παρέχει cross-compilation του Winelib.
    • Για να ορίσετε μια επιλογή στις κεφαλίδες των αρχείων PE που ελέγχει τη μετάβαση στη χρήση εγγενών DLL, η σημαία «--prefer-native option» προστέθηκε στο winebuild (η επεξεργασία DLL_WINE_PREATTACH στο DllMain έχει διακοπεί).
    • Προστέθηκε υποστήριξη για την έκδοση 4 της μορφής δεδομένων εντοπισμού σφαλμάτων Dwarf, η οποία χρησιμοποιείται πλέον από προεπιλογή κατά τη δημιουργία βιβλιοθηκών Wine.
    • Προστέθηκε η επιλογή κατασκευής «—enable-build-id» για αποθήκευση μοναδικών αναγνωριστικών κατασκευής σε εκτελέσιμα αρχεία.
    • Προστέθηκε υποστήριξη για τη χρήση του μεταγλωττιστή Clang σε λειτουργία συμβατότητας MSVC.
  • Ποικίλος
    • Τα ονόματα των τυπικών καταλόγων στο κέλυφος χρήστη (Windows Shell) δίνονται στο σχήμα που χρησιμοποιείται ξεκινώντας από τα Windows Vista, π.χ. Αντί για το "My Documents", δημιουργείται τώρα ένας κατάλογος "Documents" και τα περισσότερα δεδομένα αποθηκεύονται στον κατάλογο "AppData".
    • Η υποστήριξη για την προδιαγραφή OpenCL 1.2 έχει προστεθεί στο επίπεδο βιβλιοθήκης OpenCL.
    • Το πρόγραμμα οδήγησης WinSpool έχει προσθέσει υποστήριξη για διαφορετικά μεγέθη σελίδας κατά την εκτύπωση.
    • Προστέθηκε αρχική υποστήριξη για το MSDASQL, τον πάροχο Microsoft OLE DB για προγράμματα οδήγησης ODBC.
    • Η μηχανή Wine Mono με την εφαρμογή της πλατφόρμας .NET ενημερώθηκε για να κυκλοφορήσει την έκδοση 7.0.0.
    • Τα δεδομένα Unicode έχουν ενημερωθεί στην προδιαγραφή Unicode 14.
    • Το δέντρο προέλευσης περιλαμβάνει τις βιβλιοθήκες Faudio, GSM, LCMS2, LibJPEG, LibJXR, LibMPG123, LibPng, LibTiff, LibXml2, LibXslt και Zlib, οι οποίες έχουν μεταγλωττιστεί σε μορφή PE και δεν απαιτούν έκδοση σε μορφή Unix. Ταυτόχρονα, αυτές οι βιβλιοθήκες μπορούν επίσης να εισαχθούν από το σύστημα για χρήση εξωτερικών συγκροτημάτων αντί για ενσωματωμένες επιλογές PE.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο