自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 资源 (6)
  • 收藏
  • 关注

原创 如何获得 compile_commands.json

使用 bear例如cmake : 可以通过 CMAKE_EXPORT_COMPILE_COMMANDS 使 cmake 在编译时生成 compile_commands.json。可以在 CmakeLists.txt 中设置 CMAKE_EXPORT_COMPILE_COMMANDS 为 ON,例如。也可以在命令行设置,例如。

2025-05-23 15:36:40 329

原创 如何精简 linux kernel defconfig 文件 ?

使用 make savedefconfig 命令精简 defconfig 文件。

2025-03-12 15:12:30 98

原创 前向兼容、向前兼容、向后兼容傻傻分不清楚

向后 == 后向 == backward compatible。前向 == 向前 == forwards compatible。backwards compatible —— 向过去兼容。forwards compatible —— 向未来兼容。根据语境总结了一些它们的含义。这里面的“前”是前面还是以前?这里面的“后”是以后还是后面?

2025-03-02 10:45:57 170

原创 如何克隆 clone linux kernel 代码仓库

打开 https://git.kernel.org/搜索 Linus Torvalds , 找到描述为 Linux kernel source tree 的那个仓库, 就是 linux kernel 主干代码了。打开这个仓库的页面, 可以看到克隆地址为 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git就可以克隆 linux kernel 主干代码仓库。

2025-02-27 16:10:47 231

原创 磁盘分区工具

优秀的交互式分区工具。如果要在脚本中使用,就不那么方便了。

2025-02-12 22:32:24 196

原创 Repo、manifest以及Gerrit分别是什么?

Gerrit、Repo以及Manifest在协同开发中的作用:

2025-02-12 18:03:36 564

原创 malloc空闲链表

找到合适的内存块后,如果这个内存块比用户请求的大小要大,那么就会按需将其分割成两部分,一部分的大小刚好与用户请求的大小相等,这部分就会分配给用户使用,而剩下的那部分则会被放回空闲链表中,等待后续其他的内存分配请求再进行分配。不过,随着程序不断地分配和释放内存,空闲链有可能会被切成很多的小内存片段,要是后续用户申请一个较大的内存片段时,空闲链上可能暂时没有可以满足要求的片段了,这时malloc函数可能就需要进行一些整理操作,比如对这些小的空闲块尝试合并等,以便能满足较大内存请求的情况。

2025-02-10 16:23:27 228

原创 linux上给磁盘分区和格式化分区

会进入fdisk交互式界面。输入 m 可查看帮助。g创建一个 gpt 分区表。n新建一个分区。提示输入第一个扇区号,使用默认值即可,直接按回车。提示输入最后一个扇区号,使用默认值即可,直接按回车。w将新分区表写入磁盘。会退出fdisk交互界面。查看磁盘分区。

2024-10-11 00:29:56 689 1

原创 binutils 介绍

然而,objdump有一个比较有用的功能,它能显示反汇编后的目标代码。objcopy - 将一个二进制目标文件的内容赋值到另一个文件中,在这个过程中可能转换目标文件的格式。ldd - 列出一个或多个目标文件所依赖的共享库。它是C库软件包的一部分。prelink - 对共享库和依赖它们的目标文件进行预链接,从而事先处理未解析的程序库引用。readelf - 提取elf文件中的各种内容。strip - 删除一个二进制文件中的符号和调试信息。nm - 显示目标文件中的符号。提取 elf 中所有的段。

2024-08-10 19:20:47 678

原创 一些linux调试工具

dmalloc - 一个强大的动态内存分析工具。dmalloc 包含一个命令行工具和一个 dmalloc 库。要使用dmalloc,应用程序必须链接 dmalloc 库。mtrace - 分析进程调用 malloc、realloc、free 的情况,并生成报告。ltrace - 捕捉一个应用调用的库函数。strace - 捕捉一个应用的系统调用。top - 周期性显示系统进程。ps - 列出所有进程。

2024-08-10 18:12:41 126

原创 ulimit

Linux 上 ulimit 命令用于查看和设置进程可使用的资源。

2024-08-10 18:00:37 187

原创 FHS:文件系统层次结构标准

FHS文档: https://refspecs.linuxfoundation.org/fhs.shtml。FHS用来规定UNIX文件系统的组织结构和布局。它增强了不同Linux发行版和应用之间的兼容性。

2024-08-10 17:51:08 153

