uClinux 与 ARMlinux 全方位的优劣比较! 包括内核、C库、编译器、文件系统等方面!
| |
uClinux |
ARMlinux |
| 内核 |
精简的内核,很小;但移植驱动相对困难 |
标准的Linux内核,体积较大;但易于移植驱动程序 |
| C库 |
uClibc,精简但软件移植相对困难 |
glibc,体积较大,但软件移植容易 |
| 编译器 |
gcc cross compiler |
gcc cross compiler |
| 文件系统 |
多用只读的romfs,耗用空间小 |
多用可读写的ramdisk(ext2) |
| 物理地址访问 |
应用程序和内核驱动都可以,可方便地在用户层进行外设硬件测试,需要承担系统稳定的风险 |
只有bootloader阶段可以,如在内核下则需要编写驱动程序,系统更稳定 |
| IPC(进程间通信) |
支持 |
支持 |
| Thread(线程) |
支持 |
支持 |
| modules加载 |
支持,但多用静态链接 |
支持 |
| 程序链接方式 |
默认动态,极少用动态链接 |
默认动态 |
| 栈内存管理 |
用户需要预估自己代码对STACK的耗用来告知编译器调整STACK容量,用户需对系统稳定性负责,承担风险 |
用户无需参与 |
| 可执行文件格式 |
FLAT,耗用空间小 |
ELF |