自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++ STL全面解析:六大核心组件之一----序列式容器(vector和List)(STL进阶学习)

vector的数据结构跟array是非常相似的,只不过他们有一点不同,那就是array在定义时会被限制住大小,是静态的容量。而vector则是动态的容量,可以根据插入数据的数量去自动扩容容量。我们不必再去担心初始化数组的时候去定义一个大块头,使用vector时这个顾虑将烟消云散。vector的实现技术关键在于对其大小的控制以及重新分配时数据迁移的效率,一旦vector的空间满载,如果客户端每新增一个元素,vector随之去增加一个元素这种效率肯定是很慢的。所以vector是采用的未雨绸缪机制。

2024-09-21 10:25:17 1125

原创 C++ STL全面解析:六大核心组件之一----迭代器(STL进阶学习)

C++标准模板库(STL)是一组高效的数据结构和算法的集合,广泛应用于C++程序设计中。

2024-09-18 15:31:15 941

原创 C++ STL全面解析:六大核心组件之一----分配器(STL进阶学习)

C++标准模板库(STL)是一组高效的数据结构和算法的集合,广泛应用于C++程序设计中。

2024-09-06 08:47:55 707

原创 C++基础知识(STL标准库容器适配器(Stack和Queue))

可能很多人在初期都没有了解过或者听过这个概念,只知道STL里面有多个容器,以及一些算法和迭代器。容器适配器的概念就是他并不是一个独立的结构,而是起来与其他的容器进行存储的,所以他叫”适配“嘛。虽然Stack和Queue的功能相比于其他标准容器的确有些少,但是其中的特点还是可以被作用于一些特定的场景。例如之前在写一个计算的时候,就是用的stack先进后出的特性去实现了多功能运算。

2024-09-05 10:30:06 418

原创 深入解析OpenStack Cinder:块存储服务详解

OpenStack是一个开源的云计算管理平台项目,它是一套用于部署和管理云端计算资源的软件。OpenStack提供了基础设施即服务(IaaS)的应用程序,允许用户和管理员从个人电脑到大型多租户环境部署和管理大量的计算、存储和网络资源池。OpenStack的核心服务包括Nova(计算)、Neutron(网络)、Cinder(块存储)、Swift(对象存储)、Glance(镜像服务)和Keystone(身份验证服务)等。Cinder是OpenStack中的块存储服务,主要用于为虚拟机提供持久性块存储设备。

2024-09-02 14:12:19 1089

