
linux学习进展
文章平均质量分 67
报错小能手
等我读懂代码的隐喻我早就死了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
linux学习笔记(13)文件操作
本文介绍了Linux系统下的文件操作基础,重点讲解了文件系统调用的使用方法。主要内容包括:文件描述符的概念(0-2为默认描述符,新文件从3开始分配);open()函数的多种打开模式(O_RDONLY、O_WRONLY等)及组合使用;文件读写的基本操作(read()和write());完整的文件关闭流程(close())。文中提供了文件复制和创建写入的完整代码示例,强调错误处理的重要性,并说明了二进制文件复制的方法。这些系统调用构成了Linux文件操作的基础。原创 2025-10-04 13:05:13 · 1123 阅读 · 0 评论 -
linux学习笔记(12)僵死进程
摘要:僵死进程是已终止但未被父进程回收的子进程,保留进程表条目和退出信息。其产生原因包括父进程未调用wait获取子进程状态、父进程先终止等。僵死进程会占用系统资源(如PID),可能导致PID耗尽攻击。可通过ps aux | awk '$8=="Z"{print $2,$11}'查找,并杀死父进程来清理,因为僵死进程本身无法被kill -9终止。常见于服务器程序频繁创建子进程、父进程未调用wait/waitpid等情况。wait函数兼具等待子进程和回收僵死进程的功能。原创 2025-10-04 12:56:53 · 320 阅读 · 0 评论 -
linux学习笔记(11)fork详解
fork系统调用通过创建子进程复制父进程资源,采用写时复制(COW)技术提高效率。父进程获得子进程PID,子进程返回0,失败返回-1。父子进程拥有独立地址空间,仅当修改内存时才触发实际复制。典型应用场景包括父子进程执行不同代码路径,需注意执行顺序不确定性和文件描述符等资源的共享特性。COW机制下,赋值、指针操作等写操作会触发复制,而读操作不会。原创 2025-10-03 11:59:14 · 901 阅读 · 0 评论 -
linux学习笔记 (10) 进程的内存管理
本文阐述了内存管理的核心机制。物理内存被划分为页框,内核和用户进程分别占用不同区域。通过页表实现逻辑页与物理页的映射,使进程可以使用连续的虚拟地址访问离散的物理内存。虚拟内存结合页表、MMU硬件和磁盘交换区,为每个进程提供独立的地址空间,实现内存隔离与共享。这种机制既保护了进程安全,又提高了内存利用率,支持运行比物理内存更大的程序,是现代多进程操作系统的基础。原创 2025-10-02 12:14:20 · 1068 阅读 · 0 评论 -
linux学习笔记(9) 进程
进程是正在执行的程序,是操作系统资源分配和调度的基本单位。进程由代码段、数据段、堆、栈和进程控制块(PCB)组成,PCB包含进程ID、状态、程序计数器等关键信息。进程生命周期包括创建、就绪、运行、阻塞和终止五种状态。进程间通过上下文切换实现并发执行,但会带来性能开销。并发是任务交替执行,并行是真正同时执行。进程间通信(IPC)可通过管道、共享内存等方式实现。操作系统通过进程管理实现资源隔离、提高CPU利用率等目标。原创 2025-10-01 14:44:13 · 781 阅读 · 0 评论 -
linux学习笔记(8)主函数的参数
主函数参数包括:argc表示参数个数(至少为1),argv是参数字符串数组(argv[0]为程序名),envp为环境变量数组(格式变量名=值;)。三者均以NULL结尾。此外,printf存在行缓冲问题,若无换行符或强制刷新(fflush),内容可能延迟显示。程序结束时会自动刷新缓冲区。原创 2025-10-01 14:15:24 · 249 阅读 · 0 评论 -
linux学习笔记(7)gdb调试 及静态库共享库
本文介绍了gdb调试工具的基本命令(如断点设置、程序执行控制)和C语言库函数相关知识。重点讲解了静态库(.a)和共享库(.so)的区别:静态库在编译时被完整复制到可执行文件中,使程序独立但体积大;共享库在运行时动态加载,节省空间但依赖性强。文章还详细说明了两种库的创建方法(使用ar工具)、链接方式(gcc命令)以及环境变量LD_LIBRARY_PATH的作用。最后指出编译器默认只链接核心库,其他库需要显式指定。原创 2025-09-30 13:30:15 · 336 阅读 · 0 评论 -
linux学习笔记(6) make(自动化编译链接) makefile文件
摘要:Makefile用于自动化工程编译管理,通过定义规则实现增量编译和依赖管理。gcc是编译器,负责具体编译工作;make是构建工具,根据Makefile规则调用gcc。调试版本含-g选项生成调试信息,发行版本则优化性能。make clean可清理临时文件,install目标用于安装程序到系统目录(如/usr/bin)。原创 2025-09-29 12:07:13 · 398 阅读 · 0 评论 -
linux学习笔记(5)计算机基本硬件结构
计算机硬件系统主要由CPU、内存、硬盘和总线组成。CPU作为"大脑"负责执行指令和运算;内存作为"临时工作台"提供快速数据存取;硬盘用于长期存储数据;总线包括地址总线、数据总线和控制总线,负责各部件间的数据传输与协调。这些组件相互配合,通过I/O接口实现数据交换,共同完成计算机的各项任务。原创 2025-09-28 14:52:17 · 287 阅读 · 0 评论 -
linux学习笔记(4)gcc 编译
GCC编译过程分为四个步骤:1)预编译处理宏定义、条件编译和注释(#define,#include等),生成.i文件;2)编译进行词法、语法分析和优化,生成.s汇编文件;3)汇编将指令转为二进制,生成.o目标文件;4)链接合并段和符号表,生成可执行文件。多文件项目可分别编译为.o再链接,减少重复编译。Linux使用ELF格式,Windows使用PE格式,汇编指令如mov/add对应机器码。原创 2025-09-27 09:46:26 · 458 阅读 · 0 评论 -
linux学习笔记(3)进程管理命令 及文件压缩解压
本文介绍了Linux系统中的进程管理和文件压缩解压命令。进程管理部分包括查看进程信息(ps)、终止进程(kill)、前后台任务切换(fg/bg/jobs)等操作。文件压缩解压部分重点讲解了tar命令的打包/解包功能,以及如何结合gzip实现压缩/解压,特别说明了一键解压.tar.gz文件的便捷方法(tar zxf)和分步解压的详细步骤。这些命令是Linux系统日常操作的基础工具,掌握它们能有效提高工作效率。原创 2025-09-26 14:20:18 · 624 阅读 · 0 评论 -
linux学习笔记(2) 基础命令 vi基础命令
本文摘要:介绍了Linux系统下文件权限管理命令chmod(包括u/g/o/a权限设置和+/-操作)和用户切换命令sudo/su。详细讲解了vi/vim编辑器的三种模式(命令、插入、末行)及常用操作命令,包括文本编辑、行号显示、搜索替换等。特别说明了权限数值表示法(r=4,w=2,x=1)和vim多窗口编辑冲突时的swp文件处理。全文涵盖Linux系统管理和文本编辑的核心操作要点。原创 2025-09-26 14:11:38 · 447 阅读 · 0 评论 -
linux学习笔记(1) linux基础
linux常见目录及基础命令原创 2025-09-25 14:28:43 · 397 阅读 · 0 评论