人人学IoT---------第五章学习笔记
操作系统,轻量开源
5.1物联网操作系统——Huawei LiteOS
操作系统的三个阶段:
- PC时代:苹果、微软
- 互联网时代:微软带动的网页浏览。
- 移动互联网:苹果发布的苹果手机。谷歌推出安卓系统。
物联网操作系统面临的问题:
- 碎片化 芯片、传感器、通信协议碎片化、方案不统一等。
- 多传感器协同管理复杂
- 视频场景下性能要求高
- 开发语言编程效率低、上手难度大。
物联网操作系统可以支持不同的硬件、通信标准、应用场景。
物联网操作系统的出现:
- 可以打破技术障碍和壁垒
- 提高操作系统和可抑制性
- 减少开发成本
- 适合开源社区的开发人员参与
- 助推了物联网的开放和发展
HUAWEI LiteOS
特点:轻量级、低功耗、ms级快速启动、μs级响应、适应于个人、家庭等场景。
应用于:智能家居、智能停车、智能水表、智能照明。
5.2一个内核很重要——Lite OS Kernel
Huawei LiteOS基础架构:
“1"+"n” 架构
“1”是一个内核,“n”是n个中间件包含了来自OS的互连框架传感况下安全框架运行引擎。
‘
Huawei LiteOS基础内核:
任务管理、内存管理中断、管理队列管理、事件管理、通信机制、事件管理、定时器等操作系统。
任务:是竞争系统资源的最小运行单元。任务可以使用或等待CPU使用内存空间等系统资源,并独立于其他任务运行。
进程:
例如:聊天软件就是一个进程。
线程:
例如跟某人聊天,语音通话就是一个小的线程。
任务是一个线程:
支持抢占式调度机制、时间片轮转调度机制。
Huawei LiteOS的任务模块支持任务的创建、删除、延迟、挂起、恢复以及锁定任务调度、解锁任务调度。
任务调度:
当一个任务对共享资源进行调度时,不想被其他任务打断,此时,可以进行任务调度锁定。
内存模块:
如果没有操作系统进行管理,那么需要开发人员进行管理,存在较大的内存碎片化。
Huawei LiteOS的内存管理提供静态和动态内存两种算法。支持内存申请、释放。
动态内存:
- 在动态内存池中分配用户指定大小的内存块。
- 优点:按需分配。
- 缺点:内存池中会出现碎片。
- 动态申请DLINK算法和Best Little算法
静态内存:
- 在静态内存池中分配用户初始化时预设大小的内存块。
- 优点:分配和释放效率高、静态内存池中无碎片化。
- 缺点:不能按需分配。
- 固定大小的BOX算法。
中断管理:
出现需求时,cpu暂停执行当前的程序,转而去执行新程序。
例子:假如你正在给朋友写信,电话铃响了,这时已放下手中的笔去接电话,通话完毕再继续写信。这个例子就表现了中断及其处理过程,电话铃声是你暂时中止当前的工作而去处理更为急需处理的事情。接电话把急需处理的事情处理完毕之后再回头来继续原来的事情。在这个例子中,电话铃声称为中断,请求暂停写信去接电话,叫做中断响应。接电话的过程就是中断处理。
中断:pc出现特殊情况(事件)——CPU中止现行程序——执行处理事件的处理程序——中断服务程序执行完毕。
华为LiteOS的中断管理模块支持:
中断创建,开/关中断,恢复中断、中断使能,中断屏蔽,中断删除等功能。
队列又称消息队列:
是一种常用于任务间通信的数据结构,实现了接收来自任务或中断的不固定长度的消息,并根据不同的接口选择传递消息是否存放在自己空间。
消息队列可以有先入先出或者先入后出的模式,可以在任务间通信。
Huawei LiteOS的消息队列支持队列的创建、删除、发送和接收功能。
信号量:
是一种实现任务间通信的机制,实现任务之间同步或临界资源的互斥访问。
互斥锁:
可以理解为是特殊的信号量做两个以上任务,对有限的共享资源做访问时保护,防止冲突。
归纳:
信号量,是协调多个任务访问,共享资源提供协商作用,可以让大家共同使用,共享资源而互斥锁是共享资源,只能被一个任务访问时起到保护,防止冲突的作用。
操作系统是如何感知时间管理时间的呢:
在MCU里面,有个始终元对应的就是我们的系统主频。比如八十兆赫兹,他每秒触发八十兆次,每次触发的时候都会让系统执行一条指令。通过始终元MCU,可以知道相对的时间这个时间是系统时间。另外还有个时间用于时间分片调度。每个任务对CPU可以做最小分片,比如CPU时间分片调度,这个时间的参数单位是泰克。美国泰克可以调度任务一次,每个太可默认十毫秒。
总结:
华为LiteOS的内核是一个的工号的超小内核,其基础内核体积可以裁减至不到十KB,具备高实时性与高稳定性,并且支持动态加载与分散加载支持功能静态裁剪。
5.3N个框架知多少——LiteOS Framework
互联框架:
主要解决不同协议终端的互联互通。
互联框架,能够提供完整的协议栈,降低开发门槛,实现互连,并且提供了可灵活配置的应用。
AgentTiny:
是一个轻量级互联互通,中间键部署在对功耗、存储、计算资源有苛刻限制的终端设备上,开发者只需调用几个简单的API接口,并可实现设备快速接入到华为IoT云平台以及数据上报和命令接收等功能。
互联框架能够优化Mesh,是自组网能力,满足海量终端组网。
互联框架解决了不同协议终端的互联互通。
传感框架:
提供了多传感器的统一管理。传感框架能够提供统一的驱动接口,抽象不同类型传感器接口,屏蔽硬件细节,实现即插即用。
另外还提供统一的传感器交付管理与传感器、算法库,提供一些基础算法融合数据,方便开发者直接调用。
Huawei LiteOS提供了安全框架:
端云安全、传输安全、终端安全。
端云安全:
主要涉及云端的认证健全,云端会设置白名单,进行双向设备认证。
传输安全:
包含了数据链路,安全网络层安全,路由层RPL安全以及DTLS。
DTLS:
是数据报安全传输协议,其提供了UDP传输场景下的安全解决方 案,能防止消息被窃听,篡改,身份冒充等问题。
终端安全:
通常包含API的认证,对于调用API接口的任务,程序与应用需要通过认证。同时,终端安全里划分了一个安全区域,包含白名单,用于端与安全的双向设备认证,设备管理的安全固件与升级,安全启动安全ID**管理安全存储等。
安全存储:
是在芯片内部划分了一部分存储空间,这部分空间不会让外部线程访问到。像生活中常见的指纹识别、安全支付等。
运行引擎与JavaScript框架:
运行引擎:
提供了高性能轻量级JavaScript虚拟机与面向物联网的应用。开发框架是轻量级物联网设备能在JavaScript的框架下进行开发。
JavaScript的虚拟机:
是针对资源高度受限的设备设计和优化与OS应用框架协同优化来提高性能。
- 简化系统集成
- 隐藏部分编程细节
- 兼容第三方库
- 丰富平台功能
- 安全性
华为LiteOS在开放的“1+n”架构基础上还提供了开放的API接口:
开放的API屏蔽底层差异,让应用开发者只需关注上层应用开发。并且友好的接口设计使得已熟悉在Windows系统上开发应用的开发者能够非常平滑的切换到华为LiteOS系统上开发。同时,由于华为LiteOS系统的精简内核特性,使得开发者更容易理解内核。
=================================
此篇总字数: 4776字
用时:2.5小时