logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

移植案例与原理 - startup子系统之bootstrap_lite部件 (2)

在文件base\startup\bootstrap_lite\services\source\bootstrap_service.h中定义了2个宏函数INIT_APP_CALL和INIT_TEST_CALL,分别用来调用代码段&__zinitcall_app_XXX_start、&__zinitcall_app_XXX_end和&__zinitcall_test_start、&__zinitcal

文章图片
#bootstrap#前端#harmonyos +2
鸿蒙内核源码分析(双向链表) | 谁是内核最重要结构体?

答案一定是:(双向链表),它长这样.结构体够简单了吧,只有前后两个指向自己的指针,但恰恰是因为太简单,所以才太不简单. 就像氢原子一样,宇宙中无处不在,占比最高,原因是因为它最简单,最稳定!内核的各个模块都能看到双向链表的身影,下图是各处初始化双向链表的操作,因为太多了,只截取了部分:很多人问图怎么来的,是阅读大型C/C++工程的必备工具,要用4.0否则中文有乱码. [下载 source insi

文章图片
#harmonyos#链表
鸿蒙内核源码分析(读写锁) | 内核如何实现多读单写

在实际很多业务场景中读写操作的频率是不同的,读往往高几个数量级,因读操作并不改变业务数据结构,所以读锁也称为共享锁。写操作会改变数据结构,数据之间须同步,修改注定是排他的,所以也称为排它锁/互斥锁,读写锁很好的解决了这种读写不对称的业务场景。

文章图片
#harmonyos#嵌入式硬件
鸿蒙内核源码分析(Shell解析篇) | 应用窥视内核的窗口

系列篇从内核视角用一句话概括shell的底层实现为:两个任务,三个阶段。其本质是独立进程,因而划到进程管理模块。每次创建shell进程都会再创建两个任务。

文章图片
#harmonyos#嵌入式硬件#移动开发
鸿蒙内核源码分析(管道文件篇) | 如何降低数据流动成本

管道 | pipes 最早最清晰的陈述来源于McIlroy由1964年写的一份内部文件.这份文件提出像花园的水管那样把程序连接在一起.文档全文内容如下:switching.Unix的缔造者肯.汤普森只花了一个小时就在操作系统中实现了管道的系统调用.他自己说这是简直小菜一碟,因为I/O的重定向机制是管道的实现基础,但效果确是很震撼.管道的本质是I/O的重定向,是对数据的不断编辑,不断流动,只有这样的

文章图片
#harmonyos#嵌入式硬件
鸿蒙内核源码分析(中断管理篇) | 江湖从此不再怕中断

中断概念篇 中断概念很多,比如中断控制器,中断源,中断向量,中断共享,中断处理程序等等.本篇做一次整理.先了解透概念才好理解中断过程.用海公公打比方说明白中断各个概念.可前往查看.

文章图片
#harmonyos#嵌入式硬件#移动开发
鸿蒙内核源码分析 (TLFS 算法篇) | 图表解读 TLFS 原理

本篇开始说一个耳朵听起老茧的概念 动态分配,将分成上下两篇,本篇为上篇,看完能快速理解下篇鸿蒙内核源码对动态内存的具体实现。

文章图片
#harmonyos#算法#嵌入式硬件 +1
鸿蒙内核源码分析(控制台篇) | 一个让很多人模糊的概念

Shell是用户空间进程, 负责解析和执行用户输入的命令. 但前提是得先拿到用户的输入数据. 不管数据是从串口进来,还是远程登录进来,必须得先经过内核, 而控制台的作用就是帮你拿到数据再交给shell处理, shell再将要显示的处理结果通过控制台返回给终端用户, 那数据怎么传给shell呢? 很显然用户进程只能通过系统调用 read(fd,...)来读取内核数据, 因为应用程序的视角是只认fd.

文章图片
#harmonyos#移动开发
鸿蒙内核源码分析(信号消费篇) | 谁让CPU连续四次换栈运行

本篇有相当的难度,涉及用户栈和内核栈的两轮切换,CPU四次换栈,寄存器改值,将围绕下图来说明.

文章图片
#harmonyos#移动开发#嵌入式硬件
鸿蒙内核源码分析(构建工具篇) | 顺瓜摸藤调试鸿蒙构建过程

构建工具重要性不言而喻,它描述了整个工程的如何编译、连接,打包等规则,其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后输出我们想要的文件。

文章图片
#harmonyos#移动开发
    共 143 条
  • 1
  • 2
  • 3
  • 15
  • 请选择