R. N. M. Watson, J. Anderson, K. Kennaway, and B. Laurie, “Capsicum: practical capabilities for UNIX,” p. 17.
개요
Capability Model을 Unix에 적용시킨 논문이다. Unix file descriptor을 확장 시켜서, Capability란 요소로써, 접근하도록 하였다. cap_enter라는 시스템콜을 사용하면, 그 후에 작용하는 모든 FD들이 Capability들을 따라가도록 하였다. 허용된 capability를 가지는 FD만이 fget(커널 internal 함수로써 fd -> struct file을 책임짐)에서 검사토록 하여서, 사용할 수 있도록 하였다. cap_enter을 사용하면 capability mode로 들어가게 되는데, 이 모드에서는 global namespace (PID나 File system ...)에 접근하는 것이 금지되며, 오직 process가 지니고 있는 Capable한 Object에만 접근 가능하다. 또한 이모드에서는 System call에 접근하는 것도 제한되는데, 이는 몇몇 시스템콜은 Global namespace에 대한 접근이 필요하기 때문이다.
Libcapsicum
Runtime environment로써 Capsicum을 좀더 효과적으로 사용할 수 있도록 해주는 library이다. cap_enter이외에도, cap_enter에서 허용하지않은 FD를 정리하고 Sanbox와 Host Process간의 Message passing (IPC)API를 제공하는 등의 중간 역활을 수행하고 있다.