原创 OpenStack Neutron服务错误:(RemoteError: Remote error: DBError (pymysql.err.InternalError) (1054, u“Unkn)

显示DBERROR,说明数据库错误,里面貌似是少了一个subnets.project_id这个列,但是往往数据库不可能只出一个错,我就算手动加上了估计也会还有其他少的。这边其实很奇怪,服务是正常运行的,但是下方当时有个版本错误,我查了一下,貌似是关于什么版本的问题,因为我当时使用pakcetstack一键安装的,所以我当时以为是他安装的版本问题,这。网络这方面是由Neutron负责的,所以我们可以去排查一下关于Neutron方面的问题。既然是数据库的问题,那就根据我们的配置文件再次同步一下数据库。

2024-08-25 16:27:28 365

原创 ARM 裸机与 Linux 驱动对比及 Linux 内核入门

目录ARM裸机代码和驱动的区别Linux系统组成内核五大功能设备驱动分类内核类型驱动模块驱动模块示例Makefile配置命令编码辅助工具内核中的打印函数printk 函数修改打印级别​编辑打印级别含义7. 驱动多文件编译示例8. 模块传递参数命令行传递参数支持的数据类型module_param 函数MODULE_PARM_DESC 函数示例module_param_array 函数共同点:不同点:(__init可以不指定,及可以不写,但是正常是写的)Makefile配置命令安装驱动模块:

2024-08-17 15:53:20 1326

原创 ARM 处理器异常处理机制详解

处理器遇到异常后会暂停当前的程序转而去处理异常(执行异常处理程序),处理完成后返回到被异常打断的代码处继续执行。全部都保存到了异常模式栈,最后将修改完的被打断程序返回地址入栈保存,之所以保存该返回地址就是将来可以通过类似:MOV PC, LR的指令,返回用户程序继续执行。异常发生后,要针对异常类型进行处理,因此,每种异常都有自己的异常处理程序,中断异常处理过程通过系统中断处理来进行分析。需要注意的是,在跳转到异常处理程序入口时,已经切换到对应异常模式下了,因此这里的。

2024-08-16 08:39:47 555

原创 如何在银河麒麟操作系统上搭建 Electron (含 Electron 打包指南)

随着跨平台应用开发的需求日益增长,Electron 和 Qt 成为了两种广受欢迎的选择。Electron 以其简单易用、快速开发的特点吸引了众多前端开发者,而 Qt 则因其强大的图形界面支持和高效的性能表现受到了许多专业软件开发者的青睐。银河麒麟操作系统作为一款基于 Linux 的国产操作系统,其安全稳定的特点使得它成为了政府机构和企业用户的优选。

2024-08-08 16:49:15 1555

原创 ARM 汇编语言基础

基础概念;(相当于c中的’#‘的内容)告诉编译器怎么编译)(如:cpu中没有乘法器,对应没有乘法指令,3*3 ---》用加法器实现3+3+3,替换实现)/**/

2024-08-06 10:21:31 1066

原创 ARM 架构与技术综述

(任务的切换会切入这个模式,权限最高的模式,刚启动的时候在这个模式下,权限高,可以做一些核心的操作。:当前程序状态寄存器 (current program status register, cpsr):存储当前程序运行状态。:保存程序状态的寄存器 (saved program status register, spsr):用于保存 CPSR。:程序计数寄存器 (program counter, pc):存放当前取指指令的地址。特定的模式拥有特定的权限,执行特定的代码,完成特定的功能。

2024-08-03 16:42:41 1270

原创 计算机基本理论与程序运行原理概述

指令解析的过程分为三个阶段:取指、译码和执行。为什么不同处理器需要不同的编译器编译程序代码?CPU 仅能识别特定的机器码,这些机器码由处理器的硬件结构决定,因此不同的处理器架构需要使用相应的编译器来生成对应的机器码。

2024-08-03 16:26:46 498

原创 K8s对接Ceph-csi配置手册(附带踩坑记录以及解决方法)

Kubernetes (K8S) 是一个流行的容器编排平台,而 Ceph 是一个分布式存储系统,提供了对象存储、块存储和文件系统等多种存储服务。在 Kubernetes 中使用 Ceph 作为持久化存储后端是一种常见的部署模式。

2024-07-30 09:51:03 1458

原创 掌握PWM:STM32F103实现PWM控制直流电机小风扇

点击共有两条线,一条接到高电平,一条接到低电平即可转动,所以我们将一条接到固定高电平上,例如5V引脚,另一个接到我们的PWM控制的引脚即可。输入捕获可以用来捕获外部事件,比如引脚的电平变化(上升沿,下降沿),并记录下变化的时间,通常可以用来测量外部信号的频率或者电平持续的时间。总结起来,PWM 通过改变信号的高电平和低电平的时间比例来控制输出的平均电压或功率,是一种常用的调节信号的方法。:通过调整PWM的占空比,可以控制直流电机的速度和方向,以及交流电机的频率和电压,实现精密的速度和扭矩控制。

2024-07-20 15:06:46 1782

原创 Linux限速工具:FlowMaster - IP级网络流量控制脚本

在市面上看了好多关于网络限制的脚本,最终也没发现一个关于IP限制的脚本。遂决定自己做一个(当然也是公司要求~)。目前功能基本完成。限制速度可能还有待优化。也希望各路网友可以指点,能加入进来修改那就太好了。初衷只是为了给大家带来便利。如果帮到你了,那请点个小星星吧。FlowMaster 是一款功能强大且灵活的流量控制脚本,专为 Linux 系统设计。它使您能够通过在指定的网络接口上应用上传和下载速度限制来有效管理带宽和网络资源。

2024-07-13 15:15:23 1097

原创 STM32中的DMA:解锁高效数据传输的秘密武器(内附实例)

传统的数据传输方法往往需要CPU的频繁干预,这不仅消耗了CPU的宝贵资源,而且限制了系统的整体性能。

2024-07-08 15:27:12 887

原创 嵌入式通信协议全解析:SPI、I²C、UART详解(附带面试题)

通信是指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递。从广义上来说,通信是指需要信息的双方或多方在不违背各自意愿的情况下采用任意方法、任意媒质,将信息从某方准确安全地传送到另方。在出现电波传递通信后,通信被单一解释为信息的传递,是指由一地向另一地进行信息的传输与交换,其目的是传输消息。通信方式包括利用“电”来传递消息的电信,这种通信具有迅速、准确、可靠等特点,且几乎不受时间、地点、空间、距离的限制,因而得到了飞速发展和广泛应用。

2024-07-06 14:52:20 1336

原创 掌握Linux网络:深入理解TC —— 你的流量控制利器

TC,即 Traffic Control,是 Linux 内核提供的一种用于网络流量管理和质量服务(Quality of Service, QoS)的工具。SHAPING(限制)当流量被限制时,其传输速率被控制在预设的阈值之下。这种限制可以显著减少突发流量,有助于维持网络的稳定性和预测性。SHAPING 主要应用于向外的流量控制。SCHEDULING(调度)调度涉及在可用带宽范围内,按优先级分配带宽资源。这确保了关键应用和服务可以得到优先处理,从而提高了网络的整体效率。

2024-07-05 15:47:23 1083

原创 Wireshark网络抓包工具入门指南

为了保证数据包的完整捕获,操作者需要具备对网络接口的完全访问权限,因此,在Linux环境下启动Wireshark时,常需要使用。当一个计算机需要向另一个计算机发送数据时,它需要知道目标计算机的MAC地址,而不是IP地址。0x0003 接收发往本机的MAC所有类型: ip,arp,rarp数据帧, 接收从本机发出去的数据帧,RARP: RARP协议则是与ARP相反的过程,它用于将MAC地址解析为IP地址。0x0800 只接收发往本机的mac的ip类型的数据帧。笔试题: type类型都有哪些?

2024-07-05 10:15:02 1662

原创 【Linux系统编程】深入剖析:四大IO模型机制与应用(阻塞、非阻塞、多路复用、信号驱动IO 全解读)

在Linux环境下,主要存在四种IO模型,它们分别是阻塞IO(Blocking IO)、非阻塞IO(Non-blocking IO)、IO多路复用(I/O Multiplexing)和异步IO(Asynchronous IO)。

2024-07-05 10:05:17 1038

原创 【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)

通过结构体区分注册、登录、查询单词和管理历史记录等不同操作。

2024-07-04 19:07:59 1040

原创 【Linux开发实战指南】基于UDP协议的即时聊天室:快速构建登陆、聊天与退出功能

与TCP(传输控制协议)相比,UDP具有较低的传输延迟,因为省去了建立连接和确认接收等过程,适用于对实时性要求较高、但能容忍一定数据丢失的场景,如在线视频、语音通话、DNS查询等。子进程继承了父进程的大部分属性,如环境变量、打开的文件描述符等,但拥有独立的内存空间、PID(进程ID)和调度优先级。信号是一种异步通知事件,可以由硬件异常(如断电)、操作系统(如杀死进程的SIGKILL)或一个进程向另一个进程发送(如使用。在操作系统中,当一个进程创建新进程时,原始进程称为父进程,新创建的进程称为子进程。

2024-07-04 17:27:49 684

原创 C语言基础全解:细说每个知识点

二进制: 使用1和0表示的数制。八进制: 前面通常加0,用以区分其他进制。十进制: 日常生活中常用的阿拉伯数字系统。十六进制: 前缀通常是0x,用于表示计算机系统中的数据。

2024-07-04 16:15:51 976

原创 Linux Shell 脚本入门教程:开启你的自动化之旅

Shell是一种计算机程序,它充当了用户与操作系统之间的接口。在Linux系统中,Shell允许用户通过命令行界面(CLI)来控制计算机。Shell脚本则是一种使用Shell语言编写的脚本,它可以自动执行一系列的命令,帮助用户实现任务自动化,提高工作效率。

2024-07-04 15:54:12 955

原创 从管道路由到共享内存:进程间通信的演变(内附通信方式经典面试题及详解)

进程间通信(Inter-Process Communication, IPC)是计算机科学中的一个重要概念,指的是运行在同一系统或不同系统上的多个进程之间互相发送和接收信息的能力。IPC机制允许进程间共享数据、协调执行流程,是实现分布式系统、多任务操作系统和并发编程的基础。共享内存,因为共享内存是通过地址映射的方式进行数据的通信,无需多余的拷贝赋值 操 作。信号量用于确保多个进程在访问共享内存时不会发生数据竞争或不一致,实现对共享资源的安全访问。至此文章结束,希望可以帮到大家~

2024-07-04 10:48:04 1548

原创 深入浅出:线程以及线程锁

一个进程可以包含一个或多个线程,而每个线程都有自己的指令指针和寄存器状态,它们共享进程的资源,如内存空间、文件句柄和网络连接等。线程锁的基本思想是,只有一个线程能持有锁,其他试图获取锁的线程将被阻塞,直到锁被释放。:线程共享进程的资源,如内存、文件句柄和网络连接等,这减少了资源的开销,但也要求对共享资源进行同步和保护,以防止数据竞争和不一致。:线程可以有不同的优先级,高优先级的线程在调度时会得到更多的CPU时间,从而影响线程的执行顺序和进程的整体性能。是非阻塞的,如果锁被占用,它会立即返回,不等待锁释放。

2024-07-03 17:23:02 750

原创 守护进程到底是什么?如何创建?(图文并茂,你不得不看的一篇文章)

ps提供了静态的进程信息快照,适用于查看特定时刻的进程状态。top提供了动态的系统监控,适合实时监控系统资源和进程活动。

2024-07-03 16:57:20 848

原创 深入浅出:进程管理的艺术

进程可以被视为一个执行中的程序实例,它包含了程序代码、数据集以及一个描述其状态和控制信息的进程控制块(Process Control Block, PCB)。操作系统通过PCB来跟踪和控制进程的执行状态,包括进程的ID、内存映射、打开的文件、状态信息等。执行流程与返回值fork()调用在父进程中返回子进程的PID,在子进程中返回0。若返回负数,则表示创建子进程失败。fork()调用仅执行一次,但它的效果是使得代码在父进程和子进程中分别执行一次,形成两个独立的执行流。资源复制与独立执行fork()

2024-07-03 16:43:56 877

原创 一款轻量级的通信协议---MQTT (内含Linux环境搭建)

MQTT这款轻量级的通信协议我认非常适合那些性能低下的设备而准备的,也就是我们嵌入式中的一些硬件,这两者的契合度是非常大的。以上是本人的一些浅显的了解,如有错误还请指正。

2024-06-29 19:08:23 815

原创 ceph存储 一文看懂目录配额(从入门到进阶,内涵完整流程和源码分析)

CephFs的目录配额功能展现了分布式存储系统在资源管理和优化方面的强大能力。通过深入分析源码,我们不仅理解了其背后的技术细节,也见识了Ceph如何在复杂环境中保持数据的完整性和一致性。对于希望深入了解分布式存储机制或优化存储资源管理的专业人士而言,CephFs的目录配额实现是一个值得研究的典范。

2024-06-25 14:07:18 689

原创 C++基础知识(八:STL标准库 Map和multimap )

mapmap。

2024-06-14 15:07:00 659

原创 C++基础知识(八:STL标准库 deque )

操作端普通队列只允许在一端插入(队尾)和另一端删除(队头)。双端队列允许在两端进行插入和删除。数据访问普通队列中,数据访问遵循先进先出原则。双端队列中,数据访问更灵活,可以在两端进行访问,不严格遵循先进先出原则。使用场景普通队列常用于需要按顺序处理任务的情况,如打印机任务队列、事件处理队列等。双端队列适用于需要灵活操作数据的情况,如滑动窗口算法、最近最少使用(LRU)缓存算法等。如果需要大量随机访问且插入删除操作集中在末尾,使用。如果需要在两端高效插入删除且随机访问,使用。

2024-06-13 14:41:15 509

原创 make和Cmake都有什么区别?(内附使用详解)

总结来说,make 更像是一个执行者,负责按照给定的规则执行构建操作,而 CMake 则是一个协调者,负责生成构建规则,使得 make 或其他构建工具能够有效地完成工作。在实际开发中,CMake 通常位于 make 的上游,先由 CMake 生成 Makefile 或其他构建系统描述,然后再由 make 或相应构建工具根据这些描述执行构建任务。

2024-06-12 16:35:26 3352

原创 聚合网卡和Wondershaper限速的一些问题(速度减半问题)

聚合网卡,又称为链路聚合组(LAG, Link Aggregation Group)、端口汇聚(Port Trunking)、以太通道(Ethernet Bonding)等,是一种网络技术,通过将两个或多个物理以太网接口(网卡)逻辑上捆绑在一起,形成一个单一的虚拟接口。这种技术不仅提升了网络连接的可用性和带宽,同时也增强了网络的稳定性和可靠性。

2024-05-28 17:35:04 850

原创 Wondershaper网络限制脚本源码分析一(下载速度限制篇)

Wondershaper 是一个简单的 Linux 命令行工具,用于自动管理和控制网络接口的上行和下行带宽,旨在为用户提供稳定的网络体验,尤其是在网络拥塞的情况下。它通过 Traffic Control (tc) 工具集实现这一功能,但与直接使用 tc 相比,Wondersbaper 提供了更简洁易用的界面,特别适合没有深入网络管理知识的用户,但它其实就是由一个bash脚本组成,当然里面的思想非常精华。当初我也是头痛不已,最终发现wondershaper居然可以限制下载速度,且用的居然也是tc!

2024-05-16 09:12:40 1060

原创 Linux下工具tc详细讲解及限制IP和端口实例

是Linux内核中提供的一个用于控制和管理网络流量的强大工具,它允许用户实现QoS(Quality of Service)策略,包括带宽限制、优先级控制、延迟保证等。TC基于内核的队列 discipline (qdisc) 和流量类别(class) 体系结构,允许对进入或离开网络接口的数据流进行复杂的整形和过滤。

2024-05-06 15:27:33 1501 7

原创 图搜算算法分类

图搜索算法是计算机科学中用于遍历或搜索图结构(由节点和边组成的数学结构)的技术,常应用于路径规划、网络分析、人工智能等领域。

2024-04-24 16:18:08 440

原创 QT:基于QMediaPlayer制作的视频播放器(最下方有整合包,可直接运行)

QMediaPlayer是Qt多媒体模块中的一个核心类,它提供了播放音频和视频内容的功能。这个类的设计旨在简化跨平台的媒体播放,使得开发者能够在多种操作系统(如Linux、Windows、macOS及移动平台)上轻松集成多媒体播放能力到他们的应用中,而无需关心底层实现细节。

2024-04-24 15:25:50 2086 3

原创 虚拟机下如何使用Docker(完整版)

Docker的核心理念源自于操作系统级别的虚拟化技术,尤其是Linux上的容器技术(如LXC),它为开发人员和系统管理员提供了一种标准化、轻量级的方式来打包、分发和运行应用程序及其依赖环境。- Docker镜像是构建容器的基础,是一种只读模板。容器之间互不影响,各自运行在一个独立的环境中,共享宿主机内核,但拥有自己的文件系统、CPU、内存、网络资源等,从而实现了轻量级的虚拟化效果。- **便携性**:开发人员可以在本地创建包含应用及其全部依赖的镜像,确保这个镜像能在任何支持Docker的环境中一致地运行。

2024-04-17 09:24:01 2961

原创 Kingbase(人大金仓数据库)(总结全网精华,虚拟机:从安装到操作数据库一条龙)

这里我并不推荐大家去用人大金仓的数据库管理工具,因为并不能查看库内的数据,大家可以用Dbeaver管理工具。但是Dbeavrer这里面并不能直接操作人大金仓,我们需要手动添加一下。博主自己用到的语句大概就这么多,如果大家觉得还是不够,这里再推荐一位大哥。接下来就不能大佬出场了,我也该来点自己总结的东西。希望可以帮到大家,也希望国产可以越做越好吧。这样操作起来就非常方便了。转载于:多喝清晨的粥。转载于:多喝清晨的粥。

2024-04-12 17:00:26 2716 1

tc限制ip下载和上传速率脚本

tc限制ip下载和上传速率脚本

2024-05-16

基于QT实现的QQ聊天简易版(UDP通信版)

基于QT实现的QQ聊天简易版(UDP通信版)

2023-12-20

STM32F103C8T6实现简易密码锁(CubeMax配置)(一),Oled显示

STM32F103C8T6实现简易密码锁(CubeMax配置)(一),Oled显示

2023-11-22

基于QT实现的词典(附源码)

词典源码

2023-11-07

stm32单片机温湿度传感器(SPI的LCD、HAL库、GPIO、UART的接收中断、ADC、串口通信)

基础代码

2023-08-29

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

TA关注的人

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