自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 8086 指令集最完整通俗易懂指南(含跳转目录 / 易记口诀 / 示例)

超详细汇编指令大全,速速收藏,免得急用找不到!!!

2025-11-17 20:31:58 846

原创 8086CPU002

也就是常说的“只有当 CPU时才需要乘以 16(非常关键)。

2025-11-17 20:04:24 1085

原创 8086CPU001

谁发明的这玩意儿,就是得劲儿

2025-11-17 20:03:48 1053

原创 从零认识命名管道:命名管道全解析

本文介绍了命名管道(FIFO)实现进程间通信的原理和方法。命名管道通过文件系统中的特殊文件实现无关进程间的通信,具有路径唯一性,操作系统保证其FIFO行为。文章提供了两种创建方式:指令集(mkfifo命令)和系统调用(mkfifo()函数),并通过面向过程和面向对象的代码示例演示了通信实现。实验结果表明:(1)读端会在写端打开前阻塞;(2)双方打开后即可正常通信;(3)成功实现非亲缘进程通信;(4)写端退出后读端会收到EOF信号并自动退出。命名管道为进程间通信提供了一种简单可靠的解决方案。

2025-11-15 16:10:43 1075

原创 算法1112

本文摘要了三道编程题解和复习笔记。快来看看吧!

2025-11-14 19:15:57 914

原创 算法1111

要加endl,刷新一下缓冲区,不加过不了。用了ceil向上取整函数。没有必要真的定义一个字符数组,字符数组的是很珍贵的,数组的意义让你能重复遍历,但是,咱们完全可以一次遍历结束。注意“数组”不要越界。完。

2025-11-12 16:47:17 342 2

原创 基于匿名管道实现进程池

一篇文章实现进程池,包括思路分析,和全部源码。大学生完成作业必看!!!

2025-11-12 10:46:55 541

原创 进程间通信 —— 管道通信详解

一篇文章让你彻底搞懂匿名管道通信!从原理到实现全覆盖,图解+代码+原理一步到位,内容超硬核,别错过~

2025-11-10 20:55:02 978

原创 算法1110

思路:关键是想到用hash表,hash的优势是能够快速查找对应的数值,并且这里可以用数组来模拟hash表。emmm自己写了一遍,有点恶心啊。最后提交不通过,应该是时间复杂度的问题。好方法:用可变长的数组来模拟栈结构。正确思路:类比括号匹配,用。修改之后:结果超时。

2025-11-10 13:54:33 431

原创 Linux 下 ELF 格式与程序加载机制:静态链接与动态库原理

ELF文件与动静态库加载看着一篇就够了,超详细,无论就业还是考研都能用到!速来看看!!

2025-11-09 16:26:46 1047

原创 动静态库的制作

一篇文章让你搞懂动静态库的制作。手把手教学,每一步都有详细配图,万一能用到呢?快来看看吧!

2025-11-08 13:27:28 546

原创 操作系统拿着文件名查找磁盘文件的全过程

这篇文章将带你站在操作系统的角度,来看看操作系统是怎么拿着文件名来查找文件的。相信看完这篇文章之后你能彻底搞懂操作系统查找文件的底层原理。

2025-11-07 19:34:51 984

原创 Linux 文件软硬链接详解

一篇文章让你搞懂Linux下文件的软硬链接,快来看看吧。

2025-11-07 19:16:50 571

原创 EXT系列文件系统

一篇文章搞懂操作系统管理文件,查找文件的基本流程。本文章从硬件谈到操作系统,知识点梳理全面,配图丰富,快来看看吧!

2025-11-05 18:18:31 1298

原创 自制简易 I/O 缓冲系统

本文实现了一个简易I/O缓冲系统(mystdio),包含用户缓冲区管理、不同刷新模式控制等功能。系统通过my_fopen/open打开文件,my_fwrite/memcpy写入缓冲区,支持行缓冲和全缓冲两种刷新方式。关键点在于使用fsync强制内核缓冲区同步到磁盘,解决write操作延迟写入的问题。通过实现my_fopen、my_fwrite、my_fflush和my_fclose等函数,完整模拟了标准I/O库的基本功能,深入理解了用户缓冲区、内核缓冲区和磁盘之间的数据流动机制。

2025-11-02 14:51:03 316

原创 操作系统缓冲区实验与“外国小子”翻车实录

在学习操作系统缓冲区时,我无意间让豆包小姐和外国小子都“翻车”了 😂为什么 printf() 输出不到文件?为什么 fork() 后多出几行输出?本文以实验 + 原理剖析 + 幽默讲解,彻底讲清楚 C 语言缓冲区与内核缓冲区的区别!一文理解:“一切皆拷贝”——计算机数据流动的本质。

2025-11-01 20:53:58 803

原创 系统文件I/O

