이것은 고급 프로세스이며 새로운 Linux 사용자에게는 권장하지 않습니다.
ChromeOS는 VM 내에서 임의의 코드 실행을 지원합니다. 이것은 해당 지원에 관한 하위 수준 문서입니다. 더 사용자 친화적인 뷰는 faq를 참고하세요.
기본 요건
- ChromeOS 기기에서 ChromeOS의 Linux를 지원하는지 확인합니다.
- ChromeOS 출시 버전 72 (M72+) 이상 (2019년 2월 출시)을 실행하고 있는지 확인합니다.
- Linux 컨테이너 사용 설정하기
런타임 기능
Linux 컨테이너를 실행할 때 다음 기능이 작동할 것으로 예상해야 합니다.
- 아웃바운드 네트워크 연결 (IPv4)
- 가속화되지 않은 그래픽
- Wayland 프로그램 (Sommelier를 통해 선호됨)
- X 프로그램 (Sommelier 및 XWayland를 통한 호환성)
- M74+의 오디오 출력 및 R79+ 이미지의 실험적 캡처/마이크
기능이 누락됨
- 동영상 하드웨어 디코딩
- IME
ChromeOS팀은 전반적인 시스템 보안이 손상되지 않도록 신중한 접근 방식으로 새로운 기능을 출시합니다. ChromeOS 개발의 Linux와 관련된 대부분의 주제를 다루는 자세한 내용은 Crostini FAQ를 참고하세요.
보안
임의의 코드를 실행하는 것은 일반적으로 보안 위험이지만 ChromeOS팀은 ChromeOS 컨테이너의 Linux에서 사용하는 런타임 모델이 보안 위험을 충분히 완화하고 포함한다고 생각합니다. 가상 머신 (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 Wiki 페이지를 참고하세요.
수명 주기
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의 변형에는 포함되어 있지 않으므로 지원되지 않습니다.
공개 기기 목록에서 BayTrail을(를) 검색하여 보드가 지원되는지 확인할 수 있습니다. Platform 열 아래에 있습니다.
이전 커널
Linux 3.14 이하를 지원할 계획은 없습니다. 이러한 커널에는 광범위하고 침습적인 새로운 기능의 백포트가 필요합니다. 예를 들면 다음과 같습니다.
공개 기기 목록의 Kernel 열에서 3.14 미만의 버전 번호를 검색하여 보드가 지원되는지 확인할 수 있습니다.
32비트 ARM CPU
32비트 ARM CPU에서 가상 머신을 작동시키는 것은 어렵고 표준이 아니며 펌웨어와의 조율이 필요합니다. ChromeOS 펌웨어는 일반적으로 확장 프로그램을 구성하지 않는 경향이 있습니다. 따라서 이러한 시스템은 지원되지 않습니다.
공개 기기 목록에서 arm의 Kernel ABI 열을 검색하여 보드가 지원되는지 확인할 수 있습니다.