1.1 鸿蒙不是Linux,也不是安卓
很多人会混淆鸿蒙跟Linux的关系。
先举个例子,大家很熟悉的Windows里面含有内核,也含有UI系统,含有桌面程序,普通人可以直接使用Windows。但是Linux仅仅是一个内核(它提供进程管理、文件系统等概念),必须在Linux之上安装各种APP,普通人才可以使用。基于Linux内核制作出来的完整系统有Ubuntu、debian等等,普通人可以直接使用这些完整系统。
所以鸿蒙要对标的是Windows、安卓、IOS这类完整系统,而Linux只是鸿蒙支持的内核之一。鸿蒙支持多种内核,有Linux,也有Liteos-a。
鸿蒙的体系很庞大,看下图,内核只是其中之一:
1.2 Liteos-a是什么
Liteos-a是一个内核(也常常被叫做操作系统,反正大家都把操作系统、内核混着说)。常见的内核有freeFTOS、rt-thread、UCOS,这些都属于实时操作系统(RTOS),Linux不是实时操作系统。
有了那么多操作系统,为什么还要开发Liteos-a呢?
大多数的RTOS都是运行于MCU(
单片机上),不支持MMU(内存管理单元),内核空间和APP空间不能隔离开,APP出错后整个系统就会崩溃;也不支持POSIX接口,这使得大量的开源软件无法直接在MCU上运行。
Linux的强大在于它支持的硬件非常多,但是它过于庞大,启动慢、耗电,这些缺点导致它不适合用在物联网领域。比如倒车摄像头,没人能忍受2秒钟后才看见图像:即使你能忍受,也很难把Linux优化到2秒内启动。
Liteos-a为物联网而生,支持MMU,支持内核/APP空间隔离、支持各个APP空间隔离,系统更健壮;支持POSIX接口,大量开源软件可以在Liteos-a上直接使用;启动快,省电。
Liteos-a是一个轻量级的内核,设计精巧。它要成功,就必须持更多芯片、更多外设,这也是我们把Liteos-a移植到非海思芯片,并录制教程的原因。
除了Liteos-a,还有一个Liteos-m,后者运行在没有MMU的芯片上,也就是运行在MCU上。
1.3 移植Liteos-a,需要哪些资料
需要一个虚拟机:使用VMware运行Ubuntu,用来编译Liteos-a,我们预先制作了Ubuntu映像文件,放在百度网盘中。
需要源码,从gitee上下载。