自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lenn Louis' Scribe

电气工程半道出家的计算机编程爱好者,持续输出C++和Linux开发相关内容。

  • 博客(81)
  • 收藏
  • 关注

原创 Qt开发网络嗅探器03

主要一点就是要知道父类数据包的type字段对子类数据包的分类,然后将数据包拷贝储存到全局容器里面。

2024-07-21 23:37:43 259

原创 Qt开发网络嗅探器02

主要是两个ComboBox和两个Pushbutton还有TableWidget和TreeWidget。书接上文,我们要写出主窗口,先来看一下成品。

2024-07-21 23:31:25 166

原创 面试准备-操作系统

根据进程访问资源的特点,可以把进程在系统上的运行分为两个级别:用户态(user mode) : 用户态运行的进程或可以直接读取用户程序的数据。系统态(kernel mode):可以简单的理解系统态运行的进程或程序几乎可以访问计算机的任何资源,不受限制。说了用户态和系统态之后,那么什么是系统调用呢?运行的应用程序基本都是运行在用户态,如果调用操作系统提供的系统态级别的子功能咋办呢?那就需要系统调用了!

2024-07-20 23:50:52 662

原创 Qt开发网络嗅探器01

extern pcap_if_t *alldevs:wp的类型,指向⼀个存储所有⽹卡的容器。UDP 类型套接字的功能有很⼤的不同:TCP/UDP 类型的套接字只能够访问。传输层以及传输层以上的数据,因为当 IP 层把数据传递给传输层时,下层的。extern pcap_if_t *d:wp的类型,指向⼀个⽹卡的设备。随着互联网的快速发展和普及,人们对网络性能、安全和管理的需求日益增。在复杂的网络环境中,了解和监控网络中的数据流量、安全事件和性能。监听网络上的数据流量,提供了对网络通信的深入洞察。

2024-07-20 23:49:18 713

原创 Linux源码阅读笔记13-进程通信组件上

每一个设备都有一个设备号,字符模块有一个字符模块的ID就是设备号;一个主设备号可以有多多个次设备号。

2024-07-19 08:50:55 302

原创 面试准备-MySQL

事务A、B交替执行,事务A被事务B干扰到了,因为事务A读取到事务B未提交的数据,这就是脏读在一个事务范围内,两个相同的查询,读取同一条记录,却返回了不同的数据,这就是不可重复读。事务A查询一个范围的结果集,另一个并发事务B往这个范围中插入/删除了数据,并静悄悄地提交,然后事务A再次查询相同的范围,两次读取得到的结果集不一样了,这就是幻读。连接池基本原理:数据库连接池原理:在内部对象池中,维护一定数量的数据库连接,并对外暴露数据库连接的获取和返回方法。

2024-07-18 16:01:12 965

原创 Linux源码阅读笔记13-进程通信组件上

每一个设备都有一个设备号,字符模块有一个字符模块的ID就是设备号;一个主设备号可以有多多个次设备号。

2024-07-18 15:59:48 348

原创 面试准备-并发

1、进程是什么?是具有一定独立功能的程序、它是系统进行资源分配和调度的一个独立单位,重点在系统调度和单独的单位,也就是说进程是可以独立运行的一段程序。2、线程又是什么?线程进程的一个实体,是CPU调度和分派的基本单位,他是比进程更小的能独立运行的基本单位,线程自己基本上不拥有系统资源。在运行时,只是暂用一些计数器、寄存器和栈。

2024-07-16 23:42:45 237

原创 面试准备-nginx

Nginx是一个web服务器和方向代理服务器,用于HTTP、HTTPS、SMTP、POP3和IMAP协议。return 444;这里,服务器名被保留为一个空字符串,它将在没有“主机”头字段的情况下匹配请求,而一个特殊的Nginx的非标准代码444被返回,从而终止连接。C10K问题是指无法同时处理大量客户端(10,000)的网络套接字。nginx是一个web服务器,反向代理服务器,缓存服务器。

