![](https://img-blog.csdnimg.cn/48a77d3efc6649449ce229a2b6a9dff9.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux系统编程:从入门到放弃
文章平均质量分 93
介绍linux系统下的各种编程,包含且不限于进程通讯,网络编程,文件IO,shell命令等等.
泡沫o0
目前 主要从事C++开发,兴趣在于不断学习和探索新知识,这也是我职业生涯中不断前进的动力。
通过我的博客,我希望与大家分享这一过程中所获得的知识和经验。
技术是一片深不可测的海洋,每一次深入学习都是对未知领域的探索和对自我能力的挑战。
在这个广阔的知识领域中,我们都是探险者,渴望揭开更多的奥秘,追求技术的极致。
展开
-
⭐⭐⭐⭐⭐Linux C/C++ 进程崩溃诊断以及有效数据收集:解锁代码问题快速定位与修复的方法
崩溃信息包括堆栈跟踪、系统信息、线程信息等,这些信息可以帮助开发者快速地找到问题所在。原创 2023-04-04 23:06:48 · 1705 阅读 · 0 评论 -
SysVinit 文件系统的启动脚本和update-rc.d部署
在基于 SysVinit 的 Linux 系统中,`update-rc.d` 是一种强大的工具,用于自动管理服务的启动和停止。此工具的核心功能是处理 `/etc/rc?.d/` 目录下的符号链接,这些链接决定了在不同运行级别下哪些服务会被启动或停止。原创 2024-08-15 15:45:59 · 661 阅读 · 0 评论 -
Linux 编程中页缓存的优化与直接磁盘I/O
在 Linux 系统中,页缓存(page cache)扮演着至关重要的角色,主要目的是优化文件系统的读写性能。本章将深入探讨页缓存的基本概念、它的工作原理,以及它在系统性能提升中的核心作用。原创 2024-07-07 16:22:46 · 1143 阅读 · 0 评论 -
select 函数介绍
select 函数,一个早期在Unix系统的Berkeley Software Distribution (BSD)中出现的I/O多路复用技术,后被POSIX标准采纳。它允许程序同时监视多个文件描述符,检测它们的状态变化(例如,数据可读或可写),从而高效地管理多个I/O操作而不需为每个操作创建独立线程或进程。这种能力尤其在网络通信和服务器编程中提高了并发性能。select 还支持非阻塞I/O,允许程序在等待I/O事件的同时执行其他任务,有效利用CPU资源。原创 2024-05-31 23:55:52 · 831 阅读 · 0 评论 -
深入浅出SFTP
在我们开始探索SFTP的奥秘之前,让我们先回顾一下基础概念。SFTP,或者说“安全文件传输协议”,是一种在网络上安全传输文件的协议。它基于SSH(Secure Shell)协议,这意味着所有通过SFTP传输的数据都会进行加密,保证数据传输过程中的安全和完整性。原创 2024-05-20 21:59:04 · 674 阅读 · 0 评论 -
Linux系统和C++中时间同步方法的探索及其对进程的影响
在现代软件开发中,确保系统时间的精确同步对于维持数据一致性和程序行为的稳定性至关重要。尤其在多系统协作和时间敏感的应用场景中,时间同步可以极大地影响程序的执行结果和性能。本博客将分三个章节,首先介绍Linux系统脚本中的时间同步方法,接着探讨在C++中实现时间同步的技术,最后比较这两种方法并讨论如何调整时间同步以最小化对C++进程的影响。让我们一起开始这段探索之旅吧!原创 2024-05-20 17:16:40 · 765 阅读 · 0 评论 -
【Linux 系统配置】Linux SSHD 设置开机自启的前置工作
在探索如何让我们的 SSH 服务在 Linux 系统启动时自动运行之前,有必要理解一些基础的配置步骤和最佳实践。通过本篇博客,我们将一步步走过设置 sshd 的开机自启动的各个前置工作,确保你能够安全且高效地管理你的服务。原创 2024-05-17 10:54:43 · 1182 阅读 · 0 评论 -
【Linux 应用开发 】Linux 中 GPIO /sys/class/gpio基础
GPIO(General-Purpose Input/Output)即通用输入输出端口,是一种在计算机硬件与外部设备之间传输数据的接口。它可以被设置为输入或输出模式,用来读取信号或者输出信号,是嵌入式系统设计中非常关键的一个组成部分。通过GPIO,开发者可以控制LED灯、读取按钮状态、驱动电机等多种硬件设备。原创 2024-05-08 16:07:33 · 1685 阅读 · 0 评论 -
【Linux 应用开发 】Linux系统初始化和服务管理深入解析:从启动脚本到运行级别的 指南
在探索计算机科学和信息技术的深奥领域时,Linux系统的启动和服务管理无疑是其中最基本且关键的部分。正如在C++教学中强调基础的重要性一样,了解Linux系统的初始化过程和运行级别对于系统管理员和开发者来说至关重要。这不仅有助于确保系统的稳定运行,也为高级应用开发和系统优化提供了必要的知识基础。原创 2024-04-15 15:59:29 · 1061 阅读 · 1 评论 -
【Linux 应用开发 】Linux环境下动态链接库路径(RPATH)的调整策略
在Linux环境下开发和部署应用时,动态链接库的管理是一个不可忽视的环节。特别是当我们谈论到应用的可移植性和灵活性时,理解和掌握如何调整动态链接库路径(RPATH)变得尤为重要。本章将对RPATH的重要性进行简要介绍,并概述动态链接库搜索机制的基本原理。原创 2024-03-02 00:15:00 · 1866 阅读 · 0 评论 -
解决 glibc 版本冲突:实用指南与策略分析
在探索计算机科学的浩瀚领域中,我们不时遭遇各种技术挑战,它们考验着我们的知识储备和解决问题的能力。特别是在操作系统和软件开发中,兼容性问题经常成为一个棘手的难题。在本文中,我们将深入探讨一个具体的案例:glibc 的版本兼容性问题,它是 Linux 系统下开发的一个常见难点。原创 2024-02-03 00:47:27 · 2022 阅读 · 0 评论 -
Linux内核的SLAB内存管理机制
Linux内核的SLAB内存管理机制原创 2024-01-27 23:59:03 · 1187 阅读 · 0 评论 -
【疑难解决】 ubuntu 由于权限不足 无法进入和获取root权限的解决办法
如果你当前的用户账户没有足够的权限来切换到另一个用户(特别是超级用户),你可能会遇到这个问题。确保你拥有适当的权限。原创 2024-01-18 11:35:31 · 6432 阅读 · 0 评论 -
【Linux 应用开发 】Linux 下应用层线程优先级管理解析
线程优先级(Thread Priority)决定了线程获得处理器时间的顺序和频率。在多线程环境中,操作系统调度器(Scheduler)根据线程优先级决定哪个线程应当优先执行。高优先级的线程更频繁地获得 CPU 时间,从而能够更快地完成其任务。这在实时计算(Real-Time Computing)或高性能计算(High-Performance Computing)中尤为重要。原创 2024-01-08 00:15:00 · 1247 阅读 · 1 评论 -
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
`ftruncate`函数(文件截断)用于改变文件的大小,这在共享内存的设置中非常关键。当我们通过`mmap`(内存映射)创建共享内存时,经常需要`ftruncate`来设置映射文件的大小。这不仅关系到内存空间的有效利用,也关系到程序的稳定性和数据的完整性。原创 2024-01-10 00:15:00 · 1135 阅读 · 0 评论 -
【Linux 应用开发 】Linux 跨进程读写锁全解析:原理、实现与实践
读写锁(Read-Write Locks)是一种同步机制,用于控制对共享资源的访问。在我们探索这个概念之前,不妨思考一下人类在团队工作中的协作方式。正如一个团队中的成员可能需要等待其他成员完成他们的任务才能继续自己的工作一样,多个进程或线程在访问共享资源时也需要相互协调和等待。原创 2024-01-03 13:11:40 · 1127 阅读 · 0 评论 -
【Linux C/C++ 定时器接口设计】 从功能点和技术点考虑
在 Linux 系统中使用 C++ 设计一个定时器并实现异步处理接口,通常需要考虑以下几个关键的接口功能:原创 2023-12-30 21:12:31 · 967 阅读 · 0 评论 -
【Linux C/C++ 定时器接口设计】使用`timer_create` 和 `epoll`实现的差异
在Linux系统中,实现定时器的两种常见方法是使用 `timer_create` 和 `epoll`。这两种方法各有特点和适用场景原创 2023-12-30 16:41:59 · 1565 阅读 · 0 评论 -
Linux C++ 应用开发:在Linux单线程应用中精确把握空闲时机
在单线程程序中,空闲时间(Idle Time)的概念至关重要。当程序等待输入或完成某个任务时,这段时间可被视为空闲时间原创 2023-12-19 22:31:18 · 437 阅读 · 0 评论 -
Linux 下共享内存方式 :System V共享内存、共享文件映射(mmap)、POSIX共享内存对比...
在Linux下,共享内存是一种重要的进程间通信机制,主要包括System V共享内存、共享文件映射(mmap)和POSIX共享内存这三种技术。下面是一个Markdown表格,用于比较这三种技术的优劣势:原创 2023-12-14 13:24:46 · 1266 阅读 · 0 评论 -
Linux C++ 环境下数据高效备份策略:全面指南与最佳实践
在技术层面,数据备份意味着创建数据的一个或多个副本,并将其存储在安全的位置。这一过程就如同我们在日常生活中备份重要文件一样,是一种防范未知风险的本能行为。对于企业而言,这是保护知识产权和客户信息的关键;对于个人而言,则是防止珍贵记忆的丢失。这种对安全性的追求反映了人类深层的保护欲望和对不确定性的恐惧。原创 2023-12-15 23:59:18 · 449 阅读 · 0 评论 -
C++多线程管理的艺术:从基础到设计模式
线程管理包括线程的创建、同步、调度和销毁。在 C++ 中,这通常涉及对操作系统底层的调用。例如,使用 POSIX 线程(pthread)库在 Linux 系统中创建和管理线程,或者使用 C++11 提供的线程库。原创 2023-12-16 16:55:01 · 1012 阅读 · 0 评论 -
深入剖析进程间通信:Unix 套接字、共享内存与IP协议栈的性能比较
进程间通信(Inter-Process Communication, IPC)作为计算机科学中的一个核心概念,它不仅反映了技术的复杂性,也涉及到人们在面对信息共享和任务分配时的基本需求和心理动机。本章旨在引入IPC的基本概念,并探讨Unix套接字、共享内存与基于IP协议栈的通信方式之间的关键差异及其对程序设计和系统性能的影响。原创 2023-12-14 10:53:34 · 1047 阅读 · 0 评论 -
Linux文件时间戳:解析时区与修改时间的相互作用
此外,时间戳的准确性和一致性反映了人们对可靠性和稳定性的深层心理需求。在一个动态且不断变化的数字世界中,文件时间戳提供了一种稳定的参考点,帮助人们在信息海洋中导航。原创 2023-12-14 10:48:15 · 1094 阅读 · 0 评论 -
深入理解CommonAPI Generator 设计 :打造高效、灵活的进程间通信
在接下来的章节中,我们将深入探讨CommonAPI框架,尤其是CommonAPI Core和CommonAPI DBus Generator的作用,以及它们在实现高效、灵活的进程间通信方面的重要性。原创 2023-12-10 00:00:57 · 1115 阅读 · 0 评论 -
嵌入式Linux系统bringup 启动全景解析
系统bringup(系统启动)是指在硬件和软件层面将嵌入式系统从原始状态带到全功能运行状态的过程。这个过程就像人类从婴儿成长为成年人的过程,需要经历从基础到复杂的多个阶段。在嵌入式系统的bringup过程中,每一步都需要精确和细致的工作,以确保系统的稳定和高效运行。这些过程中的每一个决策都反映了人类在面对复杂系统时的思考和应对方式。原创 2023-12-09 15:27:28 · 1627 阅读 · 0 评论 -
线程同步与IPC:单进程多线程环境下的选择与权衡
当我们谈论线程同步(Thread Synchronization)和进程间通信(IPC, Inter-Process Communication)时,我们实际上在探索程序内部如何高效、安全地协同工作的方式。这不仅仅是一种技术选择,更是对软件设计哲学的深度反思。正如哲学家康德在《纯粹理性批判》中所说:“无论我们的知识多么广泛,如果我们不能理解这些知识是如何联系在一起的,那么这些知识将会是无序且无用的。”("Critique of Pure Reason" by Immanuel Kant)这句话恰如其分地揭示原创 2023-12-01 17:47:50 · 934 阅读 · 0 评论 -
Linux探秘:多角度解析如何查看库的版本号
Linux探秘:多角度解析如何查看库的版本号原创 2023-11-22 22:56:10 · 1464 阅读 · 0 评论 -
理解和使用 C++ 中的 `times` 函数:度量进程时间
在C++编程中,对代码的性能分析是一项至关重要的任务。准确测量代码执行时间可以帮助我们更好地理解其效率,从而进行优化。而times函数就是这样一个强大的工具,它能够帮助我们测量进程在各种情况下的执行时间。原创 2023-11-25 23:59:57 · 1057 阅读 · 0 评论 -
深入理解内存映射:mmap映射的背后原理以及和共享内存的差异
`mmap` 是实现内存映射的关键系统调用。它创建了文件内容和进程地址空间之间的直接映射,使得文件的一部分或全部可以直接映射到进程的地址空间中。这样,文件的读写就变得像内存访问一样高效。原创 2023-11-24 10:54:43 · 2584 阅读 · 0 评论 -
深入理解Linux C/C++ 系统编程中系统调用导致的僵尸进程及其预防
在深入探讨僵尸进程之前,我们首先需要了解系统调用是什么,以及它们在操作系统中的作用。系统调用(System Calls)是程序向操作系统请求服务的一种机制,它们构成了用户空间和内核空间交互的桥梁。正如卡尔·荣格在《现代人的灵魂问题》中所说:“内心的深处隐藏着一个门,可以通往真实的自我。” 在这里,系统调用就像是连接程序(现代人)和操作系统(真实的自我)的门。原创 2023-11-14 16:30:49 · 440 阅读 · 0 评论 -
同步探秘:理解 System V 与 POSIX 信号量的差异与应用
欢迎来到本篇博客,在这里我们将深入探讨信号量(Semaphores)的世界。信号量不仅是计算机科学领域的一个基础概念,而且在实现进程间同步和互斥方面扮演着重要的角色。本文的目的是比较 System V 与 POSIX 信号量,两种广泛使用的同步工具,它们各有特色并适用于不同的场景。原创 2023-11-13 23:16:29 · 312 阅读 · 0 评论 -
深入理解 Linux 系统下的关键网络接口和函数,gethostent,getaddrinfo,getnameinfo
Unix 系统下的关键网络接口和函数,gethostent,getaddrinfo,getnameinfo原创 2023-11-12 23:50:02 · 173 阅读 · 0 评论 -
Valgrind兼容性解析:从核心依赖到错误诊断
未来,Valgrind将继续在软件开发领域扮演着重要角色,其对兼容性的不断优化和增强将是关键。我们预见到的不仅是技术的升级,更是对软件质量和效率的追求。如孔子在《论语》中所言:“知之者不如好之者,好之者不如乐之者。”(Confucius in "The Analects" said: "He who knows it is not as good as he who loves it, and he who loves it is not as good as he who delights in it."原创 2023-11-10 23:37:43 · 152 阅读 · 0 评论 -
Linux系统内存下降:原因、诊断与解决方案
正如哲学家柏拉图在《理想国》中所说:“对知识的渴望是对智慧的渴望。”我们通过对Linux内存管理的深入了解,展现了对技术智慧的追求。技术问题往往是复杂的,但通过持续学习和实践,我们可以逐渐掌握它们。原创 2023-11-11 00:45:09 · 701 阅读 · 0 评论 -
探秘Linux系统内存问题:主体 进程RSS均正常但系统内存下降的调查方法
未来的内存管理将更加智能和自适应。随着人工智能和机器学习的融入,我们可以预见一个更加高效的系统内存管理模式,它能够学习并预测应用程序的行为,从而优化资源分配。就像人类逐渐从经验中学习并预测未来事件,提高我们处理日常任务的效率一样。原创 2023-11-11 23:32:29 · 211 阅读 · 0 评论 -
Linux 进程问题调查探秘:分析和排查频繁创建进程问题
在现代操作系统中,**进程(Process)**是系统进行资源分配和调度的基本单位。它是操作系统结构的核心概念之一,承载着系统内各种程序的执行和资源的管理。在Linux系统中,每个进程都有自己独立的虚拟地址空间,一套完整的代码和数据,以及其他系统资源。Processes are the fundamental unit for resource allocation and scheduling in modern operating systems.原创 2023-11-10 00:21:55 · 128 阅读 · 0 评论 -
Linux内存碎片深度剖析:原理、处理与分析全指南
内存碎片(Memory Fragmentation)是指内存的使用效率降低的现象,它分为两种形式:内部碎片(Internal Fragmentation)和外部碎片(External Fragmentation)。内部碎片发生在内存块被分配出去后,剩余的未使用空间无法被其他请求利用。外部碎片则是指多次内存分配和释放后,内存中留下许多小的、不连续的空闲区域,这些区域太小,无法满足新的内存请求,尽管总的空闲内存量可能足够。原创 2023-11-09 13:14:35 · 914 阅读 · 0 评论 -
Linux 系统 内存通用指标以及查询方式
Linux 系统 内存通用指标以及查询方式原创 2023-11-08 15:59:53 · 161 阅读 · 0 评论 -
Linux内存管理:理解正常波动背后的机制
在探讨Linux内存管理的奥秘之前,让我们先暂时放下技术的复杂性,回顾一下人类对知识的渴望。正如伊曼努尔·康德在《纯粹理性批判》中所说:“知识是人类理性自然欲望的最高目标。”(Immanuel Kant, "Critique of Pure Reason")这句话不仅适用于哲学,同样适用于我们今天要探讨的技术领域。Linux内存管理的知识,就是我们今天追求的目标。原创 2023-11-08 15:55:10 · 194 阅读 · 0 评论