原创 linux cmdline parameters

Linux 内核定义了大量的命令行参数。内核源码的 Documentation 中有一个 kernel-parameters.txt 文件,其中按照字典顺序列出了所有的内核参数。但内核源码变化快于它的文档,因此不要将该文档作为权威参考。

2024-08-10 17:35:10 108

原创 编译linux kernel时,如何增加一个include路径?

就是要增加的include路径。他会被传递给gcc或clang的-I选项,用于添加一个新的include路径。是你的交叉编译器前缀,例如 arm-linux-。是你的目标架构,例如 x86、arm 等。

2024-07-19 10:10:58 561

原创 linux sysrq用法

还可以按 Alt+Sysrq+P 键制造panic。Sysrq键到底是哪个键呢?百度得知Sysrq键就是print screen键。linux kernel支持一个称为sysrq的特殊功能。它允许用户空间执行一些系统级操作。在大多数linux系统中默认关闭了sysrq功能。Sysrq除了可以制造panic,还具有其他功能。

2024-07-10 17:10:55 321 1

原创 cache coloring 缓存着色

cache coloring

2024-03-05 12:44:00 1072

原创 cache基础

set index 是 cache line 在 way 中的序号。set index 通常直接简称为 index 。如果一个物理地址确定,那么其 index 就确定了,这个地址对应的数据缓存在哪个 set 中也就确定了。如上图所示, 物理地址的 bits[y-1:x] 决定了数据缓存在哪个set中。一个物理地址上的数据缓存时,只会缓存到固定的set中, 如果cache已满,只会逐出同一set的cache line,而不会影响其他set的cache line。一个page缓存时会占用多个set

2024-03-05 11:01:52 675

原创 得其意,忘其形

道德经里说,道可道,非常道,名可名,非常名。方为做学问之最高境界。

2024-02-29 09:44:42 395

原创 Atomic access 与 Exclusive access 的区别

Atomic access(原子访问)和Exclusive access(独占访问)是两种不同的访问机制,它们主要用于处理并发访问和多线程环境中的资源访问问题。

2024-02-19 16:16:04 1258

原创 如何清除文件页缓存

【代码】如何清除文件页缓存。

2024-01-21 12:27:58 381

原创 tmux用法

tmux使用方法。

2024-01-04 23:01:05 467

原创 screen用法

安装screen运行screen$ screen查看会话列表:列出所有正在运行的screen会话screen -ls或重新连接会话:其中<会话ID>是之前分离会话的ID,你可以从screen -ls命令中获取。配置screen:screen可以通过一个配置文件(~/.screenrc)进行自定义设置,包括定义快捷键、默认窗口、状态栏等等。退出screen:在窗口内执行exit命令。

2023-12-26 15:26:25 623

原创 snap 使用方法

【代码】snap 使用方法。

2023-12-21 22:29:21 1254

原创 bitbake手册

bitbake是yocto的构建工具。

2023-12-09 09:54:17 2608

原创 推荐一个开源画图工具 draw.io

可以使用在线版本:draw.io或者也可以使用本地安装版本:这是一个开源项目,github地址是:

2023-12-02 00:44:55 611

原创 编译ubuntu kernel

下载完成后,kernel源码位于/usr/src/。

2023-12-01 13:51:55 633

原创 如何下载ubuntu源码

下载的源码在当前目录。

2023-12-01 13:50:38 1179

原创 dt-bindings 的用途

在Linux源码中,‘include/dt-bindings’ 目录主要是用来定义设备树(Device Tree)的绑定(bindings)。设备树是一种描述硬件配置的数据结构,主要用于在无须了解具体硬件细节的情况下,解析出系统的硬件配置。这些信息是从硬件的数据手册中获取的,然后被封装在设备树绑定中,以便在编译设备树时使用。这些绑定定义了一些硬件设备如何在设备树中被标识和描述。我推测, 这些头文件会被dts和kernel或u-boot源码include,以便向dts和源码提供一致的硬件定义。

2023-10-13 14:22:11 1052

原创 给ubuntu增加交换分区的方法

增加swap文件、删除swap文件的方法。

2023-07-15 12:01:41 457

原创 linux ssh超时时间

在ssh配置文件/etc/ssh/sshd_config中,将ssh的保活配置打开:意思是5分钟检查一次客户端响应,最多检查3次。如果3次都检查到客户端不响应,那么就认为ssh已经断开了。