本文介绍了Linux系统调用中的文件操作函数open、write和read的使用方法。open函数用于打开/创建文件,通过标志位(如O_RDONLY、O_CREAT等)控制打开方式,使用位图实现多标志组合。write函数实现二进制写入,可处理字符串和原始数据,但需要注意数据类型转换。read函数用于读取文件内容到缓冲区。文中通过示例代码展示了这些函数的具体应用,包括文件创建、权限设置、追加写入等内容,并解释了系统调用与语言层函数的关系。这些底层函数为文件操作提供了灵活高效的控制方式。

2025-10-31 19:44:38 353

原创 Linux文件操作

本文系统探讨了文件的概念与操作。从狭义上看,文件是磁盘上的永久性存储对象,本质是属性与内容的集合;广义上,Linux系统将一切设备抽象为文件(键盘、显示器等)。文件操作实际由进程通过系统调用完成,C语言库函数(如fopen/fwrite/fclose)封装了底层接口。重点解析了fopen模式(r/w/a)、fwrite参数(ptr/size/nmemb)和snprintf的缓冲区安全特性,并指出标准输入输出流(stdin/stdout/stderr)实质是文件指针。

2025-10-27 14:48:29 979

原创 Linux进程控制

全是干货、这么细致的进程控制详解,不火真的天理难容!!!想搞定 Linux 进程控制的朋友,快点开看看,绝对让你不虚此行!要是你啃 Linux 系统编程时,总在 “进程控制” 上栽跟头 —— 搞不清fork写时拷贝、分不清wait和waitpid、exec函数总写错,这篇文章就是救星!它从 “进程创建→终止→等待→程序替换” 拆解全流程,小到status位图解析,大到底层原理,还贴满代码示例,新手打基础、老手补漏洞都适配,看完直接打通进程管理任督二脉!

2025-10-26 17:38:34 792

原创 程序地址空间

本文通过代码实验验证了Linux进程地址空间的分布规律,包括代码段、全局数据段、堆、栈等区域的地址特征。研究发现虚拟地址空间通过页表映射物理内存,父子进程共享页表但通过写时拷贝保持独立性。内核使用mm_struct结构体管理进程地址空间,采用"先描述再组织"的方式实现虚拟内存管理。实验结果表明,操作系统通过虚拟地址空间让每个进程都认为自己独占内存,而实际物理内存通过页表机制统一管理,体现了操作系统的内存抽象能力。

2025-10-25 22:06:46 754 2

原创 Linux环境变量

环境变量是操作系统中用于定义运行环境参数的全局变量,支持系统功能实现。本文介绍了环境变量的基本概念、作用及使用方法:1)命令行参数通过argv数组实现不同功能选项;2)PATH环境变量指定系统查找命令的默认路径,可通过$PATH:路径追加自定义路径;3)系统通过bash维护命令行参数表和环境变量表,环境变量存储在配置文件中,登陆时动态加载;4)介绍了env、getenv等获取环境变量的方法,以及export/unset设置环境变量的操作。环境变量在程序执行、路径查找、系统配置等方面发挥关键作用。

2025-10-25 18:28:57 1023

原创 Linux下的进程切换

本文主要介绍了进程切换和Linux O(1)调度队列的实现机制。进程切换的核心是保存和恢复CPU寄存器中的硬件上下文数据,通过时间片轮转确保系统稳定性。Linux采用O(1)调度算法,使用双队列结构(活跃/过期队列)和优先级位图(bitmap)实现高效调度,优先级高的进程优先执行,时间片耗尽后转入过期队列。该设计通过位图快速定位最高优先级进程,避免了队列遍历带来的性能损耗,实现了高效的进程调度。

2025-10-22 17:34:01 1006

原创 进程的优先级

本文介绍了操作系统中进程优先级的概念及其管理机制。进程优先级决定了CPU资源的分配顺序,类似人类社会秩序,通过数字化的PRI和NI值实现动态调控。优先级存在的本质是解决资源稀缺问题,既要保障系统稳定性和用户体验,又要优化资源利用率。Linux系统中通过uid识别进程归属,使用PRI(默认80)和NI(范围-20到19)共同决定真实优先级。文章还区分了竞争性、独立性、并行和并发等核心概念,并演示了通过top命令调整进程优先级的实际操作。最后指出,不合理的优先级设置可能导致进程饥饿现象。

2025-10-22 16:33:37 1168 2

原创 Linux进程状态

本文介绍了操作系统中的进程状态及其在Linux内核中的具体表现。主要包括运行、阻塞、挂起三种基本状态,以及Linux特有的睡眠(S)、深度睡眠(D)、停止(T)、僵尸(Z)和死亡(X)状态。文章还解释了内核链表的数据结构设计,说明了进程控制块(PCB)如何通过链表管理。最后讨论了孤儿进程问题及其解决方案。通过状态转换分析和实例演示,帮助理解操作系统对进程生命周期的管理和资源调度机制。

