自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux 内核内存管理:虚拟地址空间、伙伴系统和块分配器

Linux 内核内存管理是一个复杂而强大的系统,它负责管理计算机的物理内存并为进程提供虚拟地址空间。本文介绍了 Linux 内核内存管理的三个关键组件:虚拟地址空间、伙伴系统和块分配器。虚拟地址空间允许每个进程拥有自己的私有地址空间,其中包含代码、数据和堆栈。这提供了内存隔离,防止进程相互干扰。伙伴系统是一个内存分配器,它将内存划分成不同大小的块。当进程需要内存时,伙伴系统会找到一个合适的块并将其分配给进程。伙伴系统高效且可扩展,可以处理大内存系统。块分配器用于分配和释放小块内存。

2025-12-04 23:32:19 338

原创 Linux 内核内存管理:虚拟地址空间、伙伴系统和块分配器

Linux 内核内存管理是一个复杂而强大的系统,它负责管理计算机的物理内存并为进程提供虚拟地址空间。本文介绍了 Linux 内核内存管理的三个关键组件:虚拟地址空间、伙伴系统和块分配器。虚拟地址空间允许每个进程拥有自己的私有地址空间,其中包含代码、数据和堆栈。这提供了内存隔离,防止进程相互干扰。伙伴系统是一个内存分配器,它将内存划分成不同大小的块。当进程需要内存时,伙伴系统会找到一个合适的块并将其分配给进程。伙伴系统高效且可扩展,可以处理大内存系统。块分配器用于分配和释放小块内存。

2025-12-03 08:26:26 713

原创 如何在 Linux 上检查 MySQL 版本

通过上述方法,您可以轻松在 Linux 系统上检查 MySQL 版本,无论是通过命令行、包管理器还是日志文件。这些方法适用于大多数 Linux 发行版,并能帮助您快速获取所需信息。定期检查版本并更新 MySQL,以确保数据库的安全性和性能,为您的 Web 应用程序提供可靠支持。

2025-12-03 08:25:59 610

原创 掌控进程:深入剖析 Linux 内核调度机制

Linux 内核调度机制是复杂、强大的系统,对进程行为进行精细的控制。理解进程优先级、调度策略和调度类,可以优化系统满足特定应用程序和工作负载的需求。

2025-12-03 08:25:33 931

原创 Linux下使用earlyoom限制内存使用量,提前释放内存

以下内容来自官方github的翻译。earlyoom 力求简洁可靠。它采用纯 C 语言编写,没有任何依赖项。丰富的测试套件(单元测​​试和集成测试)则使用 Go 语言编写。

2025-12-03 08:25:04 879

原创 Linux 进程剖析:深入内核源码,揭开进程运作机制

进程生命周期、进程状态、进程控制块 (PCB)。fork()系统调用、内核如何复制进程。调度算法、内核如何根据优先级和公平性分配 CPU 时间。锁、信号量、条件变量,以及内核如何防止竞争条件。exit()系统调用、内核如何回收进程资源。

2025-12-03 08:24:26 782

原创 Python 科学计算有哪些提高运算速度的技巧

代码语言:JavaScript自动换行AI代码解释awk [可选的命令行选项] 'BEGIN{命令 } pattern{ 命令 } END{ 命令 }' 文件名示例:代码语言:JavaScript自动换行AI代码解释。

2025-12-03 08:23:13 261

原创 如何在C语言环境中借助Linux库构建高效网络爬虫

通过合理运用Linux系统的这些库函数,我成功构建了一个高效稳定的C语言爬虫程序。在实际开发中,我特别注意内存管理和错误处理,确保程序长期运行的可靠性。这种开发方式让我充分发挥了C语言在系统编程方面的优势。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。- pthread库。

2025-12-03 08:22:49 473

原创 Python 的开发效率真的比 Java 高吗

