Wine არის Windows თავსებადობის ფენა, რომელიც მომხმარებლებს საშუალებას აძლევს გაუშვან Windows აპლიკაციები სხვა OS-ებზე. Wine for Android-ისთვის უკვე მიაღწია v5.0 - შეამოწმეთ!
Android-ის აპლიკაციის ეკოსისტემა სტაბილურად ვითარდებოდა Android-ის არსებობის წლების განმავლობაში, რაც გამოწვეულია მობილურის, როგორც ძირითადი კომპიუტერის ურთიერთქმედების მუდმივი გამოყენებით ადამიანების უმეტესობისთვის. ბევრმა მომხმარებელმა მიიზიდა მხოლოდ მობილური ცხოვრების წესი და ეს იმიტომ ხდება, რომ აპლიკაციებმა და აპლიკაციების ეკოსისტემა მობილურზე შეძლეს მათი კონკრეტული მოთხოვნილებების დაკმაყოფილება. მაგრამ თუ ოდესმე დაგჭირდებათ დესკტოპის აპლიკაცია დესკტოპზე წვდომის გარეშე, რას გააკეთებდით? სწორედ აქ მოდის Wine, Windows თავსებადობის ფენა, რომელიც მომხმარებლებს საშუალებას აძლევს გაუშვან Windows-ის სრულფასოვანი აპლიკაციები სხვადასხვა OS-ზე. ღვინო ანდროიდისთვის აქვს ახლა მიაღწია v5.0, გუნდის განვითარების ერთწლიანი ძალისხმევის შეჯერება.
Wine არის უფასო და ღია კოდის თავსებადობის ფენა Windows-ისთვის, რომელიც მიზნად ისახავს დაუშვას Windows-ისთვის შემუშავებული კომპიუტერული პროგრამების გაშვება სხვა ოპერაციულ სისტემებზე.
Wine for Android-ს Wine Android-ზე მოაქვს, ცხადია. ღვინო არ არის ემულატორი (რომელიც რეალურად არის სახელის რეკურსიული სარეზერვო სახელი), ასე რომ, ის მხოლოდ გაშვებაა აპლიკაციების არქიტექტურის სპეციფიკური ვერსიები -- Wine-ის ARM ვერსია Android-ისთვის მხოლოდ ARM აპლიკაციებს იმუშავებს, და არა x86.Wine 5.0-ის სტაბილური გამოშვების მთავარი მაჩვენებლები მოიცავს მრავალ მონიტორის მხარდაჭერას და Vulkan 1.1-ის მხარდაჭერას. განახლების სრული ცვლილებების ჟურნალი შემდეგია:
Wine 5.0 Changelog:
- PE მოდულები:
- მოდულების უმეტესობა აგებულია PE ფორმატში (პორტატული შესრულებადი, Windows ორობითი ფორმატი) ELF-ის ნაცვლად, როდესაც ხელმისაწვდომია MinGW შემდგენელი. ეს ეხმარება სხვადასხვა კოპირებისგან დაცვის სქემებს, რომლებიც ამოწმებენ სისტემის მოდულების დისკზე და მეხსიერების შიგთავსის იდენტურობას.
- რეალური PE ორობითი ფაილები კოპირებულია Wine პრეფიქსში ყალბი DLL ფაილების ნაცვლად. ეს პრეფიქსს უფრო ჰგავს Windows-ის ნამდვილ ინსტალაციას, დისკზე დამატებითი სივრცის ხარჯზე.
- მოდულებს, რომლებიც გადაკეთდა PE-ში, შეუძლიათ გამოიყენონ სტანდარტული ფართო char C ფუნქციები, ასევე ფართო სიმბოლოს მუდმივები, როგორიცაა L"abc". ეს აადვილებს კოდს წაკითხვას.
- ყველა მოდული ჯერ არ არის გადაყვანილი PE-ზე; ეს არის მიმდინარე პროცესი, რომელიც გაგრძელდება Wine 5.x-ის განვითარების სერიის განმავლობაში.
- Wine C გაშვების დრო განახლებულია MinGW-ის მიერ შედგენილ ბინარებთან დაკავშირების მხარდასაჭერად; იგი გამოიყენება ნაგულისხმევად MinGW გაშვების ნაცვლად DLL-ების შექმნისას.
- გრაფიკა:
- მრავალი ეკრანის ადაპტერი და მონიტორი სათანადოდ არის მხარდაჭერილი, მათ შორის დინამიური კონფიგურაციის ცვლილებები.
- Vulkan-ის დრაივერი მხარს უჭერს Vulkan სპეციფიკაციის 1.1.126 ვერსიას.
- WindowsCodecs ბიბლიოთეკას შეუძლია მეტი ბიტმაპის ფორმატების გარდაქმნა, მათ შორის პალიტრა ინდექსირებული ფორმატები.
- Direct3D:
- Fullscreen Direct3D აპლიკაციები აფერხებენ ეკრანმზოგს.
- DXGI swapchain წარმოგიდგენთ აპლიკაციას, როდესაც შესაბამისი ფანჯარა მინიმუმამდეა დაყვანილი. ეს, როგორც წესი, საშუალებას აძლევს აპლიკაციებს შეამცირონ CPU-ს გამოყენება მინიმიზაციის დროს და ზოგიერთ შემთხვევაში საჭიროა აპლიკაციის ფანჯრის ხელახლა აღდგენა.
- სრულეკრანიან და ფანჯრის რეჟიმებს შორის გადართვა სტანდარტული Alt+Enter კომბინაციის გამოყენებით დანერგილია DXGI აპლიკაციებისთვის.
- შემდეგი ფუნქციები დანერგილია Direct3D 12 აპლიკაციებისთვის:
- გადართვა სრულეკრანიან და ფანჯარას შორის.
- ჩვენების რეჟიმების შეცვლა.
- მასშტაბური საჩუქრები.
- შეცვალეთ ინტერვალები. ეს ფუნქციები ადრე უკვე დანერგილი იყო Direct3D API-ს ადრინდელი ვერსიებისთვის.
- გაუმჯობესებულია სხვადასხვა კიდეების დამუშავება. Სხვებს შორის:
- დიაპაზონის მიღმა საცნობარო მნიშვნელობები ალფა და შაბლონის ტესტებისთვის.
- 2D რესურსების შერჩევა 3D სემპლერებით და პირიქით.
- ნახატი შედგენილი ტექსტურებითა და ბუფერებით.
- DirectDraw კლიპერის არასწორი ობიექტების გამოყენება.
- Direct3D მოწყობილობების შექმნა არასწორი Windows-ზე, როგორიცაა დესკტოპის ფანჯარა.
- ხედის პორტები მინიმალური Z-ით მეტი ან ტოლი მაქსიმალურ Z-ზე.
- რესურსები შემოიფარგლება როგორც shader-resource views, ასევე render-target ან depth-stencil ხედებით ერთდროულად.
- ბლატი ფორმატებს შორის ალფა კომპონენტებით და მის გარეშე. იმის გამო, რომ კარგად დამუშავებული აპლიკაციები არ ეყრდნობა ამ ზღვარს, ისინი ჩვეულებრივ გავლენას ახდენენ მხოლოდ ერთ ან ორ აპლიკაციაზე. მიუხედავად ამისა, მათი რაოდენობა საკმაოდ ბევრია.
- ჭუჭყიანი ტექსტურის რეგიონები უფრო ზუსტად იკვლევენ Direct3D 8 და 9 ტექსტურის ატვირთვას.
- S3TC-ით შეკუმშული 3D ტექსტურების ატვირთვა საჭიროებს მისამართების ნაკლებ ადგილს. ვინაიდან 3D ტექსტურები შეიძლება იყოს პოტენციურად დიდი და მისამართების სივრცის ამოწურვა 32-ბიტიან აპლიკაციებს აწუხებს, S3TC-ით შეკუმშული 3D ტექსტურები იტვირთება თითო ნაჭერზე, ნაცვლად ერთი ატვირთვისა.
- ID3D11Multitread ინტერფეისი დანერგილია.
- გაკეთდა განათების გაანგარიშების სხვადასხვა შესწორებები და გაუმჯობესებები ძველი DirectDraw აპლიკაციებისთვის.
- დანერგილია blits-ის შეზღუდული მხარდაჭერა სვოპჩეინებში.
- დანერგილია მეტი shader ასახვის API.
- Wined3d CPU blitter-ს შეუძლია გაუმკლავდეს შეკუმშული წყაროს რესურსებს. შეკუმშული დანიშნულების რესურსების მხარდაჭერა უკვე განხორციელდა წინა ვერსიაში.
- Direct3D გრაფიკული ბარათების მონაცემთა ბაზა უფრო მეტ გრაფიკულ ბარათს ცნობს.
- ახალი HKEY_CURRENT_USER\Software\Wine\Direct3D რეესტრის გასაღებები:
- "shader_backend" (REG_SZ) shader backend გამოსაყენებელი. შესაძლო მნიშვნელობებია "glsl" (ნაგულისხმევი) GLSL-ისთვის, "arb" ARB vertex/ფრაგმენტული პროგრამებისთვის და "none" shader-ის მხარდაჭერის გამორთვისთვის.
- "strict_shader_math" (REG_DWORD) ჩართეთ (0x1) ან გამორთეთ (0x0, ნაგულისხმევი) Direct3D შადერების უფრო მკაცრი თარგმანი, პოტენციურად შესრულების ღირებულებით. ეს ამჟამად განსხვავებას მხოლოდ ნაგულისხმევი GLSL shader backend-თან ერთად საკუთრების NVIDIA დრაივერებთან ერთად ქმნის.
- მოძველებული HKEY_CURRENT_USER\Software\Wine\Direct3D რეესტრის გასაღები:
- "UseGLSL"ეს ჩანაცვლებულია ზემოთ მოყვანილი "shader_backend" პარამეტრით.
- D3DX:
- დანერგილია ტექსტურების შეკუმშვის მხარდაჭერა S3TC-შეკუმშვის გამოყენებით.
- სხვადასხვა ოპერაციები, როგორიცაა მაგ. ტექსტურული შევსება, უმაპტო ზედაპირებზე უფრო სწორად არის დანერგილი. ადრე მათი დანერგვა ეყრდნობოდა Direct3D იმპლემენტაციას, რომელიც არ ახორციელებდა რუკების შეზღუდვებს.
- სხვადასხვა გაუმჯობესება და შესწორებები გაკეთდა ეფექტის ჩარჩოში.
- ბირთვი:
- ფუნქციების უმეტესობა, რომლებიც ადრე იყო Kernel32-ში, გადატანილია KernelBase-ში, რათა დაიცვას Windows-ის ბოლო ვერსიების არქიტექტურა.
- არასწორი 32/64-ბიტიანი ბიბლიოთეკები იგნორირებულია ძიების გზაზე აღმოჩენისას, რათა შესაძლებელი იყოს სწორი ჩატვირთვა, თუ ის უფრო შორს არის ნაპოვნი.
- ბირთვის ობიექტები უკეთესად ემულირებულია მოწყობილობის დრაივერებისთვის, რომლებიც მოელის ობიექტების მანიპულირებას ბირთვის მხრიდან.
- ბირთვის დონის სინქრონიზაციის ობიექტები, როგორიცაა spin locks, სწრაფი mutexes, ამოღება locks და რესურსის ცვლადები, დანერგილია.
- სისტემის ბატარეის მდგომარეობა სათანადოდ ეცნობება აპლიკაციებს.
- Მომხმარებლის ინტერფეისი:
- მინიმიზირებული ფანჯრები ნაჩვენებია მათი სათაურის ზოლის გამოყენებით ძველი Windows 3.1 სტილის ხატულების ნაცვლად.
- დანერგილია ღილაკების ახალი სტილები Split Buttons და Command Links.
- რედაქტირების კონტროლი სწორად ადგენს მინდვრებს ასევე CJK შრიფტებისთვის.
- დესკტოპის ინტეგრაცია:
- "ჩამოტვირთვების" და "თარგების" საქაღალდეებისთვის იქმნება სიმბოლური ბმულები Unix-ის შესაბამის დირექტორიაში.
- შეყვანის მოწყობილობები:
- Plug & Play მოწყობილობის დრაივერების ინსტალაცია და ჩატვირთვა შესაძლებელია გაშვებისას.
- თამაშის კონტროლერები უკეთესად არის მხარდაჭერილი, მათ შორის ქუდის გადამრთველის, ბორბლის, გაზისა და სამუხრუჭე კონტროლის სათანადო მხარდაჭერა.
- Linux-ის 2.2-ზე ადრე ვერსიების ძველი ჯოისტიკის API აღარ არის მხარდაჭერილი.
- .NET:
- მონო ძრავა განახლებულია 4.9.4 ვერსიამდე, Windows Presentation Foundation (WPF) ჩარჩოს ნაწილების ჩათვლით.
- Gecko და Mono დანამატები მხარს უჭერენ საერთო ინსტალაციას, სადაც ფაილები გამოიყენება პირდაპირ გლობალური მდებარეობიდან, ქვეშ /usr/share/wine, ნაცვლად კოპირების ყოველ ახალ პრეფიქსში.
- ინტერნეტი და ქსელი:
- Gecko-ს ძრავა განახლებულია უახლესი ხელსაწყოების მხარდასაჭერად.
- დანერგილია რამდენიმე ახალი HTML API.
- MSHTML მხარს უჭერს ზოგიერთ SVG ელემენტს.
- შეცდომის ობიექტი და გამონაკლისის გავრცელება მხარდაჭერილია VBScript-ში.
- დანერგილია მთელი რიგი VBScript ჩაშენებული ფუნქციები.
- JScript EcmaScript-ის შესაბამისი რეჟიმი გაფართოებულია მეტი ფუნქციის მხარდასაჭერად.
- JScript და VBScript სკრიპტის ობიექტები ავლენს ტიპის ინფორმაციის ინტერფეისებს.
- HTTP პროქსის კონფიგურაციის მიღება შესაძლებელია DHCP-ის საშუალებით.
- პასპორტის HTTP გადამისამართებები მხარდაჭერილია.
- HTTP სერვისი და შესაბამისი კლიენტის მხარის ბიბლიოთეკა (HTTPAPI) ნაწილობრივ დანერგილია.
- კრიპტოგრაფია:
- ECC (ელიფსური მრუდის) კლავიშები მხარდაჭერილია GnuTLS-ის გამოყენებისას.
- განხორციელებულია გასაღებების და სერთიფიკატების იმპორტი PFX blobs-დან.
- PBKDF2 გასაღების გამოყვანის ალგორითმი მხარდაჭერილია.
- ტექსტი და შრიფტები:
- OpenType-ის პოზიციონირების ფუნქციები მხარდაჭერილია DirectWrite-ში და ჩართულია ლათინური დამწერლობისთვის ნაგულისხმევად, კერნინგის ჩათვლით.
- შრიფტის მონაცემებზე წვდომა უფრო უსაფრთხო ხდება მონაცემთა სხვადასხვა ცხრილების დამოწმებით მათ გამოყენებამდე.
- DirectWrite ინტერფეისები განახლებულია უახლეს SDK-ზე, რომელიც ახორციელებს უახლესი API-ს დამატებას.
- აუდიო / ვიდეო:
- XAudio2 ბიბლიოთეკები ხელახლა დანერგილია გარე FAudio ბიბლიოთეკის გამოსაყენებლად, უკეთესი თავსებადობისთვის.
- მედიის ფონდის ბიბლიოთეკები გაჯერებულია, მათ შორის:
- ჩაშენებული და მომხმარებლის ასინქრონული სამუშაო რიგების მხარდაჭერა.
- პერიოდული გამოძახების, ლოდინის, დაგეგმილი და რეგულარული სამუშაო ნივთების გაგზავნის შესაძლებლობა, ნივთის პრიორიტეტის მხარდაჭერით.
- მედია ღონისძიებების რიგების მხარდაჭერა.
- სხვადასხვა ძირითადი API მედიის ტიპის ობიექტების, ნაკადის და პრეზენტაციის აღწერის, ობიექტის ატრიბუტების, ბაიტის ნაკადის ობიექტების, ნიმუშების და ბუფერების დასამუშავებლად.
- საწყისი Source Resolver განხორციელება.
- Source Reader API-ის საწყისი დანერგვა.
- დანერგვა Sample Grabber ობიექტისთვის.
- ძირითადი მხარდაჭერა ტოპოლოგიის ობიექტების მშენებლობისთვის.
- ჩაშენებული პრეზენტაციის საათის დანერგვა, დაიწყო Media Session ფუნქციის დანერგვა.
- ვიდეო გადაღების ფილტრი პორტირებულია v4l2-ის გამოსაყენებლად მოძველებული v4l1 API-ის ნაცვლად, რაც საშუალებას იძლევა გამოიყენოს ზოგიერთი კამერა, რომელსაც არ აქვს v4l1 მხარდაჭერა.
- YUV-ზე RGB-ზე თარგმნისა და v4l2 მოწყობილობებიდან mmap()-ის გამოყენებით წაკითხვის მხარდაჭერა ამოღებულია; ჩვენ ახლა დამოკიდებულნი ვართ libv4l2-ზე ორივე ამ ნივთისთვის.
- ჩაშენებული AVI, MPEG-I და WAVE დეკოდერები ამოღებულია; ჩვენ ახლა დამოკიდებულნი ვართ GStreamer-ზე ან Mac QuickTime Toolkit-ზე ასეთი მედია ფაილების გაშიფვრისთვის.
- დანერგილია კიდევ რამდენიმე VMR7 კონფიგურაციის API.
- ხმის დრაივერები მხარს უჭერენ თითო არხის ხმის რეგულირებას.
- ინტერნაციონალიზაცია:
- უნიკოდის სიმბოლოების ცხრილები ეფუძნება უნიკოდის სტანდარტის 12.1.0 ვერსიას.
- Unicode-ის ნორმალიზება ხორციელდება.
- გეოგრაფიული რეგიონის ID ავტომატურად დაყენებულია რეესტრში მიმდინარე ლოკალის საფუძველზე. საჭიროების შემთხვევაში ის შეიძლება შეიცვალოს HKEY_CURRENT_USER\Control Panel\International\Geo-ში.
- მხარდაჭერილია სინჰალური და ასტურიული ლოკალები.
- Codepage 28601 (ლათინური/ტაილანდური) მხარდაჭერილია.
- RPC/COM:
- Typelib marshaller მხარს უჭერს კომპლექსურ სტრუქტურებსა და მასივებს.
- არსებობს Windows Script გაშვების ბიბლიოთეკის საწყისი დანერგვა.
- არსებობს Microsoft ActiveX მონაცემთა ობიექტების (ADO) ბიბლიოთეკის საწყისი დანერგვა.
- ინსტალატორები:
- Microsoft Installer (MSI) Patch ფაილები მხარდაჭერილია.
- WUSA ინსტრუმენტი (Windows Update Standalone Installer) მხარს უჭერს .MSU განახლების ფაილების ინსტალაციას.
- ARM პლატფორმები:
- გამონაკლისის განტვირთვა განხორციელებულია ARM64-ისთვის, libunwind ბიბლიოთეკის გამოყენებით.
- OLE stubless მარიონეტები მხარდაჭერილია ARM64-ზე.
- განვითარების ინსტრუმენტები / Winelib:
- Visual Studio-ს დისტანციური გამართვა შეიძლება გამოყენებულ იქნას Wine-ში გაშვებული აპლიკაციების გამართვისთვის.
- Debug Engine ბიბლიოთეკა (DBGENG) ნაწილობრივ დანერგილია.
- Windows სამიზნეებისთვის შექმნილი ორობითი ფაილები აღარ არის დამოკიდებული libwine ბიბლიოთეკაზე, რათა მათ Windows-ზე გაშვება დამატებითი დამოკიდებულების გარეშე. libwine ბიბლიოთეკა საერთოდ აღარ არის აშენებული Windows-ისთვის.
- რესურსების შემდგენელი და IDL შემდგენელი მხარს უჭერენ '--sysroot' ვარიანტს, რომელიც საშუალებას აძლევს სათაურის ფაილების განთავსებას ჯვარედინი კომპილაციის გარემოში.
- Winegcc მხარს უჭერს ოფციებს '--target', '--wine-objdir', '--winebuild' და '-fuse-ld', რაც ამარტივებს ჯვარედინი შემდგენელად ან მორგებული ხელსაწყოების ჯაჭვის გამოყენებას.
- Wine/unicode.h სათაური აღარ არის ხელმისაწვდომი აპლიკაციებისთვის, რადგან ფუნქციები საბოლოოდ წაიშლება და ჩანაცვლდება სტანდარტული C გაშვების მასშტაბის სიმბოლოების ფუნქციებით.
- ინფრასტრუქტურის აშენება:
- ტესტის ორობითი ფაილები აგებულია PE ფორმატში, თუ MinGW ხელმისაწვდომია, ასე რომ, იგივე ტესტი ორობითი შეიძლება გაშვებული იყოს როგორც Wine-ზე, ასევე Windows-ზე. „ყველაზე ჯვარი“ მარკის სამიზნე აღარ არის საჭირო ან მხარდაჭერილი.
- "სწრაფი ზარის" ზარის კონვენცია მხარდაჭერილია სპეციფიკურ ფაილებში. ის იყენებს სწორ სახელებს Windows-ის კონსტრუქციებისთვის.
- "-იმპორტის" შესვლის წერტილის დროშა მხარდაჭერილია სპეციფიკურ ფაილებში, ფუნქციების აღსანიშნავად, რომლებსაც სჭირდებათ Hotpatch-ის კოდის პრეფიქსის გენერირება მათი იმპორტის წვრილმანებისთვის.
- Winebuild მხარს უჭერს '--ჩაშენებულ' ვარიანტს, რომ დაამატოთ სპეციალური ხელმოწერა PE ბინარებში, რათა მონიშნოთ ისინი, როგორც ღვინის ჩაშენებული.
- ჩაშენებული აპლიკაციები:
- CHCP ინსტრუმენტი დანერგილია. ის საშუალებას გაძლევთ დააყენოთ კონსოლის კოდის გვერდი.
- MSIDB ინსტრუმენტი დანერგილია. ის იძლევა MSI მონაცემთა ბაზების მანიპულირების საშუალებას.
- შესრულების გაუმჯობესება:
- დროის სხვადასხვა ფუნქციები, თუ ეს შესაძლებელია, იყენებენ უფრო მაღალი ხარისხის სისტემის საათებს, რათა შეამცირონ ზედნადები მრავალი თამაშის რენდერის ციკლში.
- ფაილების ძიება სარგებლობს ext4 ფაილური სისტემის ქეისის დასაკეცი მხარდაჭერით, თუ ის ჩართულია საძიებო დირექტორიაში.
- მონაცემთა გარეშე სტილის ველებს (LBS_NODATA) აქვთ უკეთესი შესრულება დიდი რაოდენობით ერთეულებისთვის.
- Slim Reader/Writer-ის საკეტები, კლავიშიანი მოვლენები და მდგომარეობის ცვლადები იყენებენ ფუტექსებს Linux-ზე, რათა თავიდან აიცილონ ღვინის სერვერის ორმხრივი მგზავრობა.
- ახალი გარე დამოკიდებულებები:
- MinGW-w64 cross-compiler გამოიყენება PE ფორმატში მოდულების შესაქმნელად.
- FAudio ბიბლიოთეკა გამოიყენება XAudio2-ის განსახორციელებლად.
- Inotify ბიბლიოთეკა გამოიყენება ფაილის ცვლილების შეტყობინებებისთვის BSD პლატფორმებზე.
- Unwind ბიბლიოთეკა გამოიყენება გამონაკლისების დასამუშავებლად ARM64-ზე.
- 1 ვერსიის ნაცვლად გამოიყენება Video4Linux ვერსიის 2 ბიბლიოთეკა.
წაიკითხე მეტი
წყარო: ღვინის შტაბი
ამბავი მეშვეობით: AndroidPolice