自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Huangxiang6的博客

刚开始工作,记录平时学习和困惑的内容,稳步成长。

  • 博客(25)
  • 资源 (11)
  • 收藏
  • 关注

原创 两种MQTT协议可视化调试工具

两种MQTT协议可视化调试工具一、MQTT技术背景MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一个基于客户端-服务器的消息发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上 ,MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开...

2019-04-29 09:50:59 33742 6

原创 strace工具使用手册

strace工具使用手册一、说明​ Strace是Linux中一个调试和跟踪工具。它可以接管被跟踪进程执行的系统调用和收到的信号。然后把每一个执行的系统调用的名字,参数和返回值打印出来。可以通过strace找到问题出现在user层还是kernel层。strace 显示这些调用的参数并返回符号形式的值。strace 从内核接收信息,而且不需要以任何特殊的方式来构建内核。...

2018-07-31 09:03:38 5260 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 6501 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 1180

原创 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 534

原创 shell脚本学习总结

Shell脚本基础知识1.概念Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过

2020-07-01 16:24:17 402

原创 进程、线程和多线程

线程池&woker代码阅读1.进程(process)进程就是一段程序的执行过程。 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。①进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆

2020-07-01 16:23:50 593

原创 RPC远程过程调用设计分析

RPC远程过程调用设计分析一、基础​ RPC 的全称是 Remote Procedure Call 是一种进程间通信方式。 它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。即程序员无论是调用本地的还是远程的函数,本质上编写的调用代码基本相同。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cw0NAqyF-1592469600203)(C:\Users\HUANGX~1\AppData\Local\Temp

2020-07-01 16:23:22 380

原创 Docker学习(一)概念

DockerDocker 是一种开源技术,也是当前最广为人知的、用于部署和管理 Linux 容器的项目和方法。Docker 技术使用 Linux 内核和内核功能(例如 Cgroups 和 namespaces)来分隔进程,以便各进程相互独立运行。这种独立性正是采用容器的目的所在;它可以独立运行多种进程、多个应用程序,更加充分地发挥基础设施的作用,同时保持各个独立系统的安全性。Docker中的容器就是将应用及其所依赖运行环境的完整文件系统打成一个包:包括所需代码,运行库,系

2020-07-01 16:22:03 609

原创 Docker学习(二)进阶

Docker进阶Dockerfile是应用一系列自定义的命令和格式构成文本文件从而简化构建镜像的过程。尽量将Dockerfile放在空目录中,防止向docker deamon 发送过多无用大文件。不方便的话就写个.dockerignore文件。一个容器配置一个运行环境,完成一件特定的工作。可以类比函数的思想,一个函数只实现一个功能。这样做可以使镜像更小,逻辑性更强,有利于可读性。尽量最小化镜像的层数。CMD和ENTRYPOINT指令都是用来指定开始运行的程序,他们都有两种语法:CMD &lt

2020-07-01 16:20:52 812

原创 未定义的引用错误

在编译工程时出现:/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 411

原创 Makefile工程文件 编写规范

Makefile编写学习记录一.基本规则target:dependencies system command(s)目标文件(可以是Object File,也可以是执行文件 ):依赖文件(tab缩进)产生目标文件的命令Makefile $@, $^, $< 为自动变量$@ 表示编译过程中生成的目标文件$^ 表示所有的依赖文件的名字,名字间用空格隔开$< 表示第一个依赖文件名$? 表示比目标还要新的依赖文件列表1.变量使用规范:在Makefile中要定义一系列的

2020-07-01 15:57:40 972

原创 jerasure纠删

编码引擎评判标准以下几个关键指标可以对编码引擎性能进行分析:1、高编/解码速度;2、参数可配置;3、编码速度稳定性;4、代码简洁、稳定;5、降低修复开销等。一个可配置参数的编码引擎可以根据数据的冷热程度和数据重要程度选择不同的编码系数而不需要改动引擎本身,这大大降低了后续的开发和维护所需要的精力。比如可靠性要求高的数据可以选择更多冗余。数据恢复和更新代价高,因此常常针对只读数据,或者冷数据。Erasure Code 参数说明用法:./encoder ‘data/test.rar’ k

2020-05-27 15:06:37 751

转载 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 5213 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 828

原创 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 2978 3

原创 docker构建frp通道

docker构建frp通道​ 实验环境是阿里云服务器和武汉局域网本地ubuntu之间建立frp内网穿透通道,之前用命令行的方式启动frp是可以正常转发端口的,现在使用docker镜像来启动frp容器,达到相同的目的,实验过程如下:首先需要构建server端和client端的docker镜像,编写dockerfile,指定容器运行命令。一、准备工作​ 选择基础镜像alpine,是一个面向安全...

2019-04-12 17:06:26 3592

原创 Source Insight 中查看函数跳转

jump to prototype是跳转到函数原型

2019-01-23 11:07:01 3378

原创 容器监测工具&资源限制命令

一、容器监控工具​ 监控对于基础架构非常重要,而容器的动态特征对监控有更高的要求。针对容器环境,有很多监控工具和方案,docker ps/top/stats 是docker原生的命令行监控工具,docker也提供了stats API,用户可以通过HTTP请求获取容器的状态信息。sysdig、cAdvisor/Heapster和Weave Scope是第三方的开源容器监控方案。docker co...

2018-12-03 10:23:13 762

原创 Linux的读写流原理

一.基于流的操作1.打开流#include &amp;lt;stdio.h&amp;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 953

原创 Linux编译连接原理

Linux编译链接原理1.一般流程一个C/C++文件要经过预处理(preprocessing)、编译(compilation)、汇编(assembly)、和连接(linking)才能变成可执行文件。①预处理就是将要包含(include)的文件插入原文件中、将宏定义展开、根据条件编译命令选择要使用的代码,最后将这些代码输出到一个“.i”文件中等待进一步处理。​ 1)预编译(生成.i文件)...