2024-07-16 23:41:35 331

原创 入职前回顾一下git-01

上面三个步骤就可以创建一个空的仓库了,这个时候会在仓库目录下多了一个.git目录,.git目录里由很多关于git管理的文件,有了仓库之后,我们就可以使用git add和git commit向仓库添加要跟踪的文件,和提交修改的内容了。添加的-a参数会把当前暂存区里所有的修改(包括删除操作)都提交,但是那些尚未添加到暂存区的内容是不会提交的,网上有很多的博客内容说-a参数会把尚未add的文件也提交了,这个说法是错误的。在linux上建议用二进制的方式来安装git,可以使用发行版包含的基础软件包管理工具来安装。

2024-07-14 20:07:33 1032

原创 网络编程原理

Server端:create – bind – listen-- accept-- recv/send-- closeClient端:create------- conncet------send/recv------close.Server端:create----bind ----recvfrom/sendto----closeClient端:create---- sendto/recvfrom----close.

2024-07-14 19:56:09 938

原创 网络原理问题

摘要算法用来实现完整性,能够为数据生成独一无二的「指纹」,用于校验数据的完整性,解决了篡改的风险客户端在发送明文之前会通过摘要算法算出明文的「指纹」,发送的时候把「指纹 + 明文」一同 加密成密文后,发送给服务器,服务器解密后,用相同的摘要算法算出发送过来的明文,通过比较客户端携带的「指纹」和当前算出的「指纹」做比较,若「指纹」相同,说明数据是完整的。服务器收到客户端的第三个随机数(pre-master key)之后,通过协商的加密算法,计算出本次通信的「会话秘钥」。

2024-07-11 22:17:51 593

原创 Redis命令详解以及存储原理

节点数量大于512(hash-max-ziplist-entries)或者所有字符串长度大于64(hash-max-ziplist-value),则使用dict实现;该字符串是动态字符串raw,字符串长度小于1M时,加倍扩容;双向链表的实现,列表首尾操作(删除和增加)时间复杂度为o(1);节点数量小于等于128且所有字符串长度小于等于64,则使用`ziplist`;元素中有一个不是整数或者节点数量大于512,则使用字典存储;元素都为整数且节点数量小于等于512,则使用整数数组存储;数据多的时候,访问性能;

2024-07-11 17:37:40 882

原创 Redis问题整理

Redis 本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据 flush 到硬盘上进行保存。因为是纯内存操作,Redis 的性能非常出色,每秒可以处理超过 10 万次读写操作,是已知性能最快的 Key-Value DB。

2024-07-08 22:12:46 1138

原创 Redis存储原理与数据模型

在 redis 实例中形成了很大的对象,比如一个很大的 hash 或很 大的 zset,这样的对象在扩容的时候,会一次性申请更大的一块 内存,这会导致卡顿;如果这个大 key 被删除,内存会一次性 回收,卡顿现象会再次产生;redis中的KV组织是通过字典实现的;hash结构当节点超过512个或者单个字符串长度大于64时,hash结构采用字典实现。这样会长期占用redis,其他命令得不到相应;若过期删除key,再进行命令操作;当hashtable中的元素过多的时候,不能一次性rehash到。

2024-07-08 22:03:15 1175

原创 云端AI大模型&群体智慧后台架构思考

在自然语言生成领域,通过为模型提供适当的提示词,可以控制生成文本的风格、内容和结构,从而满足不同场景下的需求。然而,它也有其局限性,比如需要大量的标注数据,标注过程可能耗时且昂贵,以及模型可能受到训练数据中噪声和偏差的影响等。这通常是通过向模型喂入大量的无标注数据进行无监督训练来实现的,使模型涌现出更好的基础能力,以在不同任务上都获得较好效果。提示词工程是一种强大的工具,用于引导大型语言模型产生高质量的文本输出,允许用户更好地利用这些模型的能力,并为各种应用程序提供了广泛的可能性。

