主流嵌入式操作系统有哪些?
目前市场上流行的嵌入式系统有嵌入式 Linux、Windows CE、Windows XP Embedded、Vxworks、Android、iOS 等,嵌入式系统都是专用的操作系统,不可能出现一统天下局面,每种嵌入式系统都有自己的优势和应用领域。
下面,简单地介绍一下常用的嵌入式系统。
使用嵌入 Linux 系统的优势有很多,比如:
Android 运行于 Linux Kernel 之上,但并不是 GNU/Linux。因为在一般 GNU/Linux 里支持的功能,Android 大都没有支持,包括 Cairo、X11、Alsa、FFmpeg、GTK、Pango,以及 Glibc 等都被移除掉了。Android 又以 Bionic 取代 Glibc,以 Skia 取代 Cairo,再以 OpenCore 取代 FFmpeg 等。
Android 为了达到商业应用,必须移除被 GNU GPL 授权证所约束的部分,例如,Android 将驱动程序移到 Userspace,使得 Linux Driver 与 Linux Kernel 彻底分开。Bionic/Libc/Kernel/ 并非标准的 Kernel Header Files。
iOS 与苹果的 Mac OS X 操作系统一样,它也是以 Darwin 为基础的,因此,同样属于类 Unix 的商业操作系统。它和 Linux 操作系统有一定渊源,都可以追溯到 Unix。
iOS 是商业操作系统,因此不是开源的,iOS 的开发工程师主要开发 iOS 的应用程序,使用的开发语言是 Objective-C 和 Swift。
开发语言可以使用 C++、C#、VB 等,可以使用系统自带丰富的图形库快速开发出界面程序,开发效率较高。但使用选择基于 Windows CE 开发产品,需要向微软公司缴纳一定的版权费。
Windows XP Embedded 可以应用在各种嵌入式系统,或硬件规格层次较低的计算机系统,例如,很少的内存,较慢的中1央处理器等。
Windows XP Embedded 基于 Win32 编程模型,由于采用常见的开发工具,如 Visual Studio.NET,使用商品化 PC 硬件,与桌面应用程序无缝集成,因此可以缩短上市时间。使用 Windows XP Embedded 构建操作系统的常见设备类别包括零售销售点终端、瘦客户机和高级机顶盒。
Windows XP Embedded 有一个限制,它要求目标硬件平台必须是X86架构的,而且还需要向微软公司缴纳授权费。
VxWorks 操作系统是美国 WindRiver 公司于 1983 年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。它具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。
VxWorks 以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连 1997 年 4 月在火星表面登陆的火星探测器、2008 年 5 月登陆的凤凰号,以及 2012 年 8 月登陆的好奇号也都使用到了 VxWorks。
不过如此优秀的操作系统,并不是所有场合都是合适的。通常 VxWorks 常用于实时性要求高、环境恶劣的场合,因为使用 VxWorks 需要的成本非常高,选择它之前,需要综合衡量评估后再决定。
下面,简单地介绍一下常用的嵌入式系统。
1. 嵌入式 Linux
嵌入式 Linux 是以 Linux 为基础的嵌入式操作系统,广泛应用于信息家电、PDA、机顶盒、Digital Telephone、Answering Machine、Screen Phone、数据网络、Ethernet Switches、Router、Bridge、Hub、Remote Access Servers、ATM、Frame Relay、远程通信、医疗电子、交通运输计算机外设、工业控制、航空航天等领域。使用嵌入 Linux 系统的优势有很多,比如:
- Linux 是开放源代码的,不存在黑箱技术,遍布全球的众多 Linux 爱好者是 Linux 开发者的强大技术支持;
- Linux 的内核小、效率高,内核的更新速度很快,Linux 是可以定制的,其系统内核最小只有约 134KB;
- Linux 是免费的操作系统,在价格上极具竞争力。
2. Android
Android 是一种基于 Linux 的自由及开放源代码的操作系统,2003 年 10 月,Andy Rubin 等人创建 Android 公司,并组建 Android 团队,22 个月后被 Google 收购。目前 Android 操作系统主要用于智能手机、平板电脑和智能电视等。Android 运行于 Linux Kernel 之上,但并不是 GNU/Linux。因为在一般 GNU/Linux 里支持的功能,Android 大都没有支持,包括 Cairo、X11、Alsa、FFmpeg、GTK、Pango,以及 Glibc 等都被移除掉了。Android 又以 Bionic 取代 Glibc,以 Skia 取代 Cairo,再以 OpenCore 取代 FFmpeg 等。
Android 为了达到商业应用,必须移除被 GNU GPL 授权证所约束的部分,例如,Android 将驱动程序移到 Userspace,使得 Linux Driver 与 Linux Kernel 彻底分开。Bionic/Libc/Kernel/ 并非标准的 Kernel Header Files。
3. iOS
iOS 是由苹果公司开发的手持设备操作系统。最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等苹果产品上。iOS 与苹果的 Mac OS X 操作系统一样,它也是以 Darwin 为基础的,因此,同样属于类 Unix 的商业操作系统。它和 Linux 操作系统有一定渊源,都可以追溯到 Unix。
iOS 是商业操作系统,因此不是开源的,iOS 的开发工程师主要开发 iOS 的应用程序,使用的开发语言是 Objective-C 和 Swift。
4. Windows CE
Windows CE 是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的 32 位嵌入式操作系统,是基于掌上电脑类的电子设备操作系统,它是类似于精简的 Windows 95。Windows CE 的图形用户界面相当出色。开发语言可以使用 C++、C#、VB 等,可以使用系统自带丰富的图形库快速开发出界面程序,开发效率较高。但使用选择基于 Windows CE 开发产品,需要向微软公司缴纳一定的版权费。
5. Windows XP Embedded
Windows XP Embedded 是微软研发的嵌入式操作系统,是一个以组件模块展现出与 Windows XP Professional 操作系统一样的接口与操作模式,可依据各自需求组合出的操作系统镜像文件,确保有 Windows XP Professional 操作系统相依性以及完整的功能。Windows XP Embedded 可以应用在各种嵌入式系统,或硬件规格层次较低的计算机系统,例如,很少的内存,较慢的中1央处理器等。
Windows XP Embedded 基于 Win32 编程模型,由于采用常见的开发工具,如 Visual Studio.NET,使用商品化 PC 硬件,与桌面应用程序无缝集成,因此可以缩短上市时间。使用 Windows XP Embedded 构建操作系统的常见设备类别包括零售销售点终端、瘦客户机和高级机顶盒。
Windows XP Embedded 有一个限制,它要求目标硬件平台必须是X86架构的,而且还需要向微软公司缴纳授权费。
6. VxWorks
VxWorks 是美国 Wind River System 公司(2009 年被 Intel 收购)推出的一个非常优秀的实时操作系统。VxWorks 操作系统是美国 WindRiver 公司于 1983 年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。它具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。
VxWorks 以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通信、军事演习、弹道制导、飞机导航等。在美国的 F-16、FA-18 战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至连 1997 年 4 月在火星表面登陆的火星探测器、2008 年 5 月登陆的凤凰号,以及 2012 年 8 月登陆的好奇号也都使用到了 VxWorks。
不过如此优秀的操作系统,并不是所有场合都是合适的。通常 VxWorks 常用于实时性要求高、环境恶劣的场合,因为使用 VxWorks 需要的成本非常高,选择它之前,需要综合衡量评估后再决定。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算