Windows Compatibility Layer인 Wine이 Android에서 버전 5.0에 도달했습니다.

click fraud protection

Wine은 사용자가 다른 OS에서 Windows 앱을 실행할 수 있도록 하는 Windows 호환성 레이어입니다. 이제 Android용 Wine이 v5.0에 도달했습니다. 확인해 보세요!

Android 앱 생태계는 대부분의 사람들이 기본 컴퓨터 상호작용으로 모바일을 꾸준히 채택함에 따라 Android가 탄생한 수년 동안 꾸준히 발전해 왔습니다. 많은 사용자가 모바일 전용 라이프스타일을 선호하게 되었는데, 이는 모바일 앱과 앱 생태계가 사용자의 특별한 요구를 충족시켰기 때문입니다. 하지만 데스크톱에 액세스할 수 없는 상태에서 데스크톱 애플리케이션이 필요한 경우 어떻게 하시겠습니까? 이것이 바로 사용자가 다양한 OS에서 완전한 Windows 응용 프로그램을 실행할 수 있게 해주는 Windows 호환성 레이어인 Wine이 등장하는 곳입니다. Android용 Wine에는 이제 v5.0에 도달했습니다., 팀의 1년 간의 개발 노력을 수집합니다.

Wine은 Windows용으로 개발된 컴퓨터 프로그램이 다른 운영 체제에서 실행될 수 있도록 하는 것을 목표로 하는 Windows용 무료 오픈 소스 호환성 레이어입니다. Android용 Wine이 Android에 Wine을 선사합니다., 확실히. Wine은 에뮬레이터(실제로는 이름의 재귀적 역임)가 아니므로 실행만 가능합니다. 아키텍처별 버전의 앱 - Android용 Wine의 ARM 버전은 ARM 애플리케이션만 실행합니다. x86이 아닙니다.

Wine 5.0의 안정적인 릴리스의 주요 특징에는 다중 모니터 지원과 Vulkan 1.1 지원이 포함됩니다. 업데이트에 대한 전체 변경 로그는 다음과 같습니다.

