.Net 本身,作为大多数微软软件,100%依赖于平台.它只能工作在微软提供的环境(如Windows和它的不同口味).没有其他任何官方 .Net(Mac,Linux等)
但...
一些平台确实尝试开发替代品,模拟器等,以尝试运行MS软件.正如尼克所说,Mono是一个支持.Net代码在Linux下运行的Linux项目.
但是Mono 不是 .Net.它是一个不同的软件,由不同的人编写,试图与.Net 100%兼容(它实际上该死的很棒).但它不是由Microsoft提供或支持的.
和单,是一个开源的,免费sofware,是 plataform独立的,因为它可以移植到任何plataform(目前,它已经支持多种,不但Linux的)
所以,从技术上讲,正确的答案是:
微软提供的.Net框架根本不是独立的.您无法在Linux或Mac中安装它
但Mono是一个独立的,兼容的.Net实现,支持并可用于Linux和Mac以及其他几种平台的安装.并且您使用它来运行用.Net编写的代码
.Net 可以被视为两个独立的部分。一种是ECMA 标准化 CLI,另一种是CLR。CLR 是 Microsoft 对 CLI 的实现。
CLI 可以在许多设备上执行,例如 Windows(x86、x64、ia64 以及现在的 ARM)、XBox、Zune、手机甚至嵌入式设备(小芯片)。Mono / Moonlight是 CLI 的实现,甚至是 CLR 的一部分,由 Microsoft 通过 Novell 提供部分资助。Microsoft 支持这项工作并发布源代码来提供帮助。通过 Mono,您可以访问大多数操作系统和 CPU 类型。
还有编译器可以将.Net代码直接编译为CPU可以直接执行的平台无关代码。如果您想用 C# 编写自己的操作系统,那就太好了。(我不记得名字了,但如果有兴趣我可以谷歌一些链接。)
CLI 被设计为独立于平台和语言。通过各种实现,它可以在大多数操作系统和 CPU 上运行良好。实际上,这是否意味着它支持诸如区分大小写/不区分大小写的变量等语言功能(+更多),并且它具有与大多数 CPU 兼容的指令集(CLI 机器代码类似于大多数 CPU 提供的指令)。
.Net 的实现(概述以回答您的问题):