
Linux
文章平均质量分 94
zhangcoder
大一 KEEP CODING!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OS22.【Linux】初识进程地址空间
深入探讨了进程地址空间的概念及其在操作系统中的重要作用。首先回顾了C/C++内存区域划分,通过实验验证了栈区向下增长、堆区向上增长的特性。重点阐述了进程地址空间的本质是内核数据结构,包含页表、CR3寄存器等关键组件,以及写时拷贝机制的工作原理。通过分析mm_struct结构体,详细说明了操作系统如何管理进程地址空间。文章还解释了进程地址空间存在的意义:保护物理内存、实现进程隔离,并指出进程地址空间不等于实际内存。最后介绍了操作系统的懒加载机制和缺页中断原理,更新了进程的组成公式为"内核数据原创 2025-08-05 10:09:32 · 926 阅读 · 0 评论 -
OSE1.【Linux】练习题组1
整理了7个Linux系统相关的知识点练习题,涵盖文件系统、命令使用、文件操作和开发工具等方面。主要内容包括:1)Linux 2.6.*内核默认支持ext2/ext3/ext4/xfs文件系统;2)uname -r命令查看内核版本;3)top命令查看CPU占用;4)批量删除.c文件的两种方法;5)yum命令的正确用法;6)Vim中全局替换字符串的语法;7)Makefile的工作原理和伪目标特性。这些题目涉及Linux系统管理的基础知识,通过解析帮助理解常用命令和工具的核心功能。原创 2025-07-28 12:09:19 · 778 阅读 · 0 评论 -
OS21.【Linux】进程状态(2) O(1)调度算法、进程切换和其他概念
介绍了Linux进程调度的核心机制。首先回顾了O(1)调度算法,详细解析了运行队列和过期队列的双指针数组结构,以及通过位图快速定位最高优先级进程的方法。其次阐述了进程的竞争性、独立性、并行和并发概念。重点讲解了进程切换的完整过程,包括上下文保存机制,特别说明了32位系统下TSS(任务状态段)在保存寄存器值方面的关键作用。文章还补充了进程上下文保存位置的讨论,指出除了PCB外,任务状态段TSS也是重要存储位置。最后提供了关于进程上下文和操作系统进程管理的拓展阅读资源。原创 2025-07-26 09:23:48 · 798 阅读 · 0 评论 -
OS20.【Linux】进程状态(2) 僵尸进程、孤儿进程和进程优先级
首先回顾了Linux进程的基本概念,然后重点讨论了两种特殊进程状态:僵尸进程和孤儿进程。僵尸进程是已终止但未被父进程完全回收的进程,可能导致内存泄漏;孤儿进程则是父进程终止后由init进程接管。文章还详细介绍了进程优先级的概念,包括PRI和NI值的含义及修改方法(通过nice、renice和top命令)。最后简要说明了如何在图形界面调整进程优先级。全文提供了代码示例和命令行操作演示,帮助理解进程状态管理和优先级调整的实际应用。原创 2025-07-25 09:23:44 · 1170 阅读 · 0 评论 -
OS19.【Linux】进程状态(1)
介绍了操作系统中的进程状态分类,包括运行状态、阻塞状态、挂起状态和就绪状态,并对比了不同操作系统教材中的定义差异。重点分析了Linux内核中的进程状态实现(R/S/D/T/t/X等),通过实验演示了进程在不同状态下的表现。特别解释了D状态(不可中断睡眠)的特性及其与S状态的区别,并提供了模拟高IO场景的代码示例。文章还涉及进程调度算法、前台/后台进程、虚拟内存管理等核心概念,最后介绍了交换分区及其查看方法。这些内容为理解操作系统进程管理机制提供了全面指导。原创 2025-07-21 08:26:12 · 1392 阅读 · 0 评论 -
OS18.【Linux】进程基础知识(2)
Linux进程基础知识,重点分析了进程创建机制。文章首先介绍了psajx命令获取PID的原理,通过系统调用遍历PCB链表获取进程信息。随后详细讲解了fork()系统调用,包括其返回值设计原理(父进程获子进程PID,子进程获0)、父子进程分流机制,并通过实验代码验证了父子进程的执行流程。文章还对比了fork()和vfork()的差异,指出vfork()会阻塞父进程且共享父进程存储空间。最后总结了两种创建进程的方法:通过bash执行可执行文件和使用fork()/vfork()系统调用。全文深入浅出原创 2025-07-19 11:47:49 · 1115 阅读 · 0 评论 -
OS17.【Linux】进程基础知识(1)
介绍Linux进程的基本概念和管理方法。主要内容包括:1.进程的浅层定义 - 正在运行的程序;2.查看进程的多种方法(ps、top、/proc目录);3.进程管理实践(查看、终止进程);4.进程控制块(PCB)的组成和作用;5.Linux内核中task_struct结构体的详细解析。文章通过代码示例和命令演示,帮助读者理解进程标识符(PID)、工作目录、程序计数器等核心概念,并深入分析了操作系统如何通过PCB组织和管理进程。最后提供了Linux内核源代码中task_struct的完整定义,为后续学原创 2025-07-18 11:25:02 · 617 阅读 · 0 评论 -
OS16.【Linux】冯依诺曼体系结构和操作系统的浅层理解
冯依诺曼体系结构是现代计算机的基础架构,其核心是将程序指令和数据存储在同一个存储器中。该体系由CPU、存储器、输入/输出设备通过总线连接组成。程序运行必须加载到内存,CPU通过控制器和运算器处理数据。操作系统通过驱动程序间接管理硬件资源,本质是对数据进行组织管理。系统调用是程序访问操作系统服务的接口,程序在执行时会在用户态和内核态之间切换以确保安全。库函数是对系统调用的封装,为开发者提供更便捷的编程接口。整个计算机系统的运行都建立在冯依诺曼体系结构的基础上。原创 2025-07-11 18:57:25 · 819 阅读 · 0 评论 -
OS15.【Linux】gdb调试器的简单使用
介绍了Linux下GDB调试器的使用方法。主要内容包括:调试前的准备工作,需使用-g选项编译生成debug版本;断点的分类与原理,分为软件断点和硬件断点;通过示例代码演示了常用调试命令的使用,如list查看代码、break设置断点、run运行程序、info查看信息、next/step单步调试、print查看变量等。文章还对比了GDB命令与Visual Studio调试功能的对应关系,并介绍了finish、continue、setvar等进阶命令的使用方法。原创 2025-07-03 20:22:08 · 674 阅读 · 0 评论 -
OS14.【Linux】git的简单使用
介绍了Git的基本概念和使用方法。Git是一个免费开源的分布式版本控制系统,由Linus Torvalds开发。文章讲解了如何创建Git仓库,安装Git,使用git clone克隆仓库,配置用户信息。重点介绍了常用命令:git add提交文件变更到暂存区,git commit记录本地修改,git push推送更改到远端仓库,以及git log查看提交历史和git status检查仓库状态。最后解释了.gitignore文件的作用,通过实例验证了其对特定类型文件的忽略效果,如.app后缀文件不会被上原创 2025-07-02 19:13:00 · 616 阅读 · 1 评论 -
OSE3.【Linux】练习:编写进度条及pv命令项目中的进度条函数
本文介绍了Linux下进度条的实现方法,重点讲解了C语言中回车换行、缓冲区、sleep/usleep函数的使用技巧。通过倒计时程序作为预备实验,逐步构建了5个版本的进度条:从基础版本到添加中括号、百分比、旋转动画等特效。文章还分析了pv命令项目中进度条显示函数的调用方式,并提供了模拟下载过程的回调函数实现。最后讲解了如何生成2GB测试文件并使用pv命令监控复制进度。代码示例和效果演示完整展现了Linux环境下进度条的开发流程和优化思路。原创 2025-07-01 18:54:28 · 746 阅读 · 0 评论 -
OS13.【Linux】项目的自动化构建工具:make
介绍Linux下使用make和makefile编译大型项目的方法。首先以Redis为例演示了简单的make编译流程,然后详细讲解了makefile的基本语法,包括依赖关系、依赖方法和清理规则的编写。文章还探讨了make的自动化推导机制、时间判断原理,以及.PHONY伪目标和简写符号的使用。最后介绍了如何通过修改文件时间或使用.PHONY修饰来强制重新编译,以及用@符号隐藏命令执行细节的技巧。原创 2025-06-24 16:22:34 · 925 阅读 · 0 评论 -
OS12.【Linux】gcc和g++以及动静态链接
讲解了GCC的使用,包括gcc与g++的区别、编译过程的四个阶段(预处理-E、编译-S、汇编-c、链接)。重点介绍了编译器选项(-std、-O、-Wall/-Werror、-g)的使用场景,动态库(.so)与静态库(.a)的差异及ldd/file命令的用法。通过实例演示了从源代码到可执行文件的完整编译流程,分析了动静态链接的优缺点:动态库节省资源但依赖系统环境,静态库独立性强但体积较大。文中还涵盖了宏定义(-D)、调试信息(-g)原创 2025-06-10 19:52:44 · 1029 阅读 · 0 评论 -
OS11.【Linux】vim文本编辑器
Vim是一款多模式文本编辑器,包含命令模式、插入模式和底行模式三种主要模式。命令模式下可使用gg/G移动光标、yy/dd复制删除行、u撤销等高效操作;插入模式用于文本输入;底行模式用于保存退出(:wq)和执行外部命令(:!gcc)。 Vim支持分屏操作(vs文件),可同时编辑多个文件(ctrl+ww切换)。配置通过修改用户家目录的.vimrc文件实现,推荐使用一键配置脚本。NeoVim作为改进分支,兼容Vim并提供更多功能。文中还介绍了微软Edit编辑器作为替代选择。原创 2025-06-06 14:39:02 · 902 阅读 · 0 评论 -
OS10.【Linux】yum命令
Linux系统中的软件安装方法,重点讲解了yum包管理器的使用。主要内容包括: 软件安装方法: 直接编译源代码(较复杂) 使用yum等包管理器(推荐) yum常用命令: yum list:查看软件包 yum install/remove:安装/卸载软件 其他命令:yum search/makecache/update/upgrade 扩展yum源: 安装epel-release扩展源 通过扩展源安装sl小火车等软件 yum源管理: 配置文件位置:/etc/yum.re原创 2025-06-01 17:22:42 · 1020 阅读 · 0 评论 -
OS9.【Linux】基本权限(下)
Linux系统通过umask掩码(如002)计算文件/目录的默认权限(664/775),规则为"原始权限&(~umask)"。对目录权限的实验表明:x权限决定能否进入目录,r权限决定能否查看内容,w权限决定能否修改内容。共享目录通常设置在/tmp下并设置粘滞位(t),这样只有文件所有者和root能删除文件,解决了多用户共享时的权限问题。普通用户家目录(700)默认互不可访问原创 2025-05-30 15:15:17 · 1198 阅读 · 0 评论 -
OS8.【Linux】基本权限(上)
介绍了Linux系统中的权限管理机制。首先讲解了指令运行原理和Shell作用,随后详细阐述了用户权限分类(root/普通用户)及切换方式(su/su-/sudo)。重点剖析了文件权限系统,包括文件类型标识(-/d/b/c/p)、三种角色(拥有者/所属组/其他人)和权限类型(r/w/x),并通过实例演示权限查看方法。最后讲解了权限修改命令:chmod(+/-权限)、chown(修改拥有者)、chgrp(修改所属组),特别强调权限认证的优先级规则原创 2025-05-29 08:18:33 · 1140 阅读 · 0 评论 -
OS7.【Linux】基本指令入门(6)
可以看文件的后缀名:.zip、.gz 、 .bz2、.xz、.tar、.tar.gz.、tar.bz2、.tar.xz ......可以看出:上方文件的后缀名的打包和压缩方案都不同.下面重点介绍tar打包方案由于tar命令下的选项十分多,这里将两个组合选项。原创 2025-05-06 09:30:05 · 966 阅读 · 0 评论 -
OSE2.【Linux】练习:查找项目的main函数入口
登录后,在gitee主界面的右上角选择:从GitHub/GitLab导入仓库。如果显示已经有镜像仓库可以直接访问镜像网站。,在Linux下查找其main函数入口。首先切换到root用户下安装git指令。使用ls -l查看是否成功clone。grep指令的复习参见文章。等待clone完成即可。之后复制代码到终端运行。原创 2025-05-05 10:14:14 · 492 阅读 · 0 评论 -
OS6.【Linux】基本指令入门(5)
1.记录程序运行的每一个关键时刻,会包含时间、日志的等级(warning?error?debug?、具体的信息和其他信息2.日志是按行打印的。原创 2025-03-30 15:32:33 · 967 阅读 · 0 评论 -
OS5.【Linux】基本指令入门(4)
继续介绍一些常见指令 cat more less head tail 管道的特性 一道笔试题原创 2025-02-27 21:53:23 · 421 阅读 · 0 评论 -
OS4.【Linux】基本指令入门(3)
介绍Linux系统下指令改造与自定义的方法。主要内容包括:1. 将rm指令改造为mv指令实现回收站功能;2. 解释指令存储位置在/usr/bin目录下;3. 演示如何通过gcc编译C程序并安装为自定义指令;4. 讲解alias别名设置方法;5. 从程序角度理解Linux"一切皆文件"的概念,包括cat、echo、printf等指令的文件操作特性,以及输出重定向符>和>>的使用区别。文章还提供了清空文件和创建新文件的简化指令。原创 2025-03-01 09:17:56 · 951 阅读 · 0 评论 -
OS3.【Linux】基本指令入门(2)
承接OS2.【Linux】基本指令入门(1)文章,1.继续介绍一些指令作用(cd mkdir touch rmdir rm man echo cp mv) 2.家目录 3.通配符原创 2025-02-18 09:41:30 · 1156 阅读 · 0 评论 -
OS2.【Linux】基本指令入门(1)
例如:ls -l,其中"-l"为指令的子功能(-l为--format=long的缩写,则ls -l等同于 ls --format=long)(注:ls -l的别名为ll),显示更多的文件属性。-al为两个选项-a(为all的缩写)和-l的组合,也可以写成ls -l -a或者ls -a -l或者ls -al。例如Windows操作系统下新建一个txt文件, 虽然大小0KB,但是并不意味着这个文件不占空间,上面显示的。在/root路径下创建了一个.hide的隐藏文件,正常用ls -l指令是看不到的。原创 2025-01-21 15:08:04 · 903 阅读 · 0 评论 -
OS1.【Linux】大致介绍和环境搭建
大部分免费,代码开源,质量更好更稳定更安全更快速更高效,常用于企业的后端开发、智能设备、嵌入式开发、云计算和大数据中使用。新建用户名:adduser用户名;设置或重置密码:passwd用户名(重置密码需要root权限)1.安装简单,维护成本低,未来学习效果好2.仿真3.利于做通信测试。删除账号(需要root权限):userdel。用用户名连接服务器:ssh用户名@公网IP。软件:XShell,注意要联网登录。XXX.YYY.ZZZ,XXX为。用户名(-r一定要写!注意选:CentOS7.6。原创 2025-01-12 08:52:22 · 398 阅读 · 0 评论