> 文档中心 > OpenHarmony学习笔记(内核介绍)

OpenHarmony学习笔记(内核介绍)

本文内容为自己学习OpenHarmony中LiteOS的学习笔记及心得,因本人能力有限,内容或有错漏,请多包涵。本文会反复修正,持续更新。

OpenHarmony内核介绍

OpenHarmony采用多内核架构,支持Linux内核的标准系统,支持LiteOS-a的小型系统,支持LiteOS-m的轻量系统。


1、Linux内核

应用目标:PC、TV、手机等资源较丰富的设备

使用标准Linux内核。


2、LiteOS-m

应用目标:主要用于RAM大小低于1M(多数小于128K)的极小设备。

特性:

  • 支持基本的任务管理、内存管理、时间管理、中断管理、队列管理、通信机制、事件管理、定时器等操作系统的基础组件。

  • 适应低配置、低功耗、低成本的物联网场景。

LiteOS-m 系统架构

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开发提供更多帮助。

LiteOS-a 系统架构

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。