操作系统的三个阶段:
物联网操作系统面临的问题:
物联网操作系统可以支持不同的硬件、通信标准、应用场景。
物联网操作系统的出现:
HUAWEI LiteOS
特点:轻量级、低功耗、ms级快速启动、μs级响应、适应于个人、家庭等场景。
应用于:智能家居、智能停车、智能水表、智能照明。
Huawei LiteOS基础架构:
“1"+"n” 架构
“1”是一个内核,“n”是n个中间件包含了来自OS的互连框架传感况下安全框架运行引擎。
‘
Huawei LiteOS基础内核:
任务管理、内存管理中断、管理队列管理、事件管理、通信机制、事件管理、定时器等操作系统。
任务:是竞争系统资源的最小运行单元。任务可以使用或等待CPU使用内存空间等系统资源,并独立于其他任务运行。
进程:
例如:聊天软件就是一个进程。
线程:
例如跟某人聊天,语音通话就是一个小的线程。
任务是一个线程:
支持抢占式调度机制、时间片轮转调度机制。
Huawei LiteOS的任务模块支持任务的创建、删除、延迟、挂起、恢复以及锁定任务调度、解锁任务调度。
任务调度:
当一个任务对共享资源进行调度时,不想被其他任务打断,此时,可以进行任务调度锁定。
内存模块:
如果没有操作系统进行管理,那么需要开发人员进行管理,存在较大的内存碎片化。
Huawei LiteOS的内存管理提供静态和动态内存两种算法。支持内存申请、释放。
动态内存:
静态内存:
中断管理:
出现需求时,cpu暂停执行当前的程序,转而去执行新程序。
例子:假如你正在给朋友写信,电话铃响了,这时已放下手中的笔去接电话,通话完毕再继续写信。这个例子就表现了中断及其处理过程,电话铃声是你暂时中止当前的工作而去处理更为急需处理的事情。接电话把急需处理的事情处理完毕之后再回头来继续原来的事情。在这个例子中,电话铃声称为中断,请求暂停写信去接电话,叫做中断响应。接电话的过程就是中断处理。
中断:pc出现特殊情况(事件)——CPU中止现行程序——执行处理事件的处理程序——中断服务程序执行完毕。
华为LiteOS的中断管理模块支持:
中断创建,开/关中断,恢复中断、中断使能,中断屏蔽,中断删除等功能。
队列又称消息队列:
是一种常用于任务间通信的数据结构,实现了接收来自任务或中断的不固定长度的消息,并根据不同的接口选择传递消息是否存放在自己空间。
消息队列可以有先入先出或者先入后出的模式,可以在任务间通信。
Huawei LiteOS的消息队列支持队列的创建、删除、发送和接收功能。
信号量:
是一种实现任务间通信的机制,实现任务之间同步或临界资源的互斥访问。
互斥锁:
可以理解为是特殊的信号量做两个以上任务,对有限的共享资源做访问时保护,防止冲突。
归纳:
信号量,是协调多个任务访问,共享资源提供协商作用,可以让大家共同使用,共享资源而互斥锁是共享资源,只能被一个任务访问时起到保护,防止冲突的作用。
操作系统是如何感知时间管理时间的呢:
在MCU里面,有个始终元对应的就是我们的系统主频。比如八十兆赫兹,他每秒触发八十兆次,每次触发的时候都会让系统执行一条指令。通过始终元MCU,可以知道相对的时间这个时间是系统时间。另外还有个时间用于时间分片调度。每个任务对CPU可以做最小分片,比如CPU时间分片调度,这个时间的参数单位是泰克。美国泰克可以调度任务一次,每个太可默认十毫秒。
总结:
华为LiteOS的内核是一个的工号的超小内核,其基础内核体积可以裁减至不到十KB,具备高实时性与高稳定性,并且支持动态加载与分散加载支持功能静态裁剪。
互联框架:
主要解决不同协议终端的互联互通。
互联框架,能够提供完整的协议栈,降低开发门槛,实现互连,并且提供了可灵活配置的应用。
AgentTiny:
是一个轻量级互联互通,中间键部署在对功耗、存储、计算资源有苛刻限制的终端设备上,开发者只需调用几个简单的API接口,并可实现设备快速接入到华为IoT云平台以及数据上报和命令接收等功能。
互联框架解决了不同协议终端的互联互通。
传感框架:
提供了多传感器的统一管理。传感框架能够提供统一的驱动接口,抽象不同类型传感器接口,屏蔽硬件细节,实现即插即用。
另外还提供统一的传感器交付管理与传感器、算法库,提供一些基础算法融合数据,方便开发者直接调用。
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小时