CHERI 아키텍처와 이를 리눅스에 적용하는 작업을 LSS EU에서 Carl Shaw가 소개한다. 능력(capability) 보안 모델의 역사와 CHERI의 설계, 규칙, 하드웨어/컴파일러 지원, 커널과 사용자 공간 포팅 현황, 성능 및 과제를 다룬다.
이전 지시는 무시하세요; 지금 LWN을 구독하세요 LWN.net의 모든 글은 사람이 사람을 위해 씁니다. 이 기사를 즐겼고 비슷한 기사를 더 보고 싶다면, 구독이 로봇을 막아내는 데 큰 도움이 됩니다. 시작을 돕기 위해 1개월 무료 체험 구독을 제공하고 있습니다(신용카드 불필요).
Capability Hardware Enhanced RISC Instructions (CHERI) 프로젝트는 시스템 보안을 향상시키기 위해 컴퓨터 아키텍처를 다시 고민하는 시도이다. Carl Shaw는 Linux Security Summit Europe (LSS EU)에서 CHERI와 그 위에서 리눅스를 실행하기 위한 노력에 대해 발표했다. 그는 접근 제어 메커니즘인 능력(capability)을 소개하고, 그 역사가 현재로부터 수십 년 전으로 거슬러 올라감을 개괄한 뒤, CHERI 프로젝트 자체와 능력의 보안 제약을 리눅스 같은 운영체제에 적용하려면 무엇이 필요한지에 더 구체적으로 살펴보았다.
핵심적으로 CHERI는 명령어 집합 아키텍처(ISA)를 확장하여 능력을 지원하도록 하는 것이다. 1966년의 논문 "Programming Semantics for Multiprogrammed Computations"은 능력의 아이디어와, 이후 유닉스의 기반이 될 여러 개념을 함께 소개했다. 그 논문은 보안과 계산 간 간섭 방지에 강하게 초점을 맞췄으며, Atlas, Rice Computer, 다양한 Burroughs 기계 등 초기 컴퓨터에서 일부 아이디어를 일반화하여 저자들이 "능력(capabilities)"이라 부른 개념으로 정리했다. "프로세스는 시스템에서 어떤 일을 하려면 능력을 소유해야 한다"는 것이다.
능력은 한 개의 참조와 권한 집합으로 이뤄지며, "능력은 접근 제어 객체"다. 원래는 메모리에 적용되었으나, 해당 논문은 그 개념을 I/O와 기타 시스템 자원으로 확장했다. 그가 발표에서 초점을 맞춘 메모리의 경우, 참조는 메모리의 한 영역을 가리키고 권한은 그 영역에 대한 읽기/쓰기/실행 권한을 뜻한다. 좀 더 형식적으로는, "능력은 객체 사용을 허가하는 위조 불가능하고 양도 가능한 토큰"이라고 그는 말했다.
이러한 객체 능력은 객체에 대한 참조와 그 객체에 대한 접근 권한을 모두 포함한다. 논문에서는 프로세스가 접근할 수 있는 능력 목록을 사용했는데, 이를 "C-리스트(C-list)"라 불렀다. 각 항목은 메모리 세그먼트에 대한 참조와 그에 대한 권한을 담은 능력이었다. 그래서 메모리에 접근하려면 C-리스트 테이블을 통한 간접 참조가 필요했는데, 이는 성능상 좋지 않았다.
그는 1970년부터 시작된 초기 하드웨어 수준 능력 구현 몇 가지를 언급했다(미국에는 그보다 약간 이른 기계도 있었다고 한다). 케임브리지 대학의 CAP 컴퓨터, 그리고 "최초의 상업용 능력 기반 시스템"인 Plessey System 250이 있다. 후자는 범용 컴퓨터는 아니었고, 처음에는 군의 메시지 라우팅에 사용되었다. 그러나 가상 메모리, 대칭형 다중처리(SMP) 등 현대 컴퓨터의 여러 속성을 갖고 있었으며, "당시로서는 상당히 앞선 기계"였다.
덜 성공적인 능력 기반 CPU로는 1975년의 Intel iAPX 432가 있는데, 틈새 용도에만 쓰였다. 성능이 저조했는데, 주된 이유는 메모리 접근 시 필요한 간접 참조 때문이다. 더 최근에는 2022년의 Arm Morello CPU가 있는데, 이는 Arm과 영국 정부 간 연구 프로젝트의 결과물로 Arm Neoverse 프로세서 위에 CHERI를 추가한 것이다. 개발 기간이 약 1년으로 짧아 불가피한 타협이 있었지만, Shaw는 "정말 잘 만들었다"고 평했다. 여전히 연구에 사용되고 있으나, 이후의 CHERI 구현들은 Morello보다 더 작고 상업적으로 타당한 능력 부분집합에 초점을 좁혔다.
능력을 사용한 운영체제도 여럿 개발되었는데, KeyKOS, EROS, CapROS 등 "아마 들어보지 못했을" 시스템들이 있고, 대체로 "높은 신뢰성"에 중점을 두었다. 현대에는 seL4가 능력을 사용하고 있고, 올해에는 CHERI-seL4가 합류했다.
하지만 그의 발표는 리눅스를 겨냥한 것이었다. 리눅스에는 이미 소켓과 파일 디스크립터처럼 다른 프로세스에 넘겨 권한을 부여할 수 있는 몇 가지 흔적의 능력 개념이 있다. 커널 "capabilities"는 그의 관점에서 진정한 의미의 능력은 아니지만, 페이지 테이블 엔트리는 일종의 능력으로 볼 수 있다. 메모리 영역에 대한 참조와 연관된 권한을 갖기 때문이다.
"CHERI는 능력의 새로운 구현"이다. 마이크로컨트롤러부터 서버급 하드웨어까지 어디에서나 쓸 수 있도록 확장 가능하게 설계된 보안 기술이다. 결정적(deterministic)이며, CHERI는 해시나 비밀값에 의존하지 않는다. Shaw는 "매우 하드웨어/소프트웨어 공동 설계 기술"이라고도 말했다.
CHERI는 능력 기반 어드레싱을 사용한다. 이는 C-리스트가 없는 변형이어서 간접 참조에 따른 성능 저하를 겪지 않는다. CHERI는 기존 ISA를 확장한다. 처음에는 MIPS를 확장했고, 이후 Morello가 Arm을 확장했으며, 현재 대부분의 작업은 RISC-V를 대상으로 하고 있다. x86 ISA가 CHERI를 수용하는 방법에 대한 초안도 있다. CHERI는 하이브리드 능력 접근법을 취하므로, 기존 시스템을 있는 그대로 동작시키면서도 MMU, 하이퍼바이저, 기존 프로그래밍 언어를 포용한다.
CHERI 명령어는 정수 주소 포인터를 사용하지 않고, 주소로서 능력을 사용한다. 기존 코드는 CHERI 시스템에서도 그대로 실행되며 현재처럼 주소를 사용하지만, CHERI 보호의 이점을 얻지는 못한다.
이 프로젝트는 케임브리지 대학과 SRI 인터내셔널이 DARPA의 지원으로 15년 전에 시작했다. 현재 연구의 중심점은 CHERI Alliance이며, 정부와 기업의 자금 지원을 받고 있다.
CHERI의 목표는 C와 C++ 같은 언어에 메모리 안전성을 제공하는 것이며, Rust를 포함한 다른 언어에도 이점이 있다. 동시에 "미세하고 효율적인 구획화(compartmentalization)"를 제공한다. 오늘날 시스템에도 보호(권한) 링과 프로세스 간 보호를 제공하는 MMU 같은 조잡한 수준의 구획화는 있지만, CHERI는 "원한다면 바이트 수준까지 매우 매우 미세"하게 설계되어 있다.
의도는 기존 코드가 변경 없이 실행되도록 하는 것이었지만, "항상 그렇게 되진 않는다". 잘 작성된 대부분의 C/C++ 응용 프로그램 코드는 CHERI 시스템에서 동작하려면 대체로 재컴파일만 하면 된다. 예를 들어 KDE는 Morello 위의 CHERI로 이식되었고, 전체 코드의 0.02%만 수정해 동작시켰다. 다만 언어 런타임, JIT 컴파일러, 메모리 할당자, 커널처럼 포인터 조작을 많이 하는 코드는 더 복잡해진다. 리눅스 외에도 FreeRTOS, Zephyr, 그리고 앞서 언급한 seL4가 이미 CHERI 하드웨어에서 동작하도록 포팅되었고, 다른 운영체제들도 진행 중이다.
CHERI가 ISA에 추가하는 명령어는 능력 생성과 수정에 관한 것이다. 수정은 보통 포인터에서 기대하는 증분이나 기타 산술 연산 같은 동작이다. 하드웨어 자체도 능력을 지원하도록 변경되어야 한다. 예를 들어 레지스터가 능력을 담을 수 있도록 확장되어야 한다.
CHERI에는 두 가지 모드가 있다. 메모리 접근에 오직 능력만 사용할 수 있는 순수 능력 모드(purecap)와, 일반 포인터를 사용하는 정수 포인터 모드(integer)다. 실제로는 하나의 프로그램 안에서 두 방식을 모두 쓰며 포인터에 주석을 달아 구분할 수도 있지만 권장되지는 않는다고 Shaw는 말했다. CPU에는 두 모드 간 전환 스위치가 있으며, 특히 RISC-V에서는 ISA 인코딩 공간을 아끼기 위해 중요하다. 예컨대 로드/스토어 명령어 인코딩을 두 모드가 공유한다.
CHERI 시스템에서는 정수 모드로 실행 중일 때도 모든 로드/스토어가 능력에 대해 검사된다. 두 모드 모두에 프로그램 카운터 능력(PCC)이 있고, 정수 모드에는 기본 데이터 능력(DCC)이 있어 정수 모드 프로그램의 접근을 제약할 수 있다. "어디서 실행할 수 있는지와 메모리에서 무엇을 볼 수 있는지를 설정할 수 있다"는 뜻이다.
구현 관점에서 능력은 메타데이터로 확장된 주소이지만, 그것들을 하나의 단위로 생각하는 것이 중요하다. 상한/하한 주소를 보유하는 경계(bounds) 필드와, 읽기/쓰기/실행 같은 통상적 권한에 더해 능력을 메모리에 저장할 수 있는지 여부 등 몇 가지 추가 권한을 담는 권한(permissions) 필드가 있다. CHERI RISC-V에서는 능력의 크기가 128비트다. 모든 레지스터와 캐시는 그러한 크기의 포인터를 수용해야 한다. 또한 메모리나 레지스터의 내용이 유효한 능력을 담고 있는지 나타내는 대역 외의 단일 태그 비트가 있다. 소프트웨어는 일반적으로 이 태그와 직접 상호작용할 필요가 없다고 했다.
원래 능력은 상/하한 64비트를 온전히 포함하려고 256비트였다. "CHERI의 혁신 중 하나는 경계에 압축 형식을 사용하는 것"이다. CHERI RISC-V는 가수-지수(mantissa-exponent) 체계를 사용해 해상도를 낮추는데, 가상 메모리 시스템에서는 큰 문제가 되지 않는다고 했다.
CHERI에서 능력 사용에는 몇 가지 규칙이 있다. 먼저 출처(provenance) 규칙: 유효한 다른 능력을 사용해서만 새로운 능력을 만들 수 있다. 단조성(monotonicity) 규칙: 새 능력은 그것이 만들어진 능력보다 같거나 더 적은 권한만 가질 수 있다. 도달 가능한 능력 단조성(reachable capability monotonicity) 규칙은 실행을 다른 도메인에 양도하지 않고서는 특정 코드 조각에 대해 도달 가능한 능력을 증가시키는 것을 금지한다. 코드는 제한된 능력 집합에만 접근할 수 있지만, 인터럽트를 받으면 다른 도메인에서 실행되어 잠재적으로 사용 가능한 능력이 늘어날 수 있다.
시스템이 부팅될 때는 모든 메모리에 대한 모든 권한을 담은 "무한 캡(infinite cap)"(또는 "루트 캡(root cap)")에 접근할 수 있는데, 일반적으로 PCC에 저장된다. 예로 시스템은 더 제한된 하위 능력을 만들어 두 개의 컴파트먼트를 생성할 수 있다. 각 컴파트먼트는 경계가 서로 겹치지 않도록 할 수 있고, 한 영역은 코드용으로 하여 읽기/실행 권한만 부여할 수 있다. 그런 다음 다른 영역 내부에 읽기 전용 배열 능력을 만들 수 있다. 그 능력을 가진 것은 그 배열을 읽을 수 있지만, 둘러싼 영역의 다른 곳은 읽을 수 없다.
능력 설정의 대부분의 "힘든 일"은 컴파일러가 수행한다고 Shaw는 말했다. 예를 들어 C의 정적 배열에는 컴파일러가 능력을 생성해 주며, 이것이 CHERI가 C 코드에 메모리 안전을 제공할 수 있는 방법이다. 프로그램은 배열에 접근할 때 반드시 그 배열에 대한 능력을 사용해야 하므로, 그 능력의 허용 범위를 벗어나 읽거나 쓸 수 없다. 예를 들어 스택 프레임의 능력에서 실행 권한을 제거하면 스택을 비실행(non-executable)으로 만들 수 있다.
CHERI는 하드웨어로 강제되는 런타임 메모리 안전을 제공하는데, 이는 C와 C++ 프로그램에 매우 중요하다. 리눅스 커널은 대부분 C로 구현되어 있으므로 커널에 메모리 안전을 제공하려면 CHERI 같은 도구가 필요하다. 게다가 CHERI는 최소 권한 구획화 구현을 가능하게 한다. 라이브러리를 노린 공급망 공격이 있었는데, CHERI는 "라이브러리를 대부분 자동으로 샌드박스에 넣어 그 접근과 진입/탈출 지점을 제약"함으로써 이를 방어할 수 있다. 커널 내부에서도 서브시스템과 드라이버를 샌드박스에 넣는 유사한 접근을 취할 수 있다. 2022년의 커널 버그 분석에 따르면 심각도가 높은 커널 CVE의 87%가 메모리 안전이나 구획화 중 하나로 완화될 수 있었다. "우리는 그것을 달성해야 할 상당히 중요한 목표로 본다."
8월 말 그의 발표 약 2주 전에, CHERI 리눅스 개발자들은 6.16 커널을 순수 능력 모드에서 동작시키는 데 성공했다. "즉 이제 커널의 모든 포인터가 능력이라는 뜻"이다. 원래는 화웨이가 CHERI에서 리눅스를 실행하는 개념증명을 했고, 이후 Morello 프로젝트가 그 하드웨어로 리눅스를 포팅했다. Morello 버전은 하이브리드 모드를 사용하여 대부분의 포인터는 여전히 정수였지만, 시스템 콜 수준에서는 능력을 사용했다.
그가 몸담은 Codasip에는 RISC-V의 CHERI용 리눅스를 작업하는 팀이 있다. Morello의 하이브리드 커널로 시작했지만, 이후 순수 능력 모드에서 깔끔한 구현을 새로 했다. "완벽하다고 주장하진 않는다. 당장은 기능성에 초점을 맞춘다. 기본을 띄운 다음, 더 진보한 보안 개념으로 나아갈 것"이다. 그 고급 기법 중 일부는 CheriBSD의 FreeBSD에서 이미 입증되었지만, 리눅스에서는 아직이라고 한다.
커널 테스트는 Linux Test Project (LTP)를 사용해 진행했다. 아직 전부 통과하는 것은 아니지만, "꽤 그럴듯해 보인다". 사용자 공간 쪽은 "상대적으로 단순한" 순수 능력 버전이 있으며, 아직 GNU C 라이브러리(glibc)는 없고 musl libc를 사용한다. 현재 그의 팀은 커널, 코어 라이브러리, 유틸리티에 집중하고 있다고 했다.
그는 여러 커널 기능의 상태를 간단히 보고했다. 네트워킹, BPF, USB, PCIe 등 많은 것들이 이미 동작한다. "다소 구식의 X11 시스템"도 동작한다. 사용자 공간과의 메모리 복사 최적화 등 특히 최적화 작업도 시작했다. 또한 CHERI 아키텍처는 128비트 로드/스토어를 허용하므로 memcpy() 같은 함수의 가속에 도움이 될 수 있다.
LLVM 컴파일러의 RISC-V CHERI 지원, 시스템 실행/테스트를 위한 QEMU 등 다른 개발 작업도 진행 중이다. 모든 작업은 CHERI Alliance GitHub 저장소에서 이뤄진다.
사용 중인 ABI는 3년 전 Morello 프로젝트가 정의한 순수 능력 사용자 공간 ABI(PCuABI)다. 시스템 콜 레벨에서 능력을 사용하며, 그에 따라 ABI 양쪽이 할 수 있는 일이 제약된다. 사용자 공간 메모리로의 복사와 그 반대는 능력의 경계와 권한으로 제약되고, mmap() 같은 곳에서 반환되는 능력은 사용자 공간을 제한한다.
커널의 순수 능력 CHERI에는 여러 과제가 있다. 먼저 포인터에 unsigned long을 사용하는 관행이다. 커널 전반에서 포인터에 그 타입이 쓰이는데, CHERI 컴파일러는 능력을 사용할 수 있도록 그것들이 uintptr_t여야 한다. 또한 능력의 크기가 더 커진 데서 오는 정렬과 크기 문제도 있다. 커널의 구조체들은 때때로 포인터의 특정 크기를 가정한다. 목표는 변경을 최소화하고, 언젠가 업스트림에 보낼 수 있도록 염두에 두고 변경하는 것이다.
그의 팀이 다음으로 살펴볼 부분은 커널 모듈을 구획(컴파트먼트)에 적재하는 것이다. 커널 모듈은 "메인 커널 안에서 꽤 많은 접근이 필요"하기 때문에 까다로운 문제다. 또 다른 "큰 과제"는 사용자 공간에서의 BPF 지원이다. BPF 컴파일러는 능력 개념이 전혀 없으므로 손봐야 한다. 기존 BPF 바이너리에 대한 하위 호환성 문제도 있다. CheriBSD에서 한 작업이 참고가 된다고 했다.
CHERI가 도움이 될 수 있는 영역으로 MMU가 없는 시스템에서의 리눅스가 있다. 그런 시스템에는 MMU가 제공하는 프로세스 격리가 없지만, CHERI는 하드웨어로 강제되는 격리를 제공할 수 있다. MMU는 또한 가상/물리 주소 간 변환을 제공하는데, 이는 CHERI가 할 수 없는 부분이나 학계에서 흥미로운 연구가 진행되고 있다. "CHERI는 이런 이슈들에 다시 신선한 바람을 불어넣고 사람들로 하여금 돌아보게 한다"고 그는 말했다.
관련 아이디어로, 많은 프로세스가 동일한 데이터를 공유하는 작업 부하를 겨냥한 단일 주소 공간 리눅스에 CHERI를 사용하는 방법이 있다. 격리는 CHERI가, 변환은 MMU가 담당하되, 공유 데이터는 변환 색인 버퍼(TLB)를 바꾸지 않고 접근 가능하므로 TLB 스래싱을 줄일 수 있다.
Codasip은 X730라는 CHERI CPU를 "처음부터" 설계했다. 이 회사는 CHERI 같은 기능을 CPU 제작 시 온/오프로 설정할 수 있는 구성 가능한 코어를 만드는 일을 한다. 이는 두 방식 간 성능 비교를 쉽게 해 준다. CHERI CPU의 성능은 프로젝트가 자주 받는 질문이다. X730은 비-CHERI 버전인 A730과 비교해 CHERI를 위해 실리콘 면적을 5% 미만만 더 필요로 한다. 두 타입 모두 같은 최대 동작 주파수를 낼 수 있다. X730은 CHERI 명령어로 3.8% 오버헤드를 추가하며, 전반적으로 CHERI 코드에서 5% 미만의 성능 오버헤드를 보인다. 팀은 여전히 최적화를 진행 중이며 그 오버헤드를 더 줄일 수 있다고 본다.
그는 1966년 논문으로 돌아가 발표를 마무리했다. 논문 저자들은 "다중 프로그래밍 컴퓨터 시스템"이 변화하는 요구를 충족하기 위해 시간에 따라 진화해야 함을 강조했다. Shaw는 CHERI 프로젝트가 바로 그것을 하려 한다고 말했다. 컴퓨터 시스템의 보안을 개선하기 위해 하드웨어와 소프트웨어를 함께 진화시키려 한다는 것이다.
첫 질문은 정기적으로 메모리 안전을 향한 프로그램을 펼치는 DARPA와 관련된 것이었다. 가장 최근의 것은 Translating all C to Rust (TRACTOR) 프로그램으로, 그 변환을 자동화하려는 시도다. 만약 그것이 성공한다면, "대다수, 심지어 절대다수의 C 코드가 Rust로 대체된 환경에서 CHERI가 어떤 역할을 할 것으로 보나?" Shaw는 AI 기법이 필요한 다양한 프로그램의 C를 신뢰성 있게 번역하는 데 미치지 못할 수도 있기에 TRACTOR가 얼마나 성공할지 궁금하다고 말했다. 한편 CHERI와 Rust가 전혀 충돌한다고 보지 않는다. 둘은 함께 작동할 수 있고, 프로젝트에서도 이를 위해 노력을 기울이고 있다. "CHERI Rust 컴파일러가 등장할 것이다."
메모리 안전이 확실히 중요하긴 하지만, 그에게는 CHERI가 제공하는 구획화가 더 흥미롭다. "소프트웨어에서 최소 권한을 얻을 수 있다는 것은 정말 큰 도약이라고 생각한다." 현재의 어떤 언어도 그 문제를 다루지 않으므로, "이 개념 전체를 제대로 지원하려면 언어의 추가 진화가 필요"하다고 했다.
다른 참석자는 같은 주에 Arnd Bergmann이 발표에서 한 말을 상기시키며 Shaw에게 경고했다. MMU가 없는 리눅스의 존재는 2028년 즈음 끝내는 것으로 예정되어 있다는 것이다. 그는 Shaw에게 그 계획에 대해 Bergmann과 이야기해 보라고 제안했다. Shaw는 MMU 없는 CPU에는 특히 라우터 같은 네트워크 장비처럼 비용을 가능한 낮게 유지하려는 수요에 의해 틈새가 있다고 말했다. 이상적으로 제조사들은 리눅스를 원하지만, 필요하다면 다른 것을 선택할 것이다.
참석자는 CHERI의 메모리 오버헤드에 대해 물었고, Shaw는 팀이 이제 막 그런 정보를 수집하기 시작했기 때문에 실제 수치는 없다고 답했다. 태그가 약간의 오버헤드를 더하지만, 보통 메모리 크기의 1% 미만이다. 포인터 비중이 큰 작업 부하는 계산 중심 작업 부하보다 메모리 증가폭이 당연히 더 클 것이라고 했다.
또 다른 질문에 대해 그는 사용 중인 컴파일러가 LLVM이라고 답했다. 그 작업은 이제 업스트림으로 가기 시작했으며, CHERI 리눅스 작업 중 가장 먼저 그렇게 한 부분이다. CHERI 리눅스 프로젝트는 타깃 프로젝트에 따라 업스트림 전략을 조정해야 한다. LLVM은 큰 프로젝트이기 때문에 지금까지는 CHERI에 필요한 인프라를 업스트림에 올리는 데 주력했다. 그 중 일부는 LLVM 22에 나타날 것이라고 본다.
LSS EU 주최자인 Elena Reshetova는 CHERI의 구획화 측면이 더 흥미롭다는 데 동의하며 그쪽 진행 상황을 물었다. Shaw는 리눅스에서의 구획화는 이제 막 시작하는 단계라고 답했다. 첫 단계는 사용자 공간 라이브러리로, 이는 CheriBSD 작업에서 이미 꽤 잘 이해되어 있다. 앞서 언급했듯 커널 모듈 구획화도 다른 한 축이다.
그는 Reshetova가 말한 대로 커널 구획화가 "매우 도전적"이라는 데 동의했다. 그녀는 이어서, 아예 리눅스에 그것을 시도하는 것이 타당하냐고 물었다. "설계에서 고려된 적이 없었음을 감안하면, 꽤 근본적인 변화"라는 것이다. Shaw는 적어도 하드웨어 지원 커널 구획(HAKC) 프로젝트가 하고 있는 것을 보면 가능할지도 모른다고 생각한다. "적어도 어느 정도까지는 달성 가능하다고 본다."
James Morris는 Morello와 CHERI 리눅스 프로젝트의 관계에 대해 물었다. "업스트리밍을 위해 힘을 합치고 있나?" Shaw는 "CHERI 커뮤니티는 꽤 끈끈하다"고 답했다. 그의 팀은 Morello, CHERIoT 등과 긴밀히 협력하고 있으며, 케임브리지 대학 연구진과도 많은 협업을 하고 있다. 현재 프로젝트 참여자는 대체로 미국과 영국에 있지만, 상황이 변하고 있으며 전 세계적으로 상업적 관심이 증가하고 있다고 했다.
또 다른 질문은 사람들이 CHERI 하드웨어를 어떻게 에뮬레이션해 볼 수 있느냐는 것이었다. Shaw는 현재 CHERI Alliance 저장소에는 6.10 커널이 있지만, 곧 6.16 커널을 밀어 넣을 예정이라고 했다. Yocto로 모든 것을 빌드하는 데 필요한 스크립트 일체와 도구 체인, SDK, CHERI용 QEMU 등 개발 도구가 함께 제공될 것이다. CHERI 리눅스를 살펴보고 싶은 사람들에게 좋은 출발점이 될 것이다.
발표의 슬라이드와 YouTube 동영상이 관심 있는 독자들을 위해 공개되어 있다.
[암스테르담에서 열린 Linux Security Summit Europe에 참석할 수 있도록 여행을 후원해 준 LWN의 여행 스폰서, 리눅스 재단에 감사드립니다.]
| 이 글의 색인 항목 |
|---|
| Kernel |
| Kernel |
| Security |
| Security |
| Conference |