와인 5.0 변경 내역:

  • PE 모듈:
    • MinGW 컴파일러를 사용할 수 있는 경우 대부분의 모듈은 ELF 대신 PE(Portable Executable, Windows 바이너리 형식) 형식으로 구축됩니다. 이는 시스템 모듈의 디스크 내 콘텐츠와 메모리 내 콘텐츠가 동일한지 확인하는 다양한 복사 방지 체계에 도움이 됩니다.
    • 실제 PE 바이너리는 가짜 DLL 파일 대신 Wine 접두사에 복사됩니다. 이로 인해 추가 디스크 공간이 필요하지만 접두사가 실제 Windows 설치와 더 유사해 보입니다.
    • PE로 변환된 모듈은 표준 와이드 문자 C 함수는 물론 L"abc"와 같은 와이드 문자 상수도 사용할 수 있습니다. 이렇게 하면 코드를 더 쉽게 읽을 수 있습니다.
    • 아직 모든 모듈이 PE로 변환된 것은 아닙니다. 이는 Wine 5.x 개발 시리즈 동안 계속될 지속적인 프로세스입니다.
    • MinGW 컴파일 바이너리에 대한 연결을 지원하도록 Wine C 런타임이 업데이트되었습니다. DLL을 빌드할 때 MinGW 런타임 대신 기본적으로 사용됩니다.
  • 제도법:
    • 동적 구성 변경을 포함하여 다중 디스플레이 어댑터 및 모니터가 제대로 지원됩니다.
    • Vulkan 드라이버는 Vulkan 사양 버전 1.1.126까지 지원합니다.
    • WindowsCodecs 라이브러리는 팔레트 인덱스 형식을 포함하여 더 많은 비트맵 형식을 변환할 수 있습니다.
  • 다이렉트3D:
    • 전체 화면 Direct3D 응용 프로그램은 화면 보호기를 금지합니다.
    • DXGI swapchain은 해당 창이 최소화되면 응용 프로그램에 알려줍니다. 이를 통해 일반적으로 애플리케이션은 최소화된 상태에서 CPU 사용량을 줄일 수 있으며 경우에 따라 애플리케이션 창을 다시 복원하는 데 필요합니다.
    • DXGI 응용 프로그램에서는 표준 Alt+Enter 조합을 사용하여 전체 화면 모드와 창 모드 간 전환이 구현됩니다.
    • Direct3D 12 애플리케이션에는 다음 기능이 구현됩니다.
      • 전체 화면과 창 모드 사이를 전환합니다.
      • 디스플레이 모드 변경.
      • 규모가 조정된 선물.
      • 스왑 간격. 이러한 기능은 이전 버전의 Direct3D API에서 이미 구현되었습니다.
    • 다양한 엣지 케이스 처리가 개선되었습니다. 기타 사항:
      • 알파 및 스텐실 테스트에 대한 참조 값이 범위를 벗어났습니다.
      • 3D 샘플러를 사용하여 2D 리소스를 샘플링하거나 그 반대로 샘플링합니다.
      • 매핑된 텍스처와 버퍼를 사용하여 그리기.
      • 잘못된 DirectDraw 클리퍼 개체를 사용했습니다.
      • 데스크톱 창과 같이 유효하지 않은 Windows에서 Direct3D 장치를 생성합니다.
      • 최소 Z가 최대 Z보다 크거나 같은 뷰포트입니다.
      • 셰이더 리소스 보기와 렌더링 대상 또는 깊이 스텐실 보기를 동시에 통해 바인딩된 리소스입니다.
      • 알파 구성 요소가 있거나 없는 형식 간 블릿입니다. 올바르게 작동하는 애플리케이션은 이러한 극단적인 경우에 의존하지 않으므로 일반적으로 각각 하나 또는 두 개의 애플리케이션에만 영향을 미칩니다. 그럼에도 불구하고 꽤 많은 수가 있습니다.
    • 더티 텍스처 영역은 Direct3D 8 및 9 텍스처 업로드에 대해 더 정확하게 추적됩니다.
    • S3TC 압축 3D 텍스처 업로드에는 더 적은 주소 공간이 필요합니다. 3D 텍스처는 잠재적으로 클 수 있고 주소 공간 고갈은 32비트 응용 프로그램의 문제이므로 S3TC 압축 3D 텍스처는 단일 업로드가 아닌 슬라이스별로 업로드됩니다.
    • ID3D11Multithread 인터페이스가 구현되었습니다.
    • 이전 DirectDraw 응용 프로그램에 대한 다양한 조명 계산 수정 및 개선이 이루어졌습니다.
    • 스왑체인 전반에 걸쳐 블릿에 대한 제한된 지원이 구현되었습니다.
    • 더 많은 셰이더 반사 API가 구현되었습니다.
    • wined3d CPU blitter는 압축된 소스 리소스를 처리할 수 있습니다. 압축된 대상 리소스에 대한 지원은 이전 릴리스에서 이미 구현되었습니다.
    • Direct3D 그래픽 카드 데이터베이스는 더 많은 그래픽 카드를 인식합니다.
    • 새로운 HKEY_CURRENT_USER\Software\Wine\Direct3D 레지스트리 키:
      • "shader_backend" (REG_SZ) 사용할 셰이더 백엔드입니다. 가능한 값은 GLSL의 경우 "glsl"(기본값), ARB 정점/조각 프로그램의 경우 "arb", 셰이더 지원을 비활성화하려면 "none"입니다.
      • "strict_shader_math"(REG_DWORD)Direct3D 셰이더의 더 엄격한 변환을 활성화(0x1) 또는 비활성화(0x0, 기본값)하지만 성능 저하가 발생할 수 있습니다. 이는 현재 독점 NVIDIA 드라이버와 결합된 기본 GLSL 셰이더 백엔드에서만 차이를 만듭니다.
    • 더 이상 사용되지 않는 HKEY_CURRENT_USER\Software\Wine\Direct3D 레지스트리 키:
      • "UseGLSL"은 위의 "shader_backend" 설정으로 대체되었습니다.
  • D3DX :
    • S3TC 압축을 사용한 텍스처 압축 지원이 구현되었습니다.
    • 예를 들어 다양한 작업 매핑할 수 없는 표면의 텍스처 채우기가 더 정확하게 구현됩니다. 이전에는 매핑 제한을 적용하지 않고 기본 Direct3D 구현에 의존하여 구현했습니다.
    • 효과 프레임워크에 다양한 개선과 수정이 이루어졌습니다.
  • 핵심:
    • Kernel32에 있던 대부분의 기능은 최신 Windows 버전의 아키텍처를 따르기 위해 KernelBase로 이동되었습니다.
    • 잘못된 32/64비트 라이브러리는 검색 경로에서 발견되면 무시되며, 경로에서 추가로 발견되면 올바른 라이브러리를 로드할 수 있습니다.
    • 커널 개체는 커널 측에서 개체를 조작할 것으로 예상되는 장치 드라이버에 대해 더 잘 에뮬레이트됩니다.
    • 스핀 잠금, 빠른 뮤텍스, 잠금 제거 및 리소스 변수와 같은 커널 수준 동기화 개체가 구현됩니다.
    • 시스템 배터리 상태가 애플리케이션에 올바르게 보고됩니다.
  • 사용자 인터페이스:
    • 최소화된 창은 이전 Windows 3.1 스타일 아이콘 대신 제목 표시줄을 사용하여 표시됩니다.
    • 새로운 버튼 스타일 분할 버튼과 명령 링크가 구현되었습니다.
    • 편집 컨트롤은 CJK 글꼴에 대해서도 여백을 올바르게 설정합니다.
  • 데스크탑 통합:
    • 해당 Unix 디렉터리에 대한 기호 링크가 '다운로드' 및 '템플릿' 폴더에 생성됩니다.
  • 입력 장치:
    • 플러그 앤 플레이 장치 드라이버는 시작 시 설치 및 로드될 수 있습니다.
    • 모자 스위치, 휠, 가스 및 브레이크 제어에 대한 적절한 지원을 포함하여 게임 컨트롤러가 더 잘 지원됩니다.
    • 2.2 이전 Linux 버전의 이전 조이스틱 API는 더 이상 지원되지 않습니다.
  • .그물:
    • Mono 엔진은 WPF(Windows Presentation Foundation) 프레임워크의 일부를 포함하여 버전 4.9.4로 업데이트되었습니다.
    • Gecko 및 Mono 추가 기능은 파일이 모든 새 접두사에 복사되는 대신 /usr/share/wine 아래의 전역 위치에서 직접 사용되는 공유 설치를 지원합니다.
  • 인터넷 및 네트워킹:
    • Gecko 엔진은 최신 툴체인을 지원하도록 새로워졌습니다.
    • 다양한 새로운 HTML API가 구현되었습니다.
    • MSHTML은 일부 SVG 요소를 지원합니다.
    • 오류 개체 및 예외 전파는 VBScript에서 지원됩니다.
    • 다양한 VBScript 내장 함수가 구현되었습니다.
    • JScript EcmaScript 호환 모드가 확장되어 더 많은 기능을 지원합니다.
    • JScript 및 VBScript 스크립트 개체는 유형 정보 인터페이스를 노출합니다.
    • HTTP 프록시 구성은 DHCP를 통해 검색할 수 있습니다.
    • 여권 HTTP 리디렉션이 지원됩니다.
    • HTTP 서비스 및 해당 클라이언트측 라이브러리(HTTPAPI)가 부분적으로 구현됩니다.
  • 암호화:
    • GnuTLS를 사용할 때 ECC(타원 곡선) 키가 지원됩니다.
    • PFX Blob에서 키와 인증서 가져오기가 구현되었습니다.
    • PBKDF2 키 파생 알고리즘이 지원됩니다.
  • 텍스트 및 글꼴:
    • OpenType 위치 지정 기능은 DirectWrite에서 지원되며 커닝을 포함하여 기본적으로 라틴어 스크립트에 대해 활성화됩니다.
    • 다양한 데이터 테이블을 사용하기 전에 유효성을 검사하면 글꼴 데이터 액세스가 더욱 안전해집니다.
    • DirectWrite 인터페이스는 최신 SDK로 업데이트되어 최신 API 추가 사항 중 일부를 구현합니다.
  • 오디오/비디오:
    • XAudio2 라이브러리는 더 나은 호환성을 위해 외부 FAudio 라이브러리를 사용하도록 다시 구현되었습니다.
    • 다음을 포함하여 미디어 재단 라이브러리가 구체화되었습니다.
      • 내장 및 사용자 비동기 작업 대기열을 지원합니다.
      • 항목 우선순위에 대한 지원을 통해 정기적인 콜백, 대기, 예약 및 일반 작업 항목을 제출하는 기능.
      • 미디어 이벤트 대기열을 지원합니다.
      • 미디어 유형 객체, 스트림 및 프리젠테이션 설명자, 객체 속성, 바이트 스트림 객체, 샘플 및 버퍼를 처리하는 다양한 핵심 API입니다.
      • 초기 소스 확인자 구현.
      • 소스 리더 API의 초기 구현입니다.
      • 샘플 그래버 객체 구현.
      • 토폴로지 개체 구축을 위한 핵심 지원입니다.
      • 내장형 프레젠테이션 시계 구현, 미디어 세션 기능 구현을 시작했습니다.
    • 비디오 캡처 필터는 더 이상 사용되지 않는 v4l1 API 대신 v4l2를 사용하도록 포팅되어 v4l1을 지원하지 않는 일부 카메라를 사용할 수 있습니다.
    • mmap()을 사용하여 YUV에서 RGB로 변환하고 v4l2 장치에서 읽기에 대한 지원이 제거되었습니다. 이제 우리는 이 두 가지 모두에 대해 libv4l2에 의존합니다.
    • 내장 AVI, MPEG-I 및 WAVE 디코더가 제거되었습니다. 이제 우리는 그러한 미디어 파일을 디코딩하기 위해 GStreamer 또는 Mac QuickTime Toolkit에 의존합니다.
    • 더 많은 VMR7 구성 API가 구현되었습니다.
    • 사운드 드라이버는 채널별 볼륨 조정을 지원합니다.
  • 국제화:
    • 유니코드 문자표는 유니코드 표준 버전 12.1.0을 기반으로 합니다.
    • 유니코드 정규화가 구현되었습니다.
    • 지리적 지역 ID는 현재 로케일을 기반으로 레지스트리에 자동으로 설정됩니다. 필요한 경우 HKEY_CURRENT_USER\Control Panel\International\Geo에서 수정할 수 있습니다.
    • 신할라어 및 아스투리아어 로케일이 지원됩니다.
    • 코드페이지 28601(라틴어/태국어)이 지원됩니다.
  • RPC/COM:
    • typelib 마샬러는 복잡한 구조체와 배열을 지원합니다.
    • Windows 스크립트 런타임 라이브러리의 초기 구현이 있습니다.
    • Microsoft ADO(ActiveX Data Objects) 라이브러리의 초기 구현이 있습니다.
  • 설치자:
    • MSI(Microsoft Installer) 패치 파일이 지원됩니다.
    • WUSA 도구(Windows 업데이트 독립 실행형 설치 관리자)는 .MSU 업데이트 파일 설치를 지원합니다.
  • ARM 플랫폼:
    • 예외 해제는 libunwind 라이브러리를 사용하여 ARM64에 대해 구현됩니다.
    • OLE 스텁리스 프록시는 ARM64에서 지원됩니다.
  • 개발 도구 / Winelib:
    • Visual Studio 원격 디버거를 사용하여 Wine에서 실행되는 애플리케이션을 디버깅할 수 있습니다.
    • 디버그 엔진 라이브러리(DBGENG)가 부분적으로 구현되었습니다.
    • Windows 대상용으로 빌드된 바이너리는 추가 종속성 없이 Windows에서 실행될 수 있도록 더 이상 libwine 라이브러리에 의존하지 않습니다. libwine 라이브러리는 더 이상 Windows용으로 구축되지 않습니다.
    • 리소스 컴파일러와 IDL 컴파일러는 크로스 컴파일 환경에서 헤더 파일을 찾을 수 있도록 '--sysroot' 옵션을 지원합니다.
    • Winegcc는 크로스 컴파일러로 사용하거나 사용자 정의 툴체인과 함께 사용하기 쉽게 해주는 '--target', '--wine-objdir', '--winebuild' 및 '-fuse-ld' 옵션을 지원합니다.
    • wine/unicode.h 헤더는 더 이상 애플리케이션에서 사용할 수 없습니다. 기능이 궁극적으로 제거되고 표준 C 런타임 와이드 문자 기능으로 대체되기 때문입니다.
  • 인프라 구축:
    • MinGW를 사용할 수 있는 경우 테스트 바이너리는 PE 형식으로 구축되므로 동일한 테스트 바이너리가 Wine과 Windows 모두에서 실행될 수 있습니다. 'crosstest' make 타겟은 더 이상 필요하지 않거나 지원되지 않습니다.
    • 'fastcall' 호출 규칙은 사양 파일에서 지원됩니다. Windows 빌드에 대해 올바른 이름 맹글링을 사용합니다.
    • '-import' 진입점 플래그는 스펙 파일에서 지원되어 가져오기 썽크에 대해 생성될 핫패치 코드 접두어가 필요한 기능을 표시합니다.
    • Winebuild는 PE 바이너리에 특별한 서명을 추가하여 Wine 내장으로 표시하는 '--builtin' 옵션을 지원합니다.
  • 내장 애플리케이션:
    • CHCP 도구가 구현되었습니다. 콘솔 코드 페이지를 설정할 수 있습니다.
    • MSIDB 도구가 구현되었습니다. MSI 데이터베이스를 조작할 수 있습니다.
  • 성능 개선:
    • 다양한 시간 함수는 가능한 경우 더 높은 성능의 시스템 시계를 사용하여 많은 게임의 렌더링 루프에서 오버헤드를 줄입니다.
    • 파일 조회는 검색 중인 디렉터리에서 활성화된 경우 ext4 파일 시스템 케이스 접기 지원을 활용합니다.
    • 데이터 없는 스타일 목록 상자(LBS_NODATA)는 많은 수의 항목에 대해 더 나은 성능을 제공합니다.
    • Slim Reader/Writer 잠금, 키 이벤트 및 조건 변수는 Linux에서 futex를 사용하여 와인 서버 왕복을 방지합니다.
  • 새로운 외부 종속성:
    • MinGW-w64 크로스 컴파일러는 PE 형식의 모듈을 빌드하는 데 사용됩니다.
    • FAudio 라이브러리는 XAudio2를 구현하는 데 사용됩니다.
    • Inotify 라이브러리는 BSD 플랫폼의 파일 변경 알림에 사용됩니다.
    • Unwind 라이브러리는 ARM64의 예외 처리에 사용됩니다.
    • Video4Linux 버전 2 라이브러리는 버전 1 대신 사용됩니다.

더 읽어보세요


원천: 와인 본사

스토리를 통해: Android경찰