구글, 크롬 OS처럼 안드로이드에서 리눅스 앱 실행 준비 중
(androidauthority.com)- 구글이 안드로이드용 리눅스 터미널 앱을 개발 중임
- 터미널 앱은 개발자 옵션을 통해 활성화할 수 있으며 가상 머신에 데비안을 설치함
- 이 앱은 크롬북용으로 제작되었지만 모바일 기기에서도 사용 가능할 수 있음
리눅스 앱 실행을 위한 구글의 노력
- 최근 구글 엔지니어들이 안드로이드용 새로운 터미널 앱 작업을 시작함
- 이 터미널 앱은 Android Virtualization Framework (AVF)의 일부이며, 로컬 IP 주소를 통해 리눅스 가상 머신에 연결하는 WebView를 포함하여 안드로이드 호스트에서 리눅스 명령을 실행할 수 있게 함
- 처음에는 쉘 명령을 사용하여 수동으로 이 터미널 앱을 활성화한 다음 리눅스 VM을 직접 구성해야 했음
- 그러나 최근 구글은 터미널 앱을 안드로이드에 통합하고 VM에서 리눅스 배포판을 실행하기 위한 올인원 앱으로 전환하는 작업을 시작함
- "ferrochrome-dev-option" 태그 아래 일련의 패치가 최근 AOSP에 제출되었는데, 이 패치는 설정 > 시스템 > 개발자 옵션 아래 리눅스 터미널이라는 새로운 개발자 옵션을 추가함
- 이 새로운 옵션은 제안된 설명에 따르면 "VM 내부에서 실행되는 리눅스 터미널 앱"을 활성화할 것임
- 이 옵션을 토글하면 AVF에 번들로 제공되는 터미널 앱이 활성화됨
- 현재 안드로이드의 터미널 앱은 여전히 데비안 이미지를 제공하고
vm_config.json
파일을 생성하여 리눅스 VM을 수동으로 구성해야 하지만, 구글은 이를 자동으로 처리하도록 터미널 앱을 업그레이드할 계획임- "ferrochrome-dev-option" 태그 아래 패치 중 하나에서 구글은 AVF를 통해 VM에서 데비안을 다운로드하고 구성하는 기존 "LinuxInstaller" 앱이 "곧 터미널 앱으로 병합될 것"이라고 말함
- 이는 터미널 앱이 VM에서 실행 중인 데비안 인스턴스를 다운로드, 구성, 실행 및 인터페이스하는 올인원 앱이 될 것임을 시사함
터미널 앱 및 AVF 개선 작업 진행 중
- 구글은 이 기능을 제공하기 전에 터미널 앱과 AVF를 계속 개선하고 있음
- AVF는 이미 그래픽과 일부 입력 옵션을 지원하지만 스냅샷 백업 및 복원, 중첩 가상화, x86_64 아키텍처 장치에 대한 지원을 추가할 준비 중임
- 또한 터미널 앱에 일부 설정 페이지를 추가할 준비를 하고 있는데, 현재는 IP 주소를 복사하고 기존 VM 인스턴스를 중지하는 메뉴를 제외하고는 매우 간단함
- 설정 페이지에서는 디스크 크기를 조정하고 포트 전달을 구성하며 잠재적으로 파티션을 복구할 수 있음
- 이러한 설정을 추가하는 패치가 테스트된 것은 Pixel Tablet과 Pixel 9 Pro XL의 코드명인 "tangorpro"와 "komodo"임
- 이는 터미널 앱이 새로운 안드로이드용 데스크톱 버전의 Chrome과 같은 크롬북에 국한되지 않을 것임을 시사함
- 터미널 앱이 언제 등장할지는 모르겠지만 내년 안드로이드 16 업데이트에서 볼 수 있을 것으로 예상됨
리눅스 앱을 안드로이드에서 실행하는 이유
- 개발자들이 개발에 유용한 리눅스 앱을 크롬북에서 실행할 수 있도록 하기 위해 구글이 크롬 OS에 리눅스 지원을 추가함
- 예를 들어 안드로이드 앱 개발을 위한 권장 IDE인 안드로이드 스튜디오의 리눅스 버전을 크롬북에서 실행 가능
- 또한 컨테이너에서 안전하고 안정적으로 리눅스 명령줄 도구를 실행할 수 있음
- 대부분의 크롬북은 ARM 기반 프로세서를 가진 대부분의 안드로이드 기기와 달리 x86 기반 프로세서를 가지고 있어 많은 리눅스 앱이 대부분의 안드로이드 기기에서는 작동하지 않을 수 있음
- 하지만 리눅스 앱 지원을 추가하면 개발자에게 안드로이드의 유용성이 크게 향상되고 특히 더 많은 앱이 ARM을 지원함에 따라 향후 데스크톱급 플랫폼으로서 더 실행 가능해질 것임
- 또한 크롬 OS가 안드로이드의 아키텍처와 프레임워크를 점점 더 많이 채택하고 있어 안드로이드와 점점 더 유사해지고 있기 때문에 구글도 이 작업이 꼭 필요함
어차피 리눅스 터미널 앱은 안드로이드에서 돌아가니까, 안드로이드 운영체제에서 x11 클라이언트만 적당히 구현해서 열린 앱 창들 안드로이드 안에 띄워주면 끝나는 문제라고 생각했는데, 생각보다 어려운 문제인가보네요