새로운 Linux 커널 기능을 위해 Android가 '업스트림 우선' 모델로 전환

Google은 2023년부터 Android의 Linux 커널 기능을 '업스트림 우선' 개발 모델로 전환할 계획입니다. 자세히 알아보려면 계속 읽어보세요.

같은 문장에서 "Android"와 "조각화"라는 단어를 보면 아마도 즉시 다음 단어로 넘어갈 것입니다. Android 버전 분포 차트. Android OS 업데이트가 전반적으로 느리게 진행된다고 불평할 때 대부분의 사람들이 손가락질하는 몇 가지 항목이 있지만 Google이 할 수 있는 일은 한계가 있습니다. OEM은 업데이트를 더 빠르게 개발하고 출시합니다. 하지만 Google이 할 수 있는 일은 개발 시간을 줄여 업데이트 출시 비용을 줄이는 것입니다.

개발 부담을 줄이기 위한 Google의 장기 프로젝트의 첫 번째 주요 이니셔티브는 프로젝트 트레블. 2017년 Android 8.0 Oreo와 함께 발표된 Project Treble은 공급업체 구현(HAL 및 기기별 Linux 커널 포크)에서 OS 프레임워크를 분리하여 Android를 모듈화했습니다. 이를 통해 Android OEM은 공급업체의 업데이트 코드 없이도 최신 버전을 부팅할 수 있으므로 최신 AOSP 프레임워크 위에 OS를 리베이스하는 것이 더 쉬워졌습니다. 결과적으로 OEM은 이전보다 더 빠르게 맞춤형 Android 포크를 준비할 수 있었고 더 나아가 주요 OS 업데이트를 더 빠르게 출시할 수 있었습니다.

Google 계획의 다음 단계는 주요 Android 구성 요소에 대한 업데이트 제공을 간소화하는 것이었습니다. Google에서는 이 이니셔티브를 프로젝트 메인라인 2019년에 Android 10과 함께 출시되었을 때였습니다. Google은 본질적으로 주요 OS 구성 요소를 제어하고 OEM이 이를 수정하는 것을 금지했습니다. 그런 다음 OEM이 패치를 직접 적용할 때까지 기다리지 않고도 이러한 주요 구성 요소에 대한 업데이트를 원격으로 출시할 수 있도록 Google Play를 통해 제공 메커니즘을 설정했습니다. Mainline은 기기가 중요한 OS 구성요소의 업데이트된 버전을 수신하는 속도를 크게 개선하여 Android 생태계 전체의 보안을 향상시켰습니다.

그러나 다음에 일어날 일은 훨씬 더 중요하며, 아마도 Google의 장기 전략에서 가장 중요한 부분일 것입니다. 앞서 Treble이 OS 프레임워크를 OS 프레임워크와 분리하여 Android를 모듈화한 방법을 지적했을 때 공급업체 구현을 위해 해당 공급업체의 일부로 "장치별 Linux 커널 포크"를 포함시켰습니다. 암호. 데스크톱용 Linux에 익숙한 사람이라면 누구나 거기에 있는 문제를 인식할 것입니다. 왜 Linux가 폐쇄 소스 공급업체 코드와 함께 묶여 있습니까? 문제는 Android 장치가 Linux 커널과 함께 제공되지만 해당 커널에는 다음 기능이 있다는 것입니다. 많은 트리 외부 코드.

우리는 거기 어떻게 갔나요? Google 소프트웨어 엔지니어 Todd Kjos가 설명한 문제 올해의 Linux 배관공 컨퍼런스 (을 통해 아르스테크니카), 이는 메인라인 Linux 커널이 Android 기기에 출시되기 전에 여러 번 분기되었기 때문입니다. Google은 각 메인라인 Linux 커널을 'Android 공통 커널" 분기는 메인라인 릴리스를 면밀히 추적하지만 몇 가지 Android 관련 패치를 추가합니다. Qualcomm, MediaTek 및 Samsung과 같은 SoC 공급업체는 포크를 수행합니다. 저것 그들이 만드는 각 SoC에 대한 커널. 그런 다음 OEM은 해당 SoC 관련 커널을 가져와 추가 패치를 추가하여 출시하려는 특정 하드웨어에 대한 지원을 구현합니다.

이러한 변화로 인해 "기기에서 실행되는 코드 중 최대 50%가 트리 외부 코드입니다(업스트림 Linux 또는 AOSP 일반 커널이 아님)."라고 구글에 따르면. 이러한 장치에는 트리 외부 코드가 많기 때문에 업스트림 변경 사항을 병합하는 과정이 길고 까다롭습니다. OEM은 Linux 커널에서 발견된 취약점에 대한 패치를 구현하기 위해 더 열심히 노력해야 하므로 이는 장치 보안에 해롭습니다. 게다가 이로 인해 대부분의 Android 기기는 오래된 커널 릴리스를 사용하게 되므로 새로운 Linux 커널 기능을 놓치게 됩니다.

이 문제를 해결하기 위한 노력의 일환으로 Google은 기본적으로 ACK 분기에서 직접 컴파일된 커널인 Android 일반 커널 이미지(GKI)를 개발하고 있습니다. GKI는 SoC 공급업체 및 OEM 맞춤설정을 플러그인 모듈로 분리하여 트리 외부 코드를 제거하고 Google이 커널 업데이트를 최종 사용자에게 직접 푸시할 수 있도록 합니다. Google은 1년 넘게 Play 스토어를 통해 GKI 업데이트를 제공하는 방법을 연구해 왔습니다. 메인라인 모듈을 사용하여.

우리 소식통에 따르면 다음과 같이 출시되는 장치는 안드로이드 12 Linux 커널 5.10과 함께 제공되는 경우 Google이 서명한 부팅 이미지를 배포해야 합니다. Google만의 고유한 픽셀 6 시리즈는 기본적으로 Android 12와 함께 출시되고 Linux 커널 5.10과 함께 배송되므로 두 휴대폰은 GKI와 함께 배송되는 최초의 대중 시장 장치일 수 있습니다.

또한 Google의 Todd Kjos는 회사가 새로운 Linux 커널 기능을 위해 "업스트림 우선" 개발 모델로 전환할 계획이라고 밝혔습니다. 이를 통해 Google은 새로운 코드가 메인라인 Linux 커널에 먼저 배치되도록 하여 Android 기기에 더 많은 트리 외부 코드를 배치함으로써 발생하는 향후 기술 부채를 줄일 수 있습니다.

이번 주 Linux 배관공 회의에서 Kjos는 다음과 같이 말했습니다. "트리 외부 모듈은 우리 사용 사례에 정말 중요하기 때문에 우리는 항상 일련의 내보내기와 다른 항목 또는 추가 항목이 있을 것으로 기대합니다. 그러나 이 전체 프로젝트는 가능한 한 많은 트리 외부 패치를 제거하고 가능한 한 많이 일치시키기 위해 노력하는 다년간의 프로젝트입니다. 상류." Google은 2022년 말까지 기존 기능을 업스트림하고 공급업체 변경 사항을 격리하기 위한 작업을 완료하는 것을 목표로 하고 있습니다. 2023년부터는 이러한 문제를 피하기 위해 '업스트림 우선' 개발 모델을 채택할 계획입니다. 미래.