人人学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小时

发布了8 篇原创文章 · 获赞 3 · 访问量 3901

猜你喜欢

转载自blog.csdn.net/zhanghongbin159/article/details/104946844