Windows与Linux进程线程深度解析:从系统调用到死锁防范
Windows与Linux进程线程深度解析:从系统调用到死锁防范概述操作系统设计这门课程真是让我又爱又恨,从最基础的CreateProcess调用都写不对,到后来能看懂部分内核源码分析死锁踩了无数坑,今天就把Windows和Linux在进程线程管理上的区别,还有那个差点让我debug到通宵的死锁问题详细总结一下 目录 进程线程基础概念 Windows进程线程全流程 Linux进程线程全流程 死锁原理与实战分析 总结与心得体会 进程线程基础概念进程是什么?进程就是正在运行的程序的实例。每个进程都有自己独立的内存空间,就像同时打开多个Chrome标签页,每个标签页其实都是独立的进程 线程又是什么?线程是进程内的执行单元,多个线程共享进程的资源。比如在一个word文档里,一个线程处理用户输入,另一个线程自动保存,它们共享同一个文档数据,下面是解释的流程图: graph TB A[进程] --> B[代码段] A --> C[数据段] A --> D[文件句柄] A --> E[线程1] A --> F[线程2] A --> G[线程3]...
记一次如何手动编译一个linux内核
记一次记一次如何手动编译一个linux内核并从 QEMU 测试到替换宿主内核#### 特别声明与警告⚠️ 警告:本文涉及修改和替换系统的核心组件(内核)。此操作具有一定风险,可能导致系统无法启动。 实验环境: 整个过程必须在虚拟机(如 VMware Workstation 或 VirtualBox)中进行。虚拟机提供的“沙盒”环境,可以大胆尝试而无需担心损坏物理主机系统。本文所有操作均在 VMware Workstation 17 Pro 中完成。 备份: 在进行替换内核操作前,务必为你的虚拟机创建一个快照。如果操作失误,你可以快速回滚到之前的状态。 适用范围: 本文旨在用于学习和测试目的。请不要在生产环境或你无法承担风险的机器上直接操作。 使用以下命令查询当前系统内核版本: 1uname -r 实验目标 在 Ubuntu 24.04 中从国内镜像站下载并编译 Linux 内核源码(版本 6.16.7)。 使用 QEMU 模拟器测试新编译的内核和初始内存磁盘(initramfs),确保其能正常启动。 将经过测试的内核安装到宿主 Ubuntu 系统中,并使其成为默认...
记一次开发农历日期计算器的过程
记一次开发农历日期计算器的过程缘起:闲得发慌突然想写一个没啥用的东西最近在看日期看看什么时候开学时突发奇想想开发一个虽然没啥用小工具但是还浪费时间的工具——一个能够同时显示公历和农历的日期计算器。这个想法完全是闲出屁来才写的,不考虑任何实用性 环境配置我的开发环境: 操作系统:Arch Linux 2025.08.01 Python版本:3.11.4 开发工具:VS Code + Jupyter扩展 + vim 依赖安装农历计算目前没有任何公式可以准确计算所有需要专门的库支持,翻阅大量文献,我选择了zhdate: 1pip install zhdate 这个库专门处理中国农历日期转换,可以解决复杂的闰月计算问题。 思路与实现过程核心功能分解 公历日期计算:计算从今天到目标日期的天数差 农历转换:将公历日期转换为农历日期 额外信息:显示生肖、天干地支、闰年信息 功能1:公历日期计算思考过程: 需要计算两个日期之间的天数差 Python本身就有强大的日期处理模块datetime 关键是要确保两个日期对象类型一致 计算天数差: 1234567from datetime im...
图床测试
我的桌面


