- 博客(271)
- 资源 (3)
- 收藏
- 关注
原创 一定要大量读书@别让大脑欺骗你!《脑中的大象》教你拆穿潜意识谎言
凯文·希姆勒在《脑中的大象》中指出:人类90%的行为是为“社交消费”服务的!说白了,我们总在做“让自己看起来正确”的事,而非真正正确的事。| 想躺平却焦虑时 | 假装努力表演 | 做“最小行动”:每天专注工作25分钟⏱️ |大象明明怕老鼠,却因体型巨大假装淡定——像极了职场中“不懂装懂”的我们!| 朋友炫耀高薪时 | 自卑性消费 | 回应话术:“你值得!| 领导画饼时 | 怕被说刺头不敢问 | 提问模板:“需要我优先做哪3项?(例:买贵价包包是因“喜欢”,还是怕被闺蜜看不起?
2025-07-23 21:39:31
440
原创 #Linux内存管理# 在一个播放系统中同时打开几十个不同的高清视频文件,发现播放有些卡顿,打开视频文件是用mmap函数,请简单分析原因。
多文件并发问题:同时播放几十个文件时,多个视频的缺页中断叠加,磁盘I/O队列过长,响应延迟显著增加(尤其机械硬盘的寻道时间会加剧延迟)。TLB(页表缓存)压力:大量mmap区域占用进程的虚拟地址空间,导致TLB频繁刷新(TLB Thrashing),地址转换效率下降。高并发读取需求:几十个高清视频并发播放需要大量磁盘带宽(如每个1080p视频需5-10MB/s,总和可能超100MB/s)。物理内存不足时,系统触发“内存回收”:将旧页面换出(Swap)或丢弃缓存,后续访问需重新加载,反复中断播放。
2025-07-23 21:08:46
213
原创 #Linux内存管理# 详细介绍madvise函数的工作原理
关键结论:madvise() 是 高性能内存访问的隐式调度器,通过改变内核预读/缓存策略降低缺页中断,在流式处理/数据库场景中可提升30%+效率。非活动匿名页链表 (Inactive_anon) ← MADV_SEQUENTIAL访问后的页。1.权限要求:地址必须对齐到页边界(sysconf(_SC_PAGE_SIZE))// 顺序访问文件内容 (避免换行符干扰计算)
2025-07-23 21:07:55
468
原创 #Liunx内存管理# 为什么第二次调用mmap时,Linux内核没有捕捉到地址重叠并返回失败呢?
正如上面说讲述的,MAP_FIXED可以由应用程序来指定映射的虚拟地址,如果映射的虚拟地址空间已经存在,则会将旧的VMA给清掉,重新生成一个新的VMA。为了 解决MAP_FIXED 所带来的风险,内核社区从4.17版本中开始引入新的flag标记位MAP_FIXED_NOREPLACE,该标记位意思是如果指定的虚拟地址 已经存在,则不执行替换覆盖旧的VMA动作,直接返回。// 第二次强制覆盖。如果建议地址部分重叠或完全被占用,内核会忽略它并选择另一个空闲地址(返回的地址可能与建议地址不同)。
2025-07-23 21:06:57
599
原创 #Linux内存管理# 详细介绍使用mmap函数创立共享匿名映射的工作原理
使用 mmap 创建共享匿名映射 - 详细解析与代码示例 共享匿名映射 (MAP_SHARED | MAP_ANONYMOUS) 允许不相关进程间建立高效的共享内存通信机制: 不涉及磁盘文件,纯内存通信 使用 MAP_ANONYMOUS 标志,忽略文件描述符 内核直接分配匿名物理内存页 页内容初始化为零 不同进程的虚拟地址映射到相同物理内存页 映射地址在不同进程中通常不同 进程间通信绕过内核缓冲 比管道/套接字快10-100倍 适合高频、低延迟场景 映射自动释放 内存
2025-07-23 21:01:17
742
原创 一定要大量读书@未来10年赚大钱的底层逻辑!《财富的未来》教我摆脱“又忙又穷”
用“时薪”衡量工作:月薪1万÷160小时=62.5元/小时,低于这个价值的活果断外包!”(如:加班赚500但熬夜伤身→亏本!- 内容复利:拍短视频发多平台(抖音+B站+视频号),一次创作全网变现!① 写下你常被夸的3件事(比如“超会挑优惠”“朋友哭诉都找你”)- 发展“跨行业技能”(例:设计师学AI绘图,HR考心理咨询师)2️⃣ 发一条朋友圈:“免费帮解决XX问题(你的专长)”,收集需求反馈。> “未来属于会用杠杆的平凡人”— 书里有答案,行动有财富!③ 给它加个“钱标签”(例:倾听高手→情感咨询师)
2025-07-22 22:18:34
507
原创 #Linux内存管理#mmap函数创立私有匿名映射的工作原理
printf("\n使用pmap查看内存页状态 (PID=%d):\n", getpid());/* ====== 步骤3: 验证COW机制 (创建子进程) ====== */7f8d4f600000 8K rw--- [ anon ] // 子进程(不同物理页)/* ====== 步骤2: 操作内存 (主进程) ====== *//* ====== 步骤1: 创建私有匿名映射 ====== *//* ====== 步骤4: 解除映射 ====== */printf("\n--- 子进程 ---\n");
2025-07-22 13:02:04
662
原创 #Liunx 内存管理#mmap函数创立私有文件映射的工作原理
printf("映射地址: %p\n", (void*)mapped);printf("修改后映射内容:\n%s\n\n", mapped);printf("初始映射内容:\n%s\n\n", mapped);| 私有映射地址 |--> | 内容副本 | <-- | 原始文件内容 |printf("初始映射内容:\n%s\n\n", mapped);| 私有映射地址 |--> | 修改后内容 | | 原始文件内容 || 映射地址 | | (无内容) | | 原始文件内容 |
2025-07-22 13:00:46
965
原创 一定要大量读书@《刘邦传记》为什么是刘邦?每次重大决策都能是最正确的
他深刻理解“将将”之道,能识别不同人才的核心价值(张良的战略谋划、萧何的后勤内政、韩信的军事指挥、陈平的奇计、郦食其的外交纵横),并赋予他们发挥所长的平台和信任(即使有猜忌,关键时刻也能放手使用)。后世学习刘邦,最核心的在于学习他“实事求是”的根本态度、“知人善任”的团队智慧、“开放包容”的用人胸襟、“灵活务实”的行动哲学、“坚韧不拔”的意志品质以及“目标导向”的战略定力。2. 知人善任,团队制胜的理念:认识到个人的局限性,尊重专业,信任人才,敢于授权,善于构建和领导团队。
2025-07-20 22:11:06
478
原创 #Linux内存管理#请详细简述私有映射和共享映射的区别?
1.初始化来源:映射内容可以基于一个文件(文件映射),也可以是基于零填充的匿名内存页(匿名映射)。2.写入行为:写时复制: 这是最关键的区别。当一个进程(我们称为进程A)对MAP_PRIVATE区域进行写入操作时,会发生以下事情:内核会为这个进程创建被修改内存页的一个私有副本。进程A的写入操作只会作用在这个新创建的私有副本上。原始映射的页(如果是基于文件的,就是文件内容在内存中的初始映射;如果是匿名的,就是初始的零页)以及该区域的所有其他页都保持不变。
2025-07-19 17:31:17
630
原创 #Linux内存管理#请简述get_user_page()函数的作用和实现流程。
总结:get_user_pages() 是用户空间与内核/硬件间物理内存交互的桥梁,通过页表遍历、缺页处理、COW 和固定机制,确保安全访问用户页帧,但需谨慎使用以避免性能和安全问题。通过 try_grab_page() 增加页面的 pin 计数(page->_pin_count)。unpin_user_pages(pages, nr_pages)(对应 FOLL_PIN)。if (IS_ERR_OR_NULL(page)) { // 页表项无效?
2025-07-17 14:00:55
266
原创 #Linux内存管理# 请简述follow_page()函数的作用的实现流程。
follow_page() 函数(或其现代替代 follow_page_mask())是 Linux 内核内存管理的关键底层函数,核心作用是通过遍历页表,解析给定虚拟地址在特定进程地址空间中的映射状态,并尝试获取其对应的物理页帧信息。将 PTE 中的物理页帧号 (PFN) 转换为标准的 struct page*(通过 pfn_to_page(pte_pfn(pte)))。如果是透明大页(THP)或 hugetlbfs 大页,返回指向对应的 PMD/PUD 表项的指针,并设置标志(如 FOLL_PMD)。
2025-07-17 13:59:23
232
原创 #Linux内存管理#请简述vm_normal_page()函数的作用的实现流程。
若 vm_normal_page() 返回非 NULL,follow_page_mask() 将其结果(struct page*)返回给 get_user_pages(),后者再固定页面。if (is_pci_p2pdma_page(pfn_to_page(pfn))) { // PCI P2PDMA 内存?follow_page_mask() 在获得有效 PTE 后调用 vm_normal_page() 转换物理页。pfn_to_page() 通过全局数组 mem_map[] 定位物理页描述符。
2025-07-17 13:57:46
339
原创 #linux内存管理# 假设不考虑libc的因素,malloc分配100Byte,那么实际上内核是为其分配100 Byte吗?
实际上,即使不考虑 libc 的实现细节,内核为用户空间进程分配物理内存的基本单位是页(Page)。内核会将新 brk 设置为 0x2000,分配了从 0x1000 到 0x2000 的一个虚拟页 (4096 字节),即使只需要 100 字节。物理内存 (Physical Memory): 只有在你真正访问了那 100 字节(或该页内任何地址)之后,内核才会分配 一个物理页帧 (4 KiB)。mmap 系统调用:请求内核在进程的虚拟地址空间中映射一个新的区域(可以是匿名内存区域,用于类似堆分配)。
2025-07-17 13:35:00
392
原创 #Linux内存管理# vm_normal_page()函数返回的什么样页面的struct page数据结构?为什么内存管理代码中需要这个函数?
vm_normal_page() 函数接收一个 有效的、已经存在于物理内存中的 页表项(PTE)作为输入(即 pte_present(pte) 必须为 true),然后返回一个指向与该 PTE 所映射的物理页帧相对应的 struct page 数据结构指针。vm_normal_page() 检查 PTE 的属性(或直接检查映射 PFN 的范围/类型),判断它是否指向设备内存(例如使用 is_device_public_page(), is_pci_p2pdma_page())。
2025-07-17 13:33:12
722
原创 #Linux内存管理# 假设使用printf打印指针bufA和bufB指向的地址是一样的,那么在内核中这两块虚拟内存是否“打架”了呢?
在不同进程中,如果 bufA(在进程 A 中)和 bufB(在进程 B 中)打印出的虚拟地址值相同,但由于进程隔离,它们映射到不同的物理地址(除非是共享内存)。不,在内核中这两块虚拟内存不会“打架”。在同一个进程中,如果 bufA 和 bufB 指向相同的虚拟地址(例如,它们是通过赋值或指针别名设置的),那么它们实际上引用的是同一个内存位置。当用户程序调用系统调用(如 read)时,传递一个用户缓冲区的虚拟地址(如 bufA),内核在进程上下文中使用该进程的页表,将用户虚拟地址转换为物理地址。
2025-07-17 13:19:22
727
原创 一定要大量读书@《有无之境》心学实践指南|普通人也能活明白的3个心法
陈来教授这本北大哲学系教材级著作,最厉害之处在于把500年前王阳明的心学智慧,转化成了现代人看得懂的生存指南。全书围绕三个核心问题展开:1️⃣ 如何突破"知道但做不到"魔咒?2️⃣ 怎样在复杂人际关系中保持内心清明?3️⃣ 现代人如何找回生命主动权?
2025-07-14 21:16:24
252
原创 #Linux内存管理# 请你详细介绍vma 的查找 插入 合并的接口实现原理
/ 删除被合并的VMA。// 扩展next的起始地址。// VMA 链表头。// 直接扩展VMA。// VMA 红黑树根节点。struct vm_area_struct { // VMA 结构。
2025-07-11 13:52:08
417
原创 #Linux内存管理 # 请你介绍一下 struct task_struct mm_struct vm_area_struct 这三个结构体之间的关系
mm_struct结构描述了一个进程的整个虚拟地址空间,vm_area_truct描述了虚拟地址空间的一个区间(简称虚拟区)。下图就是我们所说的由task_struct到mm_struct,进程的地址空间的分布。一个进程的虚拟地址空间主要由两个数据结来描述,一个是 mm_struct,一个是 vm_area_structs。vm_page_prot:页保护位(PROT_READ/PROT_WRITE/PROT_EXEC)// 代码段起始地址。
2025-07-11 08:39:16
828
原创 一定要大量读书@《幸福超越完美》请停止追求完美,开启幸福人生
幸福不是考卷上的100分,而是生活中的及格线。当我们停止用完美丈量人生,才能真正听见内心的声音:“我值得被爱,即使不够完美”“此刻的我,已经足够好”📖 行动打卡:1️⃣ 现在写下你最想改变的“完美执念”2️⃣ 将它转换为“足够好”版本3️⃣ 评论区分享你的转变,互相加油!
2025-07-10 18:17:59
1076
原创 一定要大量读书@《价值》做时间的朋友,比做机会的猎人更重要-慢慢来,比较快
张磊在书里说:“价值不是价格,而是‘解决问题的能力’。比如你做小红书博主,不是为了涨粉而涨粉,而是分享“职场新人如何避免踩坑”“学生党平价护肤攻略”——这些能帮粉丝解决实际问题的内容,才是你的“价值”。再比如职场中,你不是讨好领导,而是帮团队搞定了“一直没解决的客户投诉”“优化了流程让效率提升30%”——这些“创造价值”的事,才会让你成为“不可替代的人”。想起张磊投资京东的故事:2009年,京东还在卖3C产品,他却砸了3亿美元。为什么?
2025-07-10 18:13:07
956
原创 一定要大量读书@《何以为父》当了妈妈才懂:爸爸带娃的5个黄金法则!后悔没早看这本书
前两天读《何以为父》,这本心理学神书彻底颠覆了我对“爸爸带娃”的认知!原来父亲不只是“赚钱养家工具人”,而是孩子人格成长的关键拼图!我把书里精华总结成5条实操指南,新手爸妈必看👇。
2025-07-10 18:09:16
668
原创 一定要大量读书@情侣谈钱别慌!用《谈钱不伤感情》的方法,把吵架变成“爱的沟通
上周一起逛超市,拿了盒15块的进口蓝莓,他皱着眉把盒子放回去:“这比国产的贵3倍,至于吗?”我当场炸了:“我平时连奶茶都少喝,买盒蓝莓也嫌我乱花钱?回家路上两人都没说话,直到我翻出床头那本《谈钱不伤感情》,突然懂了——我们不是不爱对方,是“金钱人格”撞了个满怀。
2025-07-10 18:02:56
451
原创 一定要大量读书@《沃伦巴菲特 终极金钱心智》巴菲特亲授:3个财富心态让你变有钱
💰朋友们!读完《沃伦巴菲特 终极金钱心智》,我悟了!原来真正拉开贫富差距的,根本不是本金多少,而是脑子里的想法!今天就把股神的财富心法拆给你看,学会立刻用起来!👇。
2025-07-10 17:56:52
925
原创 傻傻分不清楚 kmalloc、vmalloc和malloc之间有什么区别以及实现上的差异
kmalloc、vmalloc 和 malloc 的区别及实现差异详解这三者都是内存分配函数,但适用于不同场景(内核空间或用户空间),在内存连续性、实现机制和适用场景上有显著差异。
2025-07-09 18:02:50
772
原创 用一个代码案例详解介绍vmalloc函数的功能和作用
/ 分配500KB对比。printk(KERN_CONT " 虚拟地址 %pK -> 物理页帧: 0x%lx\n",printk(KERN_INFO "%s: 虚拟地址范围: [%pK - %pK]\n",#define MEM_SIZE (5 * 1024 * 1024) // 分配5MB内存。
2025-07-09 18:00:07
494
原创 对于64位的系统kmalloc、vmalloc和malloc 分配的内存地址属于哪个地址区间?
在 64 位 Linux 系统中,kmalloc、vmalloc 和 malloc 分配的内存地址属于不同的地址空间区间,这是由内存管理架构决定的。
2025-07-09 17:55:37
576
原创 Linux 内核 Slab 分配器核心组件详解
三个 Slab 链表 每个节点维护三个链表:slabs_full、slabs_partial、slabs_free。当本地缓冲池耗尽时,从共享池批量获取对象或 Slab。本地对象缓冲池 每 CPU 的缓存(struct kmem_cache_cpu),存放快速分配的空闲对象。步骤 3:若共享池耗尽,从 Slab 空闲链表(slabs_free)分配新 Slab,分割为对象后加入本地池。步骤 2:若本地池为空,从 共享对象缓冲池(节点 slabs_partial 链表)批量获取对象填充本地池。
2025-06-11 19:42:47
533
原创 Linux内核slab分配器原理与代码分析
slab分配器是Linux内核中用于高效管理内核对象内存分配的核心机制,由Jeff Bonwick在Solaris 2.4中首次提出,后被Linux采用。它的核心思想是对象缓存,主要解决传统内存分配方式的两个问题:内存碎片问题:频繁分配释放小对象导致内存碎片初始化开销:某些内核对象初始化成本高。
2025-06-06 22:25:59
294
原创 一定要大量读书@《全新销售》人人都能做好销售|3步让客户追着你下单!
☘️如果你看了有收获欢迎评论区一起讨论,你还可以点击右上角的“分享”按钮,把这篇文章免费分享给你的朋友。> 💡 案例:房产销售不急着介绍户型,先问“您理想的家,最不能缺什么?> “客户买的不是钻头,而是墙上的洞。”(口碑裂变的关键!顶尖销售不是舌灿莲花,而是洞察人性、解决痛点的“问题解决者”。> “这款净水器(功能)→ 让宝宝冲泡奶粉更安全(收益)”✨💡 核心思想:销售不再是“推销”,而是“价值共创”!> ❌ 旧话术:“我们的产品有XX功能...”> 客户不买“参数”,买的是改变现状的可能性!
2025-06-06 12:55:32
464
原创 一定要大量读书@颠覆认知!低风险股票竟比高风险赚更多?《低风险,高回报》暴富指南
☘️如果你看了有收获欢迎评论区一起讨论,你还可以点击右上角的“分享”按钮,把这篇文章免费分享给你的朋友。- 散户热衷追逐热点股(高风险),推高价格→实际回报下降。- 基金经理为短期排名被迫买高风险股,拉高整体风险溢价。真相:市场长期奖励“稳中求进”的乌龟,而非盲目冲锋的兔子。- 如A股的`沪深300低波`、美股的`USMV`选择专注“低风险策略”的基金(参考书中荷宝基金案例)- ❌ 短期炒作“低估值”概念股(需甄别持续性)> 投资不是赌场,聪明人用“稳”换“赢”。- ❌ 借杠杆放大收益(违背低风险本质)
2025-06-06 12:54:30
601
原创 小故事大道理@《资治通鉴》张仪一张嘴骗走楚国六百里!警惕顶级话术陷阱
楚怀王一听“白拿六百里地”,不顾大臣陈轸劝阻(陈轸警告:“秦国会赖账!楚王发现被骗后想硬刚秦国,陈轸又劝:“割地贿赂秦,联手攻齐补损失”(亡地于秦,取偿于齐)。张仪“病愈”见楚使,指着地图:“这块地,六里,拿好不送!陈轸早看穿骗局,提出 “阴合阳绝”的试探策略(假装绝交,先收地再行动),却被楚王怼:“闭嘴!> ✨ “怒者逆德也,兵者凶器也”——愤怒时做的决定,99%会后悔。购物促销—— “前100名送豪礼”——录屏+取证,警惕模糊条款。> ✨ “利聚而来,利尽而散”——别高估“利益同盟”的忠诚度。
2025-06-06 12:53:21
211
原创 一定要大量读书@这本书彻底治好了我的怕蛇症!《自然的恐惧:中国古代的人与蛇》古人智慧绝了
🌟最近挖到一本超冷门宝藏书🔥天津人民出版社的《自然的恐惧:中国古代的人与蛇》,读完直接刷新认知!☘️如果你看了有收获欢迎评论区一起讨论,你还可以点击右上角的“分享”按钮,把这篇文章免费分享给你的朋友。✅ 雄黄酒鼻祖:端午喝雄黄酒防蛇,竟是唐朝医书《千金方》记载的!✅ "蛇见愁"植物:屋后种凤仙花+七叶一枝花,天然驱蛇屏障。就像作者说的:"当人类学会与恐惧共舞,自然便馈赠智慧。✅ "蛇虫退散"符咒:汉代用朱砂画"蛇"字贴门上驱蛇。古人早把蛇玩成"移动药箱"💡。书中超震撼案例:明清百姓把家蛇当"宅神"
2025-06-06 12:52:24
164
原创 小故事悟人生@《资治通鉴》千金买马骨|燕昭王教你如何用诚意打动人才
☘️如果你看了有收获欢迎评论区一起讨论,你还可以点击右上角的“分享”按钮,把这篇文章免费分享给你的朋友。公元前312年,燕国被齐国灭国,燕昭王在废墟中即位。与其抱怨“伯乐难遇”,不如先成为愿为“马骨”买单的人。乐毅率五国联军暴打齐国,连克70余城,差点让齐国灭国。然诚得贤士与共国,以雪先王之耻,孤之愿也!👉 启示:人才加盟只是开始,给时间成长,才是终极诚意。- 创业公司:期权给足,仪式感拉满(哪怕工位小!- 管理层:公开重用“郭隗型员工”,立标杆引凤凰。> 你的诚意,决定了人才的奔赴速度。
2025-06-06 12:51:17
80
原创 一定要大量读书@《好吃的经济学》| 从餐桌看透财富密码,3步教你用“吃货思维“致富!
☘️如果你看了有收获欢迎评论区一起讨论,你还可以点击右上角的“分享”按钮,把这篇文章免费分享给你的朋友。▫️作者金句:"经济分析常基于迷思与错误假设" — 别信商家"赔本赚吆喝"人设!1840年鸦片战争警示:强国定义的"自由"可能是弱国的锁链。▫️胡萝卜能成"橙色"因专利保护,没政策创新就难存活。> ✨案例:买大米时对比"泰国香米"和"东北五常米"▫️西班牙火腿凭什么贵?> 作者张夏准说:"本书不灌输概念,只教思考方式"> 💬 吃货作业:分析奶茶店"第二杯半价"套路。👉 亲测花小钱验证"幼稚产业保护论"
2025-06-04 21:05:12
276
原创 一定要大量读书@《一人企业》裸辞3年赚200W!一人公司才是打工人的终极出路!
💥 《一人企业》这本书彻底颠覆我对"成功"的认知❗原来不需要融资雇人,1个人+1台电脑就能打造印钞机💰 核心干货整理给想自由的你👇。
2025-06-02 07:49:32
402
原创 一定要大量读书@《秦制两千年》看懂了历史的生存逻辑,普通人如何从历史中学会自保与清醒?
秦制两千年》揭开了中国古代帝王统治的底层密码:表面是儒家道德,内核是法家手段。作者谌旭彬用大量史料证明,从秦到清的两千年里,帝王们真正信奉的并非“仁政”,而是一套名为“秦制”的统治逻辑——这套逻辑的核心是汲取民力、强化控制、阻断民间财富积累。对普通读者来说,这本书能帮你:1️⃣ 破除对“盛世”的滤镜:所谓“文景之治”“贞观之治”,本质是帝王与官僚集团对民力的高效榨取;2️⃣ 理解社会规则的真相:为什么古代百姓总是“兴也苦,亡也苦”?答案藏在秦制的设计中;
2025-05-28 21:23:50
445
原创 小故事悟人生@《资治通鉴》从孙膑庞涓斗智斗勇的故事中get人生逆袭的4个智慧
🌿 🌿《资治通鉴》里孙膑和庞涓的恩怨情仇,不仅是战国版的“塑料兄弟情”,更藏着现代人也能用到的生存法则。这对师兄弟的较量跨越千年,依然能教我们如何用智慧翻盘人生!
2025-05-28 09:16:40
403
arm常用指令.pdf
2020-01-09
MIPS 指令集.pdf
2020-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人