程序员的自我修养
文章平均质量分 91
程序员的自我修养
一个不务正业的程序猿
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
程序员的自我修养(12)系统调用
系统调用(System Call)是操作系统为用户态程序提供的、用于请求内核态服务的标准化接口。核心本质:用户程序与内核的通信协议,用户程序提出需求(如“读文件”“分配内存”),内核执行特权操作(直接操控硬件或系统资源),再将结果返回给用户程序。关键特征触发特权级切换:调用时必须从用户态切换到内核态(内核拥有最高权限),执行完后再切回用户态;标准化接口:不同操作系统(Linux、Windows)都有固定的系统调用集合,如Linux的readwrite、Windows的CreateFile。原创 2025-11-20 11:23:14 · 696 阅读 · 0 评论 -
程序员的自我修养(11)用户态与内核态
用户态(User Mode)内核态(Kernel Mode)原创 2025-10-23 15:48:56 · 289 阅读 · 0 评论 -
程序员的自我修养(10)中断机制
中断是一种向CPU发出的信号,要求CPU暂停当前正在执行的程序,转而去处理某个特定事件,处理完毕后再返回原程序继续执行。在计算机的早期,程序必须忙等待,即CPU需要不断地轮询(Polling)检查外部设备的状态,这造成了巨大的资源浪费。提高CPU效率:CPU无需主动询问,设备准备好后会主动通知CPU。在等待慢速设备(如磁盘、键盘)时,CPU可以执行其他任务,实现了并发。实现异步事件处理:突发事件(如用户按键、网络数据包到达)可以随时得到响应,保证了系统的实时性。保障系统安全与稳定。原创 2025-10-23 15:47:03 · 352 阅读 · 0 评论 -
程序员的自我修养(9)入口函数
操作系统加载程序 → 跳转到 CRT 入口函数()→ 初始化环境(TLS/全局变量/CRT/命令行)→ 调用main→main执行 → 收尾(释放资源/退出)。main是用户代码的入口,但并非程序的起点;作为 CRT 入口函数,承担了“环境搭建”的核心角色,是main能够正常执行的前提。理解这一流程,有助于排查全局变量初始化顺序、内存分配失败等底层问题。原创 2025-10-23 14:49:38 · 892 阅读 · 0 评论 -
程序员的自我修养(8)延迟绑定
避免了这一问题——仅解析实际被使用的符号,未使用的符号(如库中未调用的函数)始终不解析,大幅减少程序启动阶段的冗余工作,尤其对依赖大量外部库的复杂程序(如大型应用、IDE),启动速度提升效果显著。:Linux 中通过 PLT/GOT 实现函数延迟绑定时,首次调用函数会触发动态链接器解析地址并更新 GOT 表,第二次及以后调用直接从 GOT 表读取地址,无需再次解析。在程序运行过程中,部分外部符号可能仅被调用一次(如初始化阶段的配置读取函数),若加载时提前解析,该地址仅被使用一次,解析开销与实际收益不匹配。原创 2025-10-20 17:33:40 · 965 阅读 · 0 评论 -
程序员的自我修养(7)Windows平台IAT与INT表
存储外部符号的实际地址utils.dlladdglobalutils.dlladdutils.dllglobalutils.dll:存储外部符号的标识信息utils.dll。原创 2025-10-20 09:27:28 · 751 阅读 · 0 评论 -
程序员的自我修养(6)动态链接
要解决空间浪费和更新困难这两个问题最简单的方法就是把程序的模块相互分隔开,形成独立的文件,而不再将它们静态链接在一起。程序的链接过程推迟到运行时再进行,(Dynamic Linking)的核心思想是。原创 2025-06-11 09:58:52 · 383 阅读 · 0 评论 -
程序员的自我修养(5)可执行文件的装载
可执行文件(如PE格式的.exe或.dll)的装载过程是一个将磁盘上的程序加载到内存并准备执行的过程。原创 2025-06-04 09:54:49 · 432 阅读 · 0 评论 -
程序员的自我修养(4)虚拟存储
虚拟存储是计算机系统的一种内存管理技术,它通过软硬件结合的方式,使得应用程序可以使用比实际物理内存更大的地址空间。核心思想是,从而扩展可用内存容量。原创 2025-06-03 14:05:05 · 305 阅读 · 0 评论 -
程序员的自我修养(3)静态链接
链接器的工作过程可以分成两步,一、空间与地址分配;二、符号解析与重定位,下面详细介绍下这两步的工作原理。原创 2025-05-28 17:51:38 · 412 阅读 · 0 评论 -
程序员的自我修养(2)目标文件格式
目标文件是编译的中间产物,包含代码、数据、符号和重定位信息。COFF是Windows目标文件的标准格式,结构清晰,分为文件头、节区、符号表和重定位表。链接器的任务是合并多个目标文件,解析符号引用,生成可执行文件。现代格式_PE/ELF/Mach-O均从COFF演进而来,适应不同操作系统的需求。通过理解COFF目标文件的结构,可以更深入地掌握编译、链接的工作原理,为调试和性能优化奠定基础。原创 2025-05-07 23:32:09 · 1130 阅读 · 0 评论 -
程序员的自我修养(1)程序编译的内部过程:预处理、编译、汇编、链接
C 语言的经典hello world程序,执行编译运行得到一个可执行程序。从源码到可执行程序,可以分解为4个步骤,分别是。原创 2025-11-13 10:13:55 · 351 阅读 · 0 评论
分享