LinSec was developed in a modular fashion. Three main modules were identified:
Once implemented, each of the modules was thoroughly tested through real time use and behavior monitoring. Furthermore, each of the modules was built as a sequence of standalone increments. Effort was made to make increments as fine grained as possible to aid tracing of possible bugs through kernel. Acceptance criteria for the increments was that they could be configured in a way which would result in the modified Linux kernel produce the traditional behavior. Only when the entire modules were built was it possible to test the desired LinSec behavior.