如何移植鸿蒙内核Liteos-a?一小时上手

百家 作者:51CTO技术栈 2020-10-13 18:19:02

01

鸿蒙不是 Linux,也不是安卓


很多人会混淆鸿蒙跟 Linux 的关系。


先举个例子,大家很熟悉的 Windows 里面含有内核,也含有 UI 系统,含有桌面程序,普通人可以直接使用 Windows。


但是 Linux 仅仅是一个内核(它提供进程管理、文件系统等概念),必须在 Linux 之上安装各种 APP,普通人才可以使用。


基于 Linux 内核制作出来的完整系统有 Ubuntu、debian 等等,普通人可以直接使用这些完整系统。


所以鸿蒙要对标的是 Windows、安卓、iOS 这类完整系统,而 Linux 只是鸿蒙支持的内核之一。鸿蒙支持多种内核,有 Linux,也有 Liteos-a。


鸿蒙的体系很庞大,看下图,内核只是其中之一:




02

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-a 移植到了 NXP 的 IMX6ULL、全志的 V3S。


现在我想把移植过程展示给学员,让更多的人掌握移植方法,能移植到更多芯片上去。


我是 51CTO 学院的特级讲师韦东山,拥有 12 年 Linux 培训经验,也是华为认证的鸿蒙课程先行者。


擅长 ARM 系列方面的硬件原理图设计,精通 ARM、MIPS、Blackfin 等架构处理器的 Linux 底层系统开发。


10 月 14日 晚8:00我将做一场免费直播,主题是在STM32MP157上移植鸿蒙内核Liteos-a》根据 Liteos-a 启动流程,分析涉及的硬件操作,修改代码适配 STM32MP157。



关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接