2024-07-06 23:06:54 1341

原创 Linux查看文件的行数,字数,字节数

在Linux系统中这统计非常方便,只需要简单的几个命令就可以搞定,这个命令就是wc。wc --help用法:wc [选项]... [文件]...或:wc [选项]... --files0-from=F输出每个指定文件的行数、单词计数和字节数,如果指定了多于一个文件,继续给出所有相关数据的总计。如果没有指定文件,或者文件为"-",则从标准输入读取数据。-c, --bytes 输出字节数统计-m, --chars 输出字符数统计-l, --lines 输出行数统计。

2024-07-06 23:03:38 290

原创 查看Linux系统中日志文件

Linux 系统中 Ubuntu,Debian,CentOS,RedHat 作为常用的服务器软件系统,很多人都已经熟知。不论是服务器出现问题,还是日常维护或各种环境搭建,我们经常需要登录上服务器查看日志。如果熟知 Linux 下的 tail,cat,head,more,less 等命令,并会使用 vi 编辑器,在 Linux 系统中查看日志会是一件非常容易的事情。“同事小杨,做java开发,一次他在CentOS系统上部署完服务后运行,发现服务异常,需要查看日志。就看小杨从容地打开 FileZilla 软件,

2024-07-05 18:25:51 939

原创 如何在 Ubuntu上搭建 LAMP

Apache Http Server 是一个开源的,非常流行,使用非常广泛的网页服务器软件。使用前面建议创建的非 root 帐号安装时,需要使用 sudo 命令。关于如何安装,查看,启停 UFW ,如何配置防火墙,可以查看如何在 Ubuntu 上使用 UFW 设置防火墙。安装完成后,MySQL 数据库默认启动,我们可以通过如下命令查看其运行状态。如果 ufw 没有启动,建议启动防火墙,这样可以增加 VPS 系统安全性。选择密码策略,设置 root 密码,之后一路提示默认输入 y,回车即可。

2024-07-05 18:09:55 519

原创 为了SourceInsight从Linux回到Windows

现在上网搜索这个软件,大多数说他是一个代码阅读软件;但是在官方的说法里面,这是一款支持多语言的编辑器。大概长这样:看起来十分老旧是吧,但是他其实他已经是第四代了哈哈哈。其实这个软件是我老师一直用的,我刚刚学习的时候,尝试使用过,那叫一个难用啊。不会自动补全大括号智能缩进很智障对于结构体指针的补全不会自动->不会检查代码其实光第一点就足够适应好久了,想象一下你每次都肌肉记忆的大括号回车,然后发现需要再打一个的痛苦!而且还不会自动缩进,或者说缩进有问题。后来我使用了Manjaro。

2024-07-04 22:42:28 458

原创 如何在操作使用ufw设置防火墙

UFW(简单防火墙)是用于管理iptables防火墙规则的用户友好型前端。它的主要目标是使iptables的管理更容易。在学习Linux的时候大家一般都会关心命令,Posix API和桌面等,很少会去了解防护墙。其实除了一些网络安全厂商提供的付费防火墙,Debian系的Linux发新版本省就自带了UFW防火墙。

2024-07-04 22:37:45 1343

原创 如何使用find查找命令

Linux查找命令是类Unix操作系统中最重要且最常用的命令行实用程序之一。查找命令可以根据你设定的参数匹配的文件指定的条件来搜索和查找文件或目录的列表。

2024-07-04 22:37:05 501

原创 Linux源码阅读笔记12-RCU案例分析

在中我们已经了解了RCU机制的原理和Linux的内核源码,这里我们要根据RCU机制写一个demo来展示他应该如何使用。

2024-07-03 22:22:58 473

原创 DPDK关于光纤通讯的资料收集

