Linux
文章平均质量分 81
Linux操作系统
fakerth
我喜欢去衡量探索,迎接那些最强烈,最有理由吸引我的一切;而不是抓着称杆,试图减轻一些分量,我不会去假想一种状况,而是接受现实;我只沿着我能够旅行的唯一路径去旅行,在这条路径上,没有任何力量能够阻挡我。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Linux】调度器底层原理深入探索
本文深入解析了Linux调度器的底层原理。首先介绍了调度基础概念,包括调度目标、进程状态和调度时机。接着详细讲解了Linux的多种调度策略(SCHED_OTHER/FIFO/RR/DEADLINE等)及其适用场景。重点剖析了CFS(完全公平调度器)的核心机制,包括虚拟运行时间(vruntime)的计算方法、红黑树管理就绪队列的数据结构,以及nice值与权重的映射关系。文章还对比了Linux调度器的发展历程,从早期的O(n)调度器到现代CFS调度器的演进过程,帮助读者全面理解Linux进程调度的实现原理。原创 2026-03-23 17:03:00 · 629 阅读 · 0 评论 -
【Linux】线程底层原理完全指南
本文全面解析Linux线程底层原理,从基础概念到实际应用。主要内容包括:1) 线程与进程的核心差异对比;2) Linux轻量级进程(LWP)实现机制;3) 线程创建与管理(pthread_create/std::thread);4) 线程同步机制(互斥锁/读写锁)及其C++11实现;5) 死锁避免策略。重点剖析了线程共享/独有资源、内核级实现细节,以及现代C++多线程编程的最佳实践。原创 2026-03-09 14:52:10 · 502 阅读 · 0 评论 -
【Linux】进程底层原理完全指南
本文深入解析了Linux进程的底层原理,主要内容包括: 进程基础概念:介绍了进程的定义、组成结构(栈、堆、数据段、代码段等)、进程控制块(task_struct)以及进程标识符获取方法。 进程创建机制:详细讲解了fork()系统调用的工作原理、Copy-on-Write(COW)优化技术,以及exec系列函数的使用方法和fork+exec的经典模式。 进程状态管理:阐述了Linux进程的7种状态(运行、睡眠、停止等)及其转换关系,包括进程的生命周期变化。原创 2026-03-09 10:46:41 · 635 阅读 · 0 评论 -
交叉编译util-linux使用lscpu等工具
本文详细介绍了在x86主机上为ARM/MIPS等架构交叉编译util-linux工具集(以lscpu为例)的方法。交叉编译是由于目标设备资源有限、架构差异及工具依赖系统环境所必需的技术。准备工作包括确定目标架构、安装对应工具链(如arm-linux-gnueabihf-gcc)和下载util-linux源码。关键步骤是通过configure脚本配置--host参数指定目标架构,并控制编译范围(如仅编译lscpu)和依赖项。编译完成后生成静态链接程序,可避免目标机缺少动态库的问题。原创 2025-10-11 11:27:34 · 1125 阅读 · 0 评论 -
Ubuntu20.04配置Samba
本文介绍了Samba软件的作用及其在Ubuntu20.04上的配置方法。Samba是一套开源软件,主要用于实现Linux/Unix与Windows系统间的文件和打印机共享,通过模拟SMB/CIFS协议实现跨平台资源互通。文章详细讲解了在Ubuntu20.04上安装Samba、配置共享目录、设置用户权限的步骤,并提供了Windows客户端的配置指南,包括开启SMB支持、防火墙设置和网络驱动器映射。最后总结了Samba在企业办公、校园网络等场景中的实用价值,强调其通过灵活的权限管理和安全特性实现高效、安全的跨平原创 2025-08-14 09:42:10 · 1236 阅读 · 0 评论 -
创建交换空间(解决ubuntu编译大文件内存不足导致虚拟机卡死)
交换空间(Swap)是 Linux 操作系统用于扩展物理内存(RAM)的一种机制。当物理内存耗尽时,操作系统会将暂时不活跃的内存页面(memory pages)移动到硬盘上预留的区域(Swap 分区或 Swap 文件)中,从而为活跃进程释放出物理内存。原创 2025-08-05 09:13:18 · 695 阅读 · 0 评论 -
Github上传大于100M的文件(ubuntu教程)
Git Large File Storage (LFS) 使用 Git 内部的文本指针替换音频样本、视频、数据集和图形等大文件,同时将文件内容存储在 GitHub.com 或 GitHub Enterprise 等远程服务器上。原创 2024-06-19 10:20:32 · 1636 阅读 · 0 评论 -
重定向文件访问(Redirect file access)
重定向文件访问是指通过修改文件系统的路径,使对某个文件或目录的访问请求被转到另一个文件或目录。这在系统管理、测试和开发中非常有用,因为它允许您在不修改应用程序或服务配置的情况下,改变文件的实际存储位置。原创 2024-06-11 20:16:09 · 1246 阅读 · 1 评论 -
GCRM-IO与mpi-tile-io
该软件对实现全局云解析模型 (GCRM) 模拟代码的 I/O 内核的PnetCDF方法的性能进行基准测试。GCRM和GIO是用Fortran90编写的。该软件包从GCRM中提取I/O内核并将其转换为C语言,以实现更灵活的参数设置(例如MPI进程数、最大级别)和缓冲区管理的动态内存分配。解决这个问题的方法之一是使用 extern 关键字声明全局变量,然后在一个源文件中定义它。此应用程序的目的是测试非连续环境下的底层MPI-IO和文件系统实现访问工作负载。找到输入参数文件的文件输出路径修改为自己的输出路径。原创 2024-05-20 15:28:30 · 1344 阅读 · 0 评论 -
安装Pnetcdf顺便升级autoconf与automake
PnetCDF 是一个高性能并行 I/O 库,用于访问 Unidata 的 NetCDF经典格式文件,特别是 CDF-1、2 和 5 格式。CDF-1 是默认的 NetCDF 经典格式。 CDF-2 是通过使用标志 NC_64BIT_OFFSET 创建的扩展格式,以支持 64 位文件偏移量。 CDF-5 文件格式是 CDF-2 的扩展,通过使用标志 NC_64BIT_DATA 创建,支持无符号数据类型并使用 64 位整数,允许用户定义大维度、属性和变量(> 2B 数组元素)。原创 2024-05-20 11:02:12 · 1141 阅读 · 0 评论 -
更换mpi环境(export,module load)
在计算机集群中,"module" 命令是一种用于管理和加载软件环境的工具。它允许用户在集群中切换和加载不同版本的软件模块,以满足各种应用程序和需求。通过使用 "module" 命令,用户可以轻松地配置自己所需的软件环境,而无需手动设置各种环境变量和路径。原创 2024-03-24 12:54:24 · 1877 阅读 · 0 评论 -
NUMA架构
NUMA这种构架下,不同的内存器件和CPU核心从属不同的 Node,每个 Node 都有自己的集成内存控制器(IMC,Integrated Memory Controller)。在 Node 内部,架构类似SMP,使用 IMC Bus 进行不同核心间的通信;不同的 Node 间通过QPI(Quick Path Interconnect)进行通信原创 2024-03-09 14:33:32 · 2026 阅读 · 0 评论 -
测试点点延迟和带宽的脚本总结
测试点点延迟和带宽原创 2024-03-08 11:01:52 · 1092 阅读 · 0 评论 -
获取linuxIP、内存、cpu、磁盘IO等信息的Shell脚本及其讲解
获取linuxIP、内存、cpu、磁盘IO等信息的Shell脚本及其讲解原创 2024-03-02 16:53:42 · 2118 阅读 · 0 评论 -
ulimit命令
ulimit 命令用于查看和设置 shell 运行时的资源限制。它可以控制各种资源,如文件打开数量、堆栈大小、CPU 时间等。ulimit 命令通常用于限制 shell 启动的进程的资源使用量,以防止系统资源被耗尽。ulimit命令的主要作用是提高系统的性能和稳定性。通过合理地设置资源限制,可以防止因过度使用系统资源而导致系统崩溃或性能下降。例如,通过设置最大文件大小的限制,可以避免同时打开过多的文件导致系统崩溃;通过设置最大虚拟内存的限制,可以避免进程占用过多的内存导致系统变慢。原创 2024-02-29 20:08:33 · 1378 阅读 · 0 评论 -
>/dev/null 2>&1
在Linux和其他类Unix系统中,>和>>是用于重定向输出的操作符,用于将命令的输出发送到文件而不是屏幕上。原创 2024-02-29 16:49:12 · 1102 阅读 · 0 评论 -
python提取内存、cpu、lustre相关信息
python提取内存、cpu、lustre相关信息原创 2024-02-26 20:47:15 · 1448 阅读 · 0 评论 -
Linux系统性能分析(top,iostat,free)
Linux系统性能分析(top,iostat,free)原创 2024-02-23 16:28:48 · 1604 阅读 · 0 评论 -
脚本接收参数,执行shell指令
上午开完会,5个小时内丧失思考行动能力,10个小时内不敢说话,深刻把握会议精神,反省自己。因为经常用到脚本执行任务,所以记录一下一些常用的脚本接收参数,执行shell指令。原创 2024-01-04 19:40:59 · 1471 阅读 · 0 评论 -
MPI安装与程序设计
MPI(Message Passing Interface)是一种用于编写并行程序的标准和库,用于在分布式内存系统中进行消息传递和并行计算。MPI提供了一组函数和语义,用于在多个进程之间进行通信和同步,以实现并行计算和并行任务的协调。MPI在高性能计算领域被广泛应用,用于开发并行和分布式内存计算应用程序。它提供了丰富而强大的功能,使得开发者能够充分利用并行计算资源,提高计算效率和性能。MPI有很多种实现。MPICH是其中的MPI实现之一。原创 2023-12-22 17:37:26 · 1741 阅读 · 0 评论 -
C语言文件权限
提笔不会忘字的人,提键盘却忘了编程语言,差点忘本了,用python,shell等脚本语言忘记C语言怎么用了,研究文件系统简单的文件读写不会写了,记录一下。原创 2023-12-18 10:33:29 · 1640 阅读 · 0 评论 -
动态环境变量设置(Dynamic environment variables)
在Linux系统中,环境变量是一种存储有关系统配置和运行的信息的机制。它们包含各种参数,如系统路径、默认编辑器、语言设置等。在Linux中,可以通过以下方式来管理和使用环境变量:查看环境变量:使用printenv命令或env命令可以列出当前系统中所有的环境变量。例如,运行printenv将显示所有环境变量的名称和值。设置临时环境变量:可以使用export命令来设置临时环境变量,其对当前会话有效。原创 2023-12-11 09:45:51 · 1569 阅读 · 0 评论 -
【Linux】tar、zip与rar
我解压过无数的文件,却唯独无法解压自己。原创 2023-12-05 19:43:43 · 1270 阅读 · 0 评论 -
几个linux指令提升编程效率
几个linux指令提升编程效率原创 2023-12-01 11:07:18 · 1082 阅读 · 0 评论 -
Linux上使用Python源码编译安装Python
没网的情况下,可以去官网搜索需要的python库下载对应的whl文件进行安装。注意,此时下载的whl安装包一定要是符合自己Python版本和系统处理器位数的版本,下载的库名中cp39代表python3.9版本,想知道系统具体可以安装哪些标签的.whl文件,可以使用pip debug --verbose,兼容的文件标签就会显示。解决方法:安装python-dev。正常可以使用yum或者apt-get命令直接安装python-dev,但如果没有网络,就使用如上的源码下载即可。原创 2023-11-18 00:13:36 · 2014 阅读 · 0 评论 -
RPM与SRPM
RPM全名是『RedHatPackageManager』简称则为RPM。顾名思义,当初这个软件管理的机制是由RedHat这家公司发展出来的。RPM是以一种数据库记录的方式来将你所需要的软件安装到你的Linux系统的一套管理机制。原创 2023-11-14 22:58:08 · 392 阅读 · 0 评论 -
sysstat安装与使用
sysstat安装与使用原创 2023-08-07 15:50:45 · 2434 阅读 · 0 评论 -
Filebench的安装及使用
第一步是用WML语言创建工作负载的描述(所谓的工作负载个性)。通常,工作负载个性存储在扩展名为“.f”的文件中。在此示例中,我们描述了一个非常简单的工作负载,该工作负载由两个进程组成,每个进程具有三个线程。每个线程不断地从多个文件中选择一个文件,读取它,然后关闭该文件。Filebench 中的四个主要实体是“filesets”、由“threads”组成的“processes”和’flowops’。原创 2023-07-20 22:02:18 · 529 阅读 · 0 评论 -
IOR的安装及使用
IOR 是一种并行 IO 基准测试,可用于测试使用各种接口和访问模式的并行存储系统的性能。IOR存储库还包括mdtest基准测试,专门测试不同目录结构下存储系统的峰值元数据速率。两个基准测试都使用通用并行 I/O 抽象后端,并依赖 MPI 进行同步。原创 2023-07-20 20:30:43 · 2316 阅读 · 0 评论 -
FIO的安装及使用
FIO是一款测试IOPS的工具,用于对磁盘进行压力测试和验证,磁盘I/O是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类,FIO可产生很多线程或进程并执行用户指定的特定类型的I/O操作,典型用途是编写和模拟I/O负载匹配的作业文件,也就是说FIO是一个多线程I/O生成工具,可以生成多种I/O模式,用来测试磁盘设备的性能。–prefix:安装路径。创建软链接:测试安装engine libaio not loadable需要安装libaio,注意第一行有一个1。之后重新编译安原创 2023-07-20 20:19:49 · 3888 阅读 · 1 评论 -
Shell编程
Shell编程原创 2023-05-28 14:49:34 · 1430 阅读 · 0 评论 -
简单使用GDB调试
如果是一个简单程序,比如一个C语言程序test.c,编译时加入-g选项表示可调试。然后直接启动即可。如果是复杂的项目,查看CMakeLists.txt中的内容,如果CMAKE_BUILD_TYPE变量设置Release,则需要在后面加-g,或者将CMAKE_BUILD_TYPE变量设置为Debug。原创 2023-04-17 19:00:59 · 247 阅读 · 0 评论 -
生成configure和makefile文件
configure脚本为了让一个程序能够在各种不同类型的机器上运行而设计的。在使用make编译源代码之前,configure会根据自己所依赖的库而在目标机器上进行匹配。约定俗成的,所有的configure脚本都把脚本文件名起为configure,一般来讲都是shell脚本,根据所在的系统环境生成makefile文件。有时候看到一些程序的configure内容超级之多,让人难以看下去。configure脚本运行时扫描当前环境,生成一个名为config.status的子脚本。原创 2023-03-30 05:21:25 · 1213 阅读 · 0 评论 -
CMake Error: The source directory “XXX“ does not appear to contain CMakeLists.txt
CMake Error: The source directory "XXX" does not appear to contain CMakeLists.txt原创 2023-03-23 13:42:52 · 7538 阅读 · 0 评论 -
Ubuntu升级cmake版本
很多时候,低版本的cmake并不能满足我们的需求。原创 2023-03-22 18:58:21 · 901 阅读 · 0 评论 -
Linux内核编译
Linux内核编译原创 2023-03-08 13:38:58 · 211 阅读 · 0 评论
分享