安装虚拟环境工具 pip3 install virtualenv # 创建虚拟环境 virtualenv venv # 激活虚拟环境 source venv/bin/activate # 在激活的虚拟环境中安装所有依赖 (venv) pip install -r requirements.txt。它能提供完全一致、隔离的环境,一劳永逸地解决“在我机器上是好的”这类问题。现象: 在较老的 Linux 发行版上运行在新系统上编译的库(如 cryptography)时,出现 OpenSSL 版本不匹配错误。

2025-12-03 08:21:21 300

原创 Linux查看系统资源占用

(2)第二行:进程总数(total) + 正在运行进程数(running) + 睡眠进程数(sleeping) + 停止的进程数(stopped)+ 僵尸进程数(zombie)top -d 2 -c -p 123456 :每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数。top -p 12345 -p 6789:每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况。top -c :每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)

2025-12-03 08:18:53 692

原创 Linux系统下的Makefile解析

可以定义变量让Makefile更易读:代码语言:javascriptAI代码解释# 定义编译器# 定义编译选项使用$(变量名)来引用变量定义目标(要生成什么)列出依赖(需要什么文件)给出命令(如何生成)记住这个模式,你就能写出基本的Makefile了!刚开始可能会觉得有点难,但写几次就会变得很简单。

2025-12-02 08:27:10 840

原创 Linux网络:聚合链路技术之team

代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。

2025-12-02 08:24:02 761

原创 Linux操作系统之进程(一):进程属性与进程创建

课本概念:程序的⼀个执⾏实例,正在执⾏的程序等。内核观点:担当分配系统资源(CPU时间,内存)的实体。这些描述对于我们来说可能还是有点过于抽象了,那怎么才能理解好进程呢?想象一下,操作系统就像一家大型医院的院长,而进程就是医院里的各个科室和医护人员。医院有多少科室在运行每个科室需要多少资源如何协调各科室的工作这就是操作系统对进程的管理!进程的直观理解:​​进程 = 正在运行的程序​​。但更准确地说:​。

2025-12-02 08:22:25 642

原创 Linux操作系统之进程(二):进程状态

本文着重介绍了进程的几个状态,并通过各种代码事例带大家见识了一下状态,并为各位介绍了什么是孤儿进程。这就是本篇博客进程状态的主要内容,希望对各位有所帮助。有疑问可以在评论区提出!!!

2025-12-02 08:21:34 807

原创 Linux操作系统之进程(三):进程优先级与进程切换调度

进程优先级本质就是:获得某种资源的先后顺序。比如,排队的本质是在确认优先级。• cpu资源分配的先后顺序,就是指进程的优先级(priority)。• 优先级⾼的进程有优先执⾏权利。配置进程优先权对多任务环境的linux很有⽤,可以改善系统性能。• 还可以把进程运⾏到指定的CPU上,这样⼀来,把不重要的进程安排到某个CPU,可以⼤ 改善系统整体性能。为什么会有进程优先级这个东西呢?

2025-12-02 08:20:00 901

原创 Linux操作系统之进程(四):命令行参数与环境变量

从广义的概念上来讲,命令行参数是指在执行程序时通过命令行界面(如终端、命令提示符等)传递给程序的额外信息或选项。大家在Linux系统中在终端输入各种指令,后面的选项其实就是命令行参数。那么大家知道这些命令,例如ls -l,ps -ajx的本质是什么吗?今天让我来告诉你吧。他们的本质其实就是一个程序。大家在学习C语言时,main函数后面有着参数吗?大多数情况下都没有吧。

2025-12-02 08:19:07 883

原创 Linux操作系统之进程(五):初识地址空间

当你看过我之前的博客,你应该就知道,我的process.cpp的代码主要是定义了一个全局变量gval,随后用fork创建了一个子进程,让这个子进程不断循环并打印全局变量和它的地址,而父进程也在循环打印全局变量的值与地址,但是每次循环后会使gval++映射的对应数据是否在内存中呢?如果不在,(要么就是没有被加载,要么就是之前被切换出去了),现在要访问了,他会把唤入数据,把页表重新填充。不同子进程时在查时用的是不同的,属于他自己的页表进行映射的,页表不一样,映射到了不同的物理内存,所以同一个变量内容不一样。