2023-07-12 22:31:56 2912

原创 vscode配置gdb调试

https://code.visualstudio.com/docs/cpp/launch-json-reference

2023-07-11 22:09:09 388

原创 pacman用法

pacman

2023-07-11 22:08:07 550

原创 ubuntu设置静态ip的方法

Ubuntu 18.04采用netplan来管理网络配置计划

2023-07-11 22:07:10 161

原创 plantuml使用方法

收藏一些有用的wiki

2022-03-29 09:33:06 514 1

原创 一些软件开发原则

软件设计原则

2022-02-13 16:29:53 246

原创 探索MIPI

MIPI的全称是: Mobile Industry Processor InterfaceMIPI的官网是: www.mipi.org

2022-02-13 15:59:48 516

原创 探索DP协议

DP : DisplayPortVESA推出的协议。更高的色彩深度、刷新率、显示分辨率、可伸缩的数字显示接口。可选音频及内容保护。DP协议分层为 : Link Layer 和 Physical LayerDP link可分为3部分:Main LinkAUX ChannelHotplug Detect(HPD)Main Link 用于传输音视频顺,由 DPTX/DPRX组成。支持的不同速率 : 8.1Gbps、 5.4Gbps、 2.7Gbps、 1.62GbpsMain Link可支持

2021-09-21 16:56:06 4476

原创 linux kernel 源码之chr_dev

字符设备的设备号字符设备的设备号是用哈希表管理的,说具体些是chrdevs哈希表管理的。chrdevs是一个全局的数组变量。 输入的每个元素是链表头,指向char_device_struct结构体。每个链表节点包含major和minor范围。 major可以相同,但minor的范围不能相同,也不能有重叠。cdevcdev结构体实际上代表一组相同的字符设备,而不是对应单一的一个字符设备。cdev与设备号的关联用kobj_map管理。 kobj_map实际是一个哈希表。系统启动时创建了cdev_m

2021-09-21 16:54:43 377

原创 linux kernel源码之block_dev

源码:include/linux/fs.hfs/block_dev.c(blkdev.h是block层的头文件)伪文件系统bdevlinux kernel中在开机时注册并mount这个bdev文件系统。linux kernel VFS中每个文件关联到一个inode,包括设备文件。bdev文件系统管理一系列块设备文件对应的inode。bdev中管理的inode总是与一个block_device结构体绑定。vdev中管理的inode保存了文件类型和设备号。block_deviceblock

2021-09-21 16:54:11 827

原创 linux kernel源码之kobj_map

源码include/linux/kobj_map.hdrivers/base/map.c主要提供了4个函数1 kobj_map_init2 kobj_map3 kobj_lookup4 kobj_unmapchr_dev 、 block_dev 使用kobj_map 管理字符设备和块设备。kobj_map的数据结构kobj_map的基础数据结构是哈希表。kobj_map结构体包含一个指针数组(指针是struct probe的指针)。数组长度为255 。 数组的每个元素是链表头。初始化

2021-09-21 16:53:30 900

cmake cookbook

cmake cookbook

2024-09-06

Makefile手册(中文版)

Makefile手册(中文版)

2024-08-16

linux服务器架设傻瓜教程

linux服务器架设傻瓜教程,linux系统管理初学者必备!

2010-04-11

PC104规范V2.5(中文-PDF格式)

2003 年11 月,PC/104 规范V 2.5 发布。

2010-08-01

USB xHCI Specification Revision 1.2b

eXtensible Host Controller Interface for Universal Serial Bus (xHCI) Requirements Specification Revision 1.2b USB xHCI 规范, RV1.2

2024-01-12

SELinux手册 电子书 pdf 英文

SELinux手册 电子书 pdf 英文

2024-01-12

华为模拟电路讲义(上、下)

国内大公司华为模拟电路教材,pdf格式,分上下两册。内容全面,比学校里学的内容丰富很多!

2010-08-01

ubuntu中文手册 电子书

从windows转向linux的最佳选择,ubuntu入门级参考资料!

2010-04-11

使用truss、strace或ltrace诊断软件问题.pdf

通过实际案例演示如何使用truss、strace和ltrace这三个常用的调试工具来快速诊断软件的"疑难杂症"。

2010-04-12

The Linux Programming Interface

这就是传说中的《The Linux Programming Interface》。

2013-08-21

空空如也

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

TA关注的人

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