作者:蔚淦丞

cmake语法清单

基础模板 cmake_minimum_required(VERSION 3.14) # 最低cmake版本,必须放最开头 project(demo LANGUAGES CXX C) # 项目名,指定语言 set(CMAKE_CXX_STANDARD 17)

蔚淦丞 蔚淦丞 发布于 2026-09-22

Linux堆内存管理器项目介绍

https://github.com/ygc129550/HeapMemoryManager HeapMemoryManager 一个基于 页面族(Page Family) 的固定大小对象内存分配器,专为结构体类型已知、大小固定的场景设计。每个页面仅服务一种结构体类型,通过 Worst-fit 策略

蔚淦丞 蔚淦丞 发布于 2026-09-21

结构体大小与内存对齐

来源:腾讯云开发者文章:https://cloud.tencent.com/developer/article/2403719 一、基础概念 sizeof(结构体)计算结构体占用内存字节数。 结构体总大小不等于所有成员字节简单相加,编译器会自动填充空洞(padding),结构体成员排列顺序会直接影响

蔚淦丞 蔚淦丞 发布于 2026-09-18

malloc底层两种堆内存申请方式 brk + mmap 匿名映射

前置 进程堆区位于 BSS 段之后,自低地址向高地址增长。 内核通过 mm_struct 中的 program break 标记堆的上边界。 用户态动态内存扩容,内核只提供两种底层方式:brk 主堆扩容、mmap 匿名映射扩容。 1. brk /sbrk(小块内存) 函数原型与返回值 // brk

蔚淦丞 蔚淦丞 发布于 2026-09-13

SWAP交换分区、页面置换算法

1. 核心整体关系 页面置换算法 和 Swap 是配套机制: 页面置换算法:负责内存紧张时,挑选哪一页淘汰 Swap:负责把淘汰下来、无磁盘原生副本的页面,落地到磁盘保存 缺页异常 + 无空闲物理页 → 置换算法选冷页淘汰 → 根据页面类型决定是否写 Swap。

蔚淦丞 蔚淦丞 发布于 2026-09-13

写时复制

核心思想 fork 创建子进程时,不拷贝物理内存,父子进程虚拟页映射到同一份物理页;仅当任意进程尝试写入页面时,才复制对应的物理页。 页面分类与 fork 处理 .text、.rodata:本身 PTE 标记只读,不参与 COW。父子共享物理页;尝试写直接触发段错误 SIGSEGV。 .data、.

蔚淦丞 蔚淦丞 发布于 2026-09-13

虚拟内存、物理内存、MMU、分页、多级页表

一、物理内存 主板上真实的内存条,硬件实体,使用物理地址寻址。CPU 最终访问内存芯片时,发送的一定是物理地址。物理内存是系统全局资源,所有进程共享。 物理内存可寻址的最大上限,由CPU 芯片内部物理地址总线的硬件位宽决定。同一种架构下,不同型号 CPU 物理地址位宽可以不一样。 二、虚拟内存与虚拟

蔚淦丞 蔚淦丞 发布于 2026-09-11

左值、右值、左值引用、右值引用、move语义

一、定义 左值(Lvalue):有名字、可被取地址、生命周期稳定的值 右值(Rvalue):没有名字、临时产生、用完即销毁的值 所有C++表达式结果,只有两种身份:左值 或 右值。 二、左值 & 右值 详细区分 1. 左值 Lvalu

蔚淦丞 蔚淦丞 发布于 2026-09-11

ELF 文件与常用 ELF 节详解

操作系统学习笔记:ELF 文件与常用 ELF 节详解 一、基础前置认知 1. 什么是 ELF 文件 Windows 系统的可执行程序是 .exe 格式,Linux 系统下可执行程序、动态库、编译中间目标文件,统一遵循ELF 格式。

蔚淦丞 蔚淦丞 发布于 2026-09-10

线程间通信、进程间通信方式

一、线程间通信方式(同一进程内,地址空间共享) 线程天然共享进程虚拟地址空间,通信核心是共享内存 + 同步机制。 1. 共享全局变量 / 堆内存 所有线程可直接读写

蔚淦丞 蔚淦丞 发布于 2026-09-08
上一页 下一页