红联Linux门户

Linux帮助
  • 在Linux上搭建Mule开发环境

    2015-01-29 - 选择Mule 在Linux上搭建Mule开发环境 运行Mule例子 一、选择Mule+Maven 想找一个开源的SOA平台,以为是初学,文档要齐全一些。开始找了apache的servicemix,开源社区的文档很少,它的enterprise版本fuse-ESB官网上都是视频教程,琢磨了很久,没有搞定。 Mule...

  • Linux内核大讲堂系列

    2015-01-28 - 其实我也是过来人,深知没有接触过内核开发的同志在无人指导的情况下独自学习Linux设备驱动的感受。都是买书,看BLOG,自已调个小程序,很难有同志能够坚持下去,市面上的书籍也不是说写的不好,只是大家的基础都不一样,另外我感觉有一点就是那些书籍在看了...

  • Linux系统中C语言计时器的使用

    2015-01-28 - 在Linux中用C语言计时可以用很多方法。 1. 如果是想使用秒级别的技术,可用使用C语言库time.h自带的clock()进行计时。如: #include iostream #include time.h using namespace std; int main() { clock_t start = clock(); //do some process here clock_t...

  • 在Linux下将Eclipse CDT配置成OpenGL开发环境

    2015-01-24 - Linux系统中要含有OpenGL的库了,包含GL,GLU,以及glut。前面两个在Debian/Ubuntu下面对应的包是libgl1-mesa-dev 和libglu1-mesa-dev,后一个是glut3-dev,三个包装好之后,用OpenGL写的源文件就可以用g++ -lGL -lGLU -lglut手动编译了,不过手工编译多不爽...

  • 将CentOS 5.4内核升级到2.6.38.5

    2015-01-23 - Linux内核升级是学习内核的基本条件。如果自已编译的内核跑不起来,那谈linux内核学习就是镜花水月了。其实网上有很多相关的内核编译升级教程。我这个纯粹是多余的,但是为什么很多同志升级还是老失败呢?其实网上有很多教程,撞到相关的问题问一下google或...

  • Linux下应用程序获取时钟周期

    2015-01-17 - 在Linux内核中,有一个全局变量jiffies统计本系统的当前运行时钟周期个数,但应用程序并这么便利的用法。 不过可以通过以下宏获取到: #define rdtscll(val) \ __asm__ __volatile__(rdtsc : =A (val))...

  • Linux页缓存简介

    2015-01-17 - 为了提高读写文件速度,linux系统采用一种页缓存机制。当应用程序调用read,write等函数读写文件时,系统并不立即与硬盘进行操作,而是查看需要读取的数据是否已在页缓存中,如不在,则从硬盘读...

  • Linux,Windows和UNIX的进程调度的分析

    2015-01-16 - 引言:无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。 进程调度的...

  • RedHat AS4 U4 kernel-2.6.9-5-->kernel-2.6.9-42升级

    2015-01-16 - RedHat AS4 U4 kernel-2.6.9-42 升级 [root@www ~]# uname -ra Linux www 2.6.9-5.ELsmp #1 SMP Wed Jan 5 19:30:39 EST 2005 i686 i686 i386 GNU/Linux 做Oracle rac 10g ocfs2-2.6.9-42.EL-1.2.4-2.i686.rpm 要求内核为 2.6.9-42.EL (找不到 2.6.9-42.ELsm...

  • Linux嵌入式工程师成长经历

    2015-01-16 - 1、Linux开发工程师(每天学习6小时,用一个月时间) 首先成长为一名Linux开发工程师,这是最基本的目标,他应该具备如下的素质: (1)了解Linux基本概念和基本操作(历史,文化,起源)(命令行,配置,操作,开发模式) (2)会使用Linux平台下的编辑器vi...

  • Linux中的pipe与named pipe(FIFO),即管道和命名管道

    2015-01-13 - 管道是Linux中很重要的一种通信方式,是把一个程序的输出直接连接到另一个程序的输入,常说的管道多是指无名管道,无名管道只能用于具有亲缘关系的进程之间,这是它与有名管道的最大区别。 有名管道叫named pipe或者FIFO(先进先出),可以用函数mkfifo()创建。 F...

  • mini2440移植Linux2.6.30.10及yaffs2文件系统

    2015-01-13 - 研究了四天linux内核移植和文件系统制作,总算移植成功,在这里和大家分享一下,我是一个初学者,有不对的地方,请大家指点。 一,准备工作 1,内核版本:2.6.30.10 busybox 1.13.0 编译器:arm-linux-3.4.1 文件系统:yaffs2 平台:mini2440 2,移植linux 1)...

  • Linux系统安全Shell第二版

    2015-01-13 - 本Linux Shell脚本是第二次更新,已经大量应用在某大型媒体网站体系中,加入了之前没有想到的一些安全设置。使用方法将其复制,保存为一个shell文件,比如security.sh.将其上传到linux服务器上,执行sh security.sh,就可以使用该脚本了! #!/bin/sh # desc:...

  • Linux内核协议栈的socket查找缓存路由机制

    2015-01-12 - 是查路由表快呢?还是查socket哈希表快?这不是问题的根本。问题的根本是怎么有效利用这两者,让两者成为合作者而不是竞争者。这是怎么回事? 我们知道,如果一个数据包要到达本地,那么它要经过两次查找过程(暂时不考虑conntrack):IP层查找路由和传输层查...

  • Linux程序分析工具:ldd和nm

    2015-01-11 - ldd和nm是Linux下两个非常实用的程序分析工具。其中,ldd是用来分析程序运行时需要依赖的动态链接库的工具,nm是用来查看指定程序中的符号表信息的工具。 1、ldd 格式:ldd [options] file 功能:列出file运行所需的共享库 参数: -d 执行重定位并报告所有丢...

  • 低压集抄系统中Linux共享内存使用分析

    2015-01-10 - 1.概述 Linux由于历史原因,其IPC分为SYSTEM V版本和POSIX版本。本文主要讨论在共享内存方面这两个版本之间的区别。 各共享内存IPC的函数对照表: IPC POSIX SYSTEM V 头文件 sys/mman.h sys/shm.h IPC创建和删除 shm_open shm_unlink shmget IPC控制 ftrunc...

  • Linux监听子线程的函数

    2015-01-09 - waitpid系统调用 功能描述: 等待进程改变其状态。所有下面哪些调用都被用于等待子进程状态的改变,获取状态已改变的子进程信息。 状态改变可被认为是: 1.子进程已终止。 2.信号导致子进程停止执行。 3.信号恢复子进程的执行。 在子进程终止的情况下,wait...

  • Linux关于总线、设备、驱动的注册顺序

    2015-01-09 - +---- devices | | | ----------------------------------------------------------------------------- struct bus_type match() probe() ----------------------------------------------------------------------------- | | | +---- drivers probe() 驱...

  • Linux内核的引导过程

    2015-01-09 - 总体上来讲: BIOS-MBR-GRUB(LILO)-内核-用户空间 1.系统上电时,cpu会将pc指针赋值为一个特定的地址0xffff0, 并且执行该地址处的指令。在pc中,该地址位于BIOS中。 2.BIOS按照CMOS中设定的启动顺序来搜索处于活动状态的,可以引导的设备。如果是硬盘,则...

  • Python通过signal可传递的信号列表

    2015-01-08 - Signal Description SIGABRT 由调用abort函数产生,进程非正常退出 SIGALRM 用alarm函数设置的timer超时或setitimer函数设置的interval timer超时 SIGBUS 某种特定的硬件异常,通常由内存访问引起 SIGCANCEL 由Solaris Thread Library内部使用,通常不会使用...

  • Linux 2.6.36 x86内核中断初始化过程详解

    2015-01-07 - 随着硬件技术的发展,中断控制芯片已经不再是传统的ISA总线连着的简单PIC了,APIC,MSI,MSIX等等的词语大家已经非常的熟悉。同时,Linux内核也在不断发展,它在中断上的实现也越来越复杂,在这里我来讨论介绍一下Linux x86 架构下的中断初始化过程。 在star...

  • 附查询历史操作记录文件shell

    2015-01-07 - 本shell是配合前一个记录用户历史操作记录shell的,代码如下: #!/bin/sh - # filename getrecord user= time= while [ $# -gt 0 ] do case $1 in -u|--user) user=$2 shift 2 ;; -t|--time) time=$2 shift 2 ;; -*) echo $0:$1 Wrong Options! 2 shift exit...

  • CodeBlocks基于Linux的动态库调试

    2015-01-06 - 在Linux下面的动态库调试,特别是利用宿主应用程序来调试,对于某些情况下不能获得宿主应用程序代码,只有可执行文件时非常有用。先分享之。 1,对于动态库project和宿主应用project在同一个workspace下,调试非常方便,直接F8(菜单【Debug】--【Start】)...

  • Linux下定时器的使用及实现秒以下精确定时与休眠

    2015-01-06 - Linux下定时器的使用 -- alarm() setitimer(): 1、alarm 如果不要求很精确的话,用alarm()和signal()就够了 unsigned int alarm(unsigned int seconds) 函数说明: alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参数secon...

  • Linux实现自动安装服务组件以及优化内核参数

    2015-01-02 - 安装好Linux裸机后还需要在其上安装一些基础组件,一般是手动一个个安装,比较繁复也许会遗漏,下面整理了下,做成一个脚本,每次run下这个脚本就完成了基础组件的安装了,并且附带优化了Linux的内核参数。 1,先配置网络,check配置为最原始的状态 [root@wg...

  • 杀死Linux的僵尸进程

    2015-01-01 - linux并不把进程的树形结构导出给普通用户,然而在内核中,它却使用树形结构来管理进程。linux内核使用子进程退出,父进程收尸,父进程退出,子进程被过继 这种方式来管理进程的死亡,然而却少了一种,那就是父进程不给子进程收尸的情况 ,这就是僵尸进程的...

  • 编译Linux内核(kernel)

    2014-12-31 - 学习Linux就从内核编译开始,现在就让我们迈出第一步,下面记录编译过程(以下操作均在root下完成)。 1、准备工作 我安装的是Ubuntu10.04,为完成内核编译,还需要安装一下包: # apt-get install gcc # apt-get install make # apt-get install bzip2 # apt-...

  • Python之pprint模块的pprint方法

    2014-12-31 - pprint模块中的pprint方法: 在看ZODB例子的代码时,看到了pprint.pprint(data)的代码,查了下google,知道了pprint.pprint(data)将data分成每个小项都单行显示: pprint.pprint(data) 如: [a, b, c]...

  • Linux用户空间电源管理

    2014-12-30 - 电源管理的思考 一.涉及的通信机制介绍 熟悉之后可以跳过 1.inotify Hotplug 是一种内核向用户态应用通报关于热插拔设备一些事件发生的机制,桌面系统能够利用它对设备进行有效的管理,udev 动态地维护 /dev 下的设备文件,inotify 是一种文件系统的变化通...

  • Linux kernel printk的分析

    2014-12-30 - 记得在编译linux内核make menuconfig的时候设定输出信息到console,要修改CONFIG_CMDLINE的内容,但是自始至终也没搞懂为何这样设置就可以把打印信息从串口输出呢?带着这个疑问,我查看了linux的printk函数,最后找到了答案 . 一 printk 函数 printk 函数首先把...

  • Linux2.6驱动程序《一》整体概述

    2014-12-29 - 计算机的硬件是底层基础,是所有软件得以运行的平台,代码最终会落实为硬件上的组合逻辑与时序逻辑,软件则实现了具体应用 硬件较固定,软件则很灵活,但是软硬件之间存在着悖论,那就是软件和硬件不应该相互渗透到对方的领地 为了尽可能快速地完成设计,应...

  • Linux2.6驱动程序《二》硬件基础

    2014-12-29 - 1、通用处理器和嵌入式微控制器 通用处理器(GPP)并不针对特定的应用领域进行体系结构和指令集的优化,具有一般化的通用体系结构和指令集,以支持复杂的运算并易于新开发功能的添加,一般而言,在嵌入式微控制器(MCU)和微处理器(MPU)中会包含一个通用处理器核...

  • Linux2.6驱动程序《三》Linux内核及内核编程

    2014-12-29 - 一、Linux2.6相对于Linux2.4有相当大的改进,主要体现在如下几个方面: 1新的调度器:使用了新的进程调度算法,它在高负载的情况下执行得很好,并且有很多处理器时可以进行很好的扩展 2内核抢占:内核任务可以被抢占,从而提高系统的实时性 3改进的线程模型...

  • Valgrind-Linux下的内存调试和代码解剖工具

    2014-12-29 - Valgrind是一个GPL的软件,用于Linux(For x86, amd64 and ppc32)程序的内存调试和代码剖析。你可以在它的环境中运行你的程序来监视内存的使用情况,比如C 语言中的malloc和free或者 C++中的new和 delete。使用Valgrind的工具包,你可以自动的检测许多内存...

  • 迈入Linux内核学习的神圣殿堂

    2014-12-29 - 学习本身是件很玄乎的事情,有些人潇潇洒洒没见怎么用心就能够获得很好的成绩,而有些人则相反,投悬梁锥刺骨也还是成绩平平收获平平。这里面很大一部分的原因就是方法。当然因为每个人的情况并不相同,对于linux内核学习这件事来说,也就没有这样一个标准的...

  • Linux内核入门

    2014-12-29 - Linux内核入门 收藏 如何获取Linux内核源代码 下载Linux内核当然要去http://www.kernel.org/了,网站提供了两种文件下载,一种是完整的Linux内核,另一种是内核增量补丁,它们都是tar归档压缩包。除非你有特别的原因需要使用旧版本的Linux内核,否则你应该总...

  • Linux脚本之>/dev/null 2>&1,以及2>1 VS 2>&1

    2014-12-29 - 1. 标准输入stdin文件描述符为0,标准输出stdout文件描述符为1,标准错误stderr文件描述符为2 2. /dev/null 空设备,相当于垃圾桶 3. 重定向符号: 3. 21 与 21 的区别 21, 把标准错误stderr重定向到文件1中 21,把标准错误stderr重定向到标准输出stdout 4....

  • 利用Bochs调试Linux 0.11启动过程

    2014-12-28 - 摘要:现在hack linux kernel的人很多,而调试工具很少,Bochs的最大的好处就是它的调试功能,它能仿真IA-32的全部指令,所有这些都是用C++写成的,并且开源。 名词:Bochs Bochs是Kevin Lawton 用C++语言开发的一个仿真软件系统。主要用来仿真x86的系统软件...

  • Linux中数据类型

    2014-12-28 - 当Linux内核在体系结构差异较大的平台之间移植时,会产生与数据类型相关的问题。 .在编译内核时使用 -Wall -W strict-prototypes 选项, 可以避免很多错误的发生 .内核使用的基本数据类型主要有: int 标准C语言整数类型 u32 32位整数类型 pid_t 特定内核对象p...

  • Linux ssize_t与size_t

    2014-12-28 - ssize_t是signed size_t, 而size_t是标准C库中定义的,应为unsigned int。 socket_t: 数据类型socklen_t和int应该具有相同的长度.否则就会破坏 BSD套接字层的填充.POSIX开始的时候用的是size_t, Linus Torvalds(他希望有更多的人,但显然不是很多) 努力向他...