第一章 鸿蒙内核开发概述 1.1 鸿蒙系统有哪些内容? 鸿蒙系统,就相当于一套完整的PC软件系统。 ? Windows里含有: 简单地说,鸿蒙系统里含有 ① 电脑一开机,那些界面是谁显示的? 类似的,这个BIOS对应于鸿蒙里的bootloader。Bootloader的作用就是去Flash、SD卡等设备上读入鸿蒙内核,并启动它。 ④ Windows启动之后,我们就是聊QQ、玩游戏了,这些就是APP,它们存在磁盘上同样的,鸿蒙系统中也有各种APP,它们位于根文件系统上。 ①bootloader:用于启动鸿蒙内核Liteos-a②内核(含有驱动程序):提供进程管理、文件管理、硬件驱动等③ 根文件系统:系统运行必需的文件、程序④ APP:保存于根文件系统上 1.2 日常工作中开发流程是怎样 Bootloader、内核、APP等等软件,需要在Ubuntu中编译;但是阅读、修改这些源码时,在Windows下会比较方便。 所以,我们需要在Windows、Ubuntu上都存有源码。
1.1 鸿蒙系统有哪些内容? 鸿蒙系统,就相当于一套完整的PC软件系统。 Windows里含有: ① 电脑一开机,那些界面是谁显示的? 是BIOS,它做什么? 类似的,这个BIOS对应于鸿蒙里的bootloader。 Bootloader的作用就是去Flash、SD卡等设备上读入鸿蒙内核,并启动它。 ④ Windows启动之后,我们就是聊QQ、玩游戏了,这些就是APP,它们存在磁盘上 同样的,鸿蒙系统中也有各种APP,它们位于根文件系统上。 简单地说,鸿蒙系统里含有: ① bootloader:用于启动鸿蒙内核Liteos-a ②内核(含有驱动程序):提供进程管理、文件管理、硬件驱动等 ③ 根文件系统:系统运行必需的文件、程序 ④ APP: Bootloader、内核、APP等等软件,需要在Ubuntu中编译;但是阅读、修改这些源码时,在Windows下会比较方便。 所以,我们需要在Windows、Ubuntu上都存有源码。
elecfans_trackid=t_index 2.直播内容: 鸿蒙OS内核liteos-a 操作系统框架 鸿蒙OS内核liteos-a 框架分析 鸿蒙OS内核liteos-a 启动流程 鸿蒙OS 内核liteos-a 移植1:串口 鸿蒙OS内核liteos-a 移植2:MMU 鸿蒙OS内核liteos-a 移植3:中断体系 鸿蒙OS内核liteos-a 移植4:定时器 鸿蒙OS内核liteos-a 移植5:文件系统 鸿蒙OS内核liteos-a 移植6:第一个APP 3.对鸿蒙OS系统感兴趣的同学, 请加QQ群:869222007,我们将在群里集中回复大家的疑问。 鸿蒙也是一套完整的操作系统,Linux仅仅是鸿蒙支持的内核之一。 问2. 微内核是rtos或者uclinux之类的吗? 答: 微内核,并不是“微小的内核”。 但是liteos-a并不是对标安卓、对标Windows,鸿蒙才是对标安卓。鸿蒙是一个庞大的系统,liteos-a是鸿蒙支持的内核之一。
如果需要多个工作人员怎么办,就是通过fork,简单说就是复制一个,复制的前提是需要有一个,鸿蒙里就是KProcess,其他工作人员都是通过它fork的。 那用户怎么来的呢? 1.OpenHarmony开发基础2.OpenHarmony北向开发环境搭建3.鸿蒙南向开发环境的搭建4.鸿蒙生态应用开发白皮书V2.0 & V3.05.鸿蒙开发面试真题(含参考答案) 6.TypeScript 【OpenHarmony】Uboot 驱动加载流程12.OpenHarmony构建系统--GN与子系统、部件、模块详解13.ohos开机init启动流程14.鸿蒙版性能优化指南.......内核态根进程创建过程创建 idleTaskID = &perCpu->idleTaskID;//得到CPU的idle task ret = OsCreateResourceFreeTask();// 创建一个资源回收任务,优先级为5 当任何进程或者中断异常进入内核后,都是使用相同的内核代码段描述符和内核数据段描述符,它们是__KERNEL_CS和__KERNEL_DS。这里要明确记得,内核数据段实际上就是内核态堆栈段。
[下载 source insight 4.0 破解版]可以豪不夸张的说理解LOS_DL_LIST及相关函数是读懂鸿蒙内核的关键。 前后指针(注者后续将比喻成一对左右触手)灵活的指挥着系统精准的运行,越是深入分析内核源码,越能感受到内核开发者对LOS_DL_LIST非凡的驾驭能力,笔者仿佛看到了无数双手前后相连,拉起了一个个双向循环链表 1.OpenHarmony开发基础2.OpenHarmony北向开发环境搭建3.鸿蒙南向开发环境的搭建4.鸿蒙生态应用开发白皮书V2.0 & V3.05.鸿蒙开发面试真题(含参考答案) 6.TypeScript holds the waitLits to support wait/waitpid *///进程持有等待链表以支持wait/waitpid} LosProcessCB;解读pendList 个人认为它是鸿蒙内核功能最多的一个链表 waitpid系统调用为SysWait,具体看进程回收篇.双向链表是内核最重要的结构体,精读内核的路上它会反复的映入你的眼帘,理解它是理解内核运作的关键所在!
一个操作系统,最重要的部分无疑是内核。鸿蒙系统声称自研了内核,从之前开源的 OpenHarmony OS 代码中可以看到,是一款名为 LiteOS 的面向 IoT 领域构建的轻量级物联网操作系统。 目录则存放的是编译脚本和内核配置。 从中也可以看出,鸿蒙系统选用的是 linux 4.19.y LTS 版本。 在之前的文章 聊一聊鸿蒙的构建系统 中,我们知道鸿蒙采用了 GN 构建系统。 生成内核.config。
主子和奴才请想一个问题,内核本身也是程序要在内存运行, 用户程序一样也要在内存运行,大家都在一个窝里吃饭, 你凭什么就管我了.好像内核程序是主子,用户程序是奴才似的.哎! 其实用户进程就是内核的一个个奴才, 被捏的死死的. 按不住奴才那这主子就不合格,就不是一个稳定系统. 请想想实际内存就这么点大, 如何满足众多用户进程的需求? 内核空间和用户空间如何隔离? 队伍大了就不好带了,方法得换, 游击队的做法不适合规模作战,内存就需要管理了,而且是 5A级的严格管理。内存管理在管什么?简单说就是给主子赋能,拥有超级权利,为什么就他有? 1.OpenHarmony开发基础2.OpenHarmony北向开发环境搭建3.鸿蒙南向开发环境的搭建4.鸿蒙生态应用开发白皮书V2.0 & V3.05.鸿蒙开发面试真题(含参考答案) 6.TypeScript 【OpenHarmony】Uboot 驱动加载流程12.OpenHarmony构建系统--GN与子系统、部件、模块详解13.ohos开机init启动流程14.鸿蒙版性能优化指南.......举例说明TLB
鸿蒙轻内核使用Kconfig进行图形化配置,本文专门讲解下鸿蒙轻内核LiteOS-M和LiteOS-A的图形化配置方法。 本文首先简单介绍下kconfig的基础知识,接着介绍下如何使用图形化配置。 鸿蒙轻内核使用的是Python的开源三方库kconfiglib(menuconfig只是其提供的命令之一,相关命令还有genconfig, savedefconfig等等)。 `1.OpenHarmony开发基础2.OpenHarmony北向开发环境搭建3.鸿蒙南向开发环境的搭建4.鸿蒙生态应用开发白皮书V2.0 & V3.05.鸿蒙开发面试真题(含参考答案) 6.TypeScript /vendor/hisilicon/hispark_aries/config/release.config3、Kconfig高级语法Kconfig大部分工程师都了解,快速介绍几个鸿蒙轻内核中使用到的稍微高级的语法 olddefconfig等同于silentoldconfig,对于新符号使用默认值–savedefconfig <file>把当前最小的配置保持到文件<file>小结本文介绍了Kconfig的基础知识,和鸿蒙轻内核的图形化配置
【HarmonyOS 5】鸿蒙发展历程一、鸿蒙 HarmonyOS 版本年代记鸿蒙 1.0:2019 年 8 月 9 日,华为在开发者大会上正式发布鸿蒙 1.0 系统,这一版本首次应用于华为荣耀智慧屏产品中 原生鸿蒙正式版也在 2025 年 3 月发布,进一步推动了鸿蒙生态向更纯粹、更自主的方向发展 。鸿蒙PC将在2025年5月发布。 华为汇聚了顶尖的研发团队,投入大量资金,在操作系统内核、分布式技术、跨设备通信协议等关键领域进行技术攻关。 到了 2019 年 5 月 14 日,华为鸿蒙商标获得注册公告,专用权限期从 2019 年 5 月 14 日至 2029 年 5 月 13 日,这为鸿蒙系统的商业化推广与应用提供了品牌保障,也正式拉开了鸿蒙系统在智能终端市场上的探索与发展序幕 凭借微内核架构、TEE 可信执行环境等技术,其隐私与安全方面的优势将成为吸引企业级市场和高端消费用户的关键因素。
【HarmonyOS 5】鸿蒙mPaaS详解一、mPaaS是什么?mPaaS 是 Mobile Platform as a Service 的缩写,即移动开发平台。 鸿蒙 mPaaS 的容器化技术与 Android/iOS 平台的差异:特性 鸿蒙 mPaaS 传统 Android/iOS 例如:通过JS脚本动态修改H5页面的交互逻辑;在原生页面中注入脚本代码,实时调整业务流程。 离线包机制:undefined将常用的H5页面、小程序代码提前下载至本地,减少对网络的依赖,提升页面加载速度,尤其适用于弱网环境。 以下是具体分析:四、鸿蒙中如何接入mPaas?
本文将为大家介绍鸿蒙轻内核中的进程、线程、内存和网络四大基础功能,包括一些基础概念、实现功能和使用场景等,供想要深入了解鸿蒙操作系统的初学者学习参考。 OpenHarmony内核中的进程采用抢占式调度机制,支持时间片轮转调度方式和FIFO调度机制。 OpenHarmony内核每个进程内的线程独立运行、独立调度,当前进程内线程的调度不受其它进程内线程的影响。 OpenHarmony内核中的线程采用抢占式调度机制,同时支持时间片轮转调度和FIFO调度方式。 OpenHarmony内核的线程一共有32个优先级(0-31),最高优先级为0,最低优先级为31。 MREMAP_MAYMOVE:允许内核将映射重定位到新的虚拟地址。
`1.OpenHarmony开发基础2.OpenHarmony北向开发环境搭建3.鸿蒙南向开发环境的搭建4.鸿蒙生态应用开发白皮书V2.0 & V3.05.鸿蒙开发面试真题(含参考答案) 6.TypeScript NO修改内核中断。 内核提供了两种中断修改方式:使用厂商默认中断。 添加内核子系统添加完内核子系统后,可以编译出带有系统的工程。通过以下步骤添加内核子系统:在“config.json”中添加内核子系统。 轻量级系统的内核提供了一些特性,此步骤将指导如何查看、开启/关闭这些特性。内核特性:liteos_m提供了包括文件系统、backtrace在内的一系列内核特性开关。 }写在最后如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:点赞,转发,有你们的 『点赞和评论』,才是我创造的动力;关注小编,同时可以期待后续文章ing,不定期分享原创知识;想要获取更多完整鸿蒙最新学习知识点
【HarmonyOS 5】鸿蒙应用隐私保护详解一、前言在今天这个手机不离手的时代,我们每天用手机支付、聊天、记录生活,不知不觉中,大量个人信息都存储在了移动设备里。 精准度在米级别大于等于9ohos.permission.LOCATION失败无法获取位置大于等于9ohos.permission.APPROXIMATELY_LOCATION成功获取到模糊位置,精确度为5公里大于等于 同时申请ohos.permission.APPROXIMATELY_LOCATION和ohos.permission.LOCATION成功获取到精准位置,精准度在米级别代码示例:首先在module.json5配置文件中声明权限 photoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;photoSelectOptions.maxSelectNumber = 5; 代码示例:以申请相机权限为例,在module.json5配置文件中声明权限:{ "module": { // ...
【HarmonyOS 5】鸿蒙实现手写板一、前言实现一个手写板功能,基本思路如下:创建一个可交互的组件,用户在屏幕上触摸并移动手指时,会根据触摸的位置动态生成路径,并使用黑色描边绘制在屏幕上。 该组件的使用思路很简单,如下代码所示: Path() .commands(this.pathCommands) // 设置SVG路径描述字符串 .strokeWidth(5) // 设置路径的描边宽度为 5 .fill("none") // 设置路径的填充颜色为无 .stroke(Color.Black) // 设置路径的描边颜色为黑色 break; // 其他触摸类型,不做处理 default: break; } }5. // 设置路径的描边宽度为 5 .fill("none") // 设置路径的填充颜色为无 .stroke(Color.Black) // 设置路径的描边颜色为黑色
二、MQTT在鸿蒙中怎么使用?在鸿蒙(HarmonyOS)中使用MQTT协议主要通过官方提供的@ohos/mqtt库实现。 https://ohpm.openharmony.cn/#/cn/detail/@ohos%2Fmqtt配置依赖:ohpm install @ohos/mqtt或者在oh-package.json5中配置 : "dependencies": { "@ohos/mqtt":"2.0.18", }记得配置网络权限:在module.json5中配置: "requestPermissions
【HarmonyOS 5】鸿蒙星闪NearLink详解一、前言鸿蒙星闪NearLink Kit 是 HarmonyOS 提供的短距离通信服务,支持星闪设备间的连接、数据交互。 二、NearLink Kit 的接入与使用:点击跳转官方文档地址鸿蒙星闪(NearLink)的基本接入代码示例,包含设备发现、连接和数据传输的核心流程:// NearLink设备管理服务示例import } catch (error) { console.error(`Failed to release resources: ${error}`); } } }}三、鸿蒙星闪指标对比以下是鸿蒙星闪 、蓝牙和NFC在技术性能、应用场景、成本与生态系统等方面的区别表格:比较项目鸿蒙星闪蓝牙NFC传输速率最高可达2.5Gbps,低功耗模式下峰值速率可达12Mbps蓝牙5.2的传输速率为400Mbps,异步连接允许一个方向的数据传输速率达到
本文介绍在鸿蒙应用中button组件的基本用法。 增加按钮组件 如下代码中红色部分所示,在布局中增加button组件。 <?xml version="1.0" encoding="utf-8"? /> </DirectionalLayout> <Component ohos:height="0vp" ohos:weight="<em>5</em>" onClick(Component v) { new ToastDialog(getContext()) .setText("你好,鸿蒙 按钮之后,为button组件增加了一段在画面底部显示“你好,鸿蒙!"信息的响应代码。需要注意的是id的格式:ResourceTable.Id_hello_button。 ?
【HarmonyOS 5】鸿蒙应用数据安全详解一、前言大家平时用手机、智能手表的时候,最担心什么?肯定是自己的隐私数据会不会泄露! 二、设备和数据的“安全通行证”1、 设备也有“安全等级”HarmonyOS给设备划分了5个安全等级(SL1-SL5):根据设备是否具备TEE(可信执行环境)、安全存储芯片等能力,将设备分为5个安全等级: 等级安全能力典型设备SL1 低安全 智能穿戴设备SL5 高安全 手机、平板数据跨设备同步时,需满足数据安全标签 ≤ 目标设备安全等级的规则。
而宏内核,用户应用是通过系统调用直接来使用系统服务。所以微内核,消息传递是基本形态。基于这样的理解,RT-Thread目前是宏内核,更严谨些应该是Unikernel(内核与应用都运行在内核态)。 ——熊大 下面让我们重温俊小哥的微内核科普文章: ? 什么是微内核 微内核设计的基本思想是简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护。 而后来,为了在宏内核与微内核之间扬长避短,也发展出了中间的混合内核的形态,部分服务也会放置于内核中。上图右侧表示即是混合内核的架构。 其实微内核与混合内核,混合内核与宏内核之间并无十分明确的界限,一般情况下把最多只具备IPC(进程通信),进程调度,内存管理功能的内核称为微内核、把包含所有系统服务的内核称为宏内核、有少部分系统服务在用户态或者比微内核多一些系统服务的内核称为混合内核 本来第一代微内核的设计隔离了使内核安全性降低的系统服务,让系统服务漏洞不会影响内核,进而提高了内核安全性,可以说是关上了破坏系统的门, 但是第二代系统却又给攻击者开了个窗户;由于第二代微内核在内核中省去了关于安全性检查等步骤
而宏内核,用户应用是通过系统调用直接来使用系统服务。所以微内核,消息传递是基本形态。基于这样的理解,RT-Thread目前是宏内核,更严谨些应该是Unikernel(内核与应用都运行在内核态)。 ——熊大 下面让我们重温俊小哥的微内核科普文章: ? 什么是微内核 微内核设计的基本思想是简化内核功能,在内核之外的用户态尽可能多地实现系统服务,同时加入相互之间的安全保护。 而后来,为了在宏内核与微内核之间扬长避短,也发展出了中间的混合内核的形态,部分服务也会放置于内核中。上图右侧表示即是混合内核的架构。 其实微内核与混合内核,混合内核与宏内核之间并无十分明确的界限,一般情况下把最多只具备IPC(进程通信),进程调度,内存管理功能的内核称为微内核、把包含所有系统服务的内核称为宏内核、有少部分系统服务在用户态或者比微内核多一些系统服务的内核称为混合内核 本来第一代微内核的设计隔离了使内核安全性降低的系统服务,让系统服务漏洞不会影响内核,进而提高了内核安全性,可以说是关上了破坏系统的门, 但是第二代系统却又给攻击者开了个窗户;由于第二代微内核在内核中省去了关于安全性检查等步骤