linux 应用编程
文章平均质量分 75
bugouyonggan
这个作者很懒,什么都没留下…
展开
-
用Eclipse和GDB构建ARM交叉编译和在线调试环境
我们在 Linux 主机中搭建我们的开发环境,使用 Ubuntu 10.04 LTS 为例。搭建应用开发环境安装 JREEclipse 依赖于Java 环境,所以必须先安装 JRE 或 JDK。安装 Eclipse 和 CDT去 Eclipse官网下载最新的Eclipse IDE。我们一般选择 C/C++ 版本(Eclip转载 2013-07-08 22:14:30 · 22629 阅读 · 1 评论 -
Disruptor一个开源的高效内存无锁队列
Disruptor一个开源的高效内存无锁队列Disruptor是LMAX公司开源的一个高效的内存无锁队列。这两天看了一下相关的设计文档和博客,下面尝试进行一下总结。第一部分。引子 谈到并发程序设计,有几个概念是避免不了的。1.锁 :锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,等待锁的线程会被挂起直至锁释放。在上下文切转载 2014-04-24 16:42:06 · 1038 阅读 · 0 评论 -
如何用正确的方法来写出质量好的软件的75条体会
如何用正确的方法来写出质量好的软件的75条体会你们的项目组使用源代码管理工具了么? 应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS。你们的项目组使用缺陷管理系统了么? 应该用。ClearQuest太复杂,我的推荐是BugZilla。你们的测试组还在用Word写测试用例么? 不要用Wor转载 2014-04-24 17:01:24 · 634 阅读 · 0 评论 -
Linux下进程信息的深入分析
这里我们主要介绍进程的状态,进程的状态可以通过/proc/PID/status来查看,也可以通过/proc/PID/stat来查看.如果说到工具大家用的最多的ps也可以看到进程的信息.这里我们通过/proc/PID/status来分析进程的信息.在2.6.18之后的内核,多了capibilty/cpusets等信息. 查看进程状态信息如下:more status Name:转载 2014-04-23 10:29:26 · 3684 阅读 · 0 评论 -
linux 进程占用内存查询
作者: 黄永兵/译 出处:51CTO.com 阅读提示:本文是为那些经常疑惑的人准备的,“为什么一个简单的KDE文本编辑器要占用25M内存?”导致大多数人认为许多Linux应用程序,特别是KDE或GNOME程序都象ps报告一样臃肿...【51CTO.com独家译文】本文是为那些经常疑惑的人准备的,“为什么一个简单的KDE文本编辑器要占用25M内存?”导致大多数人认为许多Linux应用程序,特别是K转载 2014-04-15 17:58:51 · 24203 阅读 · 0 评论 -
Linux环境下的编译,链接与库的使用
为什么使用ullib有时会出现 undefined reference error 的错误?为什么在动态链接库里ul_log会把日志输出到屏幕上?为什么用-static 编译有时候会报warning?我们在使用基础库或者第三方库的时候,经常遇到这样那样的问题,本文结合公司目前的主要环境,说明库的原理,使用的注意事项。从程序到可执行文件从hello world转载 2014-04-24 16:40:32 · 10403 阅读 · 0 评论 -
Disruptor一个开源的高效内存无锁队列
Disruptor是LMAX公司开源的一个高效的内存无锁队列。这两天看了一下相关的设计文档和博客,下面尝试进行一下总结。第一部分。引子 谈到并发程序设计,有几个概念是避免不了的。1.锁 :锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很转载 2014-04-24 16:33:47 · 4350 阅读 · 0 评论 -
八大网络安全开源框架
http://code.csdn.net/news/2819796能帮助构建、操作安全系统的开源项目多到数不清,尤其是随着对工具的安全监控和事件反应的要求不断加强的情况下,开源安全软件不得不提高自己的性能。下面为你介绍10款开源的安全软件。1. BroBro 是一款很强大的框架,用于网络分析和安全监控,它和常见的IDS有所不同。与通用的网络传输分析工转载 2014-05-21 16:19:05 · 2720 阅读 · 0 评论 -
解决/usr/bin/ld: cannot find -lxxx
问题:在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息:/usr/bin/ld: cannot find -lxxx 这些讯息会随着编译不同类型的source code 而有不同的结果出来如:/usr/bin/ld: cannot find -lc /usr/bin/ld: cannot find转载 2014-06-06 17:09:43 · 1239 阅读 · 0 评论 -
Ubuntu下 rsync同步文件实例
Rsync(remote synchronize) 是一个远程数据同步工具,可以使用“Rsync算法”同步本地和远程主机之间的文件。rsync的好处是只同步两个文件不同的部分,相同的部分不在传递。类似于增量备份,这使的在服务器传递备份文件或者同步文件,比起scp工具要省好多时间。OS:ubuntu server 10.04server:192.168.64.128client:原创 2014-03-24 17:03:15 · 16452 阅读 · 1 评论 -
linux代码段,数据段,BSS段, 堆,栈
linux代码段,数据段,BSS段, 堆,栈网上摘抄了一些,自己组织好了,以便参考 !!!! 进 程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉转载 2014-04-23 14:49:25 · 1284 阅读 · 0 评论 -
MD5加密技术
前几天,在看OpenVXI3.4的时候,偶然发现了几个奇怪的文件,那就是OpenVXI-3.4\src\cache下面的,base64.c,base64.h,md5.c,md5.h。既然有人把源代码给出来了,不妨花点时间看一下。感觉挺有意思,和大家分享一下。先来看看md5 MD5简介 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年转载 2014-04-23 09:46:34 · 3663 阅读 · 0 评论 -
Linux Socket编程(不限Linux)
“一切皆Socket!”话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。——有感于实际编程和开源项目研究。我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型转载 2013-07-01 21:49:36 · 1173 阅读 · 0 评论 -
串口应用编程
英文原文串口本身,标准和硬件 †串口是计算机上的串行通讯的物理接口。计算机历史上,串口曾经被广泛用于连接计算机和终端设备和各种外部设备。虽然以太网接口和USB接口也是以一个串行流进行数据传送的,但是串口连接通常特指那些与RS-232标准兼容的硬件或者调制解调器的接口。虽然现在在很多个人计算机上,原来用以连接外部设备的串口已经广泛的被USB和Firewire替代;而原来用以连接网络的转载 2013-10-10 13:17:55 · 1315 阅读 · 0 评论 -
shell命令输出到变量
今天用脚本来获取进程id,并给相应进程发送一个信号,shell命令获得进程id的方法有三种:1. ps -A |grep "cmdname"| awk '{print $1}'2. pidof "cmdname"3.pgrep "cmdname"注意,这里cmdname的双引号不要。这三种在bash和busybox ash里面的运行结果稍原创 2013-10-17 18:40:27 · 7693 阅读 · 0 评论 -
linux c 文件的基本操作
用于需要把一些程序中的数据存储到文件中(只所以不用sqlite数据库,是因为在嵌入式设备上空间太小了,我们的数据有很少)。要求第一行要是写入的内容行数,从第二行起才是要存的数据,每条数据放一行。在用fputs()函数存放第一条内容后,发现不会自动换行,并且我写入fputs(“\n”,fd),也不行,但是要继续用fputs写入内容在写换行符就可以了。为什么第一行不能换行呢?在写完第一行后,用原创 2013-12-25 14:36:40 · 3665 阅读 · 0 评论 -
使用 watchdog 构建高可用性的 Linux 系统及应用
Linux 在不同领域如电信、终端便携设备等得到广泛应用,不同领域的应用对 Linux系统也提出相应的需求。Carrier Grade Linux 是 OSDL(Open Source Development Lab)发布的电信级 Linux 的标准,在系统可用性这部分指出 Linux 必须支持 watchdog 机制。Linux 内核从 1.3.51 版本开使提供硬件、软件 watchdog 驱转载 2014-01-20 17:18:25 · 856 阅读 · 0 评论 -
P2P原理的解释与实现
关于采用UDP协议进行打洞以进行P2P会话的原理,我本来想写一篇文章作说明,但是现在已经有一篇文章把原理性的东西解释清楚了,我在这里不再作这部分的重复,可以参见这里:P2P 之 UDP穿透NAT的原理与实现(附源代码)--http://www.cnpaf.net/Class/hack/0512182034513804825.htm下面解释一下上面的文章中没有提及或者说我觉得比较欠缺的地转载 2014-02-13 14:12:07 · 23675 阅读 · 4 评论 -
嵌入式Linux开发系列- CDT远程调
最近在做一个arm linux下(for mini2440, mini6410) 的程序时发现,在PC上运行得非常好的程序,到了ARM板上就BUG了。为了找出ARM平台上的问题,必须实行调试。然而直接使用 gdb for arm是不明智的,一来gdb不容易编译成功,二来没有IDE的支持,调试效率很高。为此,使用远程调试是一个很好的办法。为了实现CDT远程调试,必须满足以下几个条件:1、转载 2014-02-18 16:10:47 · 1188 阅读 · 0 评论 -
重定向问题
除了人工的分析之外,最简单最直接的调试方法要算printf了。不过,我们这里推荐使用的并不是初学C语言时使用的函数int printf(const char *format, ...),而是稍微复杂一点的fprintf()函数,因为它更方便我们之后重定向错误输出信息到指定的设备。fprintf()函数的原型如下:int fprintf(FILE *stream, con转载 2014-02-18 15:32:32 · 3166 阅读 · 0 评论 -
几十种编程语言的快速入门教程
这家网站的名称是 Learn X in Y minutes,包括了几十种编程语言的快速学习入门教程。打开几种编程语言来看了一下,教程的形式大同小异。以代码加注释的方式,来具体介绍语言的特性。其中含中文版的教程包括:brainfuckcc#clojureclojure macroscoffeescriptCommon LispcssdartelispelixirerlangGoHas转载 2014-10-28 14:07:49 · 2384 阅读 · 1 评论