2025-12-02 08:18:20 717

原创 Linux操作系统之进程(七):进程的控制(下)

第三个参数支持我们添加一个自己定义的环境变量。注意,这个参数会替代默认的系统的环境变量,也就是说,如果你传递的环境变量只有一个"/bin",那么你进行进程替换后,环境变量也只会有一个"/bin"。所以我们一般都会在原环境变量中追加。例如: 我们有如下other.cc的可执行程序代码语言:javascriptAI代码解释。

2025-12-02 08:17:14 694

原创 Linux操作系统之文件(二):重定向

"一切皆文件"。这可不是一句空话,而是贯穿整个操作系统设计的核心理念。想象一下,你在Linux里操作键盘输入、显示器输出、磁盘读写,甚至操作进程,用的都是同一套API:open、read、write、close。这不是很神奇吗?背后的秘密就在于VFS(虚拟文件系统)这个精妙的设计。每个硬件设备在内核里都被抽象成了一个struct file结构体,就像给每个硬件设备都发了一张"身份证"。这个struct file也不简单,它里面藏着一个操作表,相当于这个设备的"技能树"。

2025-12-02 08:16:13 653

原创 Linux操作系统之文件(四):文件系统(上)

我们前几篇文章讲了缓冲区与重定向的有关概念,这些设计是linux系统的核心机制,对系统性能、资源管理和用户操作灵活性有重要意义。不涉及一些硬件就不可能让大家清楚地去理解文件系统,所以这篇文章,我将会从计算机组成原理的角度,为大家讲解一下文件系统的构成。文件被打开了,是存储到内存里的。那么文件没有被打开呢?存储到哪里?自然是磁盘里。我们访问一个文件的前提是不是要打开它?那我们访问文件的前提是要找到它,也就是说我们要有对应的路径。但那么多文件,不只是你一个文件有路径,所有文件都要有路径。

2025-12-02 08:14:17 924

原创 Linux网络编程:应用层自定义协议与序列化

当我们把计算的功能写好后,就需要完善我们的Parse类的Entry方法,以及增加他的回调函数成员。我们的回调函数的类型不是之前的string(string),所以我们要重新声明一下:并按照老方法,进行Parse的初始化功能。并且,我们需要在main函数中,创建一个Calculator类对象以及Parse对象,并使用lambda传递回调函数,总体代码如下:代码语言:javascriptAI代码解释//定义类型public:// 1判断报文的完整性。

2025-12-01 08:13:44 880

原创 Linux网络编程:TCP的远程多线程命令执行

我们之前在进行TCP的数据的读取写入的时候,用到的函数是大家之前见过的write与read函数。这个函数的第一个参数一样是一个文件描述符,第二个参数要求我们提供一个用来接收消息的缓冲区,第三个参数是这个缓冲区的大小,第四个参数咱们先暂时不用管,直接填0就可以了。前面我们已经通过多线程,多进程,线程池的方式分别实现了一个我们的TCP的EchoServer,今天我们先借着之前的代码来继续学习。首先,我们需要明确。我们这里就使用白名单的思维,在成员变量中实用set,只要在我们的set里,就是可以使用的。

2025-12-01 08:12:53 715

原创 Linux系统操作指南【一】:远程连接、基础指令与文件管理全攻略

iptables -L:列出当前所有链中的规则。iptables -t nat -L:列出nat表中的规则。添加规则:iptables -A INPUT -p tcp --dport 22 -j ACCEPT:允许22端口(SSH)流量通过。删除规则:iptables -D INPUT -p tcp --dport 22 -j ACCEPT:删除允许22端口流量的规则。清空规则:iptables -F:清空所有链中的规则。

2025-12-01 08:10:15 378

原创 Linux操作系统:进程间关系

