Linux与VxWorks主要区别(一):内核结构

众所周知,VxWorks 是美国Wind River System 公司( 简称风河公司,即 WRS 公司)推出的一个实时操作系统。Tornado 是WRS 公司推出的一套实时操作系统开发环境,类似Microsoft Visual C,但是提供了更丰富的调试、仿真环境和工具。 
Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于Linus Torvalds。 

Linux与vxWorks的主要区别

1、内核结构
    Linux           vxWorks
   宏内核           微内核

微内核(英文中常译作micro kernel)
是一种只提供必要服务的操作系统内核;这些必要的服务包括任务管理、中断处理、内存管理等。其他服务,如文件管理、网络支持等通过接口连到微内核。
    在微内核中,用以完成系统调用功能的程序模块通常只进行简短的处理,而把其余工作通过消息传递交给内核之外的进程来处理。在典型情况下,每个系统调用程序模块都有一个与之对应的进程,微内核部分经常只不过是一个消息转发站,这种方式有助于实现模块间的隔离。这种内核设计的最根本思想就是要保持操作系统的内核尽可能小,因为内核是直接与计算机硬件相关的,内核越小,就越便于在不同的硬件系统间进行移植。
    微内核结构的另外一个优点是,可以使不需要的模块不加载到内存中,因此,微内核就可以更有效地利用内存。
    微内核具有很好的扩展性,并可简化应用程序开发。用户只运行他们需要的服务,这有利于减少磁盘空间和存储器需求。
宏内核(英语:Monolithic kernel)
又称单核心,是操作系统核心架构的一种,除了基本的服务,内核还包括文件系统、网络协议等。此架构的特性是整个核心程序都是以核心空间(Kernel Space)的身份及监管者模式(Supervisor Mode)来运行。
    宏内核的内部可被分为若干模块(或者是层次或其他),但在运行时,它是一个独立的二进制大映像。模块间的通信不是通过消息传递,而是通过直接调用其他模块中的函数来实现的。
    现在多数采行宏内核架构设计的操作系统,如OpenVMS、Linux、FreeBSD、以及Solaris等,在运作运行阶段中,以动态方式来加载(Load)、卸载(Unload)可运行的模块,不过这些模块是属于二进制代码的层次,或称镜像层次,而非核心架构的层次。即使宏内核进行模块化转化,也不会与微核心或混核心架构的核心产生区分上的混淆,因为微核心、混核心的模块是属于系统架构的层次。
就实务上,动态加载/卸载模块的作法,等于是用一种较简易的方式来弹性管控运行中的操作系统核心,若没有动态加载/卸载机制,操作系统的核心想要进行任何的调整、变换,都必须重启才能达成。因此模块化是必然且必要的,如此才能让核心功效轻松地扩展、延伸,此外也能适时减轻硬件的运行运作负担。