随笔分类 -  linux

pkg-config的用法
摘要:pkg-config的用法pkg-configpkg-config程序是干什么用的?简单的说就是向用户向程序提供相应库的路径、版本号等信息的程序。譬如说我们运行以下命令:pkg-config 查看gcc的CFLAGS参数$pkg-config--libs --cflags opencv会显示如下信息:-I/usr/include/opencv -lcxcore -lcv -lhighgui -lcvaux各位看官,你看这不就是我们用gcc编译连接时CFLAGS的参数吗?因此当我们需要编译连接某个库时,我们只需要把上面那行加入gcc 的参数里面即可。这也是configure的作用,它会检查你需要 阅读全文

posted @ 2014-03-04 11:24 阳台 阅读(17257) 评论(0) 推荐(0)

Linux文件系统
摘要:在linux中一个重要的概念:一切都是文件。也就是说linux运行的核心就是对于文件系统的操作; linux或者说unix是怎么对文件进行操作的,系统是怎么记录文件的?当新建文件和目录的时候系统干了什么? 对于这些问题我觉得还是一步一步来: 首先得说说的是物理设备(磁盘:放置所有数据的地方) 大家肯 阅读全文

posted @ 2014-02-19 16:33 阳台 阅读(293) 评论(0) 推荐(0)

linux环境变量设置
摘要:bash shell 用一个称作环境变量(environment variables)的特性来存储有关shell会话和工作环境的信息;先用:echo $PATH 查看path是否含有:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin如果没有先用临时环境变量(重启后消失)#export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin然后就可以用那些命令了,进去修改永久环境变量:1。修改profile文件:(所有用户)#vi /et 阅读全文

posted @ 2014-02-19 10:04 阳台 阅读(200) 评论(0) 推荐(0)

linux下emacs安装
摘要:1.下载地址:http://ftp.gnu.org/pub/gnu/emacs/ 下载文件:emacs-24.2.tar.gz 步骤: 一、安装依赖文件: (先进入root:终端中输入 su -) yum -y groupinstall "Development Tools" yum -y install gtk+-devel gtk2-devel yum -y install libXpm-devel yum -y install libpng-devel yum -y install giflib-devel yum -y install libtiff-devel l 阅读全文

posted @ 2014-02-17 14:51 阳台 阅读(2062) 评论(0) 推荐(0)

linux 之进程间通信-------------InterProcess Communication
摘要:进程间通信至少可以通过传送打开文件来实现,不同的进程通过一个或多个文件来传递信息,事实上,在很多应用系统里,都使用了这种方法。但一般说来,进程间 通信(IPC:InterProcess Communication)不包括这种似乎比较低级的通信方法。Unix系统中实现进程间通信的方法很多,而且不幸的是,极少方法能在所有的Unix系 统中进行移植(唯一一种是半双工的管道,这也是最原始的一种通信方式)。而Linux作为一种新兴的操作系统,几乎支持所有的Unix下常用的进程间通信 方法:管道、消息队列、共享内存、信号量、套接口等等。 1、管道(pipe) 管道是进程间通信中最古老的方式,它包括... 阅读全文

posted @ 2014-01-24 11:42 阳台 阅读(795) 评论(0) 推荐(0)

linux核心之进程管理
摘要:进程就是处于执行期的程序(目标码存放在某中介质上)。进程并不仅仅局限于一段可执行程序代码,通常还包括其他资源,例如打开的文件,挂起的信号,内核内部数据,处理器状态,一个或多个具有内存映射的内存地址空间以及一个或多个执行线程,当然还包括用来存放全局变量的数据段等; 线程是在进程中活动的对象,每个线程都拥有一个独立的程序计数器、进程栈、一组进程寄存器。 内核调度的对象是线程, 而不是进程; 进程是处于执行期的程序以及相关的资源的总称;进程的另一个名字是任务(task)。Linux 内核通常把进程也叫做任务。内核把进程的列表存放在叫做任务队列(task list)的双向循环链表中; 链表中... 阅读全文

posted @ 2014-01-23 16:44 阳台 阅读(374) 评论(0) 推荐(0)

linux线程之pthread_join
摘要:pthread_join使一个线程等待另一个线程结束。 代码中如果没有pthread_join;主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了。加入pthread_join后,主线程会一直等待直到等待的线程结束自己才结束,使创建的线程有机会执行。 所有线程都有一... 阅读全文

posted @ 2014-01-22 14:09 阳台 阅读(10462) 评论(0) 推荐(1)

linux之vim配置
摘要:代码自动补全和代码跳转阅读,应该是作为程序员最常用的功能之一了,具体二者是指什么我就不解释了。微软的Visual Studio就是靠这两样必杀技牢牢占据着广大windows程序员的心(这里面要有强大的VS插件Visual Assistant X一份功劳)。。。但是Linux程序员其实更幸福,不花钱就能搞定这两大功能。从本质上说,这二者的实现都依赖于一样东西:tag。tag就是程序中的关键词,在C++中主要包括:变量、函数名、类名等。代码自动补全 实际上是 tag的匹配(例如,程序员输入cla时,由于存在class这个c++的tag,就可以用class匹配cla);代码跳转阅读实际上是tag的查 阅读全文

