OpenHarmony学习笔记(内核介绍)
本文内容为自己学习OpenHarmony中LiteOS的学习笔记及心得,因本人能力有限,内容或有错漏,请多包涵。本文会反复修正,持续更新。
OpenHarmony内核介绍
OpenHarmony采用多内核架构,支持Linux内核的标准系统,支持LiteOS-a的小型系统,支持LiteOS-m的轻量系统。
1、Linux内核
应用目标:PC、TV、手机等资源较丰富的设备。
使用标准Linux内核。
2、LiteOS-m
应用目标:主要用于RAM大小低于1M(多数小于128K)的极小设备。
特性:
-
支持基本的任务管理、内存管理、时间管理、中断管理、队列管理、通信机制、事件管理、定时器等操作系统的基础组件。
-
适应低配置、低功耗、低成本的物联网场景。
2.1、调度方式
- 抢占式多Task调度
2.2、内存分配算法
- bestfit
2.3、架构
- Cortex-m + RISC-V
2.4、IPC(进程间通信)
-
event(事件)
-
mutex(互斥锁)
-
semaphore(信号量)
-
queue(消息队列)
2.5、其他
- 支持CMSIS接口。
3、LiteOS-a
应用目标:RAM大小在1M~128M的物联网设备。
LiteOS-a要求设备具有一定的处理能力,但又对设备的要求又不算太高。
对比LiteOS-m,LiteOS-a支持以下特性:
-
MMU支持。通过MMU支持内核态和用户态分离,支持虚拟单元。
-
支持独立进程。调度对象分别为进程、线程。
-
支持文件系统。包括虚拟文件和块设备等。
-
支持更复杂的IPC。包括LiteIPC和VDSO等。
-
支持多核调度。支持双核MCU,支持双核调度。
-
支持POSIX接口。为APP开发提供更多帮助。
3.1、调度方式
-
抢占式多进程
-
多线程调度
-
支持轮询调度和FIFO调度策略
3.2、内存分配算法
-
bestfit
-
bestfig_little
3.3、架构
- Cortex-a
3.4、IPC(进程间通信)
-
event(事件)
-
mutex(互斥锁)
-
semaphore(信号量)
-
queue(消息队列)
-
signal(信号)
-
futex(快速用户空间互斥体)
-
spinlock(自旋锁)
-
LiteIPC(新型通信机制)
3.5、其他
- 支持虚拟内存,支持动态加载,支持shell,支持VFS。