This paper addresses software dependency by presenting a multi-kernel-based software model and introducing the concept of directional coupling (d-coupling). A six-level d-coupling model to represent the dependencies of a kernel module on other modules in a multi-kernel-based software system is defined. This model can be used to represent the dependencies induced by all types of software coupling. The dependency model is applied to evaluate Darwin, a dual-kernel-based operating system. The study shows that (1) few strong depend¬encies exist between Darwin kernel modules and other modules; (2) from version XNU-517 to XNU-792, Darwin has been restructured to reduce the number of high level dependent modules induced by high level global variables to mitigate the effect of the increase of the dependency due to the growth of the kernel size and the product size.