红联Linux门户

Linux帮助
  • Linux的gnu c下itoa的代替函数用sprintf

    2015-02-23 - int number = 12345; char string[25]; // itoa(number, string, 10); sprintf(string, %d , number); //换成这一句吧^_^ printf( integer = %d string = %s\n , number, string); sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到...

  • 处理器在protected mode下的protection

    2015-02-22 - 前言 实模式,保护模式,分段,分页,虚拟内存,内核态,用户态,如果你对这些术语之间的关系非常熟悉,那就不用继续看了。这篇主要记录我对用户态/内核态的一些理解,如有不对还请指教。 下述说明均为 x86-32 模式。 简述 分段/分页机制实现了逻辑地址到物...

  • so文件动态替换方法及Linux动态库的用法

    2015-02-22 - 在替换so文件时,如果在不停程序的情况下,直接用 cp new.so old.so 的方式替换程序使用的动态库文件会导致正在运行中的程序崩溃。解决的办法是采用rm+cp 或mv+cp 来替代直接cp 的操作方法。linux系统的动态库有两种使用方法:运行时动态链接库,动态加载...

  • 嵌入式Linux工控板的LCD驱动应用示例

    2015-02-21 - 嵌入式Linux工控板EM9160主要应用之一就是可以作为智能终端的核心平台,智能终端总是带有一种显示单元。EM9160作为一种高效、低成本的产品解决方案,专门针对小型的单色LCD显示模块(分辨率通常在12864至320240),在嵌入式Linux下完成了LCD驱动程序,以实现...

  • Linux 2.6内核的四种IO调度算法总结

    2015-02-21 - 在Linux 2.6中,有四种关于IO的调度算法,下面综合小结一下: 1) NOOP NOOP算法的全写为No Operation。该算法实现了最最简单的FIFO队列,所有IO请求大致按照先来后到的顺序进行操作。之所以说大致,原因是NOOP在FIFO的基础上还做了相邻IO请求的合并,并不是完完...

  • Linux的脚本Bash中find和grep

    2015-02-20 - Linux的脚本Bash中find和grep功能很强大,一个是对目录文件通过名字和文件属性来确定所需寻找的文件,列为一个是对文件的内容来匹配寻找文件内的信息。功能相对来说比较单一些,两者组合起来用,是很强劲的。 find . -name -type ... -print find / -name -t...

  • Linux脚本Bash中的文本利器-sed

    2015-02-20 - sed并不会改变原文件,所以的操作是原文件的一个拷贝,可以将结果重定向到新文件。在使用的时候用的最多的是三种方式(在命令行键入命令;将 s e d命令插入脚本文件,然后调用 s e d;将s e d命令插入脚本文件,并使s e d脚本中的一种)中的命令行键入方式。...

  • Linux脚本Bash中的文本利器-awk

    2015-02-20 - awk确实很复杂,平常用的也是很少的一部分。边查边用,把平常用的做做笔记,也是方便自己的查找。 *调用方式 awk [-F field-separator] commands input-file(s) 默认空格作为field-separator。 *模式 awk BEGIN{} {command} END{} input.txt *正则表达式 \ ^...

  • Linux进程控制-exec函数族

    2015-02-20 - 1、简介 在Linux中,并不存在exec()函数,exec指的是一组函数,一共有6个,分别是: #include unistd.h extern char **environ; int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char *arg, ...); int execle(const...

  • 浅析GRUB如何加载Linux kernel

    2015-02-20 - 前言 对于 GRUB 的加载流程,网上绝大部分都是写对 menu.lst, grub.cfg 这些 GRUB 配置文件的编写流程,就像是写脚本语言一样,用些关键字就能让 PC机能正确启动桌面 Linux 了。但这只是 GRUB 的使用,而不是GRUB的分析。 本来是没有想要探究 GRUB 的想法,...

  • Linux内核的namespace机制分析

    2015-02-20 - 1.Linux内核namespace机制 Linux Namespaces机制提供一种资源隔离方案。PID,IPC,Network等系统资源不再是全局性的,而是属于某个特定的Namespace。每个namespace下的资源对于其他namespace下的资源都是透明,不可见的。因此在操作系统层面上看,就会出现多个...

  • Linux内核关闭IPv6协议的方式Linux内核关闭IPv6协议的方式

    2015-02-20 - 在Linux禁用IPv6可以使用下面的几种方式: 第一种方式: 在/etc/modprobe.d/dist.conf文件中添加install ipv6 /bin/true,在reboot后使用使用lsmod | grep ipv6查看,IPv6模块没有被加载,在/proc/sys/net目录下也已经没有了ipv6的目录文件。 [root@root net...

  • Linux0.11中的fork实现和一些注意事项

    2015-02-18 - Linux0.11中有一个fork的系统调用一直没弄明白,自己添加一些自己的想法。下面是思路和提问。 内核是linux0.11版本,里面的fork()用于创建子进程。 但我现在在找这个函数的具体定义时遇到了一些困难。 先把我的查找过程说下: 1、init里的main.c中有static i...

  • Java获取url地址的主域名正则表达式

    2015-02-17 - 使用Java正则表达式获取url地址中的主域名代码如下: String url = http://www.linux.com/entry/4545/0/; Pattern p = Pattern.compile((?=http://|\\.)[^.]*?\\.(com|cn|net|org|biz|info|cc|tv),Pattern.CASE_INSENSITIVE); Matcher matcher = p.matcher(ur...

  • Linux下Socket的SIGPINPE信号导致程序退出

    2015-02-17 - 当server端关闭一个socket连接时,如果client端继续发送数据,系统会发出一个SIGPIPE信号给进程,通知进程这个连接已经断开,不应该再发送数据。 而Linux系统的默认处理规则是对SIGPIPE信号执行terminate(终止、退出)处理,所以client端程序会异常退出,为了...

  • 嵌入式Linux固件升级嵌入式Linux固件升级

    2015-02-17 - 开发需求 基于TCP/IP完成驱动模块和应用程序的更新、升级 特殊声明 该文档中驱动程序和应用程序统称为固件。 主机:VMWare--Fedora 9 开发板:yc2440--64MB Nandflash;Kernel:2.6.24.4 编译器:arm-linux-gcc-4.0.0 设计原理图 注:以上图片上传到红联 Linu...

  • 很全的笔记:Linux下字符编码转换

    2015-02-17 - 一、利用iconv函数族进行编码转换 iconv函数族的头文件是iconv.h,使用前需包含之。 #include iconv.h iconv函数族有三个函数,原型如下: (1) iconv_t iconv_open(const char *tocode, const char *fromcode); 此函数说明将要进行哪两种编码的转换,tocode是目...

  • Linux Secure Model在Linux中的实现方式

    2015-02-16 - LSM(Linux Secure Model)一种轻量级访问控制机制. 其实现方式有如在系统调用中加入一个后门.... 方式如下: static struct file *__dentry_open(struct dentry *dentry, struct vfsmount *mnt, struct file *f, int (*open)(struct inode *, struct file *),...

  • Shell脚本获取网页快照并生成缩略图

    2015-02-16 - 获取网页快照并生成缩略图可分两步进行: 1、获取网页快照 2、生成缩略图 获取网页快照 这里我们用 phantomjs 来实现。关于 phantomjs 的详细用法可参考官方网站:http://phantomjs.org/ 1、安装 我的环境是CentOS6.5,安装时直接下载 tarball 然后解压即可...

  • Shell脚本递归删除空文件夹

    2015-02-16 - 有时我们需要递归删除空文件夹,网上找了一下,没有发现比较好的Shell脚本,于是自己动手写了一个 脚本 #!/bin/bash # author: 十年后的卢哥哥(http://www.linux.com/) # des: delete empty directories recursive deleteempty() { find ${1:-.} -mindepth 1...

  • shell中sed和awk的一些用法和例子

    2015-02-16 - 做运维的应该经常用sed和awk这两个工具,但要想把他们用得好绝非易事,需要长时间的积累,本文就粗略的谈谈日常中用到的一些例子。 1.如何在shell中获取字符串string的长度 echo ${#string} 2.替换文件text中一个或多个空格 sed -i s/ \+/||/g test 注释:\+...

  • 自动清除日期目录shell脚本

    2015-02-15 - 很多时候备份通常会使用到基于日期来创建文件夹,对于这些日期文件夹下面又有很多子文件夹,对于这些日期文件整个移除,通过find结合rm或者delete显得有些力不从心。本文提供一个简单的小脚本,可以嵌入到其他脚本,也可直接调用,如下文供大家参考。 1、脚...

  • Rails项目编写中的一些小技巧小心得

    2015-02-15 - 1.如果form中有数据要传回服务器可以用隐藏属性的控件: form_for(xxx) do |f| f.hidden_field :xxx,value:xxx end 2.如果你需要一些信息放在全局页面框架里,但是这些信息属于某些特定页面的话,可以用如下方法实现: % content_for :QuestionsCount do % %...

  • Linux下的守护进程

    2015-02-15 - Linux下的常驻进程的作用不可忽略,但这里面的问题也不能忽略,怎么启动进程,怎么结束进程,怎么在进程挂掉之后重启进程都要设计的合理。下面看一个shell控制的php常驻进程的例子。 不废话,直接捞干货,上代码,通过代码来讲解更容易理解: #!/bin/sh #fil...

  • JDK自带工具之JPS

    2015-02-15 - jps(Java Virtual Machine Process Status Tool)是JDK提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix/windows平台上简单察看当前java进程的一些简单情况。 jps它的作用是显示当前JAVA进程的id号,并可通过opt来查看这些进程的详...

  • JDK自带工具之jstat

    2015-02-15 - Jstat是JDK自带的一个轻量级小工具。全称Java Virtual Machine statistics monitoring tool。 Jstat位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。 Jstat可以用来...

  • JDK自带工具之jinfo

    2015-02-15 - Jinfo是JDK自带Java配置信息工具。位于java的bin目录下,jinfo的作用是实时地查看和调整虚拟机的各项参数,虽然使用Jps命令的-v参数可以查看虚拟机启动时显示指定的参数列表。但是如果想要知道没有被明确指出的系统默认值,就需要用到jinfo。 Jinfo还能够修...

  • Linux 2.6版内核引导过程浅谈

    2015-02-14 - 阅读linux内核源码的过程,是一个将计算机学科的所有理论课程与实际的产品紧密联系起来的过程。阅读类UNIX的源码,在国外操作系统课程的教学过程中,曾经伴随了一代计算机人才的培养。遗憾的是,我学了几年计算机专业的课程,直到最近才感觉有了一定的积累,...

  • LSM在Linux中的实现方式

    2015-02-14 - LSM(Linux Secure Model)一种轻量级访问控制机制. 其实现方式有如在系统调用中加入一个后门.... 方式如下: static struct file *__dentry_open(struct dentry *dentry, struct vfsmount *mnt, struct file *f, int (*open)(struct inode *, struct file *),...

  • 自动修改Linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡

    2015-02-14 - 此脚本修改Linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡文件中的网卡一、网卡二的IP地址(IPADDR)、子网掩码(NETMASK)信息: #!/bin/sh PROC=/bin/sed FILE_PATH1=/etc/sysconfig/network-scripts/ifcfg-eth0 FILE_PATH2=/etc/sysconfig/network-...

  • 一个简单的Arm开发板的制作过程

    2015-02-13 - 做一个简单的、自己学习用的arm开发板,不仅可以节约成本,还能享受其中的乐趣。今天我就将自己在制作嵌入式开发板过程中的一些经验和步骤讲给大家,希望对大家有所帮助! 本文tag:arm开发板 arm7 arm9 S3C2410核心板 一、原理图的设计 首先,你先要考虑自己...

  • Linux 2.6.18.8内核中netfilter分析

    2015-02-12 - 1,简单介绍 在2.6.16内核的netfilter中,netfilter一个重大修正思想就是将netfilter作为一个协议无关的框架,表现在内核结构树中单独建立net/netfilter目录,而在以前netfilter是附着在各个协议目录之下的,如在net/ipv4, net/ipv6等目录下。现在虽然各协议...

  • Linux下建立arm-gdb调试环境

    2015-02-12 - 一、下载gdb-6.4.tar.gz源代码 http://ftp.gnu.org/gnu/gdb/ 二、编译 GDB #tar zxvf gdb-6.4.tar.gz 2.1、编译GDB Server #cd gdb-6.4 #./configure --target=arm-linux --prefix=/usr/local/arm-gdb #make 注意:这里如果你用的是gcc-4.3.2的话,编译可能...

  • Linux内存回收机制

    2015-02-12 - 内存是Linux内核所管理的最重要的资源之一,内存管理系统是操作系统中最为重要的部分。对于Linux的初学者来说,熟悉Linux的内存管理非常重要。 进程是运行于虚拟地址空间的一个 程序。可以说,任何在Linux系统下运行的程序都是进程。Linux系统中包括交互进程...

  • QT for Mips编译环境建立

    2015-02-12 - step 1: export PATH=path/to/cross/mips-4.3/bin:$PATH step 2: cd qt-everywhere-source-4.6.2 ./configure -embedded mips -xplatform qws/linux-mips-g++ -little-endian Step 3: cd qt-everywhere-source-4.6.2/mkspecs/qws/linux-mips-g++/ vim qmake....

  • QT的Event Filter

    2015-02-12 - 一直对Event Filter似懂非懂, 通过看C++ GUI Programming with Qt4, Second Edition, 争取搞明白. 顺便自己把英文翻译成中文, 算是自己做的笔记了. Installing Event Filters QT事件模块一个真正强大的特性是可以设置一个QObject的实例去监测另外一个QObject...

  • Linux调度器之主调度器框架

    2015-02-12 - 进程是操作系统提供的最古老,最重要的抽象之一,它对开发人员和操作人员隐藏了两个基本的硬件资源:处理器和存储器。进程的重要性在于它营造出个数不受物理处理器限制的虚拟处理器并为每个虚拟处理器配备了独立的,容量不受物理内存大小限制的内存空间。这...

  • Linux互斥锁的实现

    2015-02-11 - 1.线程访问机制 1.1引言: 任务间的关系有两种:1,间接关系;2,直接关系。 例如1. 任务A对莫个缓冲区进行写操作。任务B从这个缓冲区进行读操作。那么A和B的关系就是直接的关系,那么实现这种直接关系的机制就是同步 2.任务A要使用打印机,任务b也要使用打印机...

  • 搭建GCC+JLINK开发调试环境(裸机调试)

    2015-02-11 - a) 安装VMware --- just do it. b) 安装arm-elf-gcc toolset --- we can get it from: http://www.gnuarm.com/ c) 安装JLINK软件 --- just get it from SEGGER website. d) 实现2440 gdb 启动脚本: 1) 参阅JLinkGDBServer文档,如下: 文件: UM08005_JLinkGD...

  • Fedora 14下建立omap3530开发环境-交叉编译器

    2015-02-11 - 主机升级到Fedora 14,下载了crosstool-ng-1.10.0,编译目标为 arm-cortex_a8。 编译步骤: 1、直接拷贝 crosstool-ng-1.10.0/samples/arm-cortex_a8-linux-gnueabi/crosstool.config 到目标目录中的 .config 2、执行 ct-ng menuconfig 查看和校验编译选项,...