
linux
文章平均质量分 70
deepallin
博文以linux开发、国产信创项目(统信UOS和麒麟kylin桌面系统)相关的Linux后端服务、图形QT应用,以及QT跨平台(window应用)开发,也会穿插以下开源工具的利用,及二次开发的分享。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【QT入门到晋级】进程间通信(IPC)-socket(包含性能优化案例)
本文适合对原生socket、指针不熟悉的QT开发者阅读。前半篇从系统内核与socket的关系回顾socket的知识点,后半篇从C++ QT的网络编程切入来理解socket编程及典型的性能优化方法(零拷贝、IPC-共享内存、环形队列)。上一篇篇尾提到少量数据流的进程间通信场景,管道的性能明显比socket套接字高,以下从内核的角度详细的展示。原创 2025-08-19 22:59:33 · 801 阅读 · 0 评论 -
【QT入门到晋级】进程间通信(IPC)--管道(包含代码)
管道包含两种:匿名管道(Anonymous Pipe)和命名管道(Named Pipe/FIFO),匿名管道主要是用于父子进程之间的通信,命名管道多用于不相干(无父子关系)的进程之间的通信。管道都是半双工的,数据只能单向流动(一端写入,另一端读取)。为了达到双向通信,需创建两个独立管道。这两种管道都是系统级的,分配的内存都在内核缓冲区,默认大小都为4KB~64KB,从这点可以看出管道适用于少量数据流的传输。能传的数据这么少,为什么Linux还保留这个机制呢?原创 2025-08-16 23:34:02 · 600 阅读 · 0 评论 -
【window/linux】应用窗口特性及功能开发(信创软件开发)
本篇主要是分享win10及国产桌面操作系统(统信UOS、麒麟kylin系统)的窗口的特性(窗口消息、窗口ID、窗口状态等),及一些功能开发技术点或者是思路(本文的风格是零散的方式分享技术点,不提供源码,仅提供一个编译好的获取到窗口消息的应用)。原创 2025-08-06 09:45:20 · 843 阅读 · 0 评论 -
【QT入门到晋级】window opencv安装及引入qtcreator(包含两种qt编译器:MSVC和MinGW)
本文主要分享QT的两种编译器环境(MSVC和MinGW)下,安装及引入opencv的方法。原创 2025-07-27 18:56:22 · 947 阅读 · 0 评论 -
【QT常用技术讲解】优化网络链接不上导致qt、qml界面卡顿的问题
qt、qml项目经常会涉及访问MySQL数据库、网络服务器,并且界面打开时的初始化过程就会涉及到链接Mysql、网络服务器获取数据,如果网络不通,卡个几十秒,会让用户觉得非常的不爽,本文从技术调研的角度讲解解决此类问题的socket编程方案。原创 2024-11-13 00:20:31 · 737 阅读 · 0 评论 -
【国产桌面操作系统开发】设置及屏蔽快捷键(原始文件中设置,绝对生效)
本文是针对在国产的麒麟kylin和统信UOS桌面操作系统上进行的所有快捷键处理。原创 2025-06-20 19:15:00 · 368 阅读 · 0 评论 -
欧拉系统openEuler-24.03忘记密码,如何改密码
本文记录欧拉系统openEuler-24.03后台改密码的过程。原创 2025-06-12 20:30:00 · 684 阅读 · 0 评论 -
【Linux C/C++开发】轻量级关系型数据库SQLite开发(包含性能测试代码)
之前的文件分享过基于内存的STL缓存、环形缓冲区,以及基于文件的队列缓存mqueue、hash存储、向量库annoy存储,这两种属于比较原始且高效的方式。那么,有没有高级且高效的方式呢。有的,从数据角度上看,(封装好底层的)SQL语法开发就是一种成熟、高效的方式。本文主要讲解的是不需要搭建服务器的数据库类型(支持SQL语法)的轻量级缓存数据库SQLite。原创 2025-05-14 17:58:31 · 886 阅读 · 0 评论 -
【Linux C/C++开发】队列缓存--环形缓冲区(包含C++ QT代码)
C++提供的STL容器可以解决大部分数据缓存的场景,如果项目中受到到资源限制、性能要求等因素的影响时,就需要对缓存的数据结构与算法进行优化。本文仅针对环形缓冲区进行代码实现和讲解。原创 2025-05-07 16:20:36 · 492 阅读 · 0 评论 -
【Linux C/C++开发】向量检索库annoy开发
人工智能场景中,有获取相似、近似、相邻的查询需求,这种”≈“的求解,是传统key-value数据库无法计算的,本文主要讲解的是annoy库,这个库在python中比较常用,因为源代码是C++开发的,并且,以下就用C++的代码实现详细讲解。原创 2025-04-28 19:33:53 · 774 阅读 · 0 评论 -
【Linux C/C++开发】使用hash算法进行性能优化
C/C++项目可以直接接触到系统级接口,在出现性能问题(比如内存使用、CPU占用、读写IO、网络传输等)时,需要深入的进行解决,没有现成的框架可以直接套用,本篇主要介绍适合使用hash算法的场景。原创 2025-04-26 15:20:10 · 930 阅读 · 0 评论 -
【国产桌面操作系统开发】对称加密--AES加解密(包含命令行和C++的so库)
AES(Advanced Encryption Standard)是一种对称加密(共享密钥)算法,支持128/192/256位密钥长度,采用128位固定块大小。其核心优势在于高安全性与高效实现,被广泛应用于数据加密传输与存储。对称加密(共享密钥)的意思是,加密和解密都是使用同一个密钥,特点是容易部署且速度快。原创 2025-04-17 17:51:29 · 1156 阅读 · 0 评论 -
【Linux C/C++开发】编译及引用so动态库
项目中主程序引用动态库的好处是,动态库本身自带模块化属性:维护改动量小,便于分配开发任务。本篇仅列举我常用的方法,不收录全部方法,主要目的是为了与QT生成及引用so动态库文件进行对比。原创 2025-04-16 17:28:57 · 655 阅读 · 0 评论 -
Linux串口工具cuteCOM源码(工具包含发送文件功能)
源码是基于cutecom-0.22.0版本(qt3版本),在qt5环境下编译的,界面如下所示。原创 2025-04-10 12:03:15 · 300 阅读 · 0 评论 -
麒麟桌面系统(kylin-desktop-v10-sp1)文件管理器屏蔽网上邻居
设备连接上网络之后,麒麟系统的网上邻居会自带扫描周围的共享设备(特别是支持smb协议的共享打印机),如果客户的内网共享设备特别多,打开文件管理器时,会很影响体验。原创 2025-03-20 09:04:24 · 686 阅读 · 0 评论 -
【linux】KVM、vbox虚拟机重要的后台命令
kvm和vbox目前都是开源的虚拟化工具,kvm的通用性强,vbox在图像处理上会更好,各有特点,以下讲解它们的主要的后台命令行。原创 2025-03-06 17:20:15 · 741 阅读 · 0 评论 -
【Linux C/C++开发】Linux系统轻量级的队列缓存mqueue
需求场景:某些功能需要在root用户下作为服务执行,组装的生产数据需要推送给登录系统桌面的普通用户权限的应用。下面以在root权限下运行的读取usb信息的服务,监测USB的插拔事件并把信息推送到mqueue,而普通用户的应用通过读取mqueue获取USB插拔信息为例。原创 2025-02-20 18:17:15 · 646 阅读 · 0 评论 -
【Linux C/C++开发】udev监测USB事件
本人的国产化桌面系统项目需要对接入Linux系统的USB设备进行事件及更详细的信息管理,libusb库是不够的,需要使用udev库,比如我的项目需要区分摄像头/位图设备、存储设备、鼠标键盘设备等的插拔事件,此时需要调用udev库,下文主要讲解C/C++开发怎么引用udev库。原创 2025-02-20 11:44:35 · 406 阅读 · 0 评论 -
【QT常用技术讲解】发送POST包(两种方式:阻塞方式及非阻塞方式)
http/https(应用层)协议是广泛使用的网络通信协议。在很多与第三方API对接的场景中,通常是通过http/https协议完成,比如API对接时,通常要通过POST包获取access_token进行鉴权,然后再进行数据交互(本篇也包含有对接收数据的json数据解析代码)。本篇以百度AI的API接口的access_token鉴权为例,通过QT特性QNetworkAccessManager实现两种方式的POST包方式:阻塞方式和非阻塞方式。原创 2024-12-24 00:02:25 · 1005 阅读 · 0 评论 -
【国产桌面操作系统开发】制作桌面快捷方式
目前使用最广的国产桌面操作系统是麒麟kylin操作系统和统信UOS操作系统,在国产系统上开发应用,需要在桌面提供一个快捷方式给用户使用,国产系统是Linux阵营,与window系统是有差异的。原创 2024-11-10 23:44:42 · 898 阅读 · 0 评论 -
python 字符串替换ASCII码中的特殊字符
背景知识1、python的字符串不能直接用索引的方式进行替换,比如stringA='asdfghj'stringA[2]='1'会提示语法错误2、python常规可以通过字符串拼接、或者replace替换的方式组成新的字符串,比如stringA='asdfghj'stringB=stringA[0:2]+'@'+stringA[4:6]或者stringB=stringA.replace('f','@')特殊字符替换网络爬虫爬取的内容通常都会遇到特殊字符的问题,..原创 2020-12-24 10:35:36 · 1639 阅读 · 2 评论 -
检测磁盘坏道并忽略方式挂载注意的细节
/dev/sda2 591467212 237121952 323815736 43% /tmpfs 4149320 0 4149320 0% /dev/shm/dev/sda1 117927380 11016 111829340 1% /boot使用命令badblocks -s -...原创 2018-03-09 16:47:10 · 587 阅读 · 0 评论