2018-12-03 10:17:37 773

原创 rootfs & bootfs & bootloader

文件系统 &amp;amp; bootloader一、文件系统​ 一个linux系统按启动顺序可以划分为:引导加载程序、内核、文件系统、应用程序。​ 文件系统可以通俗的理解为管理文件存放位置的管家,不同的操作系统有不同的文件系统。Linux中一般使用EXT2格式的文件系统,(EXT3/EXT4增加了日志功能)是一种索引式(inode)文件系统,不需要像U盘那样经常磁盘重组。resize2fs命令可...

2018-12-03 10:13:39 5779 4

原创 Shell脚本基础知识学习记录

Shell脚本基础知识#!/bin/bash #表示该脚本使用后面指定的解释器/bin/bash解释执行echo "Hello World" #脚本功能1.概念Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批...

2018-12-03 09:58:50 359

原创 信号量semaphore

信号&amp;信号量semaphore信号是事件发生时对进程的通知机制。有时可称之为软件中断。信号与硬件中断的相似之处在于打断了程序执行的正常流程。针对每个信号,都定义了一个唯一的(小)整数,从1开始顺序展开。信号分为两大类:一组用于内核向进程通知事件,构成传统或者标准信号。Linux标准信号的编号范围为1~31。另一组由实时信号构成。信号到达后,进程视具体信号可以执行以下操作:...

2018-12-03 09:57:25 822

原创 使用Makefile编译不同平台目标文件方法

使用Makefile编译不同平台目标文件方法一、源码autoconf、automake生成软件包1、基础概念configure.in 这是最重要的文件,整个安装过程都靠它来主导。 Makefile.am automake会根据它来生成Makefile.in,再由./configure 把Makefile.in变成最终的Makefile,一般来说在顶级目录和各个子目录都应该有一个Ma...

2018-07-30 20:38:59 4888

纠删码源码包Jerasure-1.2.zip

Jerasure 经典纠删算法源码包,直接make 编译,有例程可以试一试效果。

2019-09-26

C语言项目实践

压缩包中含有60个C语言项目源码,有注释,可以自己学习。《UDP传输系统源码》《超市管理系统》《火车票订票管理源码》《万年历源码》等

2019-04-24

cookie机制

本文档描述了在http通信过程中,cookie保存会话的机制原理。

2019-03-08

harbor仓库安装包

VMware中国社区团队维护的harbor镜像仓库安装包,需要的朋友请下载哦

2019-01-29

docker容器与容器云

基于Docker 1.10和Kubernetes 1.2全面更新 一本书讲透Docker和Kubernetes 从源码层面深度解析Docker核心原理 Kubernetes源码完全解读 *实践 广泛涵盖Docker高级实践技巧 全面梳理主流容器云技术架构方法

2019-01-28

《docker开发实践》最新版

《Docker开发实践》详细介绍高级容器引擎Docker的各方面技术,从概念介绍到实战,讨论docker的内容,包含基础概念如:镜像,容器,仓库;从实战中讲解docker的数据管理,网络管理,安全管理;最后,探讨docker的底层相关技术和基于docker的最新技术。

2019-01-09

UNIX环境高级编程(附例程代码)

本书是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的更新版。本书在保持了前一版的风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和目录、标准I/O库、系统数据文件和信息、进程环境、进程控制、进程关系、信号、线程、线程控制、守护进程、各种I/O、进程间通信、网络IPC、伪终端等方面的内容,还在此基础上介绍了多个应用示例,包括如何创建数据库函数库以及如何与网络打印机通信等。此外,还在附录中给出了函数原型和部分习题的答案。

2018-12-03

职场电子邮件礼仪

非常实用的职场电子邮件礼仪指导,如何正确地跟上级领导、同事、下属发送电子邮件。

2018-12-03

嵌入式linux开发教程(全册)

嵌入式Linux应用程序开发标准教程这本书,在业内有着非常多的赞美,非常适合嵌入式初学者在嵌入式Linux应用开发这一块的学习,非常系统全面的介绍。详细讲解了Linux系统的基本知识、Linux系统的安装、Linux图形界面、Linux字符界面、Linux常用命令、Linux应用软件、Linux系统启动、Linux系统管理和维护、Linux服务器配置、shell编程、Linux C语言基础、Linux程序编译和调试维护等内容。

2018-08-24

strace跟踪工具使用手册

非常详细地介绍了strace系统调用跟踪工具的使用方法,列举了工程实践中常遇到的调试手段和解决方法。

2018-08-22

空空如也

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

TA关注的人

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