- 博客(277)
- 资源 (63)
- 收藏
- 关注
原创 《UNIX环境高级编程》第三版(电子工业出版社出品)——两年磨一剑的匠心译作
- 《UNIX环境高级编程》第三版(电子工业出版社出品)终于上市了
2024-06-18 22:46:08
1275
16
原创 【译】《心悟内核:先懂设计,再读代码》—5、一体架构,协同行为:内核的真实模型
- Linux内核采用单体式结构,各子系统编译为单一镜像共享地址空间,但运行时通过全局约束实现模块化协作。执行上下文(进程/中断等)严格限定内核行为,如中断上下文禁止阻塞。子系统交互遵循共享规则:调度器不抢占原子路径、内存分配器适配上下文、I/O操作分阶段流转。同步机制(自旋锁/RCU等)与内存访问均基于上下文选择,延迟执行机制实现任务跨阶段传递。内核虽以单体形式构建,实际运行却是由上下文、时序和并发规则驱动的协同系统,体现"形式单体、行为模块"的设计哲学。
2026-06-09 09:00:00
328
3
原创 【译】《心悟内核:先懂设计,再读代码》—4、内核作为分层系统:虚拟、映射、隔离、受控
- 本文探讨了Linux内核作为分层管控系统的设计哲学。内核通过虚拟化、映射、隔离与控制机制构建多个受控视图,而非单一系统视图。其核心架构特点包括:任务绑定执行上下文、间接寻址实现隔离、接口抽象隐藏实现细节、分层校验确保安全访问。文章指出,这种分层设计通过并发控制、资源限制和安全策略,使内核在高压环境下仍能保持可靠性与可控性。所有用户交互均受内核管控,体现了"不信任任何输入"的安全原则。这种分层架构是Linux内核高可靠性的关键所在。
2026-06-02 09:00:00
241
3
原创 【译】《心悟内核:先懂设计,再读代码》—3、代码之前:一张内核概念图
-《Linux内核设计的核心原则》揭示了内核并非功能模块的简单集合,而是围绕并发控制、硬件交互和故障恢复等核心规则构建的复杂系统。文章指出内核通过严格的执行上下文隔离(如线程绑定的内存空间和特权级别)确保安全性,并针对不同入口路径(系统调用/硬件中断等)制定差异化的约束规则。内核设计强调确定性行为(如无锁数据结构和有界执行时间)与主动容错机制(故障隔离和状态保护),其架构相关代码在保持硬件控制力的同时实现可移植性。作者强调理解内核必须超越工具函数层面,把握其维护安全、隔离与健壮性的本质设计逻辑。
2026-05-26 09:00:00
254
3
原创 【译】《心悟内核:先懂设计,再读代码》—2、服务进程:内核的核心使命
- Linux内核的本质是一套被动响应系统,其核心使命是为用户进程提供稳定可靠的服务环境。内核通过三种触发机制(系统调用、硬件中断、内核线程)被唤醒执行,所有子系统必须协同工作才能完成请求处理。从进程启动到文件读取,每个用户操作都引发跨子系统协作:权限校验、内存管理、I/O调度等环节环环相扣。内核线程虽运行在内核态,其存在价值仍是保障用户进程正常运行。这种"需求驱动-协同响应"的架构设计,使得内核始终保持高效运转,最终实现其根本价值。
2026-05-19 09:00:00
363
4
原创 【译】《心悟内核:先懂设计,再读代码》—1、内核并非进程,而是整个系统本身
- 本文深入解析了Linux内核的本质特征与运行机制。内核并非普通进程,而是操作系统的基础运行环境,具有以下核心特点:1)永久驻留内存,开机引导后即常驻;2)以最高特权级别运行,统筹管理硬件与软件的交互;3)采用响应式执行模式,通过系统调用、中断处理和内核线程三种方式触发运行。文章特别指出,内核线程由PID为2的kthreadd进程衍生,数量随系统负载动态变化(通常在100-150个),但内核本身不以独立任务形态存在。内核作为整个系统的核心本体,为所有用户任务提供运行框架和资源管理。
2026-05-12 09:00:00
370
4
原创 【译】《心悟内核:先懂设计,再读代码》—0、前言
-《心悟内核:先懂设计,再读代码》是一篇引导读者理解Linux内核设计思想的文章。作者Moon Hee Lee指出,内核学习不应局限于代码细节,而应首先构建其工作原理的心智模型。文章强调内核是一个结构化、响应式的系统,其设计核心在于上下文驱动、分离原则和明确意图。该系列旨在通过行为分析而非语法讲解,帮助读者掌握内核的运行机制,包括响应方式、约束管理、隔离实现和服务提供等核心概念。作者建议读者关注内核的整体设计思想,而非陷入具体实现细节,从而真正理解这个支撑整个系统的核心引擎。
2026-05-05 09:00:00
96
3
原创 【Linux】【开发】一个由宏导致的结构体大小不一致问题分析过程小结
- 本文通过一个实际案例,说明了一个由宏导致的结构体大小不一致问题,并对此类问题的成因做一总结。
2026-04-28 09:00:00
400
5
原创 【译】弄清Linux上fork进程的真实(和组合)内存使用情况:并非易事
- 本文探讨了Linux系统中进程内存使用的精确计算方法。作者通过分析/proc文件系统下的多个指标(RSS、PSS、USS),揭示了不同内存统计方式的差异:RSS包含共享内存,PSS按比例计算共享内存,USS仅统计私有内存。文章以Java进程和systemd-journald为例,展示了实际应用中这些指标的计算方法和权限问题,指出在评估进程真实内存占用时需考虑共享内存的影响。最终结论是USS最能反映进程的私有内存使用情况。
2026-04-21 09:00:00
806
4
原创 【译】理解Linux中的/proc/[pid]/pagemaps和/proc/[pid]/maps:如何提取虚拟和物理页信息
- Linux系统通过`/proc`文件系统提供了强大的接口来检查进程级别的详细信息。在众多文件中,`/proc/[pid]/maps`和`/proc/[pid]/pagemaps`对于理解进程的内存布局以及虚拟内存和物理内存之间的映射关系至关重要。无论您是在调试内存泄漏、优化性能,还是分析内存使用模式,这些文件都提供了无与伦比的可见性,让您了解进程如何与系统内存交互。
2026-04-14 09:00:00
458
2
原创 【译】Linux进程内存管理
- 本文介绍了Linux系统中四种关键的内存测量指标:VSZ(虚拟内存大小)、RSS(常驻集大小)、PSS(比例集大小)和USS(唯一集大小)。VSZ表示进程可能访问的总内存,而RSS显示实际分配的RAM,但会重复计算共享库。PSS通过分摊共享库解决了这个问题,USS则只计算进程独占的内存。文章还演示了如何使用ps、top和smem工具查看这些指标,帮助用户更准确地评估进程内存使用情况。理解这些指标对于优化系统性能和内存管理至关重要。
2026-04-07 09:00:00
393
2
原创 【译】理解 Linux 的 /proc/pid/maps:解码嵌入式应用程序内存使用、列说明和匿名 Inode 0 条目
- 本文解析了Linux系统中/proc/pid/maps文件的结构与功能,重点探讨了该文件在嵌入式系统内存管理中的应用。文章详细介绍了文件的六列结构(地址范围、权限、偏移量、设备号、inode和路径名),并分类解释了常见内存区域类型,包括可执行代码段、数据段、堆栈和共享库等。特别深入分析了"匿名inode 0条目"的成因和作用,指出这些由mmap或malloc创建的匿名映射区域对理解动态内存分配至关重要。通过实际示例,文章展示了如何利用该文件诊断内存问题,优化嵌入式应用的RAM使用。
2026-03-24 09:00:00
857
4
原创 【译】Linux 进程内存
- 本文介绍了如何在Linux系统中检查进程内存。作者通过/proc文件系统访问进程内存信息,重点解析了maps和mem文件的作用。文章解释了Linux内存管理机制,包括虚拟内存和mmap系统调用的工作原理,并演示了如何定位可疑用户进程的内存数据。通过/proc/${pid}/maps可以查看进程内存映射,而mem文件则提供了实际内存内容,为系统管理员提供了检查进程内存的有效方法.
2026-03-17 09:00:00
417
3
原创 【译】列出附加到 Linux共享内存段的进程
- 本文介绍了在Linux系统中查看共享内存段及其附加进程的方法。首先使用ipcs -m命令列出所有共享内存段,获取目标段的shmid标识符。然后通过ipcs -m -i [shmid]查看特定内存段的详细信息,包括连接的进程数。最后用pstree -p [shmid]以树状结构显示附加到该内存段的进程及其PID。这些命令组合使用可以帮助开发者监控和管理进程间的共享内存通信。
2026-03-10 09:00:00
230
3
原创 【译】 maps, smaps and Memory Stats!
- 本文探讨了Linux系统中进程内存统计的复杂性,重点分析了/proc/$$/maps和/proc/$$/smaps文件的差异。
2026-02-24 09:00:00
1372
3
原创 【译】理解 Linux 中的内存分配 —— malloc、brk、sbrk、mmap 之间的关系,以及可调参数 vm.overcommit_memory
- 本文探讨了Linux系统中的内存分配机制,重点分析了malloc()函数在分配不同大小内存时的底层实现方式。通过/proc/pid/maps文件展示了进程的虚拟内存布局,揭示了堆、栈和内存映射区域的结构。
2026-02-17 09:00:00
1144
4
原创 【Linux】【开发】如何判断Linux的用户态及内核态是32位还是64位?
- 本文提供了多种实用命令来帮助开发者快速确认系统的位数状态,适用于ARM等不同架构的Linux系统。
2026-02-10 09:00:00
863
4
原创 【Linux】【操作】Linux操作集锦系列之十六——Linux环境下生成一个固定大小文件的方法
- 本文介绍了在Linux系统中生成指定大小文件(填充数字1)的多种方法。
2026-02-03 09:00:00
802
3
原创 Linux命令行玩转PDF:从查看编辑到加密的全流程指南
- 在Linux系统中,命令行工具往往比图形界面更高效,尤其对于批量处理或服务器环境下的PDF文档管理。本文将带你解锁Linux下PDF处理的实用技巧,从基础的查看操作到进阶的格式转换、内容编辑,再到安全加密,一套命令行工具就能搞定所有需求。
2026-01-27 09:00:00
1464
2
原创 【Linux】【开发】Ubuntu系统下OpenWrt编译环境的搭建
- 本文整理了如何在ubuntu系统下,搭建OpenWrt的编译环境。
2026-01-06 09:00:00
1920
5
原创 【Linux】【开发】hostapd串口不输出log的问题
- 本文分析了hostapd日志无法输出到串口的问题。通过源码分析发现,由于未开启相关宏配置,日志应通过printf输出,但实际被重定向到/dev/null。检查发现hostapd继承了父进程的标准IO设置。
2025-12-23 09:00:00
746
5
原创 【Linux】【操作】Linux下使用zstd进行压缩与解压缩操作
- 本文介绍 Linux 下 zstd 压缩解压缩的安装及文件目录操作方法。
2025-12-16 09:00:00
2118
4
原创 【工具】快速删除Windows/Linux系统下的svn、git临时目录
- 本文介绍了快速删除Windows和Linux系统中.svn和.git临时目录的方法。在Windows下,通过修改注册表添加右键菜单选项,可一键删除指定文件夹下的版本控制目录;Linux系统则使用find命令结合rm -rf快速清理。两种方案均提供.svn和.git目录的删除方法,操作简便高效。
2025-11-25 09:00:00
593
9
原创 【Linux】【调试】gcc编译如何保留中间文件
-《GCC编译保留中间文件的方法》 本文介绍了在GCC编译过程中保留中间文件的两种实用方法。第一种是通过使用-E选项,配合-o参数将预处理结果输出到指定文件中(通常以.i为扩展名)。第二种是利用GCC 4.5引入的-save-temps机制,该选项能够保留预处理、编译和汇编阶段生成的所有中间文件(.i、.s、.o等),并支持与输出文件同目录存储。文章还特别说明了如何在Makefile和CMake中如何应用此技术。
2025-11-11 09:00:00
971
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
4305
8
原创 【工具】在Source Insight中集成svn命令
- 本文介绍了如何在Source Insight中集成SVN命令以提高开发效率。通过配置TortoiseSVN的常用命令(如Log、Diff、Update、Commit)作为自定义命令,并将其添加到菜单或设置快捷键,开发者可以直接在IDE中执行版本控制操作,无需频繁切换应用。设置步骤包括添加自定义命令、配置菜单选项和分配快捷键。这种集成方式能显著提升代码管理和版本控制的工作效率。
2025-10-24 10:24:41
1114
4
原创 【译】调试技巧
- 调试的艺术:从问题重现到高效修复 调试代码是一门需要耐心和经验的艺术。本文分享了几项关键调试技巧:首先必须准确重现问题,创建包含具体步骤、环境和预期结果的"配方";其次建议将问题转化为自动化测试,通过单元测试验证和定位错误;调试过程中要保持开放思维,避免先入为主的假设,并利用日志辅助分析;同时建议一次专注解决一个问题,避免大规模修改;最后强调了解调试器功能、适当休息和团队协作的重要性。有效的调试不仅需要技术能力,更需要系统性思维和持续优化的方法论。
2025-10-21 09:00:00
871
4
原创 【Linux】Linux环境下硬编码检测方式小结
- 本文介绍了几种检测代码中硬编码敏感信息的方法: grep、hexdump、strings、hardcodes、detect-secrets。这些工具能有效帮助开发者发现和处理代码中的敏感信息硬编码问题,提升
2025-10-14 09:00:00
1166
3
原创 【Linux】【调试】gcc编译停止控制方式
- GCC编译出错时,如涉及多个编译错误,那么前后错误之间可能存在关联(比如少个括号、或者未包含某个头文件),此时,可考虑使用编译选项,控制编译在遇到第一个或累计多少个错误时,停止在出现错误的地方。本文就对这种场景的操作方式做一简要的说明。
2025-10-07 21:09:47
749
5
原创 【Linux】【开发】makefile中gcc -MMD及include *.d的使用
- 本文举例说明了gcc -MMD及include *.d的用法。
2025-09-23 09:00:00
1075
4
原创 【Linux】【上传工具】Linux系统命令行上传工具汇总
- 本文总结了Linux系统中常用的命令行文件上传工具,涵盖其特点、使用方法和适用场景。重点介绍了基于SSH的安全工具scp、rsync和sftp,以及传统ftp、多功能curl和高级lftp等工具的使用技巧。
2025-09-16 09:00:00
1176
4
原创 【TCP/IP】【测试】如何使用wireshark进行远程抓包
- 本文介绍了多种使用Wireshark进行远程抓包的方法。主要包括:1)利用tcpdump+nc/ncat组合2)通过SSH管道传输抓包数据到本地Wireshark;3)使用命名管道(FIFO)方式实现远程抓包;4)借助rpcapd工具实现实时远程抓包;5)使用Wireshark自带的sshdump插件等。
2025-09-09 09:00:00
1805
7
原创 【译】《可执行文件背后的原理》—— 第14章 最终章
- 《Under The Hood Of Executables》是一本深入探讨C程序从源代码到可执行二进制文件转换的指南。本书详细介绍了ELF格式、链接和加载过程,并通过实用示例、交互式图表和分步教程帮助读者理解这些概念。内容包括编译和链接的各个方面,并提供现实世界的应用和性能优化见解。读者可以通过克隆GitHub仓库或访问官方网站获取详细内容。本书采用MIT许可证,欢迎贡献者参与,并感谢所有支持此项目的贡献者和开源社区。
2025-09-02 09:00:00
757
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关注的人