- 博客(282)
- 资源 (63)
- 收藏
- 关注
原创 《UNIX环境高级编程》第三版(电子工业出版社出品)——两年磨一剑的匠心译作
- 《UNIX环境高级编程》第三版(电子工业出版社出品)终于上市了
2024-06-18 22:46:08
1295
16
原创 【译】《心悟内核:先懂设计,再读代码》—10、内核如何看待内存:并非地址映射,而是权责管理
- 这篇文章探讨了Linux内核中内存管理的本质视角,指出传统静态地址映射图的局限性,强调内核是以动态权责视角管理内存。作者认为内核并非简单分配内存空间,而是根据各子系统(如调度器、网络栈、文件系统等)的具体业务需求,提供差异化的内存组织形式和使用规则。文章分析了多种内存分配接口(kmalloc、SLAB、vmalloc等)的设计逻辑,说明它们本质上是针对不同使用场景的"约束契约"。内核通过识别内存用途、生命周期和约束条件,在统一分配机制下实现静默高效的动态适配。
2026-07-21 09:00:00
203
3
原创 【译】《心悟内核:先懂设计,再读代码》—9、内核设备模型:硬件如何映射为 /dev
- 本文深入解析了Linux内核设备模型如何将物理硬件映射为用户空间可见的逻辑设备(如/dev/sda)。内核通过分层抽象体系(总线探测、驱动匹配、设备分类)屏蔽硬件差异,构建统一接口。底层由总线子系统(PCIe/USB/I²C)扫描设备并创建内部对象,驱动实现硬件控制;中层通过块/字符/网络设备类提供标准化操作接口;上层呈现为设备文件、网络接口等逻辑实体。整个过程涉及DMA、中断等精密调度机制,但对应用完全透明。内核设备模型的核心价值在于解耦硬件特性与使用方式,通过多层抽象实现稳定可用的标准化访问。
2026-07-14 09:00:00
224
3
原创 【译】《心悟内核:先懂设计,再读代码》—8、间接寻址的力量:单一内核如何服务所有进程
- 摘要:本文揭示了操作系统内核通过间接寻址技术实现单一镜像服务所有进程的核心机制。内核代码虽全局共享于各进程地址空间,但通过current指针动态绑定线程私有数据(如文件描述符表、内核栈等),确保执行上下文隔离。每个线程通过系统调用陷入内核时,CPU自动切换至专属内核栈,局部变量与运行状态严格隔离。这种间接寻址设计避免了内核数据混淆,既无需多份镜像复制,又能保障高并发安全,成为内核实现高效伸缩性与进程隔离的关键架构基石。
2026-07-07 09:00:00
203
3
原创 【译】《心悟内核:先懂设计,再读代码》—7、无冲突代码: 内核如何在并发风暴中保持安全
- 本文探讨了Linux内核如何在并发环境中保持安全运行的核心机制。内核通过三大设计原则实现无冲突并发:间接访问(通过current宏获取线程上下文)、上下文感知(函数无状态化)和细粒度同步(锁与RCU)。所有线程共享同一代码库,但通过线程私有数据实现隔离执行,使逻辑共享而数据私有。关键点包括:函数不依赖全局状态,通过线程上下文解析数据;共享资源使用精细同步;RCU实现高性能读取。设计正确性至关重要,一旦指针错误将破坏隔离性。这种架构使内核能安全处理数千并发线程,真正为并发而生。
2026-06-23 09:00:00
204
3
原创 【译】《心悟内核:先懂设计,再读代码》—6、内核对象揭示设计 —— 函数只是执行它
-《心悟内核》提出理解Linux内核应从对象视角切入,而非仅跟踪函数执行流。内核通过持久存在的对象(如task_struct、mm_struct等)管理状态与逻辑,这些对象相互关联并遵循严格的访问契约。函数仅执行操作序列,而对象定义行为规则与生命周期。例如,msg_queue控制进程通信的阻塞机制,net_device贯穿系统运行周期。理解对象的作用域、并发约束及交互关系,才能把握内核的系统性设计。跟踪展示"如何执行",对象揭示"为何可行",这是深入内核本质的关键。
2026-06-16 09:00:00
238
3
原创 【译】《心悟内核:先懂设计,再读代码》—5、一体架构,协同行为:内核的真实模型
- Linux内核采用单体式结构,各子系统编译为单一镜像共享地址空间,但运行时通过全局约束实现模块化协作。执行上下文(进程/中断等)严格限定内核行为,如中断上下文禁止阻塞。子系统交互遵循共享规则:调度器不抢占原子路径、内存分配器适配上下文、I/O操作分阶段流转。同步机制(自旋锁/RCU等)与内存访问均基于上下文选择,延迟执行机制实现任务跨阶段传递。内核虽以单体形式构建,实际运行却是由上下文、时序和并发规则驱动的协同系统,体现"形式单体、行为模块"的设计哲学。
2026-06-09 09:00:00
379
3
原创 【译】《心悟内核:先懂设计,再读代码》—4、内核作为分层系统:虚拟、映射、隔离、受控
- 本文探讨了Linux内核作为分层管控系统的设计哲学。内核通过虚拟化、映射、隔离与控制机制构建多个受控视图,而非单一系统视图。其核心架构特点包括:任务绑定执行上下文、间接寻址实现隔离、接口抽象隐藏实现细节、分层校验确保安全访问。文章指出,这种分层设计通过并发控制、资源限制和安全策略,使内核在高压环境下仍能保持可靠性与可控性。所有用户交互均受内核管控,体现了"不信任任何输入"的安全原则。这种分层架构是Linux内核高可靠性的关键所在。
2026-06-02 09:00:00
282
3
原创 【译】《心悟内核:先懂设计,再读代码》—3、代码之前:一张内核概念图
-《Linux内核设计的核心原则》揭示了内核并非功能模块的简单集合,而是围绕并发控制、硬件交互和故障恢复等核心规则构建的复杂系统。文章指出内核通过严格的执行上下文隔离(如线程绑定的内存空间和特权级别)确保安全性,并针对不同入口路径(系统调用/硬件中断等)制定差异化的约束规则。内核设计强调确定性行为(如无锁数据结构和有界执行时间)与主动容错机制(故障隔离和状态保护),其架构相关代码在保持硬件控制力的同时实现可移植性。作者强调理解内核必须超越工具函数层面,把握其维护安全、隔离与健壮性的本质设计逻辑。
2026-05-26 09:00:00
294
3
原创 【译】《心悟内核:先懂设计,再读代码》—2、服务进程:内核的核心使命
- Linux内核的本质是一套被动响应系统,其核心使命是为用户进程提供稳定可靠的服务环境。内核通过三种触发机制(系统调用、硬件中断、内核线程)被唤醒执行,所有子系统必须协同工作才能完成请求处理。从进程启动到文件读取,每个用户操作都引发跨子系统协作:权限校验、内存管理、I/O调度等环节环环相扣。内核线程虽运行在内核态,其存在价值仍是保障用户进程正常运行。这种"需求驱动-协同响应"的架构设计,使得内核始终保持高效运转,最终实现其根本价值。
2026-05-19 09:00:00
400
4
原创 【译】《心悟内核:先懂设计,再读代码》—1、内核并非进程,而是整个系统本身
- 本文深入解析了Linux内核的本质特征与运行机制。内核并非普通进程,而是操作系统的基础运行环境,具有以下核心特点:1)永久驻留内存,开机引导后即常驻;2)以最高特权级别运行,统筹管理硬件与软件的交互;3)采用响应式执行模式,通过系统调用、中断处理和内核线程三种方式触发运行。文章特别指出,内核线程由PID为2的kthreadd进程衍生,数量随系统负载动态变化(通常在100-150个),但内核本身不以独立任务形态存在。内核作为整个系统的核心本体,为所有用户任务提供运行框架和资源管理。
2026-05-12 09:00:00
387
4
原创 【译】《心悟内核:先懂设计,再读代码》—0、前言
-《心悟内核:先懂设计,再读代码》是一篇引导读者理解Linux内核设计思想的文章。作者Moon Hee Lee指出,内核学习不应局限于代码细节,而应首先构建其工作原理的心智模型。文章强调内核是一个结构化、响应式的系统,其设计核心在于上下文驱动、分离原则和明确意图。该系列旨在通过行为分析而非语法讲解,帮助读者掌握内核的运行机制,包括响应方式、约束管理、隔离实现和服务提供等核心概念。作者建议读者关注内核的整体设计思想,而非陷入具体实现细节,从而真正理解这个支撑整个系统的核心引擎。
2026-05-05 09:00:00
130
3
原创 【Linux】【开发】一个由宏导致的结构体大小不一致问题分析过程小结
- 本文通过一个实际案例,说明了一个由宏导致的结构体大小不一致问题,并对此类问题的成因做一总结。
2026-04-28 09:00:00
423
5
原创 【译】弄清Linux上fork进程的真实(和组合)内存使用情况:并非易事
- 本文探讨了Linux系统中进程内存使用的精确计算方法。作者通过分析/proc文件系统下的多个指标(RSS、PSS、USS),揭示了不同内存统计方式的差异:RSS包含共享内存,PSS按比例计算共享内存,USS仅统计私有内存。文章以Java进程和systemd-journald为例,展示了实际应用中这些指标的计算方法和权限问题,指出在评估进程真实内存占用时需考虑共享内存的影响。最终结论是USS最能反映进程的私有内存使用情况。
2026-04-21 09:00:00
838
4
原创 【译】理解Linux中的/proc/[pid]/pagemaps和/proc/[pid]/maps:如何提取虚拟和物理页信息
- Linux系统通过`/proc`文件系统提供了强大的接口来检查进程级别的详细信息。在众多文件中,`/proc/[pid]/maps`和`/proc/[pid]/pagemaps`对于理解进程的内存布局以及虚拟内存和物理内存之间的映射关系至关重要。无论您是在调试内存泄漏、优化性能,还是分析内存使用模式,这些文件都提供了无与伦比的可见性,让您了解进程如何与系统内存交互。
2026-04-14 09:00:00
515
2
原创 【译】Linux进程内存管理
- 本文介绍了Linux系统中四种关键的内存测量指标:VSZ(虚拟内存大小)、RSS(常驻集大小)、PSS(比例集大小)和USS(唯一集大小)。VSZ表示进程可能访问的总内存,而RSS显示实际分配的RAM,但会重复计算共享库。PSS通过分摊共享库解决了这个问题,USS则只计算进程独占的内存。文章还演示了如何使用ps、top和smem工具查看这些指标,帮助用户更准确地评估进程内存使用情况。理解这些指标对于优化系统性能和内存管理至关重要。
2026-04-07 09:00:00
414
2
原创 【译】理解 Linux 的 /proc/pid/maps:解码嵌入式应用程序内存使用、列说明和匿名 Inode 0 条目
- 本文解析了Linux系统中/proc/pid/maps文件的结构与功能,重点探讨了该文件在嵌入式系统内存管理中的应用。文章详细介绍了文件的六列结构(地址范围、权限、偏移量、设备号、inode和路径名),并分类解释了常见内存区域类型,包括可执行代码段、数据段、堆栈和共享库等。特别深入分析了"匿名inode 0条目"的成因和作用,指出这些由mmap或malloc创建的匿名映射区域对理解动态内存分配至关重要。通过实际示例,文章展示了如何利用该文件诊断内存问题,优化嵌入式应用的RAM使用。
2026-03-24 09:00:00
900
4
原创 【译】Linux 进程内存
- 本文介绍了如何在Linux系统中检查进程内存。作者通过/proc文件系统访问进程内存信息,重点解析了maps和mem文件的作用。文章解释了Linux内存管理机制,包括虚拟内存和mmap系统调用的工作原理,并演示了如何定位可疑用户进程的内存数据。通过/proc/${pid}/maps可以查看进程内存映射,而mem文件则提供了实际内存内容,为系统管理员提供了检查进程内存的有效方法.
2026-03-17 09:00:00
445
3
原创 【译】列出附加到 Linux共享内存段的进程
- 本文介绍了在Linux系统中查看共享内存段及其附加进程的方法。首先使用ipcs -m命令列出所有共享内存段,获取目标段的shmid标识符。然后通过ipcs -m -i [shmid]查看特定内存段的详细信息,包括连接的进程数。最后用pstree -p [shmid]以树状结构显示附加到该内存段的进程及其PID。这些命令组合使用可以帮助开发者监控和管理进程间的共享内存通信。
2026-03-10 09:00:00
246
3
原创 【译】 maps, smaps and Memory Stats!
- 本文探讨了Linux系统中进程内存统计的复杂性,重点分析了/proc/$$/maps和/proc/$$/smaps文件的差异。
2026-02-24 09:00:00
1387
3
原创 【译】理解 Linux 中的内存分配 —— malloc、brk、sbrk、mmap 之间的关系,以及可调参数 vm.overcommit_memory
- 本文探讨了Linux系统中的内存分配机制,重点分析了malloc()函数在分配不同大小内存时的底层实现方式。通过/proc/pid/maps文件展示了进程的虚拟内存布局,揭示了堆、栈和内存映射区域的结构。
2026-02-17 09:00:00
1219
4
原创 【Linux】【开发】如何判断Linux的用户态及内核态是32位还是64位?
- 本文提供了多种实用命令来帮助开发者快速确认系统的位数状态,适用于ARM等不同架构的Linux系统。
2026-02-10 09:00:00
893
4
原创 【Linux】【操作】Linux操作集锦系列之十六——Linux环境下生成一个固定大小文件的方法
- 本文介绍了在Linux系统中生成指定大小文件(填充数字1)的多种方法。
2026-02-03 09:00:00
827
3
原创 Linux命令行玩转PDF:从查看编辑到加密的全流程指南
- 在Linux系统中,命令行工具往往比图形界面更高效,尤其对于批量处理或服务器环境下的PDF文档管理。本文将带你解锁Linux下PDF处理的实用技巧,从基础的查看操作到进阶的格式转换、内容编辑,再到安全加密,一套命令行工具就能搞定所有需求。
2026-01-27 09:00:00
1525
2
原创 【Linux】【开发】Ubuntu系统下OpenWrt编译环境的搭建
- 本文整理了如何在ubuntu系统下,搭建OpenWrt的编译环境。
2026-01-06 09:00:00
1944
5
原创 【Linux】【开发】hostapd串口不输出log的问题
- 本文分析了hostapd日志无法输出到串口的问题。通过源码分析发现,由于未开启相关宏配置,日志应通过printf输出,但实际被重定向到/dev/null。检查发现hostapd继承了父进程的标准IO设置。
2025-12-23 09:00:00
753
5
原创 【Linux】【操作】Linux下使用zstd进行压缩与解压缩操作
- 本文介绍 Linux 下 zstd 压缩解压缩的安装及文件目录操作方法。
2025-12-16 09:00:00
2339
4
原创 【工具】快速删除Windows/Linux系统下的svn、git临时目录
- 本文介绍了快速删除Windows和Linux系统中.svn和.git临时目录的方法。在Windows下,通过修改注册表添加右键菜单选项,可一键删除指定文件夹下的版本控制目录;Linux系统则使用find命令结合rm -rf快速清理。两种方案均提供.svn和.git目录的删除方法,操作简便高效。
2025-11-25 09:00:00
611
9
原创 【Linux】【调试】gcc编译如何保留中间文件
-《GCC编译保留中间文件的方法》 本文介绍了在GCC编译过程中保留中间文件的两种实用方法。第一种是通过使用-E选项,配合-o参数将预处理结果输出到指定文件中(通常以.i为扩展名)。第二种是利用GCC 4.5引入的-save-temps机制,该选项能够保留预处理、编译和汇编阶段生成的所有中间文件(.i、.s、.o等),并支持与输出文件同目录存储。文章还特别说明了如何在Makefile和CMake中如何应用此技术。
2025-11-11 09:00:00
998
4
原创 【Linux】【操作】Linux操作集锦系列之十五——如何破解pdf、doc、zip、rar等密码
- 本文介绍两款开源的密码破解工具John the Ripper和PDFCrack,用于破解PDF、Word、Excel、ZIP、RAR等文件的密码。John the Ripper支持字典和暴力破解两种模式,可以通过掩码自定义破解范围和长度,适用于多种加密算法。PDFCrack专注于PDF文件密码破解,提供字典攻击和暴力破解功能。文章详细说明了两种工具的使用方法,包括命令示例和参数说明。
2025-11-11 09:00:00
4346
8
原创 【工具】在Source Insight中集成svn命令
- 本文介绍了如何在Source Insight中集成SVN命令以提高开发效率。通过配置TortoiseSVN的常用命令(如Log、Diff、Update、Commit)作为自定义命令,并将其添加到菜单或设置快捷键,开发者可以直接在IDE中执行版本控制操作,无需频繁切换应用。设置步骤包括添加自定义命令、配置菜单选项和分配快捷键。这种集成方式能显著提升代码管理和版本控制的工作效率。
2025-10-24 10:24:41
1137
4
原创 【译】调试技巧
- 调试的艺术:从问题重现到高效修复 调试代码是一门需要耐心和经验的艺术。本文分享了几项关键调试技巧:首先必须准确重现问题,创建包含具体步骤、环境和预期结果的"配方";其次建议将问题转化为自动化测试,通过单元测试验证和定位错误;调试过程中要保持开放思维,避免先入为主的假设,并利用日志辅助分析;同时建议一次专注解决一个问题,避免大规模修改;最后强调了解调试器功能、适当休息和团队协作的重要性。有效的调试不仅需要技术能力,更需要系统性思维和持续优化的方法论。
2025-10-21 09:00:00
882
4
原创 【Linux】Linux环境下硬编码检测方式小结
- 本文介绍了几种检测代码中硬编码敏感信息的方法: grep、hexdump、strings、hardcodes、detect-secrets。这些工具能有效帮助开发者发现和处理代码中的敏感信息硬编码问题,提升
2025-10-14 09:00:00
1217
3
louyueweixinsetup.zip
2021-11-21
FastDNS 彗星DNS优化器
2021-11-27
IP地址更改助手 1.3
2021-11-27
IPHelper5.2
2021-11-27
onekeycleaner5.0.zip
2021-11-27
winscp572setup.zip
2021-11-27
CrobFTPServer
2021-11-27
FTPRushv3.4.6.zip
2021-11-27
jperf 2.0.0 网络性能测试工具
2021-11-27
tcpdump4.1.1.zip
2021-11-27
EasyFZS86018.zip
2021-11-27
HomeFtpServer_1.14.0.176.zip
2021-11-27
BandwidthMonitor.7z
2021-10-01
【无线网络分析】基于Wireshark的802.11协议过滤器设计:MAC层帧类型与信号强度检测应用
2025-10-09
Bili23-Downloader
2025-02-18
WPA3 Specification v3.4
2024-12-25
mqtt的入门手册,60页
2024-08-15
8255x-10-100-mbps-ethernet-controller-software-dev-manual.pdf
2022-02-07
vlc,VLC media player,组播测试神器
2024-01-21
Hasher Lite(MD5校验工具) V3.4.0
2023-05-09
GoogleTranslateIpCheck
2023-04-12
Dual Monitor Taskbar
2023-03-03
RegisterMaster V1.2.rar
2022-08-17
ExtraPuTTY-0.30-2016-04-04-installer。 可用于串口调试。putty.
2022-08-04
Snap2HTML是一款优秀的文件夹快照创建工具,可创建您硬盘驱动器上的文件夹结构“快照”,并将其保存为一个html文件。
2022-07-22
HTTP Downloader
2022-01-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