Linux on DeX |
1. 개요
Linux on DeX(리눅스 온 덱스)는 삼성 갤럭시에 리눅스 배포판을 실행할 수 있는 펌웨어이다.2. 상세
삼성전자가 개발하였다. Linux on DeX를 실행하면 안드로이드와 리눅스가 함께 돌아간다. 삼성전자는 2017년 10월 중순에 'Linux on Galaxy'를 발표하였다. 그리고 약 1년 뒤인 2018년 11월 9일부터, Linux on DeX로 이름을 변경하여 베타 서비스를 시작하였다. 삼성 DeX, 지원 기기[1]가 필요하다.베타 프로그램 사이트
2019년 10월 19일 기준 Linux on Dex 베타 서비스를 종료한다는 공식 메일이 전송되었다. 더 이상의 지원은 없을 것으로 보이며, 안드로이드 10 버전부터 모든 기기에서 작동하지 않는다는 내용이 포함되어있으니 Linux on Dex 사용자라면, OS 업데이트를 신중히 결정해야할 것 같다.
서비스 종료에 대한 Reddit 글 완성도가 제법 높고 생산성 부분에서 부족함이 있는 안드로이드 태블릿에 상당수준의 생산성을 제공해줄 수 있는 기능이었지만 종료되어 아쉽다는 말이 많다. 물론, 이것에만 의존하면 태블릿컴퓨터에 맞는 UI를 가진 생산성 있는 애플리케이션이 나오기는 힘들어질 수도 있다. 삼성이 구글 등의 압박을 받은 것이 아니냐는 말만 무성한데 당연히 아무도 모른다...
Linux on Galaxy 시연 영상[2][3] |
3. 장점
3.1. 편리성
Linux on DeX가 지원되는 스마트폰, 삼성 DeX만 있으면 리눅스 실행이 가능하다. 내 집이 아닌 곳에서라도 삼성 DeX만 있는 장소면 리눅스 실행이 가능하다는 소리다. 물론 키보드와 마우스는 필요하겠지만.3.2. ARM64 바이너리 호환
x86 바이너리 사용이 불가하지만 ARM64(aarch64)로 포팅된 수 많은 프로그램들이 호환가능해서 간단한 apt-get 명령어만으로도 쉽게 설치해서 사용 할 수 있다.3.3. 안드로이드 커널 호환
커널 버전 확인 명령어로 커널 정보를 보면 삼성의 발표처럼 실제 안드로이드와 동일한 커널을 사용하는것으로 확인되었다. 그 덕분에 별도의 커널 최적화 컴파일이 필요없이 이미 디바이스 AP에 최적화된 커널이 적용된 상태이며 CPU 사용작업에서는 8코어 모두 사용하는 최적의 퍼포먼스를 내면서 작업을 할 수가 있다.3.4. 퍼포먼스
https://gigglehd.com/gg/mobile/3858747가상화나 에뮬레이팅이 아닌 Linux Container로 구동되는 만큼 성능 손실이 거의 없다. GPU 하드웨어 가속이 되지않은 상태이지만 전반적인 CPU와 낸드 스토리지 퍼포먼스는 상당히 좋게 나오고있다. 갤럭시 탭 S4 스냅드래곤 835 기준으로, 타 ARM 프로세서들[4]과 리눅스 환경에서 비교시 단연 돋보이는 벤치결과를 보여주고 있으며, 파이썬 이식성을 제외한 부분에선 x86의 인텔 Core M3와 앞서가니 뒷서가니 하는 상당한 성능이 나오고 있다.
~
4. 단점 및 문제점
4.1. 성능의 한계
알다시피 데스크탑용 운영체제를 스마트폰에서 구동하기 때문에 성능은 기대하기 힘들다.[6] 이런 성능면에선 게임 구동은 어렵다고 봐야한다.4.2. GPU 하드웨어 가속 미지원
현재 베타 기준으로 케노니컬에서 커스텀한 우분투 16.04 LTS에서 GPU 하드웨어 가속을 사용할 수 없다. 리눅스는 안드로이드 커널과 동일한 커널을 공유하여 사용하므로 CPU는 제 성능을 낼 수 있다. 그러나 X11 드라이버가 존재하지 않아 fbdev(리눅스 프레임버퍼)로 GUI가 구현중으로 보이며 렌더러도 VMware로 표기되고 있고 Mesa 라이브러리 설치 후 glxgears 명령어로 3D 데모 테스트에도 아주 낮은 프레임으로 돌아가서 3D가속이 하드웨어 가속이 아닌 소프트웨어 가속으로 돌아가게 된다.전체적인 사용 환경에서 터미널을 사용한 CUI의 경우 탑재된 AP의 8코어 프로세서를 충실히 사용하여 좋은 퍼포먼스를 내지만, GUI 사용 시 GPU 하드웨어 가속 미지원으로 인해 만족할 만한 퍼포먼스가 나오지 않는다. 실제 크로뮴 브라우저나 파이어폭스 브라우저로 인터넷 사용시 스크롤시 뻑뻑하거나 이미지 드로우가 빠릿빠릿하지 못한 부분이 있고 유튜브를 재생했을 때 720p보다 높은 화질 체크시 버벅이는 현상을 보인다. 일부 리눅스용 게임을 설치하여 실행했을 때도 아주 낮은 퍼포먼스로 구동되는 것으로 확인되었다.
4.3. 가용 메모리 오류
VLC나 SMplayer를 포함한 일부 유틸리티들이 가용 메모리 오류를 나타내면서 실행되지 않는 문제가 보고되고 있다.[7]4.4. 언어 설정 불가
키보드의 경우 fcitx 설치를 통해 한글 입력이 가능하지만, 시스템 언어 설정으로 접근시 언어 설정 프로그램이 튕겨버리는 문제가 발생하여 사실상 시스템 언어를 영어에서 변경하지 못하는 상태이다.5. 대안
5.1. 루팅 미필요
- Termux - 안드로이드 전용 오픈소스 앱이다. 겉으로 보면 플레이스토어에 올라온 리눅스 터미널앱과 별 다를게 없어 보이지만 pkg[8] 및 apt를 이용해 다양한 소프트웨어를 설치해 사용이 가능하다. nano, emacs등의 에디터 부터 파이썬, npm, node.js등의 개발도구, php, 아파치 등의 서버 소프트웨어등을 설치해서 쓸수 있다. 심지어 X-Window까지 구동이 가능하다.[9] 무엇보다 루팅이 필요없으며 무광고의 무료앱이라는 점도 강점이다. 또한 Linux on Galaxy와 달리 대부분의 안드로이드폰에서 사용이 가능하다. 또한 Termux 위에 다른 리눅스 배포판이나 MATE 등의 고사양의 데스크탑 메니져를 설치하는 것도 가능하다.[10] 한글판은 없으나 입출력은 문제 없이 지원한다. 현재 Google Play 빌드는 더 이상 업데이트 되지 않으니 F-Droid에서 설치해야 한다.
- Debian Noroot
- UserLAnd
- iSH Shell - iOS/iPadOS에서 사용할 수 있는(!)앱이다. 앱 내에서 패키지 설치도 지원하고 파일앱과 외부키보드도 지원한다. 2020년 10월 출시후 6개월 이상 업데이트 되며 유지되는 것으로 보아 애플이 어느 정도는 앱의 존재를 허락을 해주는 것으로 보인다.[11]
5.2. 루팅 필요
- Maru OS - 아직 지원하는 기기가 적고 커스텀 롬을 올려야 한다. 앞으로 여러 리눅스 배포판을 지원하게 된다면 배포판 자체의 arm 포팅 저장소를 그대로 활용할 수 있을 것으로 보인다. 엄청난 장점.
- Linux Deploy - Termux와 비슷하지만 명령어 chroot를 사용하기 위해 루팅이 필요하다.[12]
- Kali Linux for penetration testing 설치
[1] 현재 베타 버전에서는 갤럭시 노트9과 갤럭시 탭 S4를 지원하고 있다. 갤럭시 S9 | 갤럭시 S9+는 안드로이드 9.0으로 업데이트해야 지원한다.[2] 갤럭시 노트8과 DeX환경에서 구동되었으며, 리눅스는 우분투16.04.3 LTS 버전[3] 이클립스, 김프, 웹브라우징, glxgears 3D가속, 다중 멀티 테스킹 작업등을 시연[4] Tegra X2, Tegra X1, Tegra K1, Exynos5422, RK3288, S905, A83T, BCM283780 등과 비교[5] 이미 종료된 프로젝트에 더 이상의 개선은 없을 것이다[6] 데모 영상에서 이클립스가 돌아가긴 하나, 애초에 태생부터 JAVA 가상 머신이 필요한 이클립스는 일정량 이상의 라이브러리를 사용해야 할 규모 있는 프로젝트에서 i7급 CPU와 16기가 이상의 램을 확보해도 답답함을 느끼는 상황이 잦은 개발환경이다. 네이티브 코드로 작성된 프로그램을 돌리기에도 벅찬 ARM 계열 CPU에서 시간이 업무능력으로 이어질 실무 작업은 현실적으로 힘들다.[7] 사실상 GPU 하드웨어 가속 미지원보다 더 큰 문제점이다.[8] 별도의 명령처럼 보이지만 사실 apt의 alias이다[9] 단 Termux앱 자체에서 X-Window를 표시할 수는 없으며 VNC, SDL, RDP 등의 디스플레이 서버를 사용해야 한다. 안드로이드에서 별도로 앱을 깔아서 접속할 수 있으며, 윈도우 또는 리눅스에서 서버를 열어 직접 화면에 출력할 수도 있다.[10] AnLinux 앱 혹은 AndroNix 앱에서 제공하는 tarball 스크립트를 복사하여 터미널에 붙여넣거나 Termux에서 제공하는 proot-distro 명령어를 사용하여 특정 리눅스 배포판을 설치할 수 있다[11] 32bit i686에 Alpine Linux를 사용한다.[12] proot를 사용하면 기존 Termux의 proot와 동일한 방식으로 직동되므로 루팅이 필요하지 않다.