- 博客(25)
- 资源 (11)
- 收藏
- 关注
原创 两种MQTT协议可视化调试工具
两种MQTT协议可视化调试工具一、MQTT技术背景MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一个基于客户端-服务器的消息发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上 ,MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开...
2019-04-29 09:50:59 36188 6
原创 strace工具使用手册
strace工具使用手册一、说明 Strace是Linux中一个调试和跟踪工具。它可以接管被跟踪进程执行的系统调用和收到的信号。然后把每一个执行的系统调用的名字,参数和返回值打印出来。可以通过strace找到问题出现在user层还是kernel层。strace 显示这些调用的参数并返回符号形式的值。strace 从内核接收信息,而且不需要以任何特殊的方式来构建内核。...
2018-07-31 09:03:38 5390 8
原创 systemd.network网络配置
译者:金步国描述网络配置的操作由 systemd-networkd.service(8) 执行。注意,网络设备的Network文件必须以 .network 作为后缀名,否则将被忽略。 一旦与Network文件匹配的网卡出现,对应的Network文件就会立即生效。Network文件分别位于: 系统网络目录(/usr/lib/systemd/network)、 运行时网络目录(/run/systemd/network)、 本机网络目录(/etc/systemd/network)。 所有的Network文
2021-10-26 13:55:45 6946 2
原创 交叉编译gstreamer1.12
交叉编译gstreamer1.12一、下载源码部署环境获取源码首先编译依赖库1.zlib2.libffi3.glib编译gstreamer一、下载源码部署环境编译过程需要一些ubuntu的系统工具,首先安装,比如libtool是一个编译脚本解释器,负责处理lo 和 la文件的链接;其他有的我也不确定需不需要。apt-get install bison flex libusb-1.0-0-dev libgudev-1.0-dev libxv-devapt-get install build-es
2021-06-07 09:13:30 1262
原创 Docker学习(三) swarm 与tutk集群
Docker Swarmdocker集群概念群集是一组运行docker的设备组成,其中部分机器是集群管理机(Swarm Manager) ,其他的是工作机(Worker)。群集中的机器可以是物理机或虚拟机。加入群集后,它们被统称节点(Node)。Docker Swarm是docker公司发布的一套用来管理docker集群的工具(本质上也是一个docker镜像),可以将整个集群在逻辑上以一个单一的Docker终端的形式公开给用户。Swarm 使用标准的 Docker API 接口作为其前端访问入口,与
2020-07-01 16:24:50 590
原创 shell脚本学习总结
Shell脚本基础知识1.概念Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过
2020-07-01 16:24:17 445
原创 进程、线程和多线程
线程池&woker代码阅读1.进程(process)进程就是一段程序的执行过程。 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。①进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆
2020-07-01 16:23:50 639
原创 RPC远程过程调用设计分析
RPC远程过程调用设计分析一、基础 RPC 的全称是 Remote Procedure Call 是一种进程间通信方式。 它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cw0NAqyF-1592469600203)(C:\Users\HUANGX~1\AppData\Local\Temp
2020-07-01 16:23:22 441
原创 Docker学习(一)概念
DockerDocker 是一种开源技术,也是当前最广为人知的、用于部署和管理 Linux 容器的项目和方法。Docker 技术使用 Linux 内核和内核功能(例如 Cgroups 和 namespaces)来分隔进程,以便各进程相互独立运行。这种独立性正是采用容器的目的所在;它可以独立运行多种进程、多个应用程序,更加充分地发挥基础设施的作用,同时保持各个独立系统的安全性。Docker中的容器就是将应用及其所依赖运行环境的完整文件系统打成一个包:包括所需代码,运行库,系
2020-07-01 16:22:03 674
原创 Docker学习(二)进阶
Docker进阶Dockerfile是应用一系列自定义的命令和格式构成文本文件从而简化构建镜像的过程。尽量将Dockerfile放在空目录中,防止向docker deamon 发送过多无用大文件。不方便的话就写个.dockerignore文件。一个容器配置一个运行环境,完成一件特定的工作。可以类比函数的思想,一个函数只实现一个功能。这样做可以使镜像更小,逻辑性更强,有利于可读性。尽量最小化镜像的层数。CMD和ENTRYPOINT指令都是用来指定开始运行的程序,他们都有两种语法:CMD <
2020-07-01 16:20:52 904
原创 未定义的引用错误
在编译工程时出现:/librestapi.a(rest_harbor.o):在函数‘rest_harbor_get_sysinfo’中: /rest_harbor.c:145:对‘harbor_get_sysinfo’未定义的引用 collect2: error: ld returned 1 exit status但是我包含了实现的头文件。...
2020-07-01 16:11:06 459
原创 Makefile工程文件 编写规范
Makefile编写学习记录一.基本规则target:dependencies system command(s)目标文件(可以是Object File,也可以是执行文件 ):依赖文件(tab缩进)产生目标文件的命令Makefile $@, $^, $< 为自动变量$@ 表示编译过程中生成的目标文件$^ 表示所有的依赖文件的名字,名字间用空格隔开$< 表示第一个依赖文件名$? 表示比目标还要新的依赖文件列表1.变量使用规范:在Makefile中要定义一系列的
2020-07-01 15:57:40 1016
原创 jerasure纠删
编码引擎评判标准以下几个关键指标可以对编码引擎性能进行分析:1、高编/解码速度;2、参数可配置;3、编码速度稳定性;4、代码简洁、稳定;5、降低修复开销等。一个可配置参数的编码引擎可以根据数据的冷热程度和数据重要程度选择不同的编码系数而不需要改动引擎本身,这大大降低了后续的开发和维护所需要的精力。比如可靠性要求高的数据可以选择更多冗余。数据恢复和更新代价高,因此常常针对只读数据,或者冷数据。Erasure Code 参数说明用法:./encoder ‘data/test.rar’ k
2020-05-27 15:06:37 808
转载 gcc编译选项–build、–host和–target
在交叉编译configure时,通常会需要设置–build、–host和–target选项。各个选项的含义如下:–build:编译所用的机器的平台。–host:编译出的代码运行的平台。–target:编译出来的工具链生成的代码的运行平台。这个选项不常用,一般只在编译gcc、ld等工具链的过程中用到。在不涉及到交叉编译的时候,–build、–host、–target是一样的,不需要特别设置。交叉编译的时候,比如需要在x86平台编译arm程序,就需要设置–build和–host选项。通常,本机上的gc
2020-05-18 15:28:27 5618 5
转载 ipfs的御用包管理器 gx 入门指南(转载)
##一、何为 gx源码位置:https://github.com/whyrusleeping/gx官方称其为一个通用包管理器,构建于 IPFS 之上,gx 最初的设计灵感来自 nodejs 的 npm ,用来处理 golang 项目中的依赖包。如果从源码来欣赏 IPFS 并且心存二次开发的愿望,那么对 gx 的掌握还是非常有必要的。本人在年初学习 IPFS (v0.4.12) 时并没有重视 ...
2020-04-21 11:26:28 951
原创 golang for循环中声明变量
##golang for循环中声明变量 与C语言不同package mainimport ( "fmt")func main() { for i := 0; i < 5; i++ { var v int fmt.Println("v ", v) v = 5 }}你们先猜一猜打印什么?再看看C循环:#include <stdio.h>in...
2019-11-26 18:19:36 3043 3
原创 docker构建frp通道
docker构建frp通道 实验环境是阿里云服务器和武汉局域网本地ubuntu之间建立frp内网穿透通道,之前用命令行的方式启动frp是可以正常转发端口的,现在使用docker镜像来启动frp容器,达到相同的目的,实验过程如下:首先需要构建server端和client端的docker镜像,编写dockerfile,指定容器运行命令。一、准备工作 选择基础镜像alpine,是一个面向安全...
2019-04-12 17:06:26 3670
原创 容器监测工具&资源限制命令
一、容器监控工具 监控对于基础架构非常重要,而容器的动态特征对监控有更高的要求。针对容器环境,有很多监控工具和方案,docker ps/top/stats 是docker原生的命令行监控工具,docker也提供了stats API,用户可以通过HTTP请求获取容器的状态信息。sysdig、cAdvisor/Heapster和Weave Scope是第三方的开源容器监控方案。docker co...
2018-12-03 10:23:13 799
原创 Linux的读写流原理
一.基于流的操作1.打开流#include &lt;stdio.h&gt;FILE *fopen(const char *path, const char*mode);FILE *fdopen(int fd, const char *mode);FILE *freopen(const char *path, const char*mode, FILE *stream);这三个函...
2018-12-03 10:19:56 988
原创 Linux编译连接原理
Linux编译链接原理1.一般流程一个C/C++文件要经过预处理(preprocessing)、编译(compilation)、汇编(assembly)、和连接(linking)才能变成可执行文件。①预处理就是将要包含(include)的文件插入原文件中、将宏定义展开、根据条件编译命令选择要使用的代码,最后将这些代码输出到一个“.i”文件中等待进一步处理。 1)预编译(生成.i文件)...
2018-12-03 10:17:37 810
原创 rootfs & bootfs & bootloader
文件系统 &amp; bootloader一、文件系统 一个linux系统按启动顺序可以划分为:引导加载程序、内核、文件系统、应用程序。 文件系统可以通俗的理解为管理文件存放位置的管家,不同的操作系统有不同的文件系统。Linux中一般使用EXT2格式的文件系统,(EXT3/EXT4增加了日志功能)是一种索引式(inode)文件系统,不需要像U盘那样经常磁盘重组。resize2fs命令可...
2018-12-03 10:13:39 5861 4
原创 Shell脚本基础知识学习记录
Shell脚本基础知识#!/bin/bash #表示该脚本使用后面指定的解释器/bin/bash解释执行echo "Hello World" #脚本功能1.概念Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批...
2018-12-03 09:58:50 387
原创 信号量semaphore
信号&信号量semaphore信号是事件发生时对进程的通知机制。有时可称之为软件中断。信号与硬件中断的相似之处在于打断了程序执行的正常流程。针对每个信号,都定义了一个唯一的(小)整数,从1开始顺序展开。信号分为两大类:一组用于内核向进程通知事件,构成传统或者标准信号。Linux标准信号的编号范围为1~31。另一组由实时信号构成。信号到达后,进程视具体信号可以执行以下操作:...
2018-12-03 09:57:25 865
原创 使用Makefile编译不同平台目标文件方法
使用Makefile编译不同平台目标文件方法一、源码autoconf、automake生成软件包1、基础概念configure.in 这是最重要的文件,整个安装过程都靠它来主导。 Makefile.am automake会根据它来生成Makefile.in,再由./configure 把Makefile.in变成最终的Makefile,一般来说在顶级目录和各个子目录都应该有一个Ma...
2018-07-30 20:38:59 5098
docker容器与容器云
2019-01-28
《docker开发实践》最新版
2019-01-09
UNIX环境高级编程(附例程代码)
2018-12-03
嵌入式linux开发教程(全册)
2018-08-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人