이는 고급 프로세스이므로 신규 Linux 사용자에게는 권장되지 않습니다.
ChromeOS는 VM 내에서 임의의 코드 실행을 지원합니다. 이는 지원에 관한 하위 수준 문서입니다. 사용자 친화적인 보기를 보려면 faq를 참고하세요.
기본 요건
- ChromeOS 기기에서 ChromeOS의 Linux를 지원하는지 확인합니다.
- ChromeOS 버전 72(M72 이상, 2019년 2월 출시) 이상을 실행하고 있는지 확인합니다.
- Linux 컨테이너 사용 설정하기
런타임 기능
Linux 컨테이너를 실행할 때 다음 기능이 작동해야 합니다.
- 아웃바운드 네트워크 연결 (IPv4)
- 가속되지 않은 그래픽입니다.
- 가속화된 그래픽 (OpenGL을 통해)
- Wayland 프로그램 (권장, Sommelier를 통해).
- X 프로그램 (Sommelier 및 XWayland를 통한 호환성)
- M74 이상의 오디오 출력과 R79 이상의 이미지에서 실험적인 캡처/마이크
기능이 누락됨
구체화하기 위해 노력하고 있는 부분이 많습니다. 명확한 예는 다음과 같습니다.
- 동영상 하드웨어 디코딩입니다.
- IME
고려해야 할 사항이 더 많지만 ChromeOS팀은 전반적인 시스템 보안이 손상되지 않도록 새로운 기능을 출시할 때 신중한 접근 방식을 취합니다. ChromeOS 개발의 Linux에 관한 대부분의 주제를 다루는 자세한 내용은 Crostini FAQ를 참고하세요.
보안
임의의 코드를 실행하는 것은 일반적으로 보안 위험이지만 ChromeOS 팀은 ChromeOS 컨테이너에서 Linux가 사용하는 런타임 모델이 이러한 보안 위험을 충분히 완화하고 포함한다고 생각합니다. 가상 머신 (VM)이 보안 경계이며 VM 내의 모든 항목은 신뢰할 수 없는 것으로 간주됩니다. 현재 VM 게스트 이미지는 컨테이너의 보안을 더욱 향상하기 위해 맞춤 강화 커널도 실행하고 있지만, 이는 전체 시스템 보안을 보장하기 위해 의존하는 것이 아니라 있으면 좋은 기능으로 간주됩니다.
이 모델에서 나머지 ChromeOS 시스템은 VM 내부의 컨테이너 내에서 실행되는 임의 코드 (악의적이거나 우발적인)로부터 보호되어야 합니다.
외부 세계와의 유일한 접촉은 crosvm을 통해서이며 각 채널은 개별 프로세스 (각각 강력한 샌드박싱 처리됨)와 통신합니다.
컨테이너의 사용자 데이터
클라우드 서비스로 전환되면서 현재 보안 사고에서는 계정 사용자 인증 정보 (예: Google/Facebook 비밀번호)를 획득하는 것이 데스크톱이나 노트북을 공격하는 것보다 더 수익성 있는 공격 벡터라는 점을 강조합니다. 틀리지 않습니다. 현재 VM/컨테이너 ChromeOS 솔루션은 이 문제를 개선하지 않습니다. 간단히 말해 컨테이너에 입력된 모든 내용은 현재 사용자의 책임입니다. 따라서 보안이 취약하거나 손상된 컨테이너를 실행한 다음 컨테이너에 비밀번호를 입력하면 ChromeOS 시스템의 나머지 부분이 안전한 상태에서도 비밀번호가 도용될 수 있습니다.
프로세스 지속성
VM 및 컨테이너의 프로세스는 로그아웃 후에도 유지되지 않으며 (사용자의 암호화된 저장소에 있으므로) 자동으로 종료됩니다. 또한 로그인 시 자동으로 시작되지 않으며(지속적인 공격 방지) 사용자의 암호화된 저장소에 있으므로 액세스할 수 없어 부팅 시(로그인 세션 없이) 자동으로 실행될 수도 없습니다.
실행 가능하고 쓰기 가능한 코드
Termina VM 디스크 이미지는 다른 Chrome 구성요소와 마찬가지로 쓰기 가능한 스테이트풀 파티션에 다운로드됩니다. 콘텐츠가 수정되지 않도록 dm-verity가 사용됩니다. 또한 Google에서 서명한 이미지만 로드할 수 있으며 이미지는 항상 읽기 전용입니다.
하드웨어 공격
Meltdown/Spectre 취약점은 VM을 안전하게 사용하는 데 영향을 미칩니다. VM이 호스트 시스템이나 다른 VM을 공격하지 못하도록 수정사항과 완화 조치를 적용했습니다. 자세한 내용은 ChromeOS 기기의 Meltdown 및 Spectre 취약점 상태에 관한 Chromium OS 위키 페이지를 참고하세요.
수명 주기
Linux 컨테이너를 사용 설정하면 (Termina와 같은 기타 필요한 구성요소를 모두 설치함) 시스템을 사용할 수 있습니다.
이러한 구성요소가 설치될 수는 있지만 바로 실행되지는 않습니다. 로그아웃하면 모든 것이 종료되고 강제 종료되며, 로그인해도 아무것도 자동으로 다시 시작되지 않습니다.
터미널 앱이나 컨테이너를 시작하는 다른 Linux 앱을 실행할 때 상위 컨테이너가 아직 실행되지 않으면 Termina VM이 자동으로 시작되고 ChromeOS의 기본 Linux 컨테이너 (Crostini라고도 함)가 해당 컨테이너에서 시작됩니다. 이렇게 하면 SSH 또는 SFTP (파일 앱을 통해)를 통해 컨테이너에 연결할 수 있습니다.
표시되는 애플리케이션을 모두 닫아도 VM/컨테이너는 종료되지 않습니다. 원하는 경우 수동으로 중지하고 시작할 수 있으며 기본 컨테이너 외에 더 많은 컨테이너를 생성할 수도 있습니다.
데이터 지속성
생성된 모든 VM과 컨테이너, 그리고 컨테이너 내의 데이터는 사용자 세션 (로그아웃/로그인) 간에 유지됩니다. 이러한 데이터는 나머지 브라우저 데이터와 동일한 사용자별 암호화된 저장소에 보관됩니다.
VM이나 컨테이너가 비정상적으로 중지되거나 종료되면 (예: 전원 손실) 데이터가 손실될 수 있으며 시스템의 다른 항목과 마찬가지로 복구해야 할 수 있습니다.
기기 지원
ChromeOS에서 Linux가 모든 Chromebook에서 작동하도록 하는 것이 목표이지만, 필요한 커널 및 하드웨어 기능으로 인해 배포가 제한됩니다. 팀은 적절한 경우 기능을 백포팅하면서 시스템 보안과 안정성에 중점을 두었습니다. 이 부분은 지속적으로 노력하고 있는 분야입니다.
현재 지원됨
현재 지원되는 기기 목록은 Linux를 지원하는 ChromeOS 시스템을 참고하세요.
하드웨어 요구사항
현재 ChromeOS에서 Linux 컨테이너를 실행하는 데 필요한 최소 RAM, 스토리지 또는 CPU 속도는 없지만 각 항목이 많을수록 시스템 성능이 향상됩니다.
하지만 하드웨어 가상화를 지원하는 CPU가 필요합니다. x86 플랫폼에서는 이름이 여러 개 있습니다. Intel에서는 이를 VT-x 및 VMX라고 합니다. AMD에서는 이를 AMD-V 및 SVM이라고 합니다.
BayTrail 시스템
Intel BayTrail을 사용하는 Chromebook에는 VT-x가 포함되지 않습니다. 이 CPU에는 일반적으로 VMX가 포함되지만 Chromebook의 변형에는 포함되지 않으므로 지원되지 않습니다.
공개 기기 목록에서 Platform 열 아래에 BayTrail를 검색하여 보드가 지원되는지 확인할 수 있습니다.
이전 커널
Linux 3.14 이하를 지원할 계획은 없습니다. 이러한 기능에는 광범위하고 침습적인 경우가 많은 새로운 기능의 백포트가 필요합니다. 예를 들면 다음과 같습니다.
공개 기기 목록에서 Kernel 열의 버전 번호가 3.14 미만인지 검색하여 보드가 지원되는지 확인할 수 있습니다.
32비트 ARM CPU
32비트 ARM CPU에서 가상 머신을 작동시키는 것은 어렵고 표준이 아니며 펌웨어와의 조정이 필요합니다. 아쉽게도 ChromeOS 펌웨어는 확장 프로그램을 구성하지 않는 경향이 있습니다. 따라서 이러한 시스템은 지원되지 않습니다.
공개 기기 목록에서 Kernel ABI 열 아래에 arm를 검색하여 보드가 지원되는지 확인할 수 있습니다.