HARMONY

HARMONY

微内核

  • 针对5G+IOT

  • 全场景

    • 手机,pc,平板,车辆,只能穿戴,家具设备。。。。
  • 弹性部署

  • 开源

  • 方舟编译器

  • 混合内核linux+LiteOS+…android

什么是操作系统?

软件-OS -CPU-memory-hd

操作系统(编程语言)

管理硬件内存
OS硬盘
cpu
管理应用进程

Kernel

cpu调度文件系统
kernel应用管理进程调度
内存管理中断处理设备驱动

宏内核

cpu调度文件系统
kernel应用管理进程调度
内存管理中断处理设备驱动

微内核

cpu调度用户文件系统
用户kernel应用管理进程调度
内存管理用户中断处理设备驱动

微内核的优点:易拆装。缺点:运行速度底一点。

外核

officebrowser
外核外核
kernel
cpu调度内存管理中断处理设备驱动应用管理进程调度文件系统

VMM

硬件资源过剩

  • | OS | OS | OS | OS | OS |
    | ---- | ---- | --------------------------- | ---- | ---- |
    | | | vmm virtual machine monitor | | |
    | | | HD | | |

cmos

cmos:(complementary Metal Oxide Semiconductor)(电池)开机系统

中断:Ox80中断,硬件和操作系统打交道的时候是中断信号。

软件和操作系统打交道的时候就是软中断信号。

APP系统调用内核态
  1. app发出Ox80中断或调用sysenter原语

  2. OS进入内核态

  3. 在中断向量表中查找处理例程

  4. 保存硬件现场CSIP等寄存器值

  5. 保存app现场,堆栈与寄存器的值

  6. 执行中断例程system_call

    1.根据参数与编号寻找对应例程

    2.执行返回

7.回复现场

8.返回用户态

9.app继续执行 The mediation intermediary agent 中介,媒介 instrumentation 仪表

Fiber 纤程 ,线程里的线程 fiber n.纤维

Thread n.线 线程 vt.穿过;穿线;使交织 vi;通过;穿透过 agent n.代理

某种特定的情况下纤程比线程运算的快。

FIBER vs Thread

FIBER 一般用在回调函数

纤程的应用场景:用户空间的易步编程

  1. Callable+Future

  2. Guava的扩展 Listenable Future

  3. Rx Java响应式编程

  4. Quasar库(JAVA agent)

  5. 期待Fiber cache缓存 registers n.寄存器 v.登记,挂号邮寄 n.登记员,登记薄

寄存器的层次结构

(深入理解计算机系统,原书第三版p421)。

更小,更快,成本更高L0:寄存器cpu内存
L1:高速缓存cpu内存,cache line 缓存行
L2:高速缓存cpu内存,cache line 缓存行
L3:高速缓存cache line 缓存行
L4:主存cpu共享
L5:磁盘cpu共享
L6:远程文件储存cpu共享
从cpu到大约需要的cpu周期大约需要的时间
主存约60-80纳秒
QPI总线传输约20ns
L3 cache约40-45cycles约15ns
L2 cache约10 cycles约3ns
L1 cache约3-4 cycles约1ns
寄存器1cycle

超线程:一个ALU对应多个pc|Registers 所谓的四核八线程。

缓存行:

缓存行越大,局部性空间效率越高,但读取时间慢。

缓存行越小,局部性空间效率越低,但读取时间快。

void adj,无效的;空白的;无人(居住)的缺乏的 n,空间,空白,空虚感

disorder 障碍 n,混乱,骚乱 vt,使失调;扰乱 cpu的乱序执行是为了保障有序性。

DCL

DCL Data control Language:数据控制语言

进程是什么?------>程序启动进入内存,资源分配的基本单位。

线程是什么?------>程序执行的基本单位

程序如何开始运行?----->cpu.读指令,pc(储存指令地址)读数据Register,计算,回写—>下一条

线程如何进行调度?------>linux 线程调度器(OS操作系统)

线程切换的概念是什么?—>context Switch CPU保存现场,执行新线程,恢复现场,继续执行原线程这样的一个过程。、

JAVA里不能写太多的线程。GO语言能够写很多的线程。

JVM
线程模型OS Kernel Thread
hotspot模型?1:1
golang m:n 的关系2000协程
rust语言史上最NB的语言不可以有野指针(内存安全)
可变不共享(线程安全)

锁的概念

锁的概念:某一时刻只能允许一个人去做 synchronized(锁)

不持有锁的线程咋办?忙等待/进队列等待。

等待队列需要操作系统调用while循环消耗cpu资源
轻量级忙等待
等待队列重量级锁

咋办?忙等待/进队列等待。

