红联Linux门户

Linux帮助
  • Fedora 13下建立omap3530开发环境-交叉编译器

    2015-02-11 - 准备工作: 假定工作目录在$HOME/devel目录下,其下的 crosstool-ng 用于解压和编译 crosstool-ng, cortex-a8 用于生成目标工具链。 最终生成的工具链存放于$HOME/x-tools目录下。 在 Fedora 11/12版本中,使用crosstool-ng建立工具链相对容易,不过fedora1...

  • Android NDK应用开发

    2015-02-11 - Android NDK开发(Ubuntu 10) 1.下载Android NDK http://dl.google.com/android/ndk/android-ndk-r4b-linux-x86.zip 2.配置NDK环境 $vi ~/.bashrc 增加: NDK=~/Android/android-ndk-r4b export NDK 3.编写代码 Android.mk: LOCAL_PATH := $(call my-dir) in...

  • Linux的64位操作系统对32位程序的兼容

    2015-02-11 - 最近在调试一个关于OpenVPN的程序,由于是远程支持的因此一些很奇怪的现象根本不好找切入点,比如OpenVPN客户端连接服务器正常,虚拟IP地址也已经分配了,tap设备已经打开并没有抱错,然而打开的tap设备不是tap0而是 ,也就是什么都没有,连个空格都不是,这...

  • Linux启动原理之-initrd和Debian实例

    2015-02-11 - init/main.c中的start_kernel函数完成了所有的全局特性初始化,这些全局特性包括内核运转所需要的基础设施,比如虚拟内存设施,进程调度设施,中断设施,缓存设施,VFS设施等,接下来启动1号进程的内核部分,在start_kernel的最后rest_init函数中启动之: st...

  • x86架构下的物理内存-通过Linux概述

    2015-02-11 - 其它体系结构我没有深入研究过,然而对于x86而言,我们很多人都是很了解的。其内存可以支持4G(不考虑PAE),因为地址总线为32位,也就是说32条1位的线缆可以选择4G的地址,因此我们想当然的认为我们买了两条2G的内存插入以后,我们的系统就可以有4G的内存可用...

  • x86体系下Linux中的任务切换与TSS

    2015-02-11 - tss的作用举例:保存不同特权级别下任务所使用的寄存器,特别重要的是esp,因为比如中断后,涉及特权级切换时(一个任务切换),首先要切换栈,这个栈显然是内核栈,那么如何找到该栈的地址呢,这需要从tss段中得到,这样后续的执行才有所依托(在x86机器上,c...

  • 十一步让你理解Linux的内存映射

    2015-02-11 - 零:32位操作系统只有4G的虚拟地址空间,Linux将最上的1G用于内核虚拟地址。 一:Linux将物理内存完全一一映射到内核空间,这样很方便管理内存,任何页面的虚拟地址减去一个0xc0000000的偏移就可以得到物理地址。 二:内核还需要动态管理一些内存用于vmalloc...

  • Linux程序崩溃时自动生成Core Dump

    2015-02-11 - 程序总免不了要崩溃的 这是常态,要淡定! [sweat] 利用 setrlimit() 函数我们可以将 core file size 设置成一个非 0 值,这样就可以在崩溃时自动生成 core 文件了。(可参考 bshell ulimit 命令) #include sys/resource.h void test() { char* s = abc; *s =...

  • Linux下使用Eclipse编写MapReduce程序的配置

    2015-02-10 - 最近一直都在看《Hadoop权威指南(中文版)》,虽然的确是在翻译的方面有很多不如意之处,但是对于我这个英语不是很好的人来说,看中文版的书还是能够大大节约我的时间的。我的本科毕业设计就是关于HDFS和MapReduce的,所以我最近非常想马上编写出自己的MapR...

  • Linux下带颜色输出与闪烁功能

    2015-02-10 - 1.UNIX字符界面下显示颜色 #include stdio.h int main() { int i, j; for ( i=40; i50; i++ ) { for ( j=30; j40; j++ ) { printf ( [%d;%dm%d:%d, j, i, i, j ); } printf ( [0m ); } } 描述:在UNIX字符界面下显示8种不同颜色 在printf语句中使用 \033[%d;...

  • 用OpenEmbedded构建嵌入式Linux系统

    2015-02-10 - mbedded-lfs代表embedded linux from scratch,也就是从头构建一个嵌入式Linux系统,不过它与标准LFS没有太大关系,只是借用了LFS这个名称而已。要说构建嵌入式Linux系统,openembedded相关项目应该是最有名的,不过它做得太复杂,如果不出问题,用起来很方...

  • 使用Crash工具分析Linux dump文件

    2015-02-10 - 前言 Linux 内核(以下简称内核)是一个不与特定进程相关的功能集合,内核的代码很难轻易的在调试器中执行和跟踪。开发者认为,内核如果发生了错误,就不应该继续运行。因此内核发生错误时,它的行为通常被设定为系统崩溃,机器重启。基于动态存储器的电气特...

  • 浅谈Linux多线程编程和Windows多线程编程的异同

    2015-02-09 - 很早以前就想写写linux下多线程编程和windows下的多线程编程了,但是每当写时又不知道从哪个地方写起,怎样把自己知道的东西都写出来,下面我就谈谈linux多线程及线程同步,并将它和windows的多线程进行比较,看看他们之间有什么相同点和不同的地方。 其实最...

  • Linux下gtk+和glade编程及glade2和glade3之间的差异

    2015-02-09 - 本文主要讲解linux下采用多线程和libpcap编程,使用glade2和glade3制作界面的不同点: Glade2 和glade3的主要区别是glade2会自动生成makefile等文件,而glade3只是用来生成界面,然后采用libglade和GtkBuilder调用.glade文件,这样的好处是代码和界面完全分...

  • 嵌入式Linux文件系统启动脚本及分析

    2015-02-09 - 在内核初始化完成后,嵌入式linux 文件系统的启动过程主要包含以下几个步骤: 1. 执行/sbin/init 文件 2. 执行/etc/inittab 文件 3. 执行/etc/init.d/rcS 文件 4. 执行挂载文件系统脚本 5. 执行内核模块脚本 6. 执行网络初始化脚本 7. 执行应用程序启动等脚...

  • 在64位的Linux划分用户空间与内核空间大小

    2015-02-09 - 在/arch/x86/include/asm/page_64_types.h下有如下两行: #define __START_KERNEL_map _AC(0xffffffff80000000, UL) #define KERNEL_IMAGE_START _AC(0xffffffff80000000, UL) 这就是对空间大小的划分,在0xffffffff80000000之前的是给用户空间,在0xfffffff...

  • Linux块设备加密之dm-crypt分析

    2015-02-09 - 相关的分析工作一年前就做完了,一直懒得写下来。现在觉得还是写下来,以来怕自己忘记了,二来可以给大家分享一下自己的研究经验。 这篇文章算是《Device Mapper代码分析》的后续篇,因为dm-crypt是基于dm框架的,因此与上一篇一样,也以2.6.33内核代码为基...

  • Linux下不经过BIOS重启(i386)

    2015-02-09 - 有个项目,要求在Linux下不经过BIOS重启,i386平台。 一、可行性分析 众所周知,BIOS中包含了CPU及其他各种设备的初始化代码,Linux系统运行之后是否能够将各种用到的设备返回到刚被BIOS初始化后的状态是是否可行的关键。 从项目的条件来看,外设并不是问题...

  • Device Mapper代码分析

    2015-02-09 - Device Mapper(DM)是Linux 2.6全面引入的块设备新构架,通过DM可以灵活地管理系统中所有的真实或虚拟的块设备。 DM以块设备的形式注册到Linux内核中,凡是挂载(或者说映射)于DM结构下的块设备,不管他们是如何组织,如何通讯,在Linux看来都是一个完整的...

  • Linux 2.6.25内核编译配置选项简介

    2015-02-09 - 1.Code maturity level options代码成熟度选项 1.1General setup 常规设置 1.1.1 Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择 1.1.2 Local version - append to...

  • Linux Shell实现多进程并发执行

    2015-02-08 - 在bash中,使用后台任务来实现任务的多进程化。在不加控制的模式下,不管有多少任务,全部都后台执行。也就是说,在这种情况下,有多少任务就有多少进程在同时执行。我们就先实现第一种情况: 实例一:正常情况脚本 #!/bin/bash for ((i=0;i5;i++));do { sle...

  • Linux下批量处理数据

    2015-02-08 - 每个文件的这些关键字是不是这出现在某一行? for data in $(ls *.dat) do tocell=$grep Total Cells: $data|awk -F: {print $2 }} #可以这样提取 也可以用cut之类的 cut -d: -f2 ... ... done 另外也可以用sed来提取你要的数据 反正完成一个任务有很多种选...

  • latencytop深度了解你的Linux系统的延迟

    2015-02-08 - 我们在系统调优或者定位问题的时候,经常会发现多线程程序的效率很低,但是又不知道问题出在哪里,就知道上下文切换很多,但是为什么上下文切换,是谁导致切换,我们就不知道了。上下文切换可以用dstat这样的工具查看,比如: [shell] $dstat -total-cpu-usa...

  • Linux格式化输出输入函数

    2015-02-08 - fread函数和fwrite函数 1.函数功能 用来读写一个数据块。 2.一般调用形式 fread(buffer,size,count,fp); fwrite(buffer,size,count,fp); 3.说明 (1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。 (2)si...

  • LInux下串口设置详解

    2015-02-08 - 串口的设置主要是设置struct termios结构体的各个成员值: #includetermios.h struct termios{ unsigned short c_iflag; //输入模式标志 unsigned short c_oflag;//输出模式标志 unsigned short c_cflag;//控制模式标志 unsigned short c_lflag; //本地模式...

  • Linux下的高精度时间获得与定时器

    2015-02-08 - 本文主要介绍Linux下高精度时间函数,及相关的具有超时机制的函数,对定时器也进行简单的介绍。 在linux下通常可用的精度最高的时间接口是gettimeofday,它返回一个timeval结构,其精度为us,即10-6 秒,大多数情况这个精度已经够用了。不过有时为了更高的精...

  • Fedora 12下搭建Qt Creator的ARM开发环境并移植Qt4.6.2到Micro24

    2015-02-08 - 环境:虚拟机Fedora12(建议安装Vmware Tools,详细安装方法参照Vmware帮助文档),USB串口,minicom终端。(minicom经常打不开ttyUSB0设备,我的解决方法是,打不开时就将USB串口移除,运行minicom,然后再接上USB串口,此时运行minicom一般都能打开设备)...

  • Linux、Windows下错误码查看与错误原因格式化输出

    2015-02-07 - Windows下: 使用GetLastError()获得错误码,通过FormatMessage API获得错误码对应的出错信息, HLOCAL pBuffer = NULL; //系统缓冲区指针 int nId = GetDlgItemInt(IDC_EDIT1); //错误码 ::FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNO...

  • Linux下定义Windows常用数据类型

    2015-02-07 - 最近将一个windows程序移植到linux上,发现两个操作系统对很多数据类型的命名方式区别很大,比如windows下对于无符号数据类型一般用U+x的方式,像UINT、UCHAR、ULONG,而linux上就要中规中矩,都是unsigned +x;另外,还有一些数据类型是windows有,而的linu...

  • Linux下的Android开发环境配置完全手册

    2015-02-07 - 环境:Linux,发行版Debian(AMD64)/squeeze(6.0) 本文将介绍如何在linux平台下配置Android开发环境,并对配置过程会碰到的问题给出解决办法。 先解决系统本身需要的软件包: apt-get install sun-java6-jdk sun-java6-jre #安装 java 环境 apt-get instal...

  • Linux内存释放机制Linux内存释放机制

    2015-02-07 - 今天在Linux下启动了几个Tomcat服务,突然发现24G的内存居然差点给用完了,看图,注意红色的地方 先解释一下其中的含义: total 内存总数 used 已经使用的内存数 free 空闲的内存数 shared 多个进程共享的内存总额 buffers Buffer Cache和cached Page Cache...

  • Linux下Shell中if的相关参数

    2015-02-07 - [ -a FILE ] 如果 FILE 存在则为真。 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。 [ -d FILE ] 如果 FILE 存在且是一个目录则为真。 [ -e FILE ] 如果 FILE 存在则为真。 [ -f FILE ] 如果...

  • Linux sigaction函数sa_flags的值

    2015-02-07 - 开始对sa_flags有疑问,网上搜到都是这一个程序,就复制来说事: 代码: 1 #include stdio.h 2 #include stdlib.h 3 #include unistd.h 4 #include signal.h 5 6 void show_handler (int sig) 7 { 8 printf (i got signal %d\n,sig); 9 int i; 10 for (i = 0...

  • QT 4.5.2嵌入式开发平台的搭建

    2015-02-07 - QT 4.5.2 嵌入式开发平台的搭建 系统环境:Ubuntu 9.04 编译环境:crosstool 0.43 安装后生成4.1版本的arm-linux-GCC 在配置之前,sudo apt-get install build-essential 来安装基本的开发环境 Qtx11(源码安装) 安装准备 建议直接下二进制程序安装。 1.安...

  • Linux下转换charset

    2015-02-07 - Linux下转charset,由于不知道utf8一个字符有多长,所以不知道转换后的串有多长,开大缓冲是一个办法,但是如果输入太大并且并发较高的话有占用内存太大的问题。方案暂时折中为对文件采用命令转换,消息采用大缓冲方式iconv()来转换。不敢全部用命令,开销大...

  • 用Expect来做Linux程序测试

    2015-02-07 - 在做毕业设计,要检查算法是否reasonable。对expect复习了一下,顺便写一写所用到的东西。Expect的简介就不说了,就是linux下的一个工具,也算得是个shell吧。 最典型的应用,也是最简单的: #!/usr/bin/expect spawn ./myhelper.exe ##要用这个打开程序 set...

  • Unix环境文件读写锁

    2015-02-06 - 1.简介: 做个假设,如果有多个进程,共同编辑一个文件,那个这个文件安最后的结果是什么?在普通的Unix环境下,并没有限制多个进程共同读写一个文件。但是,如果这种情况出现在数据库中,怎么办。数据库要严格限制数据的一致性。 记录锁(Record locking)是...

  • Unix环境写入文件时要注意小细节

    2015-02-06 - Unix环境写入文件时,要注意的一个小细节,要不任何情况都有可能发生。 在Unix/Linux环境下,写入文件时。如果,在open函数的读写模式,只提供了,读写、如果不存在生成,这些模式时。 如果源文件存在,以非追加的方式写入数据时,当后续的数据长度大于源文...

  • Unix网络字节顺序及其判断

    2015-02-06 - 一:对于一个16字节的数据,比如0x0102,在内存中可以有两个方式来存贮。一种是0x0102,一种是0x0201,前者成为小段对其,后者成为大端对齐。 在网络编程中,需要考虑到网络数据的存储顺序问题,这是个很重要的问题。因为客户机的数据存储顺是不统一好的,比...

  • Unix环境产生单实例进程方案

    2015-02-06 - 在一些情况下,一个进程只能产生一个实例来执行。Unix环境,提供了文件-记录锁(file- and record-locking)机制,提供了事项单实例进程的基本解决方案。 假如,一个进程在开始运行时,生成了一个文件,并且,对整个文件上锁,并且,只有一个这样的写锁允许生...