OpenHarmony 内核 liteos_A和lite_M

OpenHarmony源码里面包含两个内核代码,分别是liteos_A和lite_M

我的理解,liteos_A和liteos_M分别对应ARM架构的 A系列和M系列

liteos_A对标linux内核 ,linux是分时操作系统

liteos_M是对标freeFTOS、rt-thread、UCOS,这些都属于实时操作系统(RTOS),MCU(单片机上),不支持MMU(内存管理单元),内核空间和APP空间不能隔离开,APP出错后整个系统就会崩溃;也不支持POSIX接口,这使得大量的开源软件无法直接在MCU上运行。

liteos_M似乎和Huawei LiteOS差不多

liteos_M适用架构:当前只适用于cortex-m3、cortex-m4、cortex-m7、risc-v芯片架构,属于MCU(单片机上)

liteos_A适用架构:Hi3518EV300、Hi3516DV300、还可以移植第三方板子

为什么提出liteos_A呢

Linux的强大在于它支持的硬件非常多,但是它过于庞大,启动慢、耗电,这些缺点导致它不适合用在物联网领域。比如倒车摄像头,没人能忍受2秒钟后才看见图像:即使你能忍受,也很难把Linux优化到2秒内启动。

Liteos-a为物联网而生,支持MMU,支持内核/APP空间隔离、支持各个APP空间隔离,系统更健壮;支持POSIX接口,大量开源软件可以在Liteos-a上直接使用;启动快,省电。

内核层包含linux和liteos,我认为这里liteos指的是liteos_A



linux文件树

linux内核架构图

上图说明了Linux内核的整体架构。根据内核的核心功能,Linux内核提出了5个子系统,分别负责如下的功能:

1. Process Scheduler,也称作进程管理、进程调度。负责管理CPU资源,以便让各个进程可以以尽量公平的方式访问CPU。

2. Memory Manager,内存管理。负责管理Memory(内存)资源,以便让各个进程可以安全地共享机器的内存资源。另外,内存管理会提供虚拟内存的机制,该机制可以让进程使用多于系统可用Memory的内存,不用的内存会通过文件系统保存在外部非易失存储器中,需要使用的时候,再取回到内存中。

3. VFS(Virtual File System),虚拟文件系统。Linux内核将不同功能的外部设备,例如Disk设备(硬盘、磁盘、NAND Flash、Nor Flash等)、输入输出设备、显示设备等等,抽象为可以通过统一的文件操作接口(open、close、read、write等)来访问。这就是Linux系统“一切皆是文件”的体现(其实Linux做的并不彻底,因为CPU、内存、网络等还不是文件,如果真的需要一切皆是文件,还得看贝尔实验室正在开发的"”的)。

4. Network,网络子系统。负责管理系统的网络设备,并实现多种多样的网络标准。

5. IPC(Inter-Process Communication),进程间通信。IPC不管理任何的硬件,它主要负责Linux系统中进程之间的通信。



OpenHarmony-LiteOS-A内核架构图

lite_A 内核文件系统

OpenHarmony-LiteOS-M核内核架构图

lite_M 内核文件系统

```
/kernel/liteos_m
├── components           # 可选组件
│   ├── cppsupport       # C++支持
│   └── cpup             # CPUP功能
├── kal                  # 内核抽象层
│   ├── cmsis            # cmsis标准接口支持
│   └── posix            # posix标准接口支持
├── kernel               # 内核最小功能集支持
│   ├── arch             # 内核指令架构层代码
│   │   ├── arm          # arm32架构的代码
│   │   └── include      # 对外接口存放目录
│   ├── include          # 对外接口存放目录
│   └── src              # 内核最小功能集源码
├── targets              # 板级工程目录
├── utils                # 通用公共目录
```
经验分享 程序员 微信小程序 职场和发展