vxworks内核与linux内核比较 45.207.45.2
1、常见区别分析参考了一些其他人的看法,目前对于vxworks和linux的区别看法主要在以下方面:
vxworks linux
内核模式 微内核,内核只提供了基本的服务,如:任务管理,内存管理,中断处理等 宏内核,除了基本的服务,内核还包括文件系统,网络协议等
运行模式 应用程序运行在“实模式”下,无用户模式和内核模式之分 采用“保护模式”,用户进程、线程运行在用户模式下,内核线程运行于内核模式
内存访问和内存保护 内核采用实存储管理方式,所有任务运行于同一物理地址空间,用户程序直接操作物理地址,不能直接地提供内存保护,不能防止错误蔓延 内核采用虚拟存储管理方式,用户具有独立的地址空间,用户进程只能访问本进程的虚拟空间,提供了内存保护,可以防止错误蔓延
执行单元 任务 进程、线程
请求内核服务方式 函数调用,更快 系统调用,更安全
实时性 硬实时 软实时
2、linux、vxworks优劣势分析
1)vxworks采用微内核结构,内核的可移植性较linux好,内核稳定性较高,减少了内存的开销,进程间通信通过**IPC(进程间通信机制)**实现;linux采用宏内核结构,内核的可移植性较vxworks差,内核维护量大,由于包含了文件系统、设备驱动,系统内核相对较大,增加了对内存的需求,但是内核模块之间的通信直接通过函数调用实现,提高了内核的效率。
2)实时性方面:vxworks采用硬实时中断响应机制,真正做到了任务响应要实时,而且要求在规定的时间内完成事件的处理;而linux采用软实时机制,时间的确定性上得不到保证。因此,在实时性要求较高的一些场合,vxworks比linux存在较大的优势;
3)技术方面:A、Linux的核心和用户进程之间是的地址空间隔离的,每个用户进程之间的地址空间是隔离的,当某一个用户进程崩溃的时候,不会影响操作系统核心和其他用户进程正常运行;B、Linux支持页面级的内存管理,支持换页;C、由于隔离的原因,使得Linux软件的各部分之间耦合性更小,Linux的应用程序跟核心之间有清晰的界面,POSIX API。总而言之,Linux充分利用了现代微处理器的MMU硬件,而vxWorks则采用平面地址空间。在某些高端设备上Linux的保护模式的确可以让系统更稳定,至少更容易找Bug。
4)其他客观因素:导致网络设备厂商转向Linux的主要原因是 Linux代表产业链越来越成熟,用Linux的开发成本将远低于vxWorks。主要表现在:(a)支持Linux的软件越来越越多,而支持 vxWorks的软件越来越少,Linux下面有很多开源软件,而这些开源软件多半不支持vxWorks。现在用于网络设备的商业软件几乎都支持 Linux,如:Gated、Zebos、Trillium、InterPeek的协议栈等。(b)几乎所有的芯片都提供Linux驱动程序,几乎所有的CPU、评估板都提供Linux支持。(c)熟悉Linux的开发人员更好找。与Linux相比,vxWorks则越来越显得曲高和寡,其生存环境也越来越差。
综上所述,在小型、实时性要求较高的应用场景下,vxworks较linux更加实用,而相对大型、且实时性要求不很严格的场景中,linux更有优势。
服务器业务咨询QQ:291882375
页:
[1]