自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis - sds工具类

当在封装函数中需要识别具体类型时,只需找到flags属性,然后查看低3bit的具体值即可,比如下面的长度查询函数。根据数据结构的描述,redis定义了以下类型。

2024-05-13 00:00:00 143

原创 Linux - static_key 工具类

在 likely/unlikely 的方案中可以学习到为了将指令执行流的效率更高效编译器的开发者通过分析CPU和指令流的特性从数据的cache和指令预执行两个角度下对代码的执行在大多数场景下进行优化,那是否还有进一步的优化空间呢?//还原type的最低二位信息,由上可知jump_entry地址的低二位也是0,即四字节对齐。//建立一个名为1的lable,该lable位置的指令为跳转至名为l_yes的地址。//将jump_entry的地址写入static_key的entries属性中。

2024-05-11 23:09:49 780 3

原创 Linux - likely/unlikely

从likely/unlikely宏的定义中可以看出除了第二个参数代表期望值不一样外,宏定义的其他参数都是一样的。从以上设计可以看出将指令分成更细的步骤比起串行有更高的效率,前提是提前执行的下一条指令是有效的。可以发现当编译器打开优化功能时程序的执行逻辑对于条件为真的情况相当友好,有以下优势。所以如果希望程序运行的更快的话,就需要每次读取指令/数据的命中越靠右越好。time3: 执行指令1 解释指令2 读取指令3。当希望编译器对条件为假的情况友好时,可以有以下两种方法。

2024-04-20 00:35:13 543 1

原创 Linux - 启动参数传递

/判断是否是需要使用内嵌的设备树。在通过设备树指针寻找合适的machine_desc的过程中会执行scan指向设备树的内存。//分析uboot传递的信息。//当通过设备树的方式获取machine_desc失败时使用tag的方式解析。//若传递的是设备树,则开始分析指向设备树的内存。//获取节点下的启动参数属性,若有效则拷贝。//若传递的命令行,则执行字符串扩展。//寻找合适的启动参数保持节点。//依据编译配置使用内置的命令行参数。//使用uboot传递的命令行参数。//使用内嵌的设备树信息。

2024-02-05 00:06:43 1194 1

原创 Linux- machine_desc

/遍历machine_desc对象中的dt_compat字符串数组,直至空。NULL, //以空指针结束。//循环获取下一个对象的兼容性字符串数组。//获取设备树中的compatible属性。// compatible数组中下一个对象。//最佳匹配值为1,越大匹配度越低。//评估最佳匹配值,越小匹配度越好。/返回当前的兼容性字符串数组。

2024-01-31 00:03:17 977

原创 Linux - 设备树解析

用途: 用于描述计算机板级硬件设备信息,以便于操作系统管理和操作这些硬件,由于这些信息对于每一款硬件均具有差异,故此类描述信息存在内核属于冗余代码,故将其独立出来。//依据Tag类型处理 Tag所代表的对象,并得出下一个Tag的位置。//计算property的长度从而获得下一个Tag的偏移。// 结束或空白Tag,只需跳过这个Tag即可。// 特殊Tag,一般处理是当空处理。//相对于字符串表起始位置的相对偏移。//获取property值的长度。// 描述data 数组的长度。//获取当前偏移的Tag。

2024-01-26 00:01:11 524 1

原创 Linux- 启动参数Tag解析

在Tags parse 库的开头归纳了Tag 的特征如下:a list(this tag。

2024-01-10 23:50:13 1518

原创 Linux- 开机流程

对于安装了多个操作系统的机器而言,由于MBR只有一个,因此通过在分区的引导扇区中安装引导程序,同时让MBR到中的引导程序支持读取分区中的引导程序。当系统自检通过后,BIOS开始初始化硬件,并根据系统的配置寻找启动盘,并从启动盘的MBR(主引导目录)装载引导程序。由于stage2比较大只能放在文件系统中,stage1中空间比较小不能识别文件系统由此步完成。加载完配制文件后依据文件中的定义加载内核和虚拟文件系统。执行mbr或者引导扇区中的Grub最小的主程序。stage2:加载Grub的配置文件。

2024-01-09 22:32:23 368

原创 Linux- 引导配置文件解析工具

在Linux的启动中除了可以通过命令行传递键值数据外还可以通过引导配置文件传递信息。

2023-12-30 00:08:27 757 1

原创 Linux 启动参数解析

一个新的开始。

2023-12-21 14:10:55 727

空空如也

空空如也

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

TA关注的人

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