Linux是单体内核,即将图形、驱动及文件系统等功能全在操作系统内核中实现,运行在内核状态和同一地址空间,其优点是减少了进程间通信和状态切换的系统开销,获得较高的运行效率;缺点是内核比较庞大!
WinCE是微内核,即在内核中实现基本功能,而将图形系统、文件系统、设备驱动及通信等功能都放在内核之外,以系统服务的形式提供各种功能。其不足之处在于运行中用户状态和内核状态须频繁地切换,从而导致系统效率不如单体内核。
从以面介绍来说,很明显在实时性来说,Linux要优于WinCE,但Linux方面做驱动、文件系统等,如开发人员的水平不高,会严重影响系统的稳定性!
其实Linux跟WinCE各有优缺点,Linux内核稳定、网络功能强大,网络资源多,而且还免费。但不足的地方就是网络上的免费资源大多是试用级,而不是产品级,N多BUG,以致让Linux背了黑锅!而操作不够人性化、要OEM厂商开放源码,这些是Linux跟WinCE竞争的劣势。
而WinCE的强处在于开发人员从Windows转过来很容易,开发工具集成、功能强大,而且界面美观(但其实里面也有不少BUG)。但要收费这点是所有用WinCE的公司的心病,而且WinCE的稳定性也有待提高。
从开源的角度来看,Linux是完全开源的!而WinCE目前还没做到完全开源!!
从开发的角度来看,Linux的开发难度较高。而WinCE的开发难度较低。
个人建议,如果有一个有实力而比较稳定的团体,开发一些长线产品,使用Linux会比较好。而实力差一些的公司,开发一些使用带图形界面的产品,用WinCE会比较好。
本人从事过两年左右的Linux开发,从事过一年左右的WinCE开发。以上的观点是实践中得来的。有不同意见者请拍砖。
回复: 再议Linux与WinCE
wince是微内核,但感觉6.0也有走向'重'内核的趋势.
wince内核完全开源了.可以看看微软的share source计划,分2个授权方式.
应用的话我了解不多.如果移植,就我目前的个人感觉,wince不见得比linux容易.
回复:再议Linux与WinCE
Microkernel vs Monolithic System
Most older operating systems are monolithic, that is, the whole operating system is a single a.out file that runs in 'kernel mode.' This binary contains the process management, memory management, file system and the rest. Examples of such systems are UNIX, MS-DOS, VMS, MVS, OS/360, MULTICS, and many more.
The alternative is a microkernel-based system, in which most of the OS runs as separate processes, mostly outside the kernel. They communicate by message passing. The kernel's job is to handle the message passing, interrupt handling, low-level process management, and possibly the I/O. Examples of this design are the RC4000, Amoeba, Chorus, Mach, and the not-yet-released Windows/NT.
While I could go into a long story here about the relative merits of the two designs, suffice it to say that among the people who actually design operating systems, the debate is essentially over. Microkernels have won. The only real argument for monolithic systems was performance, and there is now enough evidence showing that microkernel systems can be just as fast as monolithic systems (e.g., Rick Rashid has published papers comparing Mach 3.0 to monolithic systems) that it is now all over but the shoutin`.
MINIX is a microkernel-based system. The file system and memory management are separate processes, running outside the kernel. The I/O drivers are also separate processes (in the kernel, but only because the brain-dead nature of the Intel CPUs makes that difficult to do otherwise). LINUX is a monolithic style system. This is a giant step back into the 1970s. That is like taking an existing, working C program and rewriting it in BASIC. To me, writing a monolithic system in 1991 is a truly poor idea.
回复:再议Linux与WinCE
1.WinCE也可以去掉图形的。
2.Linux的驱动在内核状态下运行跟是否集成在内核没什么关系的!
一般是系统都分为内核空间跟用户空间,两者的权限是不同的,用户空间如果想访问内核空间,只能通过系统调用等方法去实现。如果在程序在用户空间出了问题,系统一般不会受什么影响,但如果在内核空间出了问题,系统可能就会崩溃了!所以我说Linux开发难度高就是这个原因。因为Linux的驱动是运行在内核空间的,这个与驱动是集成在内核里还是以模块方式加载无关!但另一方面,这种方式的实时性更好,系统运行效率更高。
3.正如我之前所说,WinCE的强项之一是图形界面,在没有图形界面的产品中,WinCE是竞争不过Linux的。
回复:再议Linux与WinCE
个人觉得Linux成也开源,败也开源!因为开源,所以Linux受到很多人的喜爱,得以发展到如今这样有竞争力的OS。
但也因为开源,所以损害了大多数厂商、公司的利益,毕竟开源了,对别人就没什么秘密可言了!所以这也是大多数厂商、公司对Linux的支持力度不够的原因。
记得上一年我负责的一个Linux项目(PC平台的),是做一个驱动和一个共享库。因为公司要求不能开源,所以只好在每个流行的Linux发行版本编译一次,把编译好的的驱动和共享库给客户使用。
个人觉得Linux在PC平台很难推广,反尔在嵌入式方面会比较受欢迎。
回复:再议Linux与WinCE
我也是觉得linux在arm等嵌入式系统中比wince优越一点
南京璞晓电子 www.cpx0.com需要
msn:njlianjian@hotmail.com