关于问题vxworks与linux区别
vxWorks |
Linux | |
内核 结构 |
微内核, 内核只提供 了基本的服 务,如:任 务管理,内 存管理,中 断处理等 | 宏内核, 除了基本的 服务,内核 还包括文件 系统,网络 协议等 |
运行 模式 | 应用程序运 行在“实模 式”下,无 用户模式和 内核模式之 分 | 采用“保护 模式”,用 户进程、线 程运行在用 户模式下, 内核线程运 行于内核模 式 |
内存 访问 和内 存保 护 | 内核采用实 存储管理方 式,所有任 务运行于同 一物理地址 空间,用户 程序直接操 作物理地 址,不能直 接地提供内 存保护,不 能防止错误 蔓延 | 内核采用虚 拟存储管理 方式,用户 具有独立的 地址空间 ,用户进程 只能访问本 进程的虚拟 空间,提供 了内存保 护,可以防 止错误蔓延 |
执行 单元 |
任务
| 进程、线程 |
请求 内核 服务 方式
| 函数调用, 更快 | 系统调用 ,更安全 |
实 时 性
| 硬实时 | 软实时 |
http://baike.baidu.com/view/1027685.htm?fr=ala0_1
宏内核与为内核的区别
宏内核的内部可被分为若干模块(或者是层次或其他)。但是在运行时,它是一个独立的二进制大映像。模块间的通信不是通过消息传递,而是通过直接调用其他模块中的函数来实现的 。
关于微内核的概念见:http://www.dzsc.com/data/html/2009-1-16/75785.html
在微内核中,用以完成系统调用功能的程序模块通常只进行简短的处理,而把其余工作通过消息传递交给内核之外的进程来处理。在典型情况下,每个系统调用程序模块都有一个与之对应的进程,微内核部分经常只不过是一个消息转发站, 这种方式有助于实现模块间的隔离。这种内核设计的最根本思想就是要保持操作系统的内核尽可能小,因为内核是直接与计算机硬件相关的,内核越小,就越便于在不同的硬件系统间进行移植。微内核结构的另外一个优点是,可以使不需要的模块不加载到内存中,因此,微内核就可以更有效地利用内存。
http://www.itqun.net/content-detail/155701.html
设备驱动部分的比较和分析
由于Linux操作系统和Linux引导装载器在结构上的分离,使得它俩之间的设备驱动程序不能够通用,当然在芯片的硬件初始化一些硬件相关的代码上可以互相借鉴。而 VxWorks的BOOTROM和运行版本的设备驱动是相同的,因为,它的运行版本和BOOTROM的结构是一致的,使用同一操作系统内核。 Linux操作系统的设备驱动运行在内核空间,用户进程运行在用户空间。在Linux操作系统中,内核空间和用户空间的内存管理和映射方式是不同的,应用和设备驱动在数据交换时会涉及到不同的内存空间,会影响到一定效率,但这个问题可以通过修改系统内存空间配置等方法来解决。 VxWorks操作系统没有分开内核空间和用户空间,设备驱动和应用都运行于同一空间,相互之间的内存都可以访问,数据交换非常方便,但是,这种结构的稳定性就不如 Linux系统好了。 两种操作系统都提供了很多设备驱动的资源和模板。但是由于Linux的开源特性,它提供的设备驱动的种类和数量远远超过了VxWorks.
4 结论
本文简单介绍了Linux和VxWorks操作系统的BSP开发的内容。通过比较发现,VxWorks作为专业的商用实时操作系统,提供BSP开发方式,开发资源都非常适宜于嵌入式应用。而Linux作为从通用操作系统发展而来的,在嵌入式应用的BSP开发方面,需要多做一些工作,但是它却有更丰富的资源。
更多推荐
所有评论(0)