我们可以先说一下会话首进程, 会话首进程是具有唯一进程 ID 的单个进程, 那么我们可以将会话首进程的进程 ID 当做是会话 ID。当我们完成这个代码后,就可以把我们之前的网络版计算机的服务端,变成一个守护进程,这样,一旦我们启动服务端,就算把终端关闭,服务端进程也不会关闭,因为他已经在我们的服务器中运行起来了。作业(job)是针对用户来讲,用户完成某项任务而启动的进程,一个作业既可以只包含一个进程,也可以包含多个进程,进程之间互相协作完成任务, 通常是一个进程管道。进程组是一个或者多个进程的集合,

2025-12-01 08:09:12 666

原创 Linux 输入输出重定向与 VI 编辑器:全面操作指南与原理剖析

希望这篇文章能够为你在探索 Linux系统的道路上提供有力的帮助,让你在操作 Linux 系统时更加得心应手。我是**旺仔SeC**,是一名热衷于系统技术的博主,对 Linux系统有着深入的研究和丰富的实践经验。我致力于分享各种系统相关的知识和技巧,帮助大家解决在使用过程中遇到的各种问题。

2025-12-01 08:08:02 703

原创 Linux系统中find 指令:全面的文件查找与处理指南

如果你在学习和使用 Linux 系统的过程中遇到任何问题,或者对某些内容有疑问,欢迎在评论区留言,我会尽力为大家解答。,是一名热衷于系统技术的博主,对 Linux系统有着深入的研究和丰富的实践经验。我致力于分享各种系统相关的知识和技巧,帮助大家解决在使用过程中遇到的各种问题。希望这篇文章能够为你在探索 Linux系统的道路上提供有力的帮助,让你在操作 Linux 系统时更加得心应手。

2025-12-01 08:07:18 433

原创 Linux 进程管理与硬件信息查看:ps、pstree 及系统监控指令详解

代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。

2025-12-01 08:06:50 866

原创 Linux 定时任务全解析:从时间查看、修改到任务设置与管理

你可以根据实际情况对导读内容进行调整和修改。如果你还有其他想法或需求,欢迎继续向我提问。

2025-12-01 08:06:18 926

原创 Linux将多条指令合并为一条执行

完全相同,只是写法更简洁,是 Shell 脚本中判断文件属性、变量状态等条件时的常用语法。:只有前一条命令执行失败(返回非 0 状态码),才会执行下一条命令。:只有前一条命令执行成功(返回状态码 0),才会执行下一条命令。命令的简化写法,用于判断括号内的条件是否成立。:将前一条命令的输出结果作为后一条命令的输入(数据流传递)。:无论前一条命令是否成功,都会执行后续命令。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。

2025-12-01 08:05:44 631

原创 AI+Linux 命令高效提取大量日志数据

Linux 命令是“高效粗筛基石”,AI 是“智能精处理加速器”,二者结合实现“命令初筛→AI 精处理→人工校验”的高效闭环。未来更可能实现“自然语言提需求→AI 自动出结果”,进一步降低日志分析门槛。

2025-12-01 08:04:49 537

原创 高效解压缩压缩工具pigz

pigz(Parallel Implementation of GZip)是gzip的并行实现版本,它能够利用多核处理器的优势,显著加快压缩和解压缩的速度。在当今多核CPU普及的环境下,pigz相比传统的gzip能够提供数倍的性能提升。

2025-11-30 08:26:45 596

原创 Linux使用SSH连接后10s断开连接,有什么排查思路

可能原因具体表现优先排查方向SSH服务空闲超时设置精确地在闲置约10秒后断开服务器端 sshd_config中的 ClientAliveInterval参数网络不稳定或防火墙策略连接随机中断,可能伴有卡顿网络延迟/丢包、中间网络设备(如防火墙)的会话超时设置服务器资源紧张连接断开时服务器负载高服务器CPU、内存使用情况(如OOM Killer是否终止了进程)客户端配置或网络问题仅特定客户端连接时断开客户端网络稳定性、客户端SSH配置。

2025-11-30 08:24:06 541

