自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 开源鸿蒙system ability manager关键属性解析

开源鸿蒙核心技术系列

2024-12-02 22:11:02 646

原创 齐活了-OpenHarmony源码浏览,源码编译,仿真运行3件套全啦

openharmony源码浏览和搜索,编译平台,仿真运行平台正式发布

2024-02-07 18:15:24 298 2

原创 转载:冷钦街老师倾力打造的OpenHarmony南向设备开发平台试运行啦

本平台集成了 OpenHarmony 代码获取、代码修改、代码提交、代码编译、编译镜像下载几大功能。用户只需要准备开发板以及烧录镜像的工具就可以进行 OpenHarmony 南向设备开发工作。特别适合学生使用,也方便对 OpenHarmony 感兴趣的研究人员使用。

2023-11-29 21:35:41 154

原创 【详细深入分析OpenHarmony编译流程】

OpenHarmony做为复杂的操作系统软件,其编译构建也比较复杂。本文主要记录作者自己在阅读编译脚本代码后对其的认识,不代表官方观点,不足之处还请批评指正。本文顺着编译流程阅读和解释编译脚本代码,即执行时间靠前的代码先解释,执行时间靠后的代码后解释。本文参考代码为2024年7月8日master分支代码。为了方便查看OpenHarmony代码,作者搭建了一个服务器,欢迎使用https://lengqinjie.xyz。

2023-03-31 13:03:20 8812 5

原创 鸿蒙全量源代码在线阅读

OpenHarmony 源代码 阅读利器全量代码一网打进在线阅读快速搜索在线比较

2022-11-28 14:57:41 3792 8

原创 鸿蒙通用业务模型与IPC

鸿蒙通用业务模型与抽象API鸿蒙跨线程远过程调用鸿蒙跨进程远过程调用

2020-12-17 17:04:25 1350 1

原创 鸿蒙APP框架分析

本文主要描述鸿蒙系统的APP框架的代码组成,APP的一些概念。APP的启动,APP的生命周期,APP之间的交互情况。主要关注进程级别。而进程内的线程级别在其它文章描述。通过本文的学习,可以对APP的运行机制有一个大致的把握和理解。

2020-12-17 10:12:51 2190 1

原创 VPP-BIHASH实现分析

/vppinfa/bihash_template.h本文件为本数据结构的核心头文件概念一key-value-pair   键-值-对。 组成HASH表的各元素,在C语言中,一般定义成一个struct,其中一部分是key, 另一部分是value。每1个key在hash表中只能出现1次通过key用来计算hash值。不同的key可能计算出相同的hash值,如果表中存在2个这样的表...

2018-12-06 15:04:00 2494

原创 C++11标准解读--内存模型部分

1.7 The C++ memory model C++内存是按字节寻址的,每个字节有唯一的内存地址,每个字节有低位和高位(权重大的位)不同的内存位置可以多线程并发访问,但结构体中的位段例外,如下面的例子。struct {char a;int b:5,c:11,:0,d:8;struct {int ee:8;} e;}a, d, e.ee 都是独立的内存区域,可以多...

2018-11-22 17:07:00 238

原创 VPP代码阅读中文注解---dlmalloc.h

* Quickstart This library is all in one file to simplify the most common usage: ftp it, compile it (-O3), and link it into another program. All of the compile-time options default to reasonabl...

2018-10-19 18:10:47 1109

原创 VPP代码阅读中文注解--dlist.h

双向链表算法。本双向链表的所有元素存储在一个pool中,根据pool中内存块的序号进行索引。typedef struct{ u32 next; u32 prev; u32 value;} dlist_elt_t;本双向链表中每一个元素的结构。value指的是元素的值。next, prev分别代表前一个和后一个元素。它们的语义是元素在内存池中的编号,通俗的说,就是数...

2018-10-19 15:59:37 1273

原创 VPP代码阅读中文注解--crc32.h

