리눅스 커널에서 Rust와 C의 상호 운용성: 메모리, 자기 참조 구조체, 락

2025-07-19

이 글에서는 리눅스 커널 내에서 Rust와 C 코드를 상호 작용하는 복잡한 부분을 자세히 살펴봅니다. 메모리 할당(Kmalloc, Vmalloc, KVmalloc 및 해당 Box와 Vec 사용법), 자기 참조 구조체 처리(Pin 및 pin_init! 매크로), 락 메커니즘(Mutex, LockedBy, GlobalLockedBy)에 중점을 둡니다. Rust는 타입 시스템과 수명 주기 관리를 통해 커널 코드의 안전성을 높이고 런타임 오류를 줄입니다.