Wine은 윈도우프로그램을 리눅스/유닉스에서 실행되게끔 하는 호환 레이어입니다.
프로젝트가 지속되다보니 지금은 상당히 많은 프로그램들이 구동되고있습니다. 최근에는 스팀덱을 필두로 게임성능이 강화된 Proton이 나와서 그래픽카드의 활용성능도 상당히 좋아졌습니다.
다만, Wine프로젝트는 기존의 Win32와 Win64 API를 원본 그대로 구현하는것도 있지만 리눅스와 연결되는 부분(화면에 뿌리는 GDI, 각종 입력장치 연결 라이브러리, DirectX를 OpenGL로 번역하는 Wined3d 등)을 내부적으로 구현했기에 다른OS에서 그대로 쓰기 힘들었습니다.
안드로이드의 경우 X를 쓰지 않기에 기존 Wine에 구현된 GDI구현체를 쓸 수 없었고 이를 위해 Termux-X11 같은 리눅스 데스크탑 호환환경을 갖춰서 굴리는 방식을 써야했습니다. (Mobox라는건이 이런식으로 구축해야 합니다) 아키텍처 문제로 X86과 AMD64로 만들어진 기계어를 ARM하드웨어용으로 번역하는 Box86과 Box64를 따로 설치해야하는건 덤이었고요.
Winlator는 Box86 및 Box64를 내장하고 Wine의 연결부분을 안드로이드의 것으로 대체하는 방식으로 안드로이드에서 쉽게 윈도우 프로그램, 그것도 PC에서 쓰는 X86용 프로그램을 돌아가게끔 해주는 앱입니다.
다만 기존 Wine도 완벽하지 않기에 100%호환이 보장되지 않은 상황에서 Box86, Box64를 통한 하드웨어 아키텍처 번역까지 있기에 완전한 구동은 어려운 상황입니다. 그만큼 성능저하는 덤입니다.
역으로 말하면 시간이 지나 Wine의 구현이 더 정확해지고 Box64가 발전하면서 안드로이드 기기의 성능이 좋아지면 지금 구동이 되지 않는 프로그램들도 구동이 될 가능성이 상당히 높습니다.
스냅드래곤 888칩셋기준 itch.io로 대표되는 2D인디게임 정도는 돌리는데 크게 무리가 없기에 깔끔하게 잘 돌아갑니다. 항간에선 GOG.com게임들은 DRM문제가 없기에 화면까진 볼 수 있다고 합니다. 유튜브를 뒤지면 위처3같은 꽤 그래픽 좋은 게임도 잘 돌아간다고 합니다.
안드로이드용 MSOffice가 있기에 굳이? 싶긴한데 윈도우용 MSOffice도 구버전(2010)에 한해서 구동에 성공했다고 하는군요. 그 외에도 호환성 강화를 위해 안드로이드용 C런타임이 아닌 Glibc를 네이티브로 내장해 호환성을 강화한 변종도 나오고 있으며 Wine을 커스텀한 Proton을 활용한 Winlator도 나오고 있습니다.
솔직히 이런걸 보면 모바일기기와 PC와의 벽이 무너지는것 같아 재미있군요. 추후 구동성공기와 Winlator로 윈도우전용 인디게임 구동을 알려드리겠습니다.
'안드로이드 삽질기' 카테고리의 다른 글
AOSP와 픽셀기반 롬 (0) | 2024.11.12 |
---|---|
유튜브 앱 과연 필요할까? (0) | 2022.05.29 |
안드로이드 스마트폰에서 리눅스를! Termux (0) | 2021.11.01 |
완전한 다크모드를 위하여 (0) | 2020.11.01 |
안드로이드 앱 구버전을 계속 쓰고 싶을 때 (0) | 2017.07.24 |