转载请标明出处floater的csdn blog,http://blog.csdn.net/flaoter
曾经接触过几种操作系统,开发项目中使用较多的是VxWorks和Linux操作系统,对它们也算有一定的认识,现在根据自身理解初步对它们进行一个对比,有错误或不足之处今后会再进行修正。
下表是对VxWorks与Linux内核的一个对比,是按照差别分的类别,无法代表内核的所有细节,比如实时操作系统经典的问题优先级翻转,内核抢占等由于在新版的linux内核中都有支持,所以这类内容在下表中没有体现。
VxWorks | Linux | ||
---|---|---|---|
基本特点 | 应用场景 | 可交互的通用型OS,会注重用户的交互体验 | 实时操作系统,表现在强实时性和可靠性。对实时性的表述应是在规定的时间完成规定的任务,体现实时性的指标有任务切换时间,任务抢占时间,中断响应时间等。 |
内核结构 | 微内核 | 宏内核 | |
运行模式 | 实模式 | 保护模式,区分用户地址空间和内核地址空间 | |
任务管理与调度 | 任务管理 | 进程即线程 | 进程,线程,内核线程 |
任务调度 | •主调度器和周期性调度器 • 实时调度类 |
• 主调度器和周期调度器 •五个调度类,stop, dl, rt, cfs, idle •调度组,调度域(SMP),负载均衡 |
|
内存管理 | 实存储,所有任务运行在同一内存空间,不提供任务间的内存保护 | 虚拟存储,用户进程运行在虚拟地址空间,MMU负责将虚拟地址转换为物理地址,用户进程间的页表独立,只能访问本进程的内存空间 | |
中断 | 硬中断 | 中断上半部和中断下半部,上半部类似硬中断,运行在中断上下文,下半部是高优先级的内核线程,运行在进程上下文 |