阅读原文 .Net 无需操作系统直接运行
2008-11-01 09:20
225 查看
.NET三大家族(.Net Framework,.Net Compact Framework,.Net Micro Framework)中的.NET Micro Framework(简称.NET MF)可以不需要操作系统,直接在硬件上运行起来,而另外两个则离不开操作系统的支持。
视频:http://www.youtube.com/watch?v=id11Ilqvq4k&feature=related
http://www.youtube.com/watch?v=Msog8JskoDk&feature=related
就.NET Micro Framework来说,“它是微软公司基于.NET平台,主要针对硬件资源非常稀少、有限的嵌入式应用而设计的快速嵌入式开发技术。它针对传统的 SOC、MCU市场设计,可以运行在ARM7/ARM9之上,对于低端的ARM7处理器,可以不具备存储器管理单元(MMU),而存储器方面更是只要 300KB左右的容量即可运作。特别适合Windows Vista Sideshow、远程控制、智能家电、医疗电子、零售终端以及汽车电子等行业应用场景。并且用户使用统一的Visual Studio .NET平台和托管代码(C#)开发产品应用(包括设备驱动)显著的降低了厂商开发门槛,节约了大量开发时间和开发成本。”以上来自微软官方介绍,参考http://msdn2.microsoft.com/en-us/embedded/bb278106.aspx。
.NET MF面向的是CPU处理能力和存储能力极其有限的设备。虽然微软拥有Windows CE、Windows XP Embedded和.NET Compact Framework,可以完成绝大多数嵌入式开发,但对于更普遍的家用电器领域(如电视、手表、洗衣机等),这些平台还是显得太大了些。可以想象,给你的电冰箱装块硬盘是多么搞笑的事。而.NET MF的出现,则标志着微软又向百姓生活迈进了一步,让所有家电都“智能”起来,已经是一个不远的梦。因为所需要的仅仅是便宜的,ARM处理器和一些RAM、Flash存储器。
.NET MF是微软推出的嵌入式平台、专门用于处理能力和存储能力都更加有限的设备。既然微软已经拥有.NET Compact Framework(简称.NET CF),为什么还要再提供.NET MF呢?设备的限制是一个很重要的原因,.NET CF毕竟还是要求设备有比较强的处理和存储能力。两者重要的一个区别在于,.NET CF需要有Windows CE系列OS的支持才能得以运作,而.NET MF则提供了一个可引导的运行时环境。
在.NET MF中,操作系统倒成了可选的组成部分。
既然.NET MF是可引导的,那么它实际上也相当于一个带有运行时环境的操作系统。那么,它又和Windows CE、Windows XP Embedded操作系统有哪些区别呢?下面的表格对比了几种平台的区别。
Selecting An Embedded Platform .NET Micro FrameworkWindows CEWindows XPeExample DevicesSensor Nodes, Aux displays, Health Monitoring, Remote Controls, RoboticsGPS Handhelds, PDAs,
Automotive, Set Top BoxesThin Clients, ATMs, KiosksDevice FeaturesConnected, Small, Wearable, Graphical UIConnected, Graphical UI, Server, Browser, RAS, DirectXPCclass performance,
PC networkingFootprint250-500KB managed code
Full featured300KB+ without managed code
12MB with managed code40MB + Depending on featuresPowerVery low powerLow powerMains powerCPUARM7, ARM9, No MMUX86, MIPS, SH4, ARM,
with MMUX86Real-timeNot Real-timeHard Real-timeReal-time capable through 3rd party extensionsManaged vs. Native CodeManaged via .NET Micro Framework,
native code through interop only.Supports both,
managed code requires .NET Compact FrameworkSupports both, managed code
requires .NET Framework
从上表可以看出,无论是资源占用还是耗电,.NET MF都要优于另外两种OS。但是,我们也看到了,在实时性方面,.NET MF并不是一款实时的运行时环境。这可能需要我们注意的一个重要方面。
在工业应用中,实时性往往是评判一个嵌入式系统的重要因素,这就意味着,.NET MF并不适用于重要的控制领域。不过,一般工业用系统都不会面临硬件过分有限的困境,完全可以使用WinCE或XPe作为基础OS。
反观民用领域,嵌入式应用正在逐渐渗透人们的生活。而当面对普通消费者时,评判一个嵌入式系统的重要标准——AndersLiu认为——就应该是:低成本。这包括两个方面,一是低的造价(软硬件成本,价格),另外一方面就是易用(这可以理解为学习成本和时间成本)。毕竟老百姓买不起和机床一样价格的洗衣机,也不希望像操作机床那样操作微波炉。
因此,民用嵌入式设备往往通过较低的硬件配置来降低价格,并通过适量(通常比较少)的按键和显示内容来降低使用复杂度。而这一切,都是.NET MF得以大显身手的地方。
可以看出,微软关于.NET MF的定位还是相当明确的——面向民用低成本嵌入式市场。下图是流行过一阵的新闻图片,传闻Gates腕上的SmartWatch中安装的,就是.NET MF的原型。
下图给出了.NET MF的技术架构。相较于.NET Framework,.NET MF多出了CLR之下的PAL(平台适配层,Platform Adaptation Layer)和HAL(硬件适配层,Hardware Adaptation Layer,这两层使得.NET MF可以直接运行在硬件上,并提供基本的Timer、IO和内存管理等功能。而HAL也可以通过OS代替,在硬件资源相对充裕的情况下,这可以降低.NET MF的设计复杂度,并提供更多功能
视频:http://www.youtube.com/watch?v=id11Ilqvq4k&feature=related
http://www.youtube.com/watch?v=Msog8JskoDk&feature=related
就.NET Micro Framework来说,“它是微软公司基于.NET平台,主要针对硬件资源非常稀少、有限的嵌入式应用而设计的快速嵌入式开发技术。它针对传统的 SOC、MCU市场设计,可以运行在ARM7/ARM9之上,对于低端的ARM7处理器,可以不具备存储器管理单元(MMU),而存储器方面更是只要 300KB左右的容量即可运作。特别适合Windows Vista Sideshow、远程控制、智能家电、医疗电子、零售终端以及汽车电子等行业应用场景。并且用户使用统一的Visual Studio .NET平台和托管代码(C#)开发产品应用(包括设备驱动)显著的降低了厂商开发门槛,节约了大量开发时间和开发成本。”以上来自微软官方介绍,参考http://msdn2.microsoft.com/en-us/embedded/bb278106.aspx。
.NET MF面向的是CPU处理能力和存储能力极其有限的设备。虽然微软拥有Windows CE、Windows XP Embedded和.NET Compact Framework,可以完成绝大多数嵌入式开发,但对于更普遍的家用电器领域(如电视、手表、洗衣机等),这些平台还是显得太大了些。可以想象,给你的电冰箱装块硬盘是多么搞笑的事。而.NET MF的出现,则标志着微软又向百姓生活迈进了一步,让所有家电都“智能”起来,已经是一个不远的梦。因为所需要的仅仅是便宜的,ARM处理器和一些RAM、Flash存储器。
.NET MF是微软推出的嵌入式平台、专门用于处理能力和存储能力都更加有限的设备。既然微软已经拥有.NET Compact Framework(简称.NET CF),为什么还要再提供.NET MF呢?设备的限制是一个很重要的原因,.NET CF毕竟还是要求设备有比较强的处理和存储能力。两者重要的一个区别在于,.NET CF需要有Windows CE系列OS的支持才能得以运作,而.NET MF则提供了一个可引导的运行时环境。
在.NET MF中,操作系统倒成了可选的组成部分。
既然.NET MF是可引导的,那么它实际上也相当于一个带有运行时环境的操作系统。那么,它又和Windows CE、Windows XP Embedded操作系统有哪些区别呢?下面的表格对比了几种平台的区别。
Selecting An Embedded Platform .NET Micro FrameworkWindows CEWindows XPeExample DevicesSensor Nodes, Aux displays, Health Monitoring, Remote Controls, RoboticsGPS Handhelds, PDAs,
Automotive, Set Top BoxesThin Clients, ATMs, KiosksDevice FeaturesConnected, Small, Wearable, Graphical UIConnected, Graphical UI, Server, Browser, RAS, DirectXPCclass performance,
PC networkingFootprint250-500KB managed code
Full featured300KB+ without managed code
12MB with managed code40MB + Depending on featuresPowerVery low powerLow powerMains powerCPUARM7, ARM9, No MMUX86, MIPS, SH4, ARM,
with MMUX86Real-timeNot Real-timeHard Real-timeReal-time capable through 3rd party extensionsManaged vs. Native CodeManaged via .NET Micro Framework,
native code through interop only.Supports both,
managed code requires .NET Compact FrameworkSupports both, managed code
requires .NET Framework
从上表可以看出,无论是资源占用还是耗电,.NET MF都要优于另外两种OS。但是,我们也看到了,在实时性方面,.NET MF并不是一款实时的运行时环境。这可能需要我们注意的一个重要方面。
在工业应用中,实时性往往是评判一个嵌入式系统的重要因素,这就意味着,.NET MF并不适用于重要的控制领域。不过,一般工业用系统都不会面临硬件过分有限的困境,完全可以使用WinCE或XPe作为基础OS。
反观民用领域,嵌入式应用正在逐渐渗透人们的生活。而当面对普通消费者时,评判一个嵌入式系统的重要标准——AndersLiu认为——就应该是:低成本。这包括两个方面,一是低的造价(软硬件成本,价格),另外一方面就是易用(这可以理解为学习成本和时间成本)。毕竟老百姓买不起和机床一样价格的洗衣机,也不希望像操作机床那样操作微波炉。
因此,民用嵌入式设备往往通过较低的硬件配置来降低价格,并通过适量(通常比较少)的按键和显示内容来降低使用复杂度。而这一切,都是.NET MF得以大显身手的地方。
可以看出,微软关于.NET MF的定位还是相当明确的——面向民用低成本嵌入式市场。下图是流行过一阵的新闻图片,传闻Gates腕上的SmartWatch中安装的,就是.NET MF的原型。
下图给出了.NET MF的技术架构。相较于.NET Framework,.NET MF多出了CLR之下的PAL(平台适配层,Platform Adaptation Layer)和HAL(硬件适配层,Hardware Adaptation Layer,这两层使得.NET MF可以直接运行在硬件上,并提供基本的Timer、IO和内存管理等功能。而HAL也可以通过OS代替,在硬件资源相对充裕的情况下,这可以降低.NET MF的设计复杂度,并提供更多功能
相关文章推荐
- 无需操作系统直接运行 Python 代码
- 无需操作系统和虚拟机,直接运行Python代码
- 在Ubuntu操作系统上安装mono和jexus搭建.NET的运行环境
- 一起谈.NET技术,在 Linux 操作系统中运行 ASP.NET 4(上)
- 装X式的阅读代码,无需开启Android Studio来运行项目
- 把asp程序封装成可执行文件(无需IIS web服务器)直接运行的管理系统
- 在 Linux 操作系统中运行 ASP.NET 4(上“.NET研究”)
- .NET DLL 保护措施详解(四)各操作系统运行情况
- 怎样写一个简单的操作系统?(原文标题:How to write a simple operating system) 分类: 翻译 2011-01-26 01:10 3175人阅读 评论(3) 收藏
- .net 编译时选择anycpu x86 x64的区别: 在 64 位 Windows 操作系统上: 用 x86 编译的程序集将在 WOW64 下运行的 32 位 CLR 上执行。 用 x64 编译
- 在Delphi中宿主.NET运行环境,直接调用.NET中的代码
- 一起谈.NET技术,在 Linux 操作系统中运行 ASP.NET 4 (中)
- .NET 4.0 无法直接运行 .NET 2.0 程序的问题
- 把asp程序封装成可执行文件(无需IIS web服务器)直接运行的管理系统
- 无需.NET Framework环境运行.NET编写的软件
- [转].NET程序在windows操作系统上独立运行的技术要点
- 解决.NET 4.0下无法直接运行.NET 2.0程序的问题
- 无需模拟器直接在Windows中运行Android系统 支持Win8/Win7/Vista系统
- 在 Linux“.NET研究” 操作系统中运行 ASP.NET 4 (下)
- Win8不联网直接安装.Net 3.5 Framework的方法无需漫长等待