Thanks for the reply.
In essence, yes, my objective is to use the existing interop story so that the cost of porting is lower; I have an application which defines COM interfaces for some of the native components, this interface handles type safety and marshalling concerns so that I don't have to code all this stuff by hand.
I realize that when I go from Windows to Linux to Mac I have a native code portability problem, however COM provides a very nice way to describe interfaces and the marshaling rules are fairly straightforward. It would be awesome to be able to define IComInterface (with some methods) and be able to implement that in C# and simply hand that down to my native layer and have this all work. I don't really need all of COM, just the interop between native and managed code would be welcome.
Speaking of native code, what most (ok, some) of us coming from the Windows side need is an easy, lightweight platform abstraction layer to help ease the porting problem; looking at the source, this sure seems like what the PAL is intended to provide the CLR, I'm wondering how easy it would be to tease the PAL apart from the rest of the CLR?