Microsoft ports .NET to Linux and Macintosh and open-sources the entire stack.