原创 使用Linux命令统计日志中的设备调用次数

通过使用Linux命令行工具,我们可以快速有效地从日志文件中提取和分析数据。这种方法不仅适用于统计接口调用次数,还可以扩展到其他类似的。我们的目标是编写一个Linux命令,该命令能够从日志文件中提取每个设备的调用次数,并按调用次数进行排序。如果日志文件分布在不同的文件夹中,我们可以使用。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。

2025-11-30 08:20:52 756

原创 面向linux新手的OrcaTerm AI 最佳实践

之前最开始学习这个Linux相关内容的时候,总有很多不明白的地方,这次,有了orcateam这个工具,我们在这个学习linux过程中可以直接借助轻量云服务器进行操作,不懂得直接问即可;我接下来问一下我的网站相关的内容,因为这个网站是别人帮助搭建的,其实这个里面的配置文件我自己并不是非常的清楚,因此我借助这个orca学习了解一下。然后这个结果可以直观的先是容器的名字,ID,以及对应的状态,端口号等等相关的有关于这个容器的相关的信息;切换到对应的文件夹,并且查看这个里面的相关的配置文件;

2025-11-30 08:19:41 572

原创 在 CentOS 6.8 中部署 Spring Boot 应用程序

Spring Boot 应用程序通常基于 Java 构建,因此首先需要在 CentOS 上安装 Java 开发工具包 (JDK)。假设你已经有了一个 Spring Boot 项目,你需要构建项目的可执行 JAR 文件。这样,你的 Spring Boot 应用就部署在 CentOS 6.8 上了,并且可以通过 systemd 服务进行管理。如果你需要安装其他版本的 Java,比如 Java 11,可以使用类似的方法找到对应的软件包名称并安装。这将在后台运行你的应用,并将输出重定向到。代码语言:shell。

2025-11-30 08:18:04 694

原创 从DNS解析到防火墙,逐层拆解常见问题

在我们查看本机IP网络的时候,最常用的就是这个命令首当其冲,用于配置和显示网络接口信息,是查看和配置网络接口的基础命令,服务器A (192.168.31.149),服务器B(192.168.31.151),禁用ens33接口后状态由之前的变成了。代码语言:bashAI代码解释禁止掉端口后,服务器B(192.168.31.151)向 服务器A (192.168.31.149)也不能通信了代码语言:bashAI代码解释代码语言:bashAI代码解释ifup/ifdown 用于启动和关闭网络接口

2025-11-30 08:16:48 664

原创 Linux网络:聚合链路技术之team

代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。

2025-11-30 08:15:25 605

原创 Linux网络编程:TCP初体验

大家好啊,通过前几天的学习与实践,我们应该对UDP套接字的使用与特点有了初步的认识与了解了。那么今天我们就开始另外一个套接字,TCP的使用吧!值得一提的是,二者的使用其实有很大的相似程度,我们本篇文章主要还是通过创建一个简单的TcpServer为主。由于跟之前重合很多,所以有些思路,代码(重合的部分)我可能就不会具体在文章中写明,但是基本的注释还是会写上的。大家可以尝试借助代码注释来理解。

2025-11-30 08:12:45 790

原创 Linux实现DNS单区域的反向区域

前提:在任务1 已经配置/etc/named.conf,现在只从定义区域开始。Vim /etc/httpd/conf/httpd.conf文件不用改。(1) 在/etc/named.rfc1912.zones文件定义区域。(2) 在/var/named目录中产生区域文件。(3) 使用dig 查询区域的SOA记录。(4) 使用dig 查询区域的NS记录。(1) 使用host 命令测试反向记录。(1) 使用dig命令解析A 记录。(2) 使用dig命令解析MX记录。(2) 使用dig命令测试反向记录。

2025-11-30 08:12:00 778

原创 《解锁 Linux 系统:特殊符号的多元功能与实用技巧》

代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。代码语言:javascript。

2025-11-30 08:11:29 681

空空如也

空空如也

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

TA关注的人

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