<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[arag2009的学习专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/arag2009</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; arag2009]]></copyright><item><title><![CDATA[Linux进程间通信——使用匿名管道]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78732357</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78732357</guid><author>arag2009</author><pubDate>Wed, 06 Dec 2017 16:48:54 +0800</pubDate><description><![CDATA[本文介绍另一种进程间通信的方式——匿名管道，通过它进程间可以交换更多有用的数据。




一、什么是管道

如果你使用过Linux的命令，那么对于管道这个名词你一定不会感觉到陌生，因为我们通常通过符号“|"来使用管道，但是管理的真正定义是什么呢？管道是一个进程连接数据流到另一个进程的通道，它通常是用作把一个进程的输出通过管道连接到另一个进程的输入。




举个例子，在sh]]></description><category></category></item><item><title><![CDATA[Linux进程间通信——使用信号]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78683315</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78683315</guid><author>arag2009</author><pubDate>Fri, 01 Dec 2017 09:36:46 +0800</pubDate><description><![CDATA[from:http://blog.youkuaiyun.com/ljianhui/article/details/10128731
一、什么是信号

用过Windows的我们都知道，当我们无法正常结束一个程序时，可以用任务管理器强制结束这个进程，但这其实是怎么实现的呢？同样的功能在Linux上是通过生成信号和捕获信号来实现的，运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。]]></description><category></category></item><item><title><![CDATA[Linux进程间通信——使用信号量]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78667407</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78667407</guid><author>arag2009</author><pubDate>Wed, 29 Nov 2017 17:00:28 +0800</pubDate><description><![CDATA[这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来，信号与信号量是不同的两种事物。有关信号的更多内容，可以阅读我的另一篇文章：Linux进程间通信——使用信号。下面就进入信号量的讲解。




一、什么是信号量

为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题，我们需要一种方法，它可以通过生成并使用令牌来授权，在任一时刻只能有一个执行]]></description><category></category></item><item><title><![CDATA[Linux进程间通信——使用共享内存]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78657039</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78657039</guid><author>arag2009</author><pubDate>Tue, 28 Nov 2017 17:07:15 +0800</pubDate><description><![CDATA[一、什么是共享内存

顾名思义，共享内存就是允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式。不同进程之间共享的内存通常安排为同一段物理内存。进程可以将同一段共享内存连接到它们自己的地址空间中，所有进程都可以访问共享内存中的地址，就好像它们是由用C语言函数malloc]]></description><category></category></item><item><title><![CDATA[wayland进程间调用]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78538205</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78538205</guid><author>arag2009</author><pubDate>Wed, 15 Nov 2017 10:36:32 +0800</pubDate><description><![CDATA[一、基本工作流程
以Weston自带的例程simple-shm为例，先感受一下Client如何通过Wayland协议和Compositor通信。
1. 连接Server，绑定服务
1)   display->display = wl_display_connect()// 通过socket建立与Server端的连接，得到wl_display。它即代表了Server端的display资源，同时]]></description><category></category></item><item><title><![CDATA[hash算法总结]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78475503</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78475503</guid><author>arag2009</author><pubDate>Wed, 08 Nov 2017 10:12:49 +0800</pubDate><description><![CDATA[一Hash简介
概念：
把任意长度的输入，通过hash算法，变换成固定长度的输出，该输出就是散列值。这种转换是一种压缩映射，也就是，散列值的空间通常远小于输入的空间，不同的输入可能会散列成相同的输出。
哈希表：
若结构中存在和关键字K相等的记录，则必定在f(K)的存储位置上。由此，不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function)，按这个思想建立的表为哈]]></description><category></category></item><item><title><![CDATA[Wayland(2):Wayland应运而生]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78469041</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78469041</guid><author>arag2009</author><pubDate>Tue, 07 Nov 2017 16:10:46 +0800</pubDate><description><![CDATA[话说在上篇（揭开Wayland的面纱（一）：X
 Window的前生今世）中我介绍了一些X Window的历史及发展，还没有提到Wayland本身，不少人已经等不及了。不过，介绍这些是有必要的，毕竟要知道X Window的一些知识，才能明白为什么会有Wayland这个东西。

在本篇正式开始介绍Wayland之前，让我们先回到2008年11月4日，也就是整整两年前，我当时在中文领域第一时间报]]></description><category></category></item><item><title><![CDATA[Wayland(1)：X Window的前生今世]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78468698</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78468698</guid><author>arag2009</author><pubDate>Tue, 07 Nov 2017 15:52:13 +0800</pubDate><description><![CDATA[简介

Wayland是什么呢？它是X Window？还是要取代X Window？它的优势在哪里？Linux桌面/移动会因此有什么变化？在本篇中，我将回顾历史，展望未来，通过简易的文字，来先回顾一下X Window，从而继续解答Wayland。

古老的X Window和现代的桌面技术

X Window在1984年由MIT研发，它的设计哲学之一是：提供机制，而非策略。举个最简单的例子]]></description><category></category></item><item><title><![CDATA[xserver相关知识汇总]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78465854</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78465854</guid><author>arag2009</author><pubDate>Tue, 07 Nov 2017 11:13:55 +0800</pubDate><description><![CDATA[本文主要是从以下几个方面介绍xorg-xserver 相关的知识 

1.linux系统图形界面框架

2.xserver 和x client启动过程

3.图形2d，3d加速原理简介

4.xserver主分支代码解析。

5.xserver,xclient协议简介

6.一个基于Xlib的简单例子解析

7.radeon驱动初始化代码解析.



1.lin]]></description><category></category></item><item><title><![CDATA[用docker创建ubuntu VNC桌面]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78465214</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78465214</guid><author>arag2009</author><pubDate>Tue, 07 Nov 2017 10:53:37 +0800</pubDate><description><![CDATA[docker-ubuntu-vnc-desktop
1.image 地址
https://github.com/fcwu/docker-ubuntu-vnc-desktop
该image提供了Ubuntu 16.04 LXD的桌面并可以接受VNC的连接

2.运行docker image并映射端口

docker run -it --rm -p 6080:80 dorowu/ubun]]></description><category></category></item><item><title><![CDATA[搭建nvidia-docker运行环境-Ubutu16.04]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78464275</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78464275</guid><author>arag2009</author><pubDate>Tue, 07 Nov 2017 09:41:34 +0800</pubDate><description><![CDATA[docker一般服务于基于cpu的应用，而如果是gpu的话，就要用到nvidia-docker，nvidia-docker是在docker上做了一层封装，通过nvidia-docker-plugin封装之后调用docker。
	nvidia-docker的运行需要基于特定的硬件环境，首先需要安装nvidia driver，而docker容器并不直接支持nvidia gpu。为了解决这个问题，最早的处理办法是在容器内部，全部重新安装nvidia driver，然后通过设置相应的设备参数来启动container]]></description><category></category></item><item><title><![CDATA[分治法-二分搜索]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78458748</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78458748</guid><author>arag2009</author><pubDate>Mon, 06 Nov 2017 16:11:35 +0800</pubDate><description><![CDATA[二分搜索技术
给定已按升序排好序的n个元素a[0:n-1]，现要在这n个元素中找出一特定元素x。
解析：
(1)该问题的规模缩小到一定的程度就可以容易地解决；
(2)该问题可以分解为若干个规模较小的相同问题；
(3)分解出的子问题的解可以合并为原问题的解；
(4)分解出的各个子问题是相互独立的。]]></description><category></category></item><item><title><![CDATA[递归思想]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78458717</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78458717</guid><author>arag2009</author><pubDate>Mon, 06 Nov 2017 16:09:17 +0800</pubDate><description><![CDATA[递归（recursion）是一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法。
递归算法设计，就是把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题，在逐步求解小问题后，再返回（回溯）得到大问题的解。递归算法设计的关键在于找出递归关系（方程）和递归终止（边界）条件。递归关系就是使问题向边界条件转化的规则。递归关系必须能使问题越来越简单，规模越来越小。递归边界条件就是所描述问题最简单的、可解的情况，它本身不再使用递归的定义]]></description><category></category></item><item><title><![CDATA[特征点检测：FAST and SIFT]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78437252</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78437252</guid><author>arag2009</author><pubDate>Fri, 03 Nov 2017 17:11:47 +0800</pubDate><description><![CDATA[特征点检测和匹配是计算机视觉中一个很有用的技术。在物体检测，视觉跟踪，三维常年关键等领域都有很广泛的应用。这一次先介绍特征点检测的一种方法——FAST（features from accelerated segment test）。很多传统的算法都很耗时，而且特征点检测算法只是很多复杂图像处理里中的第一步，得不偿失。FAST特征点检测是公认的比较快速的特征点检测方法，只利用周围像素比较的信息就可以得到特征点，简单，有效。
FAST特征检测算法来源于corner的定义，这个定义基于特征点周围的图像灰度值，检测]]></description><category></category></item><item><title><![CDATA[视觉SLAM14讲学习笔记]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78424240</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78424240</guid><author>arag2009</author><pubDate>Thu, 02 Nov 2017 14:11:12 +0800</pubDate><description><![CDATA[SLAM特指：搭载传感器的主体，在没有环境先验的信息情况下，在运动过程中建立环境模型，通过估计自己的运动。 
SLAM的目的是解决两个问题：1、定位 2、地图构建 
	也就是说，要一边估计出传感器自身的位置，一边要建立周围环境的模型 
最终的目标：实时地，在没有先验知识的情况下进行定位和地图重建]]></description><category></category></item><item><title><![CDATA[Ubutu搭建ORB_SLAM运行环境]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78413916</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78413916</guid><author>arag2009</author><pubDate>Wed, 01 Nov 2017 14:48:28 +0800</pubDate><description><![CDATA[Ubutu搭建ORB_SLAM运行环境
1.安装Pangolin
2.安装OpenCV
3.安装Eigen（矩阵及线性代数处理工具）
4.安装BLAS和LAPACK库（求解线性方程组、线性最小二乘问题）]]></description><category></category></item><item><title><![CDATA[OpenGL与OpenCV实现增强现实小程序]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78393052</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78393052</guid><author>arag2009</author><pubDate>Mon, 30 Oct 2017 14:59:15 +0800</pubDate><description><![CDATA[该程序通过OpenCV实现对Marker的识别和定位，然后通过OpenGL将虚拟物体叠加到摄像头图像下，实现增强现实]]></description><category></category></item><item><title><![CDATA[SLAM相关概念及ORB算法步骤总结]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78390356</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78390356</guid><author>arag2009</author><pubDate>Mon, 30 Oct 2017 10:03:17 +0800</pubDate><description><![CDATA[ORB-SLAM的优点和缺点
ORB算法步骤
单目SLAM
ORB VS PTAM]]></description><category></category></item><item><title><![CDATA[《视觉SLAM十四讲》内容摘要]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78390320</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78390320</guid><author>arag2009</author><pubDate>Mon, 30 Oct 2017 10:00:09 +0800</pubDate><description><![CDATA[SLAM特指：特指搭载传感器的主体，在没有环境先验的信息情况下，在运动过程中建立环境模型，通过估计自己的运动。 
SLAM的目的是解决两个问题：1、定位 2、地图构建 
也就是说，要一边估计出传感器自身的位置，一边要建立周围环境的模型 
最终的目标：实时地，在没有先验知识的情况下进行定位和地图重建。 
当相机作为传感器的时候，我们要做的就是根据一张张连续运动的图像，从中估计出相机的运动以及周围环境中的情况]]></description><category></category></item><item><title><![CDATA[算法学习(3)：动态规划DP]]></title><link>https://blog.youkuaiyun.com/arag2009/article/details/78375637</link><guid>https://blog.youkuaiyun.com/arag2009/article/details/78375637</guid><author>arag2009</author><pubDate>Sat, 28 Oct 2017 14:34:26 +0800</pubDate><description><![CDATA[动态规划过程：
  每次决策依赖于当前状态，又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的，所以，这种多阶段最优化决策解决问题的过程就称为动态规划]]></description><category></category></item></channel></rss>