2025-10-21 16:15:51 1070

原创 Linux初识进程

本文介绍了进程的基本概念和管理机制,主要包括:1) 进程是程序的执行实例,由内核数据结构和程序代码组成;2) Linux系统通过task_struct结构体(PCB)描述进程,包含标识符、状态、优先级等关键信息;3) 查看进程的两种方式:ps命令和/proc目录;4) 系统调用如getpid()获取进程信息;5) fork()创建子进程的特性,包括返回值差异、写时拷贝机制等。文章重点解析了Linux进程管理的关键技术,为理解操作系统进程机制提供了基础。

2025-10-21 13:30:54 772

原创 调试器-gdb/cgdb使⽤

本文介绍了Linux系统下的命令行调试工具gdb和cgdb的基本使用方法。主要内容包括:gdb的功能特点、debug/release模式的区别、常用调试命令(如断点设置、变量查看、程序控制等)以及分屏操作等。文章提供了详细的命令表格和示例,并推荐使用cgdb替代原生gdb。最后指出虽然这些工具使用不便,但作为开发者仍需掌握基础调试技能。

2025-10-20 16:14:44 502

原创 版本控制器Git

本文介绍了Git版本控制系统的基本使用。主要内容包括:Git的安装(通过yum命令)、仓库创建与克隆(git clone)、核心操作"三板斧"(git add、git commit、git push)。还补充了查看日志(git log)、配置.gitignore文件排除特定文件类型、以及同步远程代码(git pull)等实用技巧。Git作为一个分布式版本控制系统,能有效管理各类文件版本,特别适合团队协作开发时管理源代码。

2025-10-17 15:27:22 333

原创 ⾃动化构建-make/Makefile

本文介绍了Make命令和Makefile文件的核心概念与实现方法。主要内容包括:1. Make命令根据依赖关系和依赖方法形成目标文件;2. Makefile包含依赖关系列表和依赖方法;3. .PHONY修饰伪目标使其总是执行;4. 通过时间对比决定是否重新编译;5. 详细解析了Makefile文件的推导关系和执行过程;6. 介绍了通用版Makefile的实现,包括变量定义、通配符使用、自动推导规则等技巧。文章通过图示和示例代码,系统性地讲解了Make工具的工作原理和使用方法。

2025-10-14 17:53:56 194

原创 Linux下的编译器gcc/g++

本文介绍了程序编译的四个步骤:预处理、编译、汇编和链接,并解释了各步骤的作用及相应命令。同时还讲解了条件编译的应用场景、从C语言到二进制程序的转换逻辑,以及编译器的发展历史(自举原理)。最后对比了动态库和静态库的命名特点及链接方式,指出gcc默认使用动态链接,可通过-static选项切换为静态链接。全文系统性地阐述了程序编译的核心概念和关键过程。

2025-10-14 16:36:15 253

原创 Linux编辑器vim

Vim是一款专注且多模式的文本编辑器,主要包含命令模式、插入模式和底行模式三种核心模式。命令模式控制光标移动、文本删除复制等操作;插入模式用于文字输入;底行模式支持文件保存、搜索替换等功能。文章详细介绍了各模式下的快捷键操作,如gg跳转行首、yy复制、p粘贴等命令模式技巧,以及wq保存退出、set nu显示行号等底行指令。同时还提供了vim配置方法,推荐使用现成的一键化配置方案。全文系统梳理了vim的使用技巧,适合初学者快速掌握这款高效编辑器。

2025-10-14 14:37:53 1055

原创 关于二叉树的OJ练习

本文将展示zach在学习二叉树时所做的OJ练习

2025-09-17 17:41:55 289

原创 实现二叉树

本文展示zach实现二叉树的代码

2025-09-17 10:33:58 283

原创 实现堆结构

本文展示zach实现堆结构的代码

2025-09-16 11:36:46 147

原创 关于栈和队列的OJ练习

本文章将展示zach在学习栈和队列时所做的OJ练习。

2025-09-12 16:20:29 216

原创 实现队列结构

本文章展示zach实现队列的代码

2025-09-12 10:11:37 229

原创 实现栈结构

本文章展示zach实现栈结构的代码

2025-09-11 17:49:50 175

原创 实现双向循环链表

本文章展示双向循环链表的实现

2025-09-11 16:48:01 902

原创 关于单链表的OJ练习

本文章展示zach在学习单链表时所做的练习

2025-09-11 09:45:46 316

原创 二分查找算法

本文介绍二分查找算法

2025-04-07 21:29:47 403

原创 算法之滑动窗口

本文介绍了滑动窗口算法

2025-03-29 16:07:25 167

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除