- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 大秦模型分析
手段: “奖励耕战”。将社会价值评判标准高度简化、量化。“耕”:生产粮食,是富国的基础。“战”:获取军功,是强兵的基础。目的:为所有社会精英(有野心者)提供一条清晰、公平(相对世袭)、且与国家目标完全一致的上升通道。所有人的精力都被导向对国家有用的领域,杜绝了思想多元化和社会不稳定因素。
2025-09-07 13:46:37
399
原创 内核 针对特定进程的调用栈
/ 保存指定进程的堆栈。方法:通过进程的task_struct获取寄存器状态,调用堆栈回溯函数。针对特定进程的调用栈。
2025-04-26 21:33:45
134
原创 2025 4 14 git相关
git reset --hard commit号,将本地仓库状态回退到对应状态,并丢弃相关修改到工作区和索引区。--stage (-s) 显示mode以及文件对应的Blob对象,进而我们可以获取暂存区中对应文件里面的内容。git ls-files -c 或者 git ls-files --cached 其他类似。--cached (-c) 查看暂存区中文件,git ls-files 命令默认是此命令。--other (-o)查看没有被git跟踪的文件。--midified (-m)查看修改的文件。
2025-04-14 21:13:14
214
原创 futex
【问题】-------------------------------------------------------------------------------------【对比】-------------------------------------------------------------------------------------比如:Hash(key) = (key * key) // 100 % 1000,先计算平方,去除末尾的 2 位数,再取中间 3 位数作为哈希地址。
2025-04-13 18:25:30
410
原创 内存管理 linux kernel 6.1整理
【问题】---------------------------------------------------------------------------------------------------------------------------【阶段】---------------------------------------------------------------------------------------------------------------------------
2025-04-07 21:28:45
526
原创 内存模块的边界有哪些
Linux 内核中的**内存管理模块(Memory Management, MM)**负责物理内存、虚拟内存的分配与回收,地址空间管理,页表操作等核心功能。),始终使用公开API,以确保兼容性和稳定性。开发者应避免直接操作内部数据结构(如。
2025-04-07 10:39:12
1121
原创 内存管理模块有哪些状态
Linux 内核中的**内存管理模块(Memory Management, MM)**在运行时会维护多种状态,用于跟踪内存页、分配器、进程地址空间等的当前情况。这些状态直接影响内存分配、回收、交换等行为。文件系统暴露,是调试性能问题(如内存泄漏、碎片)的关键依据。这些状态通过内核数据结构和。进程的虚拟内存区域(
2025-04-07 10:33:43
424
原创 内存模块从无到可以给别的模块使用,需要经历哪些阶段
Linux 内核中的**内存管理模块(Memory Management, MM)**从初始化到可供其他模块使用,需要经历一系列严格的阶段,涵盖硬件初始化、数据结构构建、接口暴露等过程。
2025-04-07 10:22:45
1288
原创 可以通过哪些哪些方式,包括添加代码打印的方式,获取全部内存管理模块的信息
**输出内容**:每个内存区域(`ZONE_DMA`, `ZONE_NORMAL`)的详细状态,包括水位线、空闲页数、碎片情况。| **需求场景** | **推荐方式** |- **功能**:直接查看内核数据结构(如 `struct page`, `struct zone`)。- **功能**:动态启用/禁用内核文件中的 `pr_debug()` 打印。### **1. 使用 `/proc` 和 `/sys` 文件系统**
2025-04-06 20:36:33
351
原创 内存管理模块有哪些状态
页在 `active`/`inactive` 之间迁移(通过 `mark_page_accessed()`)。- **`PG_active`/`PG_inactive`**:页在活跃/非活跃LRU链表(影响回收策略)。`free_area` → `alloc_pages()` → 标记为 `PG_allocated`。- `min`/`low`/`high`:用于触发内存回收(`kswapd` 或直接回收)。- **`VM_READ`/`VM_WRITE`/`VM_EXEC`**:权限标志。
2025-04-06 20:35:44
301
原创 内存模块从无到可以给别的模块使用,需要经历哪些阶段
解析 `memblock` 内存区域,初始化 `struct zone`(`mm/page_alloc.c` 的 `free_area_init()`)。- 通过 `add_memory()` / `remove_memory()` 动态增删内存(`drivers/base/memory.c`)。- 为内核对象(如 `task_struct`)创建缓存(`mm/slub.c` 的 `kmem_cache_init()`)。
2025-04-06 20:35:03
295
原创 内存模块的边界有哪些
物理页分配 | `alloc_pages()`, `__free_pages()` | `include/linux/gfp.h` |- **功能**:管理物理页帧(`struct page`),处理分配/释放(如 `alloc_pages()`, `free_pages()`)。- **交互**:DMA 内存分配(`dma_alloc_coherent()`)、设备内存映射(`ioremap()`)。
2025-04-06 20:34:23
345
原创 各个状态下可能有哪些行为,这些行为又将如何影响状态
**行为** | **直接影响** | **长期影响** || **行为** | **直接影响** | **长期影响** |
2025-04-06 20:32:22
1710
原创 uml 设计模式
组合关系是一种比聚合关系更为强烈的关系,在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体不存在,个体也将不复存在;而上面我们说到的聚合关系中,个体可以脱离整体而独立存在,但是在组合关系中,个体不能脱离整体而存在,这就是它们二者最大的区别;UML图中聚合关系使用实线空心菱形来表示,空心菱形指向整体类,实线另一端指向个体类,一个整体类可以由多个个体类聚合而成;UML图中组合关系使用实线实心菱形表示,实心菱形指向整体类,实现另一端指向个体类,一个整体类可以由多个个体类组合而成;继 实 依 关 聚 组。
2025-04-03 09:59:49
303
原创 2025 3 19 日记
3.1 每次commit都会生成一个change id,也就会在gerrit中生成一个review请求,为避免review请求过多,可以按照以下两种方法进行操作。2.4 查询项目,点击browse下的repositories进行查看,项目较多时,可以在filter中输入名称进行过滤。2.8 远程合并后本地需要git pull更新同步,更新后可通过git log查看。2.7 Gerrit页面进行代码审核并合并至远程分支。2.3 gerrit配置免密下载ssh keys。二、Gerrit使用。
2025-03-19 20:29:24
349
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