利用光与光纤传递信息的一种方式,有线通讯的一种传输容量大,保密性好等优点将发送的信息输入到发送机中,将信息叠加或调制到作为信息信号载体的载波,然后将调制的载波传输媒质发送到接收端,接收机调节出原来的信息主要领域光纤电缆光器件光设备光通信仪表光通信集成电路通信步骤发射机:产生光信号光纤传递信号:必须确保光信号在光纤中不会衰减或者严重变形接收机:接受光信号,转化为电信号。

2024-07-03 21:41:35 820

原创 Linux源码阅读笔记10-进程NICE案例分析2

静态优先级,直接通过 set_user_nice()函数更改进程的静态优先级。(nice的取值范围:-20 ~ 19)函数功能:设置某进程的 NICE 值,其 NICE 值的计算是根据进程的。

2024-07-02 23:20:24 164

原创 Linux源码阅读笔记09-进程NICE案例分析1

函数功能:获取某个进程的nice值,其中nice值为进程的优先级,与静态优先级有关(nice=static_prio-120)。

2024-07-02 23:16:42 229

原创 Linux源码阅读笔记08-进程调度API系统调用案例分析

函数功能:唤醒处于睡眠状态的进程,状态转换为RUNNING状态,让CPU重新调度处理。函数功能:指定存储节点创建新内核线程。

2024-07-01 21:31:16 436

原创 Linux源码阅读笔记07-进程管理4大常用API函数

获取进程描述符,且描述符的。+1,表示进程多一个用户。

2024-06-27 21:44:18 325

原创 加入deepin的SIG内测小组

在给deepin发去邮件之后,我成功加入了deepin的SIG内侧小组。这种喜悦程度大约相当于我一个老师在上大学的时候给ubuntu发了邮件后收到一个光盘。都是在大学时期收到的一种激励,在我看来,老师是一位优秀的开源作者和程序员。在他的影响下,我开始关注开源社区,并且希望可以贡献自己的力量。网上对于deepin的批评大都是系统优化做的不好,最近使用来下我有几点感受。

2024-06-26 23:25:35 161

原创 Ubuntu使用apt安装opengl

Ubuntu使用apt安装opengl。

2024-06-26 23:23:50 316

原创 快速上手golang(持续更新)

))})

2024-06-25 18:48:05 1432

原创 Linux源码阅读笔记06-RCU机制和内存优化屏障

在编程的时候,指令一般不按照源程序顺序执行,原因是为了提高程序性能,会对他进行优化,主要分两种:编译器优化和CPU执行优化。优化屏障避免编译的重新排序优化操作,保证编译程序时在优化屏障之前的指令不会在优化屏障之后执行。RCU记录所有指向共享数据的指针使用者,当要修改共享数据时,首先创建一个副本,在副本中修改。内存屏障(也称内存栅障或屏障指令等),是一类同步屏障指令,是编译器或CPU对内存访问操作的时候,严格按照一定顺序来执行,也就是。在整个操作过程中,要防止编译器和CPU优化代码执行的顺序。

2024-06-25 18:46:03 1134

原创 Linux 中经常见到的 gz 文件

在linux的使用中,.gz格式的压缩文件非常常见,下面整理一下关于.gz格式的压缩和解压缩。

2024-06-24 18:45:45 406

原创 RPC远程调用

RPC 即远程过程调用协议(Remote Procedure Call Protocol),可以让我们像调用本地对象一样发起远程调用。RPC 凭借其强大的治理功能,成为解决分布式系统通信问题的一大利器。gRPC是一个现代的、高性能、开源的和语言无关的通用 RPC 框架,基于 HTTP2 协议设计,序列化使用PB(Protocol Buffer),PB 是一种语言无关的高性能序列化框架,基于 HTTP2+PB 保证了的高性能。tars 兼容grpcbrpc也兼容grpc。

2024-06-24 18:45:11 1295

原创 车载以太网权威指南阅读笔记

