
Linux
以 gcc/g++ 9.2 在 MacOS 10.14 (uos20 偶尔作为验证)为工具;从最底层学习c++编译相关学习,向下补课底层编译知识,向上学习 Unix /Linux,稳扎稳打学习Linux系统相关知识。(所有代码均在 Mac 下,通过 gcc 编译在 编程成功)。
偕臧x
看待世界始终保持着好奇;期待与各位的邂逅,比较喜欢Linux、C++、Qt和与技术无关的生活相关,不时折腾一下新技术,欢迎来此处https://ifmet.cn 找我玩
-
原创 Linux 该如何自我系统的学习「心路」?
序言:搞编程,学 C/C++ 怎么不能学习一下 Linux ? 了解一下底层的知识库和程序运行原理?附上个人学习目录,此系列学完之后,回来预期会继续更新 Qt 相关的知识 QtExamples ,将更多的一些知识分享出来。Linux 系统学习三部曲:❶基础编程 ❷系统编程 ❸网络编程说明:Linux / Unix Example:文章中的所有例子均在 MacOS && U...2020-04-29 19:59:39446
0
-
原创 阿里云服务器 nginx 上部署 SSL 证书实现 httsp 访问
文章目录环境申请 SSL部署 SSL上传证书配置 nginx检测配置 nginx 成功访问成功其它参考本文初发于 偕臧 https://xmuli.tech,同步转载于此。简 述: 上一篇在远程服务器上部署了 Hexo 之后,这是其后续一篇,设置部署 https 证书(SSL),记录申请证书、配置相关 nginx 服务,其远程服务器为 Ubuntu 20.04。环境自己的阿里云主机相关环境:Ubuntu 20.04 focalKernel: x86_64 Linux 5.4.0-42021-02-23 21:19:1925
1
-
原创 阿里云服务器部署 Hexo 博客
文章目录背景服务器配置连接远程服务器创建新用户切换新用户配置 `SSH`配置 `Git`安装 `nginx`本地配置:创建 `hexo` 文件夹部署到远程服务器参考 简 述: 在阿里云服务器上部署 Hexo 博客。本文初发于 偕臧 https://xmuli.tech,同步转载于此。背景 初,将 hexo 部署在 GitHub,因访问较慢;不久,改成 hexo 部署在 GitHub + Coding 双线程解析,实测 coding 是韩国的服务器,访问加速不明显(现在好像升级了,2021-02-10 19:49:46153
0
-
原创 Deepin 任务栏网速插件推荐 lfxNet (重构 lfxSpeed)
文章目录项目简介碎碎念支持功能重构心得后期计划鸣谢下载简 述: 之前写过一个版本 lfxSpeed 的 dde-dock 插件,用来实时现实网速插件;现重构为 lfxNet 项目,修复之前的许多缺陷,和添加功能。 本文初发于 偕臧 https://xmuli.tech,同步转载于此。Deepin / UOS 下的最佳网速插件推荐 lfxNet 。项目简介 lfxNet 是一款轻量、快速的实时显示系统资源信息的应用程序。lfxMonitorNet 是 lfxspeed 的重构版本2021-02-02 20:54:1482
0
-
原创 Deepin、DTK 文档参考集合
文章目录DTK 文档集合文档交流源码内网交流:简 述: 整理收集 DTK 相关资料。DTK 文档集合文档DTK API 文档:DTK 的 API 接口中文说明,自动同步更新Deepin 社区文档:核心为 DTK 团队的文档积累,社区爱好者的作品展示、技术交流QtExamples:个人积累,参考第五章节,为 DTK 的源码架构一些理解和实战Deepin Wiki: Deepin 在 GitHub 上某些仓库都有写 Wiki。虽零碎,但有惊喜DTK 相关 PPT 介绍(两篇)交流2021-01-05 16:49:45125
0
-
原创 Deepin 愿望墙:社区插件等需求调研结果
文章目录详细调研总结过程:参考简 述: 社区或独立开发者,欲开发一些插件或小功能等,但一时之间没想到合适的方向,可参考此作为方向,作为个人学习或者练手编程。既是个人兴趣,也是他人所需,妙哉。详细调研总结之前拜托大佬调研过一些有社区希望上哪些功能,此处放出来,也可以作为社区开发者一个参考,如果感兴趣的话,可以考虑个人开发一些小轮子,即使已经有的,或许你可以开发一个更棒的。然后可在官方文档投稿、论坛发帖等,一起分享。过程: 对于这些数据, 有些还是比较意外的,有的是在情理之中,从国内社区2021-01-05 16:46:1846
0
-
原创 Deepin / UOS 中配置 DTK 开发环境
title: UOS/Deepin 如何配置 DTK 开发环境date: 2021-01-05 15:02:28toc: truecategories:[学习 - Linux][学习 - qt]tags:DTKDeepin简 述: 有人问,DTK 怎么配置开发环境? 我头上有呆毛了,,,又水一篇,确实没想到问的人会有这么多。文章目录准备开启开发者模式配置DTK 开发环境验证验证 C++ 开发环境 配置是否成功:验证 DTK 开发环境 配置是否成功:验证其它项目命令配置更新个人.2021-01-05 15:51:16225
0
-
原创 Deepin 开发任务栏网速插件 lfxSpeed
文章目录背景预览编译思路插件原理lfxSpeed 原理获取系统参数`/proc` 介绍获取网速读取文件思路代码获取CPU读取文件思路代码获取内存读取文件思路代码获取系统运行时间读取文件思路代码任务栏 `1.2.2` 的缺陷下载地址:参考:本文初发于 偕臧 https://xmuli.tech,同步转载于此。简 述: 在 DDE 桌面环境中开发 dde-dock 插件 项目实战: 网速插件 lfxSpeed;背景因 DDE 属实漂亮,使用美观舒适,作为 Deepin 爱好者,习惯于在2020-12-04 20:31:03221
0
-
原创 Linux or Mac 安装 gitbook 3.2.3 失败解决方案
文章目录前言安装 gitbook初次尝试结论:再次尝试:结论:Gitbook serve 报错解决方案本文初发于 偕臧 https://xmuli.tech, 同步转载于此。简 述: 欲用 gitbook 来开启人生第一本书,结果安装、使用时候卡住了。。。这里记录一下;没想新的版本里面有坑。前言依次按照如下顺序安装:nvm :用来安装、管理切换 nodejs 的版本nodejs:运行所需要的环境npm: 用来安装 gitbook-cli(自动安装最佳 gitbook 版本)cn2020-12-04 13:49:07366
0
-
原创 对 GNU/Linux 介绍、ArchLinux社区氛围、DDE移植Arch流程
文章目录前言简述:对于 GNU/Linux 的一点理解:对于 GNU/Linux 的认知:自由软件:自由与非自由软件的分类:GNU / Linux 个人感想:对于 Arch Linux 的一点理解:楔子:ArchLinux 是什么?ArchLinux 历史:ArchLinux 理念:简洁现代实用以用户为中心ArchLinux 用户:ArchLinux 群组:ArchLinux 社区文化:DDE与Arch 的关系:DDE 移植 Arch 流程:细节:附两个实例:参考:前言简述:简述: 本文普及一些 GNU2020-09-03 11:04:01151
0
-
原创 ArchLinux + DDE 安装教程
文章目录写在前面:文章受众:注意事项:安装步骤:大概流程:详细流程:配置:下载镜像:在 `VM` 里面新建系统,检查磁盘状态 `lsblk`:选择分区表 `cfdisk`:选择分区:格式化分区:挂载分区:换国内`Arch` 的源:安装基本包:配置 Fstab:执行 chroot :安装软件必须的软件包:设置 Locale:设置 root 密码:创建新用户:安装 grub :重启系统:启动网络服务,:安装字体:安装 DDE 深度桌面环境:重启系统:安装 VM-tools(可选)参考:简述: 本博客主要对.2020-07-30 18:31:181871
3
-
转载 PicGo在uos&&deepin系统运行失败:chrome-sandbox is owned by root and has mode 4755
文章目录编程环境:报错如下:解决方案:参考:简 述: 在 uos / deepin v20 系统中,使用 picGo 图床上传工具,直接运行会失败:☁ softIns ./PicGo-2.3.0-beta.0.AppImage [4722:0527/095648.836952:FATAL:setuid_sandbox_host.cc(157)] The SUID sandbox helper binary was found, but is not confi2020-05-27 17:58:15629
0
-
原创 Linux上面使用lintian检测deb包报错的解决方案
文章目录编程环境:lintian:安装&使用lintian报错:解决方案:原因:解决方法:简 述: 使用Linux(uos v20 系统),安装 了;lintian 命令之后,执行 lintian xxx.deb 发现报错如下;而未按照预期正确输出结果应该是带上 E / W / I /N / O 等明显的标记。 编程环境:????: uos20 ???? gcc/g++ 8.3 ???? gdb8.0lintian:事情的起因于 #5,后面去了解了一下想关知识;linti2020-05-26 22:19:07423
0
-
原创 deepin、dde的历史起源与发展(附deepin所有版本的dde截图)
文章目录前排说明:捋顺名词:deepin:dde:dtk:deepin 发展历史:deepin 历史版本的发布:Hiweed Linux 时期:Linux Deepin 时期:Deepin 时期:uos 时期:参考链接:简 述: 在 另一篇中,详细讲述了写了 dtk 的历史起源、发展和简单入门;而本篇则是简述与之紧密相关的 deepin, dde,team 相关;本篇重点在 dde 的多年以来的 UI 变化;重新欣赏一遍 deepin 以前到现在的界面演变过程。(2009-2015->2020)2020-05-18 16:07:571137
0
-
原创 DTK的历史起源、发展,和简单入门(精华篇)
文章目录一点碎碎念~:背景交代:dtk 名称的理解(易混淆):DTK 的历史起源:dtk 项目的历史演变(含名称):样式变化:0 -> 1 的诞生 dui:deepin-tool-kit 是石器时代:壮大后拆分 dtk 库:dtk 的口口相传时代:dtk 的文档时代:dtk 库的快速入门:如今 dtk 项目的构成(2020-05):简述 dtk 的各仓库作用:qt5integration:dtkwidget:dtkgui:资料手册 && 故地址遗迹:资料手册:镜像下载:参考 &2020-05-18 11:31:071196
5
-
原创 DTK常用和测试代码片
简 述: DTK 常用和测试代码片,在 deepin 20 或 uos 20 中,全部使用 DTK 开发,其中有一些是经常遇到的定位 bug 和修改的代码片。在此抛转引玉,提交一点开发的贡献文章目录开发环境:将 dtkwidget 项目注册到系统:判断 系统主题是浅色还是暗色:对某一颜色,在浅 / 暗主题对其亮度进行修改:属性的使用:在 paintEvent() 里面获取一个颜色:将自定义风格 应用于 其他的软件:打印 QBoxLayout里面的所有元素:QT判断鼠标是否在某子窗口控件上方:获取项目中2020-05-18 10:32:47553
0
-
原创 Linux中多线程使用条件变量阻塞线程,和pthread_cond_wait()函数使用
文章目录编程环境:条件变量是锁????吗?条件变量的两个动作?使用条件变量流程:生产者-消费者模型:理论模型:代码实现:代码分析:运行结果:下载地址:简 述: 继续上一篇中,讲解了原子⚛操作(粗略看作 cpu 会执行完该几行代码,才会切换到其他的线程)和重点讲解读写锁 的使用。本篇讲解 条件变量 的使用步骤:pthread_cond_t g_cond() //条件变量–阻塞线程,等待条件满足*...2020-05-02 00:51:00561
0
-
原创 Linux中原子操作,死锁原因以及解决方法,读写锁的属性和函数使用pthread_rwlock_wrlock()
文章目录编程环境:原子操作:造成死锁的原因:自己锁自己:循环锁住:避免死锁的方式:读写锁:读写锁的理解:读写锁的特性:读写锁的场景练习:读写锁的使用场景:读写锁的主要操作函数:写一个运用读写锁的例子:下载地址:简 述: 上一篇中介绍了多线程使用互斥量(锁)来控制程序的访问公共资源的时候是”串行“的;本篇继续,重点讲解如下几个概念:Linux 中的原子操作 、死锁原因 以及解决方法 、和读写锁...2020-04-27 22:06:31701
0
-
原创 Linux中使用使用互斥量(锁)Mutex来操持多线程同步执行pthread_mutex_lock()
文章目录编程环境:背景铺垫:使用互斥量(锁) Mutex:改写例子,使用互斥量(锁)实例:下载地址:简 述: 在 Linux 中,使用互斥量(互斥锁????) Mutex 来给保证多线程 ,在访问公共变量的时候能够 “串行” 代码。从而使得多线程正确的同步执行。关于多线程创建和使用可以参考前面几篇的文章,争取早日把 Linux 系统篇之 系统编程给发布完系列的教程。PS:好几天没有接着学习 Li...2020-04-26 22:37:19851
0
-
原创 Linux中多线程操作函数pthread_exit()、pthread_jion()、pthread_detach()、pthread_cancel()
文章目录编程环境:单个线程退出 pthread_exit():阻塞等待退出线程退出 pthread_jion():线程分离 pthread_detach():杀死(取消)线程 pthread_cancel():判断线程是否相等 pthread_equal():下载地址:简 述: 上一篇讲解了多线程的入门的知识,如何创建多线程程序,以及从虚拟地址空间和 PCB 分析线程的一些细节。本章再讲述一...2020-04-19 18:54:18429
0
-
原创 Linux中创建多线程实例pthread_create()
文章目录编程环境:线程:已经程序是多线程构成:pthread_create():写一个例子:例子一:例子二:下载地址:简 述: 前面几篇,学习了 Linux 下多进程使用 fork() 分析的其构造和原理;这里进一步,探究一下如何创建多线程,以及多线程和多进程之间的差异。最后写几个实例;验证分析。编程环境:????: uos20 ???? gcc/g++ 8.3 ???? gdb8.0????: Ma...2020-04-15 22:24:58772
0
-
原创 Linux中创建守护进程setsid()
文章目录编程环境:守护进程的特点:进程组 - 多个进程:会话 - 多个进程组:创建守护进程模型:写一个例子:文件掩码是什么?下载地址:简 述: 前面几篇,刚写过了父子进程的实例。这里写一个守护进程 的例子,从了解到运用 setsid() ;守护进程也就是脱离于终端,不需要和用户交流的,不受注销影响的后台程序(可理解为 win 中的服务 )。编程环境:????: uos20 ???? gcc/g+...2020-04-11 15:48:17198
0
-
原创 Linux中未决信号集和阻塞信号集的状态关系sigaddset,以及捕捉信号函数
文章目录编程环境:未决信号集:阻塞信号集:自定义信号集:sigprocmask() 函数:sigpending() 函数:写一个小的例子:信号捕捉:signal() 函数:Unix 中的 sigaction() 函数:Linux 中的 sigaction() 函数:下载地址:简 述: 在上一篇中,讲解了 Linux 的系统中基本信号概念入门。这里就说一下两个重要的概念,系统内核里面的 未决信...2020-04-11 11:09:51335
0
-
原创 Linux中系统信号初识,和函数kill,raise,abort,alarm,setitimer
文章目录编程环境:信号初识:kill() 函数:raise() 函数:abort() 函数:定时器:alarm() 函数:分析程序运行的损耗:setitimer() 函数:下载地址:简 述: 此处指 Linux 中系统内核发出的信号;而不是之前 Qt 学习的信号。编程环境:????: uos20 ???? gcc/g++ 8.3 ???? gdb8.0????: MacOS 10.14 ???? gcc/g+...2020-04-07 09:53:45167
2
-
原创 Linux中进程间的通信方式--内存映射区mmap()
文章目录编程环境:mmap内存映射原理:创建内存映射区 mmap():释放内存映射区 munmap():写一个例子,验证内存内容和磁盘文件会同步:对于 mmap() 的一些思考:mmap 实现内存映射?父子进程间永远共享的东西?例子实现父子进程间的通信:创建匿名内存映射区:匿名内存映射区(有血缘关系进程通信):有名内存映射区(无血缘关系进程通信):借鉴博客与总结:下载地址:简 述: 本篇讲解...2020-04-05 10:20:50198
0
-
原创 Linux中普通的进程间通信方式--有名管道fifo(适用于无血缘关系的进程)
文章目录编程环境:进程间通信 IPC:有名管道(fifo):写一个例子:下载地址:简 述: 在上一篇中,写了有血缘关系的进程间的通信,使用匿名管道 pipe,本篇是介绍,对于无血缘关系的进程间通信,可以采用(有名)管道的 fifo 方式。编程环境:????: uos20 ???? gcc/g++ 8.3 ???? gdb8.0????: MacOS 10.14 ???? gcc/g++ 9.2 ???? gdb8....2020-04-02 12:24:21249
0
-
原创 Linux中父子进程、兄弟子进程之间通信方式--匿名管道pipe(适用于有血缘关系的进程)
文章目录编程环境:进程间通信 IPC:匿名管道(pipe):父子进程间通信:兄弟子进程间通信:管道的读写行为:读操作:写操作:查看管道缓冲区大小:设置管道的非阻塞属性:下载地址:简 述: 对于有血缘关系的进程间通信,如父子进程、兄弟子进程子之间的通信,可以采用(匿名)管道的 pipe 方式。 而进程间通信一共有四种方式:管道、信号、共享映射区、套接字。且说一个概念,进程间通信(Inter P...2020-04-01 20:01:021070
0
-
原创 Linux中孤儿进程,僵尸进程,进程回收wait、waitpid函数
文章目录编程环境:孤儿进程:僵尸进程:进程回收:wait():waitpid():下载地址:简 述: 这篇继承上一篇,先要自己梳理清楚一下进程相关的知识, 上上一篇的虚拟地址空间和进程控制块 PCB ,以及上一篇的进程相关知识,带着思考来学习 孤儿进程、僵尸进程、 以及进程回收 wait(), waitpid()相关的概念。编程环境:????: uos20 ???? gcc/g++ 8.3 ???? ...2020-03-28 17:02:38223
0
-
原创 Linux中fork创建兄弟子进程,验证进程之间全局变量不共享,exec函数族
文章目录编程环境:并行和并发:并发:一个时间段,处理请求的个数并行:多个进程同时进行任务分配:PCB 和 进程的五种状态:进程控制块 PCB:进程的五种状态:进程控制块,父进程创建子进程的分析 ????:父进程如何创建多个兄弟子进程(不含孙进程)????:进程之间是否共享全局变量:????显示当前进程的状态 ps:删除执行中的程序或工作 kill:exec 函数族 ????:执行指定目录下的程序 execl():执行 P...2020-03-28 10:43:38639
0
-
原创 Linux中man手册,阻塞和非阻塞,stat,文件操作和遍历,文件描述符复制dup()
文章目录编程环境:man 手册的使用:系统函数读写文件:写一例子:阻塞和非阻塞:stat / lstat 函数 :文件属性相关的函数:目录操作相关函数:目录操作相关函数:目录遍历相关函数: dup / dup2 / fcntl 函数:下载地址:简 述: 讲解在 Unix / Linux 下,man 手册的使用;写了一个例子调用系统库函数来读写文本文件,和打印文件描述符;阻塞和非阻塞实际是文件...2020-03-22 17:58:01296
0
-
原创 Linux中虚拟地址空间、pcb、文件描述符、C库函数工作流程、标准库和系统库函数区别
文章目录编程环境:虚拟地址空间:pcb 和文件描述符表:C 库 I/O 函数工作流程:C 库函数与系统函数的关系:下载地址:简 述: 对于 Linux 学习过程中,有一些基本的知识点、关于系统,以下均是以 32 位系统上的为例的知识点:虚拟地址空间pcb 和文件描述符 表C 库 I/O 函数工作流程标准 c 库函数和 linux 系统函数的区别编程环境:????:...2020-03-22 15:54:06219
2
-
原创 Linux中文件操作,软硬链接ln,用户权限chmod、chown,文件查找和检索find、grep,压缩gz,bz2
文章目录Linux 版本号和 PATH:shell 和 bash 的区别:光标相关快捷键:Linux 目录文件结构:文件目录相关的命令:显示文件内容命令 cat / more:软硬链接:软连接 ln -s:硬链接 ln:用户权限,用户,用户组 chmod / chown:文件查找和检索 find / grep:压缩包的管理:Linux 常见压缩格式 .gz / .bz2:常用压缩命令 tar / ...2020-03-21 15:09:32269
0
-
转载 gdb调试器的使用,初探全貌
文章目录编程环境:在 Mac 安装 gdb 程序:编译程序:运行调试:gdb 介绍:gdb交互命令:运行:设置断点:查看源代码:打印表达式:查询运行信息:分割窗口:更强大的工具 cgdb:常用自我检测:简 述: 在 Mac 下安装和调用 gdb 调试程序。和 gdb 一些常用的使用参数含义。编程环境:????: MacOS 10.14.6 ???? gcc/g++ 9.2.0 ???? gdb8.3...2020-03-16 18:08:55121
0
-
原创 在Linux中,编写入门的makefile文件,然后逐渐迭代
文章目录编程环境:make 介绍:makefile 介绍:命名:规则:执行原理:编写自己的 makefil 文件:准备铺垫:第1版本:第2版本:第3版本:第4版本:第5版本:运行效果:代码下载:简 述: 在 Uinx/Linux 下,写下这篇适合小白学习的入门教程,理解 make,makefile 文件。和开始编写自己的 makefile 文件,使用 make 命令执行,生成我们所需要的项目。...2020-03-09 18:42:39181
0
-
原创 gcc工作流程:预处理,编译,汇编,链接
文章目录编程环境:gcc工作流程:gcc常用参数:例子验证: 简 述: 在 uinx/Linux 下,使用 gcc 的工作流程:预处理,编译,汇编,链接。 这里实际测试,举例分析:使用 g++(用 c++)的编译 main.cpp ,最终得到可执行程序的过程分析。编程环境:????: MacOS 10.14.6 (18G103) ???? gcc/g++ 9.2.0gcc工作流程:预处...2020-03-06 12:44:06231
0
-
原创 Linux下使用gcc生成动态库.so和调用(图文并茂,坑已踩完)
简 述: 继 上一篇。本篇就继续实践踩坑,实现在Linux上面,使用gcc编译动态库.so,文件,且调用动态库。此处例子实际:使用g++8.3.0在uos20(Linux)平台下完成这个知识点的实践教程。文章目录编程环境:动态库概念:前期铺垫:将.cpp文件生成.o文件:将.o文件大包为.so文件:调用.so文件:设置.so的运行时的PATH:解决 Linux 加载动态库 .so 文件失败的...2020-03-06 11:32:291136
6
-
原创 Linux下使用gcc生成静态库.a和调用(图文并茂,坑已踩完)
简 述: 在Linux系统下,使用gcc来编译,生成静态库,且调用静态库.a文件,生成可执行程序。此处例子实际:使用g++9.2在mac平台下完成这个知识点的教程。文章目录编程环境:静态库概念:前期铺垫:将.cpp生成.o:将.o生成.a:链接库,调用静态函数.a:运行可执行程序成功:源码下载:总结:编程环境:????: MacOS 10.14.6 (18G103) ???? gcc/g++ 9....2020-03-06 11:29:57446
0
-
原创 gcc和g++的区别,编译.c和.cpp文件的区别
简 述: 在上一篇中,最后为了测试 gcc 9.2.0 版本的安装是否成功。对创建的测试文件 main.cpp 文件,执行 gcc-9 main.cpp -o mainApp -lstdc++ 命令;虽然最后运行成功了;但是是始终是有一点困惑:调用 gcc 和 gcc-9❗️能否自动执行 gcc 的时候,去掉 -lstdc++,使得看起来清爽起来 ⁉️最后查询一下。发现其中另有一番天地...2020-03-04 00:07:43756
0
-
原创 在MacOS上面通过brew命令安装gcc编译器集
简 述: 在 MacOS 10.14.6 里面使用命令 brew 下载、安装 gcc 编译器集。并且写一个小的例子 .cpp 文件来编译运行,下载的 gcc 是否成功。文章目录编程环境:GCC 简介:GCC 官网:GCC 命令安装:查看 gcc 安装版本:验证 gcc 安装是否成功:其它疑问:源码下载:编程环境:????: MacOS 10.14.6 (18G103)GCC 简介:GC...2020-03-03 19:52:422132
8
-
原创 Linux学习:root下文件夹含义,apt, vim,gcc,静动态库制作和使用
简 述: Linux学习:root下文件夹含义,apt, vim,gcc,静动态库制作和使用文章目录磁盘文件夹含义:apt软件/安装卸载:Vim:vim 三种模式切换图:vim 使用:vim 配置文件:gcc:gcc工作流程:gcc常用参数:静态库和动态库的制作和使用:静态库(.a/.lib)的制作和使用:动态态库(.so/.dll)的制作和使用:本篇的csdn/github.io同步...2020-01-24 21:06:39227
0