embedded式操作系统和桌面操作系统的区别
-
embedded式操作系统和桌面操作系统有什么区别?
-
是否可以加载在embedded式操作系统中的桌面操作系统中创build的应用程序?
-
假设我在vc ++和C#中创build应用程序,使用Visual Studio和WindowXp Pro进行image processing,是否可以在embedded式操作系统中加载应用程序?
一个桌面操作系统是一个软件执行者,另外,通常还有用来运行任意软件的用户工具,通常是交互式的(虽然不总是)。 它倾向于 (重要的话)涉及大量的资源使用,强大的保护机制(无论是在安全性方面,还是在严重书写的应用程序方面,而不是诋毁其他应用程序和/或系统)以及用户界面的某种forms的标准化。
embedded式操作系统运行频谱。 对于大型,重量级的embedded式系统,核心可以是实际的桌面系统(例如embedded式Linux系统)。 然而,大多数embedded式操作系统较小,资源less得多,可能具有较less(甚至没有)保护机制,并且在许多(大多数)情况下对用户界面没有特别要求。
后一种“操作系统”常常被称为“执行”(如“实时多任务执行”或RMX),因为它们往往只是在桌面系统中被称为内核的东西,而且只有启用了需要的function对于在embedded式系统中运行的通常固定的一组应用程序。 它们提供任务切换,中断处理和优先级scheme,而其他方面则由一组固定的应用程序提供,这些应用程序执行问题域的实际任务。
回答以后的编辑,是否可以运行为embedded式桌面操作系统创build的软件取决于几个因素。 如果目标embedded式系统与您开发的操作系统是相同的,并且您的应用程序使用了所有function(例如CLR,使用您的C#示例),则可能本机运行您的应用程序。 但这不太可能。
embedded式操作系统和桌面操作系统有什么区别?
尽pipeembedded通用操作系统(如Linux或Windows 7 Embedded)是可能的,但embedded式系统通常运行实时操作系统(RTOS)。 这些首先支持硬实时响应和调度。 它们通常非常小或者至less可扩展性更高。
embedded式操作系统通常(但并非总是)实际上是一个与应用程序代码静态链接的库,以创build一个单一的应用程序映像。 这不同于可以dynamic加载和执行从文件系统加载的任意应用程序代码的桌面操作系统。 embedded式Linux或Windows Embedded显然不属于这一类。
典型的RTOS内核仅提供调度,同步和进程间通信服务。 其他一切必须由应用程序或可选或第三方附加库和驱动程序提供。
是否可以加载在embedded式操作系统中的桌面操作系统中创build的应用程序?
embedded式系统的典型应用程序是通过称为交叉编译的过程在桌面系统上创build的。 这样的应用程序不会在开发主机上运行。 同样,在桌面系统上执行的应用程序不能在embedded式系统上运行,除非它运行相同的操作系统和微处理器架构。 也就是说,如果目标系统具有适当的资源(例如,GUI应用程序在没有显示器或定点设备的系统中使用不多),则Windows 7桌面应用程序可以在Windows 7 Embedded上运行。
开发主机和embedded式目标通常不兼容,无论是由操作系统还是硬件架构,通常都是兼而有之。
假设我在vc ++和C#中创build应用程序,使用Visual Studio和WindowXp Pro进行image processing,是否可以在embedded式操作系统中加载应用程序?
如果目标是运行WindowsXP Embedded或Windows 7 Embedded,是的,但否则没有。
您还可以开发使用VC ++或C#将WindowsCE和C#for .NET Micro开发用于有限范围的非x86目标,但在这些情况下,目标可执行文件不会在开发主机上运行,而不是作为设备仿真。
这两个操作系统的优点和缺点是什么?
embedded式OS:
- 可扩展性
- 实时性能(在RTOS的情况下)
- 广泛的架构支持
- 诸如文件系统,networking,GUI,USB,WiFi等的function通常通过附加选项或第三方库来实现,并且可能并不适用于所有系统,或者需要由开发者实现或移植。
- 许多不同的和很大程度上不兼容的系统。
桌面操作系统
- 扩展性较差
- 不是实时function,或有限的实时function。
- 广泛的应用支持
- 大量的开发人员
- 只有三个主要参与者,其中只有两个是可embedded的。
- 广泛的开发语言和工具select
- 广泛的标准外围硬件,文件系统和通信支持。
- 开发主机和目标环境可能是一样的。
embedded式操作系统被devise用于其他目的,通常控制某些(非电脑)设备或过程。 一些embedded式系统有特殊的要求,比如支持一些实时处理的风格。 您通常在桌面计算机上为embedded式系统创build应用程序,但是您需要使用针对embedded式操作系统/硬件(通常是交叉编译器等)的工具。
由于embedded式软件只有执行任务所需的软件,因此embedded式软件更为简单。 这个任务通常是很好的定义,尽pipe手机和可下载的应用程序的规则正在改变。 embedded需要更可靠,人们可以容忍重新启动或更换坠毁的电脑,但不能容忍重新启动或更换他们的汽车电脑或飞行控制系统的客机。
桌面是超级通用的,需要运行当前的应用程序以及尚未写入的驱动程序和应用程序。 由于更广泛的特点等,它们体积更大,可靠性更低。
embedded式系统往往具有更有限的静态资源,桌面资源更多,dynamic性更强,您可以随意添加或更改硬盘,内存和video,而且您的期望是可以继续工作。 随着embedded式供应商通常控制它的所有部分,可靠性和性能的一部分来自于限制软件支持精确到一个video驱动程序或产品线上的一小部分设备(而桌面必须支持一切从八十年代到现在)。
编写在这两种环境下工作的应用程序是非常有可能的,无论是桌面Linux还是embedded式Linux或桌面Windows与embedded式Windows。 通常情况下,您应该计划这种可移植性,并将自己的function限制在两种平台所共有的function上。 如果你把旧的桌面应用程序,然后尝试运行在一个类似的embedded式平台,我不希望它总是工作,我会期待一些调整,在某些情况下,重新写。
桌面操作系统是devise用于在台式计算机上运行的操作系统。 它具有用于桌面使用的驱动程序,优化和接口(API和用户界面)。
一个embedded式操作系统是一样的东西,但是用于embedded式设备。
根据应用程序,操作系统,硬件,使用的开发工具以及可能的其他因素,可能会在embedded式操作系统上加载在桌面操作系统上创build的应用程序。 但它可能不是除非应用程序的devise是为了应付差异。
桌面操作系统的优点是在桌面硬件上运行良好。 embedded式操作系统的优点是在embedded式硬件上运行良好。 两者的缺点是它们可能无法扩展到其他硬件。