The kernel can be extended by dynamic loading of modules which implement interfaces that represent domains. These domains are defined by Modula-3 INTERFACE. All kernel extensions are written in Modula-3 safe subset with metalanguage constructs and type safecasting system. The system also issued a special run-time extension compiler.
^Bershad, Brian N.; Savage, Stefan; Pardyak, Przemys; Sirer, Emin Gün; Fiuczynski, Marc E.; Becker, David; Chambers, Craig; Eggers, Susan (1995). "Extensibility, safety and performance in the SPIN operating system". Proceedings of the 15th ACM Symposium on Operating System Principles (SOSP-15): 267–284.
^Bershad, Brian N.; Chambers, Craig; Eggers, Susan; Maeda, Chris; Mcnamee, Dylan; Pardyak, Przemyslaw; Savage, Stefan; Sirer, Emin Gün (1994). "SPIN: an extensible microkernel for application-specific operating system services". Proceedings of the 6th ACM SIGOPS European Workshop: Matching Operating Systems to Application Needs: 68–71.
^Dion, David (1996). "A User-Level Unix Server for the SPIN Operating System". University of Washington Technical Report UW-CSE-96-11-01.