总体思路:要基于车载以太网做出相应的机器人以太网神经中枢,需要按照以下步骤:在基础的物理 层方面,以太网仅由点到点线路构成,即每根UTP电缆只连接两个节点,一端一 个。假设有一个包含 台以上设备的传统网络,可在网络中心部署一台交换机将 所有链路上的设备相亘连接起来。为说明这一点,我们以一个只高四个节点的简 单车载以太网为例。四个节点为:一个内置主机和 端口交换机的ECU; 一个显 示器节点;一个控制台节点;以及一个扬声器节点。每个端节点各自通过一根 UTP线缆与该交换机的四个端口相连。这实际上构建了 个"微

2024-06-23 02:48:46 636

原创 光纤通讯资料收集

利用光与光纤传递信息的一种方式,有线通讯的一种传输容量大,保密性好等优点将发送的信息输入到发送机中,将信息叠加或调制到作为信息信号载体的载波,然后将调制的载波传输媒质发送到接收端,接收机调节出原来的信息主要领域光纤电缆光器件光设备光通信仪表光通信集成电路通信步骤发射机:产生光信号光纤传递信号:必须确保光信号在光纤中不会衰减或者严重变形接收机:接受光信号,转化为电信号。

2024-06-23 02:45:29 1007

原创 Linux源码阅读笔记05-进程优先级与调度策略-实战分析

如果有相同优先级的实时进程(根据优先级计算的调度权值是一样的)已经准备好,FIFO 时必须等待该进程主动放弃之后才可以运行这个优先级相同的任务。而 RR 可以每个任务都执行一段时间。(SCHED_NORMAL/SCHED_BATCH/SCHED_IDLE),始终返回0,即普通任务调度的函数。实时调度策略(SCHED_FIFO/SCHED_RR)优先级最大值为99;支持优先级使用,它们分别为 1-99,数值越大优先级越高。它 不 支 持 优 先 级 使 用 , 而。设置和获取优先级的2个主要核心参数。

2024-06-23 02:43:33 353

原创 计算机专业:昔日万金油,明日科技潮头的弄潮儿

为什么写这个呢,其实我有系统学过Makefile和CMake。但是因为用的不是很多或者说没有深入的使用场景,导致我不是很熟练,或者说没法优雅地使用。刚好最近对Linux的嵌入式编程比较感兴趣,借着demo来分析一下资深工程师写的Makefile,学习一下。由易到难吧,先来第一个,是一个GPIO的Makefile。

2024-06-23 02:33:20 405

原创 Makefile实战论(一)

为什么写这个呢,其实我有系统学过Makefile和CMake。但是因为用的不是很多或者说没有深入的使用场景,导致我不是很熟练,或者说没法优雅地使用。刚好最近对Linux的嵌入式编程比较感兴趣,借着demo来分析一下资深工程师写的Makefile,学习一下。由易到难吧,先来第一个,是一个GPIO的Makefile。

2024-06-23 02:11:30 691

原创 用户态协议栈06-TCP三次握手

最近由于准备软件工程师职称考试,然后考完之后不小心生病了,都没写过DPDK的博客了。今天开始在上次架构优化的基础上增加TCP的协议栈流程。百度百科:TCP即传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于的传输层通讯协议。这里最需要关注的就是,在我们使用Linux的Posix API创建TCP的Socket时,我们通常会这样操作:其中的参数的意思就是创建流式套接字。在写UDP的时候,只需要单纯的发送一个一个报文就可以,因为UDP是面向数据包的。TCP

2024-06-23 02:10:30 1087

基于Qt的Windows网络嗅探器

基于Qt的网络嗅探器,使用了一些flatui。 使用Winpacp库,支持IPV4,IPv6,ICMP,ARP等网络数据包抓取。 有配套文章。 使用QtCreator环境,pro文件组织工程。 开发不易,收取少量积分。

2024-07-21

C++的gRPC资源包

C++的grpc库和使用方法,配合文章使用。

2023-08-24

空空如也

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

TA关注的人

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