首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏韦东山嵌入式

    鸿蒙内核开发概述

    第一章 鸿蒙内核开发概述 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.2K41发布于 2020-09-30
  • 来自专栏韦东山嵌入式

    韦东山鸿蒙开发教程03 - 鸿蒙内核开发概述

    1.1 鸿蒙系统有哪些内容? 鸿蒙系统,就相当于一套完整的PC软件系统。 Windows里含有: ① 电脑一开机,那些界面是谁显示的? 是BIOS,它做什么? 类似的,这个BIOS对应于鸿蒙里的bootloader。 Bootloader的作用就是去Flash、SD卡等设备上读入鸿蒙内核,并启动它。 ④ Windows启动之后,我们就是聊QQ、玩游戏了,这些就是APP,它们存在磁盘上 同样的,鸿蒙系统中也有各种APP,它们位于根文件系统上。 简单地说,鸿蒙系统里含有: ① bootloader:用于启动鸿蒙内核Liteos-a ②内核(含有驱动程序):提供进程管理、文件管理、硬件驱动等 ③ 根文件系统:系统运行必需的文件、程序 ④ APP: Bootloader、内核、APP等等软件,需要在Ubuntu中编译;但是阅读、修改这些源码时,在Windows下会比较方便。 所以,我们需要在Windows、Ubuntu上都存有源码。

    64020编辑于 2022-05-05
  • 来自专栏韦东山嵌入式

    鸿蒙OS最新进展】鸿蒙内核liteos-a体验

    目前对于imx6ull,已经支持这些外设: 串口、MMU、中断、基于RAM的Flash模拟,I2C控制器、电容屏、LCD。 后面将会啃这2个难题:EMMC,网卡。 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 鸿蒙也是一套完整的操作系统,Linux仅仅是鸿蒙支持的内核之一。 问2. 微内核是rtos或者uclinux之类的吗? 答: 微内核,并不是“微小的内核”。 但是liteos-a并不是对标安卓、对标Windows,鸿蒙才是对标安卓。鸿蒙是一个庞大的系统,liteos-a是鸿蒙支持的内核之一。

    2.8K61发布于 2020-09-30
  • 来自专栏鸿蒙开发笔记

    鸿蒙内核源码分析(进程管理篇) | 谁在管理内核资源?

    注意用户进程和内核进程的祖先是不一样的,有各自的祖先根.分别是g_userInitProcess(1号) 和 g_kernelInitProcess(2号)/********************** /* 2: The root process ID of the kernel-mode process is fixed at 2 *///内核模式的根进程 LOS_ListDelete(&g_processCBArray 1.OpenHarmony开发基础2.OpenHarmony北向开发环境搭建3.鸿蒙南向开发环境的搭建4.鸿蒙生态应用开发白皮书V2.0 & V3.05.鸿蒙开发面试真题(含参考答案) 6.TypeScript 【OpenHarmony】Uboot 驱动加载流程12.OpenHarmony构建系统--GN与子系统、部件、模块详解13.ohos开机init启动流程14.鸿蒙版性能优化指南.......内核态根进程创建过程创建 "Kprocess"进程,也就是线程池中的2号进程g_kernelInitProcess,设为最高优先级 0//初始化 2号进程,即内核根进程LITE_OS_SEC_TEXT_INIT UINT32 OsKernelInitProcess

    33010编辑于 2025-03-06
  • 来自专栏鸿蒙开发笔记

    谁是鸿蒙内核最重要的结构体?

    [下载 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,具体看进程回收篇.双向链表是内核最重要的结构体,精读内核的路上它会反复的映入你的眼帘,理解它是理解内核运作的关键所在!

    21110编辑于 2025-03-06
  • 来自专栏大龄程序员的人工智能之路

    鸿蒙系统研究之二:内核编译

    一个操作系统,最重要的部分无疑是内核鸿蒙系统声称自研了内核,从之前开源的 OpenHarmony OS 代码中可以看到,是一款名为 LiteOS 的面向 IoT 领域构建的轻量级物联网操作系统。 从中也可以看出,鸿蒙系统选用的是 linux 4.19.y LTS 版本。 ,内核的参数配置文件为 hi3516dv300_emmc_smp_hos_l2_defconfig,最后一句就是生成内核镜像 uImage。 调用 gn 生成 Ninja 编译脚本;2. 调用 ninja 构建系统。 在之前的文章 聊一聊鸿蒙的构建系统 中,我们知道鸿蒙采用了 GN 构建系统。 make ${MAKE_OPTIONES} hi3516dv300_emmc_smp_hos_l2_defconfig # 使用自带的默认config 构建内核 编译生成对应的内核Image。

    3K30发布于 2021-07-14
  • 来自专栏鸿蒙开发笔记

    鸿蒙内核源码分析(内存主奴篇)

    主子和奴才请想一个问题,内核本身也是程序要在内存运行, 用户程序一样也要在内存运行,大家都在一个窝里吃饭, 你凭什么就管我了.好像内核程序是主子,用户程序是奴才似的.哎!  其实用户进程就是内核的一个个奴才, 被捏的死死的.  按不住奴才那这主子就不合格,就不是一个稳定系统. 请想想实际内存就这么点大, 如何满足众多用户进程的需求? 内核空间和用户空间如何隔离? 1.OpenHarmony开发基础2.OpenHarmony北向开发环境搭建3.鸿蒙南向开发环境的搭建4.鸿蒙生态应用开发白皮书V2.0 & V3.05.鸿蒙开发面试真题(含参考答案) 6.TypeScript 【OpenHarmony】Uboot 驱动加载流程12.OpenHarmony构建系统--GN与子系统、部件、模块详解13.ohos开机init启动流程14.鸿蒙版性能优化指南.......举例说明TLB 对A,B来说,它们只认 1,2,3房间,记得自己的房间是干什么用的就行,完全不必知道背后的7,8,9是谁在用, 用房间之前提交表单就行了,后面的不用管.而且各自1,2,3可以重新映射到不一样的房间, A

    15110编辑于 2025-03-08
  • 来自专栏鸿蒙开发笔记

    鸿蒙OpenHarmony轻内核Kconfig使用笔记

    鸿蒙内核使用Kconfig进行图形化配置,本文专门讲解下鸿蒙内核LiteOS-M和LiteOS-A的图形化配置方法。 本文首先简单介绍下kconfig的基础知识,接着介绍下如何使用图形化配置。 鸿蒙内核使用的是Python的开源三方库kconfiglib(menuconfig只是其提供的命令之一,相关命令还有genconfig, savedefconfig等等)。 2、 配置内核liteos_a内核使用Kconfig方式进行配置,在内核目录kernel/liteos_a下执行make menuconfig等命令即可。 `1.OpenHarmony开发基础2.OpenHarmony北向开发环境搭建3.鸿蒙南向开发环境的搭建4.鸿蒙生态应用开发白皮书V2.0 & V3.05.鸿蒙开发面试真题(含参考答案) 6.TypeScript /vendor/hisilicon/hispark_aries/config/release.config3、Kconfig高级语法Kconfig大部分工程师都了解,快速介绍几个鸿蒙内核中使用到的稍微高级的语法

    49420编辑于 2025-06-09
  • 来自专栏JAVA烂猪皮

    鸿蒙内核四大基础功能介绍

    本文将为大家介绍鸿蒙内核中的进程、线程、内存和网络四大基础功能,包括一些基础概念、实现功能和使用场景等,供想要深入了解鸿蒙操作系统的初学者学习参考。 WTERMSIG(status) 仅支持以下情况:子进程触发异常结束后通过WTERMSIG获取的进程退出编号始终为SIGUSR2。 WTERMSIG(status)仅支持以下情况:子进程触发异常结束后通过WTERMSIG获取的进程退出编号始终为SIGUSR2。 WTERMSIG(status) 仅支持以下情况:子进程触发异常结束后通过WTERMSIG获取的进程退出编号始终为SIGUSR2。 WTERMSIG(status)仅支持以下情况:子进程触发异常结束后通过WTERMSIG获取的进程退出编号始终为SIGUSR2

    1.2K42发布于 2020-09-18
  • 来自专栏码农架构

    HTTP2内核剖析

    只要服务器收到这个“有魔力的字符串”,就知道客户端在 TLS 上想要的是 HTTP/2 协议,而不是其他别的协议,后面就会都使用 HTTP/2 的数据格式。 二进制帧 头部数据压缩之后,HTTP/2 就要把报文拆成二进制的帧准备发送。 报头很小,只有 9 字节: 长度: 默认上限是 2^14,最大是 2^24, 也就是说 HTTP/2 的帧通常不超过 16K,最大是 16M 帧类型: 10种 数据帧: HEADERS 帧和 DATA HTTP/2 的流有哪些特点呢? 流状态转换 HTTP/2 的流也有一个状态转换图 (简化): 总结 HTTP/2 必须先发送一个“连接前言”字符串,然后才能建立正式连接; HTTP/2 废除了起始行,统一使用头字段,在两端维护字段“

    1.1K10发布于 2020-10-18
  • 来自专栏鸿蒙开发笔记

    OpenHarmony(鸿蒙南向开发)——轻量系统芯片内核移植

    厂商应在“device/MyDeviceCompany/MyBoard”下合适位置创建内核配置文件“target_config.h”,并根据芯片的硬件资源修改参数(具体参数介绍详见表2target_config.h 若已有的配置项不能满足需求,可查看“kernel/liteos_m/kernel/include/los_config.h”,其为liteos_m内核的全量配置文件。2. `1.OpenHarmony开发基础2.OpenHarmony北向开发环境搭建3.鸿蒙南向开发环境的搭建4.鸿蒙生态应用开发白皮书V2.0 & V3.05.鸿蒙开发面试真题(含参考答案) 6.TypeScript 【OpenHarmony】Uboot 驱动加载流程12.OpenHarmony构建系统--GN与子系统、部件、模块详解13.ohos开机init启动流程14.鸿蒙版性能优化指南.......表2 target_config.h 添加内核子系统添加完内核子系统后,可以编译出带有系统的工程。通过以下步骤添加内核子系统:在“config.json”中添加内核子系统。

    53220编辑于 2025-06-23
  • 来自专栏人人都是极客

    熊大微评微内核|华为“鸿蒙”所涉及的微内核究竟是什么?

    而后来,为了在宏内核与微内核之间扬长避短,也发展出了中间的混合内核的形态,部分服务也会放置于内核中。上图右侧表示即是混合内核的架构。 其实微内核与混合内核,混合内核与宏内核之间并无十分明确的界限,一般情况下把最多只具备IPC(进程通信),进程调度,内存管理功能的内核称为微内核、把包含所有系统服务的内核称为宏内核、有少部分系统服务在用户态或者比微内核多一些系统服务的内核称为混合内核 1986年,经过两年的开发,第一版的Mach发布后的第二年,Mach就发布了第2版,不过由于时间仓促,加之没有足够的人手与资金,所以此时Mach内核并不提供完全的系统服务。 验证了微内核的可行性;2. 在多处理器计算机上进行移植验证了微内核在多处理器计算机上的运行;3. 最后为了提高IPC的效率,Mach使用共享内存机制来完成IPC。 内核的IPC机制只是单纯地传递信息,诸如安全权限检查这类的代码都省略掉,省略掉的功能全部由用户进程自己处理。如此一来IPC功能部分的代码执行时间大大缩短;2.

    1.3K40发布于 2019-08-16
  • 来自专栏LINUX阅码场

    熊大微评微内核|华为“鸿蒙”所涉及的微内核究竟是什么?

    而后来,为了在宏内核与微内核之间扬长避短,也发展出了中间的混合内核的形态,部分服务也会放置于内核中。上图右侧表示即是混合内核的架构。 其实微内核与混合内核,混合内核与宏内核之间并无十分明确的界限,一般情况下把最多只具备IPC(进程通信),进程调度,内存管理功能的内核称为微内核、把包含所有系统服务的内核称为宏内核、有少部分系统服务在用户态或者比微内核多一些系统服务的内核称为混合内核 1986年,经过两年的开发,第一版的Mach发布后的第二年,Mach就发布了第2版,不过由于时间仓促,加之没有足够的人手与资金,所以此时Mach内核并不提供完全的系统服务。 验证了微内核的可行性;2. 在多处理器计算机上进行移植验证了微内核在多处理器计算机上的运行;3. 最后为了提高IPC的效率,Mach使用共享内存机制来完成IPC。 内核的IPC机制只是单纯地传递信息,诸如安全权限检查这类的代码都省略掉,省略掉的功能全部由用户进程自己处理。如此一来IPC功能部分的代码执行时间大大缩短;2.

    1.2K10发布于 2019-08-15
  • 来自专栏人人都是极客

    华为“鸿蒙”所涉及的微内核到底是什么?一文带你认识微内核

    1986年,经过两年的开发,第一版的Mach发布后的第二年,Mach就发布了第2版,不过由于时间仓促,加之没有足够的人手与资金,所以此时Mach内核并不提供完全的系统服务。 验证了微内核的可行性;2. 在多处理器计算机上进行移植验证了微内核在多处理器计算机上的运行;3. 最后为了提高IPC的效率,Mach使用共享内存机制来完成IPC。 内核的IPC机制只是单纯地传递信息,诸如安全权限检查这类的代码都省略掉,省略掉的功能全部由用户进程自己处理。如此一来IPC功能部分的代码执行时间大大缩短;2. 优点 1-系统服务模块化,可移植性高; 2-内核安全性提高(模块内部的bug不影响内核稳定,将黑客利用软件漏洞造成的破坏限制在单个模块内部); 3-可以多套系统服务共存,相当于同时运行多种操作系统; 4 缺点 1-通过进程通信的方式交换数据或者调用系统服务,而不是使用系统调用,造成额外的操作系统开销; 2-使用一些频繁使用的系统服务时,比如网络收发数据,造成的进程上下文切换对操作系统来说也是一个负担;

    6.5K30发布于 2019-07-04
  • 来自专栏鸿蒙开发笔记

    OpenHarmony(鸿蒙南向开发)——标准系统移植指南(二)Linux内核

    HDF补丁执行成功后,默认HDF开关是关闭的,打开HDF基本配置选项如下: CONFIG_DRIVERS_HDF=y CONFIG_HDF_SUPPORT_LEVEL=2 CONFIG_DRIVERS_HDF_PLATFORM CONFIG_DRIVERS_HDF_PLATFORM_MIPI_DSI=y CONFIG_DRIVERS_HDF_PLATFORM_GPIO=y CONFIG_DRIVERS_HDF_PLATFORM_I2C 欢迎大家关注工粽号<程序猿百晓生>,0取以下学习清单:1.OpenHarmony开发基础2.OpenHarmony北向开发环境搭建3.鸿蒙南向开发环境的搭建4.鸿蒙生态应用开发白皮书V2.0 & V3.05 .鸿蒙开发面试真题(含参考答案) 6.TypeScript入门学习手册7.OpenHarmony 经典面试题(含参考答案)8.OpenHarmony设备开发入门【最新版】9.沉浸式剖析OpenHarmony 【OpenHarmony】Uboot 驱动加载流程12.OpenHarmony构建系统--GN与子系统、部件、模块详解13.ohos开机init启动流程14.鸿蒙版性能优化指南.......编译和运行HDF

    83501编辑于 2025-06-25
  • 来自专栏DawnSql

    H2 存储内核解析

    文件头包含以下信息: H:2,block:2,blockSize:1000,chunk:7,created:1441235ef73,format:1,version:7,fletcher:3044e6cc H “H:2”代表 H2 数据库 块(block) 最新(不必是最新的 的存储内核了,这个还是比较简单,容易掌握和扩展的。 说明一点:有些朋友有疑问,为什么 DawnSql 选择 h2 的存储内核,而不是去重新做一个?这里主要是为了高用性!h2 作为成熟的数据库存储内核,已经在实际的项目中应用了多年,它是经得起考验的。 如果新做存储内核,可能会给使用者带来高可用性上面的顾虑,所以我们再三权衡后选择更稳定可用性更高的方案。当然随着 DawnSql 的发展和根据企业方的要求,我们也可以对其进行修改和重构!

    91870编辑于 2023-03-31
  • 来自专栏网络安全攻防

    内核攻防-(2)致盲EDR

    功能描述 在内核模式下执行内存读写操作,用于在同一进程内复制内存数据。 通过计算目标函数在用户态加载的模块中的偏移,再加上实际的内核模块基地址,最终得到函数在内核空间中的真实地址。 2、调用 ValidateLeaRipPattern 检查: 地址 0x1000 的内容 0x48 0x8D 0x05 匹配。 的地址,这是存储内核回调函数的数组。 2、引入不可预测性: 使用 __rdtsc()(获取 CPU 时间戳计数器)和随机化的哈希值生成不可预测的执行路径。

    1.3K00编辑于 2025-02-19
  • 来自专栏Linux驱动

    2.移植3.4内核-支持烧写yaffs2,裁剪内核并制作补丁

    在上章-制作文件系统,并使内核成功启动jffs2文件系统了 本章主要内容如下: 1)使内核支持yaffs2文件系统 2)裁剪内核 3)制作内核补丁 ---- 1.首先获取yaffs2源码(参考git命令使用详解 ,将nameserver地址改为: 114.114.114.114 2.将yaffs2源码来配置到内核里(使内核支持yaffs2) vi /work/nfs_root/yaffs2/README-linux 参考上图: /*给内核打补丁*/ cd /work/nfs_root/yaffs2/ . 因为mtd的kernel分区只有2M大,而实际内核有2.37MB,所以需要裁剪到小于2M(或者修改mtd分区值) 5.1首先裁剪内核里无关的CPU/单板文件 1)通过vi .config,然后搜索2440 如下图所示,内核启动时,看到初始化了PS2鼠标驱动 ?

    1.8K30发布于 2019-05-24
  • 来自专栏鸿蒙开发笔记

    OpenHarmony 内核源码分析(编译环境篇) | 编译鸿蒙防掉坑指南

    几点说明kernel_liteos_a_note | 中文注解鸿蒙内核 是在 OpenHarmony 的 kernel_liteos_a 基础上给内核源码加上中文注解的版本.与官方源码按月保持同步,同步历史如下 windows + docker 方式编译鸿蒙. 记录编译鸿蒙的过程,以备后续不用再去一大堆无效的误导式软文中搜寻芝麻大点有用的信息,那样真挺费时费心力.针对不同场景使用不同的内核,openharmony有两个开源版本。 标准系统版本,也叫(linux/L2/手机)版本,L2开源(2021/06/02),采用linux 4.19 内核,华为手机(HarmonyOS2.0)就是基于这个开源版本做的商业发行版本。 轻量和小型系统版本,也叫(liteos/L0~L1/嵌入式)版本,L0开源(2020/09/10),L1开源(2020/12/02),采用 lite-os-a/m内核,主要针对嵌入式设备。

    96710编辑于 2025-03-22
  • 来自专栏鸿蒙开发笔记

    OpenHarmony 内核源码分析(环境脚本篇) | 编译鸿蒙原来如此简单

    很香的 Docker如果只是为了编译鸿蒙,初级的接触鸿蒙,docker是很香的,从第一次接触docker就对它爱不释手, 脏活累活它干了,少了太多的麻烦. docker 编译鸿蒙看编译环境篇就行了, L1  和 L2 都编译通过了.如果要深入的了解鸿蒙,比如调试鸿蒙的代码或编译工具,就需要另辟蹊径了.下图为调试编译工具hb 的过程,有了调试环境,鸿蒙很像光着屁屁的小孩,无限风光则尽收眼底.调试之前的准备个人喜欢做一劳永逸的事 ,如果有试过手动去安装鸿蒙开发环境,下载源码,确保编译成功其实是件非常麻烦的事情, 在虚拟机和WSL2上都跑通之后,发现其中的坑不少,这些坑本身没有技术含量,知道了也就知道了,但它们却跟牛皮癣一样,遇到了就不容易好老复发真烦人 安装脚本编译鸿蒙轻量级内核(L1/liteos)所需各种环境#2\. /path.sh# 下载源码包,目前鸿蒙轻量级内核最新源码包为code-v1.1.1-LTS.tar.gz,后续有更新请自行替换 mkdir -p /home/openharmonywget -P /home

    38020编辑于 2025-03-25
领券