현대 하드웨어 시대에 마이크로커널을 다시 검토해야 할지도 모름

4 hours ago 6

과거 높은 오버헤드로 실용성이 떨어졌던 마이크로커널은 오늘날 보편화된 IOMMU와 공유 메모리 덕분에 다시 현실적인 선택지가 될 수 있음 드라이버와 서브시스템을 사용자 공간에 격리하면 결함이나 공격의 영향 범위를 제한해 보안·신뢰성·모듈성을 높일 수 있음 1980~90년대에는 사용자 공간 프로세스가 장치에 직접 접근할 수 없어 디스크 읽기 같은 작업마다 시스템 호출과 문맥 전환, 잠금, 메모리 복사가 뒤따랐음 IOMMU와 공유 명령 큐를 활용하면 정상 경로에서 문맥 전환과 주소 공간 간 복사, 잠금 없이 비동기 IPC와 장치 접근을 처리할 수 있음 Xen, FreeBSD, Linux DRM 같은 기존 구성 요소를 활용할 수 있어 하이퍼바이저와 시스템 서버를 처음부터 새로 만드는 부담도 크지 않음 마이크로커널의 구조와 격리 효과 마이크로커널은 스케줄링, I/O 장치 접근 관리, 프로세스 간 통신(IPC)을 제외한 기능을 사용자 공간에서 실행하는 커널 구조임 서브시스템 격리는 세 가지 이점을 제공함 보안: 드라이버 하나의 취약점이 공격자에게 전체 시스템이 아닌 해당 서브시스템이나 드라이버의 접근 권한만 줄 수 있음 신뢰성: 한 서브시스템의 충돌이 시스템 전체가 아니라 해당 부분에만 영향을 미침 모듈성: Linux 커널 팀이 모든 하드웨어 드라이버를 병합하고 각 칩의 내부 동작까지 검토해야 하는 부담을 덜 수 있음 Windows가 마이크로커널 시스템이었다면 CrowdStrike 버그는 일부 IT 보안 담당자의 원격 측정 데이터 수집만 중단시키는 데 그쳤을 수 있음 과거의 성능 한계와 IOMMU의 해법 과거 마이크로커널에서는 사용자 공간 프로세스가 특정 장치에 직접 접근할 수 없어 작업마다 시스템 호출과 문맥 전환이 필요했고, 비싼 잠금과 메모리 복사까지 뒤따랐음 Mach는 성능 문제 때문에 사용자 공간 프로세스를 점차 커널 안으로 옮겼고, 결국 일반적인 모놀리식 커널에 가까워짐 오늘날 PC에는 약 10년간 IOMMU가 표준적으로 탑재됐으며, 공유 메모리와 함께 사용하면 코어가 충분한 정상 경로에서 문맥 전환을 완전히 제거할 수 있음 약간의 지연 시간을 받아들이면 전체적으로도 문맥 전환을 거의 없앨 수 있음 가상화 기술 기반 스케줄러는 Xen 하이퍼바이저와 유사한 형태로 구성할 수 있음 I/O 장치 접근은 IOMMU 하드웨어가 관리함 IPC는 프로세스 사이에 공유 버퍼를 할당하고 정수 원자적 compare-and-sw...

Read Entire Article