At the moment, Nidus is nothing more than a figment of my imagination. And it will likely remain that way for quite some time.

Beyond that, it's an idea for an operating system kernel based on the preceps of COM (The Component Object Model) -- the kernel would be divided into multiple components that would communicate with each other through binary interfaces (in the form of tables of function pointers).

The uses of this interface abstraction are clear -- mostly in the form of separation of implementation from interfaces and locality. For example, since each portion of the kernel would be "separated" from the other ports by interfaces, if the implementation of one part changes, the others should continue to use the new implementation just fine -- without requiring a recompile of the entire system. Locality could also be "hidden" (via proxys and stubs), to the point that a portion could be in user-space or kernel-space, depending on configuration.

Why would I want to do this? Why not use an existing kernel? Why try at all? These are all interesting questions, and the answer is "because I want to." Unfortunately, that could change. From another viewpoint, though, I'll need to write significant portions of an operating system kernel from one of my future CS classes, so why not get started early? Or, at least, use these thoughts in the architecture/design of the CS assignment.

As for where the name "Nidus" came from, you might want to check here.