等待队列需要操作系统调用while循环消耗cpu资源
轻量级忙等待
等待队列重量级锁
已标记关键词 清除标记
<p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">本期是我们鸿蒙系列课程的第1期,主要目标是让大家先搞清楚鸿蒙的整体架构,开发环境搭建,代码构建和编译烧录测试等玩法。然后就是核心的代码解读和试验了,譬如liteos_a的启动流程,liteos的shell原理和用法,鸿蒙各组件的加载和使用。鸿蒙的ipc和rpc,ace模块的实现和接口,鸿蒙app的sdk介绍和app开发环境搭建,app和hap的区分,注册鸿蒙app开发者,本次测试应用、上传应用等。</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;"> </p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">本课程是整个第1期的第1个课程,我们基于HI3516DV300开发板+liteos_a / HI3861开发板+liteos_m这2套组合来整个打通做一遍。从源码gitee下载,本地开发环境部署,到解压、配置、编译、烧录、启动运行,在shell上看一些信息,本地bm工具安装hap包运行,本地开发helloworld程序运行。课程目标是让大家整体的体验harmonyos开发全流程。Harmonyos支持Windows和linux两种开发方式,windows下提供了南向ide(基于vscode+deveco studio插件),可以配置编译并烧录,还可以单步调试。而linux下基于命令行只能配置编译不能烧录(但是开发起来很清爽)。这些开发细节在这个课程都会带大家走一遍。老规矩,一边做一边讲。我昨天已经打好了ubuntu20.04上传到核心课程的虚拟机网盘里了,本课程会使用这个ubuntu200401LTS来做。</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;"> </p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">课程特色</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">*完全零基础,降低学习门槛。</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">*深入浅出,通俗易懂。不怕学不会,就怕你不学习。</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">*思路清晰、语言风趣,对着视频看也不会想睡觉······</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">*视频 + 文档 + 练习题 + 答疑,全方位保证学习质量。</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">*基础知识 + 思路引导的教学方式,授之以鱼更授之以渔。</p> <p style="font-family: 'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif; margin: 0px; padding: 0px; color: #313d54; font-size: 16px; background-color: #ffffff;">*系列课程。本教程只是入门篇,后续还有更多更精彩视频更新中。</p>
<p class="sub-title" style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:17px;font-weight:bold;background-color:#ffffff;"> <span style="font-size:16px;">本课程从技术角度讲了鸿蒙系统的架构框图,鸿蒙app的开发和部署方式,鸿蒙的kernel等。并详细讲了鸿蒙的关键技术创新与鸿蒙的生态伙伴、生态发展策略。</span> </p> <div class="course_desc sub-content" style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;margin:24px 0px 0px;padding:0px;font-size:16px;color:#313d54;background-color:#ffffff;"> <p>   </p> <p> 本课程隶属于《跟朱老师学鸿蒙系列课程》的第1个课程。该系列课程是朱有鹏老师规划和录制的系统学习鸿蒙系统HarmonyOS的系列课程,会持续更新不断深入。前面课程主要是鸿蒙相关的科普和技术介绍、生态战略介绍、鸿蒙创新特性介绍、典型案例讲解和分析等。后面会逐步深入到纯技术学习课程,涉及到鸿蒙开发的各个方向,包括但不限于:鸿蒙北向应用开发(环境搭建、编程基础、常用API、手把手demo实战、开发者申请、签名app并上传应用市场等)、鸿蒙南向系统开发(liteos-m和liteos-a kernel源码分析、移植、调试等)、鸿蒙南向驱动开发(HDF框架解析、鸿蒙设备树、常见设备驱动模型分析和驱动编程实战,如GPIO、I2C、LCD、TP等)、鸿蒙系统创新开发(如分布式软总线解析、跨设备调用实战、安全子系统详解、鸿蒙AI子系统等)。总之,该课程会贯彻朱老师一贯做课习惯,会是一个零基础起步,长篇大论,不断更新和添加丰富完善,带大家从应用到系统到驱动,非常完整全面的学习和解析鸿蒙系统的一套课程。 </p> </div>
相关推荐
《基于模型的系统工程最佳实践》从方法论的角度,描述了基于模型的系统工程最佳实践。主要从系统工程的视点出发,把系统开发的前期系统工程的工作任务、责任范围,以工作流的方式,解剖得淋漓尽致,为系统的后续开发和系统的确认与验证,提供了无缝衔接。本书以系统工程实践者为对象,通过众多截屏、注释和最佳实践技巧,帮助读者清晰理解工作流的细节。本书的目的是帮助读者在集成系统和软件开发中应用基于模型的系统工程标准建模语言SysML。 第1章 绪论 1.1 范围 1.2 内容概述 第2章 HarmonySE基础 2.1 Rational集成系统嵌入式实时开发流程:Harmony 2.2 基于模型的系统工程流程 2.2.1 需求分析 2.2.2 系统功能分析 2.2.3 设计综合 2.2.3.1 架构分析(权衡分析研究) 2.2.3.2 架构设计 2.2.4 系统工程交付 2.3 SysML应用于基于模型的系统工程的基本工件 2.3.1 需求图 2.3.2 结构图 2.3.2.1 模块定义图 2.3.2.2 内部模块图 2.3.2.3 参数图 2.3.3 行为图 2.3.3.1 用例图 2.3.3.2 活动图 2.3.3.3 序列图 2.3.3.4 状态图 2.3.4 需求分析系统功能分析层次的工件关系 2.4 服务请求驱动的建模方法 第3章 Rhapsody项目结构 3.1 项目结构概览 3.2 需求分析套件包 3.3 功能分析套件包 3.4 设计综合套件包 3.4.1 架构分析套件包 3.4.2 架构设计套件包 3.5 系统层定义 第4章 案例:安全系统 4.1 案例工作流 4.2 创建Harmony项目结构 4.3 需求分析 4.3.1 DOORS:涉众需求的导入 4.3.2 DOORS:系统需求的导入 4.3.3 关联系统需求到涉众需求 4·3.4 DOORS一>Gateway->Rhapsody:导入系统需求 4.3.5 系统级用例定义 …… 第5章 交付到子系统开发
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页