Reddit

We got Linux on iPhone!

아이폰에서 ARM64 Linux 앱과 데스크톱 실행하기

LinuxRunner는 탈옥이나 가상 머신 없이 iOS·iPadOS에서 ARM64 Linux 프로그램과 데스크톱 환경을 실행하는 앱입니다. 자체 명령어 인터프리터와 Linux 호환 계층을 쓰며, 시스템 호출과 그래픽 지원에는 제약이 있고 성능 비교 벤치마크는 공개되지 않았습니다.

에디터 노트

성능에 관해 확인된 범위는 작성자의 실행 사례와 정성적 설명까지입니다. 댓글 답변도 UTM과 나란히 측정한 적이 없다고 밝혔으므로, 데스크톱 반응성이 괜찮다는 말은 특정 작업의 속도나 가상화 방식과의 우위를 입증하지 않습니다. 비교 수치를 요구한 질문에 측정값 대신 구조상의 차이를 설명한 셈입니다. 다만 전체 기기를 가상화하지 않고 ARM64 Linux 사용자 공간을 해석한다는 작동 방식은 구체적으로 제시되어 있습니다. 시스템 호출과 그래픽 지원이 불완전하고 앱 종료 시 Linux 프로세스가 사라지는 제약도 명시돼 있습니다. 따라서 이 프로젝트의 현재 가치는 Linux 커널을 대체하는 환경보다 iOS 안에서 ARM64 Linux 앱과 X11 데스크톱을 시험하는 도구로 보는 데 있습니다.

AI 요약

LinuxRunner는 iPhone과 iPad에서 ARM64 Linux 사용자 공간 프로그램을 구동하는 앱입니다. Linux 커널을 부팅하거나 전체 시스템을 가상화하지 않고, ARM64 명령어 인터프리터와 Linux 시스템 호출 호환 계층으로 Linux 실행 파일을 처리합니다. 탈옥과 JIT 없이 동작하며, iOS의 앱 샌드박스 안에서 터미널과 그래픽 데스크톱을 제공합니다.

지원 배포판과 데스크톱

Debian GNU/Linux 13 ARM64, Arch Linux ARM, Alpine Linux 3.24 ARM64를 설정할 수 있습니다. Debian은 기본 시작 배포판이며 apt/dpkg와 가벼운 LinuxRunner X11 데스크톱을 제공합니다. Debian의 KDE Plasma는 실험적입니다. Arch는 pacman을 지원하며 Openbox와 LXQt 구성 요소를 조합한 데스크톱을 제공합니다. 완전한 LXQt 세션은 아니며 Plasma와 Wayland 세션은 지원하지 않습니다. Alpine은 터미널 환경에 적합하고 데스크톱 호환성은 실험 단계입니다. 여러 배포판을 함께 설치할 수 있지만 앱 실행당 활성 런타임은 하나입니다.

실행 방식과 그래픽

실행 파일 로더가 ARM64 Linux ELF 프로그램과 라이브러리를 읽고, 인터프리터가 지원하는 게스트 명령을 미리 컴파일된 호스트 루틴으로 실행합니다. 호환 계층은 시스템 호출, 프로세스, 스레드, 시그널, 메모리 매핑과 파일시스템 메타데이터를 처리합니다. Linux 소켓은 기기의 네트워크 API에 연결됩니다. 그래픽 앱은 X11을 사용합니다. Xvfb와 x11vnc가 화면을 네이티브 뷰어로 전달하며, Mesa 소프트웨어 OpenGL과 일부 경로를 가속하는 실험적 Metal 브리지를 지원합니다.

설치와 사용

GitHub Releases에서 IPA를 내려받아 Sideloadly나 AltStore Classic 같은 호환 도구로 설치한 뒤 앱 안에서 배포판을 설정합니다. v1.0.1 패키징 스크립트는 Apple 프로비저닝 프로파일이 없는 ad-hoc 서명 IPA를 만듭니다. 설치에는 선택한 도구가 제공하는 서명과 프로비저닝이 필요합니다. 앱의 배포판 설정 메뉴에서 Debian, Arch, Alpine을 고르고 계정을 구성합니다. 터미널은 Home의 Terminal에서, 그래픽 세션은 Open Desktop 또는 Resume Desktop에서 엽니다. 앱 매니저나 각 배포판의 패키지 관리자로 소프트웨어를 설치할 수 있습니다.

기기 지원과 제약

iPhone은 iOS 15.0, iPad는 iPadOS 15.0을 배포 대상으로 삼습니다. 관리자는 빌드 897에서 실제 iPhone으로 Arch 데스크톱과 그래픽 앱을 실행했다고 밝혔고, v1.0.1의 iPad 지원도 실제 iPad에서 시험했다고 설명합니다. 배포 대상 버전은 모든 기기에서 작동한다는 보장이 아닙니다. 메모리와 저장 공간이 실제 작업량을 제한하며, iPhone 11과 iOS 17에서 검은 화면이 나타난다는 이전 보고는 해결되지 않았습니다. x86/x86-64 앱, Linux 커널 부팅, systemd를 init으로 쓰는 구성, 커널 모듈, 일반적인 Linux 컨테이너, Wayland는 지원하지 않습니다. 시스템 호출과 그래픽 호환성은 완전하지 않으며, iOS가 앱을 중단하거나 종료하면 실행 중인 Linux 프로세스도 유지되지 않습니다. Linux 계정 권한은 악성 프로그램을 앱 내부에서 격리하지 않으며 보안 경계는 iOS 샌드박스입니다.

Reddit 반응

  • @Emetros — JIT나 하이퍼바이저 없이 성능이 어떤지, UTM과 비교해 봤는지 물었습니다.
    • @Fun-Relationship5464 — 전체 시스템이나 Linux 커널을 에뮬레이션하지 않아 오버헤드가 줄어든다고 설명했습니다. 데스크톱은 꽤 반응성이 있고 Blender, Firefox, VS Code 등을 실행했다고 했습니다. 무거운 앱은 느릴 수 있고 최적화 여지도 있다고 덧붙였습니다. UTM과 제대로 나란히 비교한 적은 없어 더 빠르다고 말할 수 없으며, 시작 시간과 메모리 사용량, 앱 성능을 비교하고 싶다고 답했습니다.
  • @BatemansChainsaw — GitHub나 YouTube에서 실행 모습을 보여주는 링크가 있는지 물었습니다.
    • @Fun-Relationship5464 — GitHub 저장소 링크를 공유했습니다.
  • @Fun-Relationship5464 — Debian ARM64, Arch Linux ARM, Alpine과 KDE Plasma 등 그래픽 데스크톱을 지원하는 v1.0.1을 소개했습니다. Firefox, Brave, VS Code, Blender, Telegram, LibreOffice, Inkscape, FileZilla, Wireshark, Java, Vesktop을 시험했다고 썼고 Vesktop은 추가 수정이 필요하다고 밝혔습니다. iPad 지원과 호환성·성능 개선, 버그 수정을 함께 언급하며 아직 개발 중이라고 설명했습니다.
  • @Fun-Relationship5464 — GitHub 저장소 링크를 다시 공유했습니다.

원문: GitHub / 번역·요약: Trawling