static_always_inline u32clib_crc32c (u8 * s, int len){ u32 v = 0;#if __x86_64__ for (; len >= 8; len -= 8, s += 8) v = _mm_crc32_u64 (v, *((u64 *) s));#else /* workaround weird GCC ...

2018-10-19 15:26:29 495

原创 VPP代码阅读中文注解--cpu.c

#define foreach_x86_cpu_uarch \ _(0x06, 0x9e, "Kaby Lake", "Kaby Lake DT/H/S/X") \ _(0x06, 0x8e, "Kaby Lake", "Kaby Lake Y/U") \ _(0x06, 0x85, "Knights Mill", "Knights Mill") \ _(0x06, 0x5f,

2018-10-19 15:14:49 562

原创 VPP代码阅读中文注解---cpu.h

#include <vppinfra/format.h>/* * multiarchitecture support. Adding new entry will produce * new graph node function variant optimized for specific cpu * microarchitecture. * Order is impo...

2018-10-19 14:46:10 1051

原创 VPP代码阅读中文注解---clib_error.h

#include <vppinfra/types.h>typedef struct{ /* Error message. */ u8 *what; /* Where error occurred (e.g. __FUNCTION__ __LINE__) */ const u8 *where; uword flags; /* Error code (...

2018-10-19 13:43:22 531

原创 VPP代码阅读中文注解--cache.h

/* * Allow CFLAGS to override the configured / deduced cache line size */#ifndef CLIB_LOG2_CACHE_LINE_BYTES/* Default cache line size of 64 bytes. */#ifndef CLIB_LOG2_CACHE_LINE_BYTES#define C...

2018-10-19 13:00:59 699

原创 VPP代码阅读中文注解--byte_order.h

处理字节序相关的头文件。比如IP地址  192.168.10.20 这个IP地址。在X86 CPU中处理时,长这样: 0x140aa8c0在网络上传输时,长这样:0xc0a80a14由于网络传输是按照低地址代表most significant byte的语义。这个与x86 这类的CPU刚好相反。所以软件中需要做相应的处理,实际上就是在内存中做字节交换。 #include ...

2018-10-19 11:44:19 606

原创 VPP代码阅读中文注解--pool.c

#include <vppinfra/pool.h>void_pool_init_fixed (void **pool_ptr, u32 elt_size, u32 max_elts){ u8 *mmap_base; u64 vector_size; u64 free_index_size; u64 total_size; u64 page_size; ...

2018-10-19 11:18:37 1050 2

原创 VPP代码阅读中文注解--pool.h

/** @file * @brief Fixed length block allocator. Pools are built from clib vectors and bitmaps. Use pools when repeatedly allocating and freeing fixed-size data. Pools are fast, and avoid m...

2018-10-19 11:00:45 3109

原创 VPP代码阅读中文注解---bitmap.h

/** \file Bitmaps built as vectors of machine words*/#include <vppinfra/vec.h>#include <vppinfra/random.h>#include <vppinfra/error.h>#include <vppinfra/bitops.h> /* ...

2018-10-18 22:50:01 1318

原创 VPP代码阅读中文注解--bitops.h

/* Population count from Hacker's Delight. */always_inline uwordcount_set_bits (uword x){#ifdef __POPCNT__#if uword_bits == 64 return __builtin_popcountll (x);#else return __builtin_popcoun...

2018-10-18 20:19:53 346

原创 VPP代码阅读中文注解--vec.c

#include <vppinfra/vec.h>#include <vppinfra/mem.h>/* Vector resize operator. Called as needed by various macros such as vec_add1() when we need to allocate memory. */void *vec_re...

2018-10-17 12:50:28 1458

原创 VPP代码阅读中文注解--vec.h

/** \file CLIB vectors are ubiquitous dynamically resized arrays with by user defined "headers". Many CLIB data structures (e.g. hash, heap, pool) are vectors with various different header...

2018-10-17 11:37:19 2821

原创 VPP代码阅读中文注解--vec_bootstrap.h

/** \file Vector bootstrap header file*//* Bootstrap include so that #include <vppinfra/mem.h> can include e.g. <vppinfra/mheap.h> which depends on <vppinfra/vec.h>. *//...

2018-10-16 17:57:44 893

原创 VPP代码阅读中文注解--clib.h

#ifndef included_clib_h#define included_clib_h#include <vppinfra/config.h>#define宏定义用于在头文件多次被包含时出现问题此#include暂时不理会它 。 /* Standalone means to not assume we are running on a Unix box....

2018-10-16 17:17:28 1113

原创 VPP代码阅读中文注解(三)

static voidvpe_main_init (vlib_main_t * vm){ void vat_plugin_hash_create (void); if (CLIB_DEBUG > 0) vlib_unix_cli_set_prompt ("DBGvpp# "); else vlib_unix_cli_set_prompt ("vpp# ")...

2018-10-16 11:27:43 827

原创 VPP代码阅读中文注解(二)

clib_mem_init_thread_safe有2个版本。其中一个在mem_mheap.c中void *clib_mem_init_thread_safe (void *memory, uword memory_size){ mheap_t *h; u8 *heap; clib_mem_init (memory, memory_size); heap = cl...

2018-10-16 11:21:27 1271

原创 VPP代码阅读中文注解(一)

一、入口函数位置:/src/vpp/vnet/main.c中的main函数开始。二、代码注解intmain (int argc, char *argv[]){ int i; vlib_main_t *vm = &vlib_global_main; void vl_msg_api_set_first_available_msg_id (u16); uword...

2018-10-16 11:07:53 2183

原创 极简Linux手册--1d

danetool产生和检查DNS资源记录的工具dash一种命令行解释器程序date显示和设置系统日期和时间dd复制文件,并做相应的格式转换deallocvt释放无用的虚拟终端debuginfo-install调试信息安装程序df报告文件系统使用磁盘的情况diff逐行比较文件dirname显示文件的目录名dlltool动态链接库的工具dmesg显示和控制内核环形缓冲区domainnamehostna...

2018-03-31 22:01:54 272

原创 极简linux手册--1c2

colrm从文件中删除列column将输入格式化成多列comm逐行比对2个排序后的文件command执行1个简单的命令comp_err编译生成mysqld(MariaDB)错误消息文件compress压缩数据oredumpctl提取和处理coredump文件的工具cppc语言预处理程序cronnext下一个作业执行的时间crontab为每个用户维护crontab文件,用于指定周期性执行的指令csp...

2018-03-31 21:21:07 176

原创 极简linux手册--1c1

cal显示一个日历callgrind_annotatecallgrind工具的后处理callgrind_controlcallgrind的观察和控制程序cancel取消作业capsh容量相关工具cat将文件拼接起来certtoolGNU  TLS认证工具cflow产生C语言数据流图的工具cg_annotatecachegrind的后处理cgcc编译器包装器,同时允许插入静态代码分析工具cg_dif...

2018-03-31 20:40:33 255

原创 极简linux手册--2

linux-pamlinux可动态插入的认证模块lksctp-toolslinux内核sctp协议工具集logrotate日志管理工具lsof列出已经打开的文件ltrace使用trace功能的库lttng用于跟踪linux内核,用户程序,共享库的工具集lvm2逻辑卷标管理第2版lxclinux容器mariaDB类似于MySQL的开源数据库服务器程序ncurses字符终端处理库...

2018-03-31 19:57:01 211

原创 极简Linux手册--1

acl访问控制列表,指的是针对文件和目录的权限控制,属于常规文件权限的超集。可以针对每一个用户,每一个组单独设置权限。attr往XFS文件系统中对象添加或者删除扩展属性auditlinux记账系统,有点像日志信息,但没有日志信息那么多,但比较重要autofs用于自动挂载文件系统,如SMB,NFS,U盘等babeltrace处理进程调试跟踪的库,工具等bash最流行的linux命令解释器binuti...

2018-03-31 19:51:22 358

原创 linux源码阅读--cmpdi2.c

用于比较2个整数拼接而成的大整数的大小

2018-03-28 18:24:09 248

原创 linux源码阅读--cmdline.c

简单的命令行参数解析static int get_range(char **str, int *pint, int n){ int x, inc_counter, upper_range; (*str)++; upper_range = simple_strtol((*str), NULL, 0); inc_counter = upper_range - *pint; for (x ...

2018-03-28 18:20:48 428

原创 clz_ctz.c

count leading zeros  计算头部连续的0位的数目count trailing zeros  计算尾部连续的0位的数目

2018-03-28 17:07:08 709

原创 linux源码阅读--checksum.c

用于计算,IP/TCP/UDP报文头部的校验和算法

2018-03-28 17:02:30 521

原创 linux源码阅读--bsearch.c

在有序的数组中进行二分查找的基本算法封装。

2018-03-28 15:19:27 335

原创 linux源码阅读--bitrev.c

本文定义了一个字节中的bit序列反转的查找表。即给定1个字节,给出其2进制bit位反转后的结果。如01101101反转后是10110110。将所有的反转关系保存起来,形成了256个元素的查找表,通过空间换取时间,达到快速反转的效果。...

2018-03-28 14:53:46 489

原创 linux源码阅读--atomic64_test.c

一个独立的内核模块,用于测试64bit的原子操作,即针对atomic64.c的测试程序

2018-03-28 14:32:07 260

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除