posted @ 2014-01-22 10:10 阳台 阅读(452) 评论(0) 推荐(0)

linux 虚拟文件系统----------Virtual File System VFSkky
摘要:在了解虚拟文件系统之前,必须先知道什么是 Kernal Space 与 User Space。 Kernal Space 与User Space 的差别,在于内存使用上安全机制的差异。 kernal执行时会占据一段系统的内存空间, 这一段内存空间便是Kernal Space. 所有用户是无法和kernal space 直接交互的。 在/proc/iomem文件中所记录的kernal地址, 可以在命令行中执行: cat /proc/iomem | moreUser Space 则强调,用户执行任何的程序所占用的内存部分, 对这些User Space 程序而言, 无法直接使用Kerna... 阅读全文

posted @ 2014-01-20 13:28 阳台 阅读(826) 评论(0) 推荐(0)

linux进程之fork 和 exec函数
摘要:---恢复内容开始---fork函数该函数是unix中派生新进程的唯一方法。 #include pid_t fork(void);返回: (调用它一次, 它返回 两次 , 它在调用进程(称为父进程)中返回一次, 返回值是新派生进程(称为子进程)的进程ID号 在子进程又返回一次,返回值为0。 因此,返回值本身告知当前进程是子进程还是父进程) 在子进程中为0, 在父进程中为子进程ID, 若出错则为-1;fork有两个典型的用法: 1.一个进程创建一个自身的副本,这样每个副本都 可以在另一个副本执行其他任务的同时处理各自的某个操作。 这是网络服务器的典型用法; 2. 一个进程... 阅读全文

posted @ 2014-01-18 14:40 阳台 阅读(7351) 评论(0) 推荐(1)

嵌入式系统 Boot Loader
摘要:基于嵌入式系统中的 OS 启动加载程序 ―― Boot Loader 的概念、软件设计的主要任务以及结构框架等内容。 阅读全文

posted @ 2014-01-09 15:55 阳台 阅读(225) 评论(0) 推荐(0)

Linux系统源码安装过程中的prefix选项
摘要:在linux和unix环境中,源码安装是最常用的软件安装方式,一些软件除了提供源码外,也提供各种发行版的二进制安装包(如基于redhat包管理工具的rpm包),但强烈建议使用源码安装方式。原因是:(1)没有类似rpm那样让人恼 火的包依赖关系,(2)源码安装灵活自由,适用于不同的平台,维护也十分方便。源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install),具体的安装方法一般作者都会给出文档,这里主要讨论配置(configure)。Configure是个可执行脚本,他有很多选项,使 用命令./configure –help输出周详的选项列表, 阅读全文

posted @ 2014-01-04 16:50 阳台 阅读(421) 评论(0) 推荐(0)

linux之screen命令
摘要:linux平台下想同时运行多个操作,执行多个程序或命令;命令行就一个,要想同时执行多个命令如何操作?一个screen命令即可;Centos操作系统默认没有安装screen;安装方法:Centos: yum install screen功能介绍: screen命令用于新建一个或多个“命令行“窗口”, 在新建的这个”窗口“中, 可以执行命令;每个”窗口“都是独立并行的;使用方法: 新建一个“控制台“窗口”: screen -S 控制台窗口名 控制台窗口名是自己定义的; 回车后便进入了这个新建的控制台。随后可以在这个控制台中执行命令,如tar、du等;保存“控制台”处于运行状态... 阅读全文

posted @ 2013-12-25 10:09 阳台 阅读(282) 评论(0) 推荐(0)

配置vim之插件
摘要:涉及linux平台下ctags, taglist插件ctags是一个用于产生代码索引文件的插件,它产生的索引可以帮助我们更快的定位到特定位置。ctags支持很多语言,比如java, c, c++, python, perl, php, ruby, scheme, tcl, vim, yacc, bash/kron shell/zsh, cobol, awk, asp, lisp, pascal等等,几乎流行的语言全都支持。1.首先yum install ctags可以非常方便的安装ctags组件2.taglist是vim的一个插件,你可以到vim的官网的插件页找一找,下载下来。3.安装tagl 阅读全文

posted @ 2013-12-24 09:39 阳台 阅读(496) 评论(0) 推荐(0)

GDB调试之core文件(如何定位到Segment fault)
摘要:core dump又叫核心转储,当程序运行过程中发生异常,程序异常退出时,由操作系统把程序当前的内存状况存储在一个core文件中,叫core dump。(内部实现是:linux系统中内存越界会收到SIGEGV信号,然后就会core dump) 在程序运行过程中,有的时候我们会遇到Segment... 阅读全文

posted @ 2013-12-23 17:00 阳台 阅读(1052) 评论(0) 推荐(0)

makefile之cmake入门
摘要:cmake是一款生成makefile的软件;在生成makefile之前,首先是写一个CMakeLists.txt文件;以下为典型例子: 先看目录tree, 在test文件夹中有:include目录, source目录, 以及main.c source目录下有afile.c, bfile.c include目录下有temp.h afile.c中: #include "../include/temp.h"#include void func_a(){ printf("this is func_a test\n");} ... 阅读全文

posted @ 2013-12-23 16:39 阳台 阅读(641) 评论(0) 推荐(0)

导航