自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 linux平台调试技术总结。

http://hi.baidu.com/kuangxiangjie/blog/item/564faa31f1c027ac5fdf0e6b.html

2008-07-18 11:41:00 475

原创 自动生成Makefile文件过程。

为了编译一个简单的源文件main.c,需要自动生成一个makefile,以下是步骤:第一步:----------在/root/project/main目录下创建一个文件main.c,其内容如下:------------------------------------------------#include int main(int argc, char** argv)

2008-07-17 16:48:00 872

原创 Linux下Makefile的automake生成全攻略

在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常见的GNU程序一样,只要使用“./configure”,“make”,“make instal”就可以把程序安装到Linux系统中去了。这将特别适合想做开放源代码软件的程序开发人员,又或如果你只是自己写些小的Toy程序,那么这个文章对你也会有很大的帮助。

2008-07-17 15:52:00 557

原创 嵌入式linux启动信息完全注释

摘要我们在这里讨论的是对嵌入式linux系统的启动过程的输出信息的注释,通过我们的讨论,大家会对嵌入式linux启动过程中出现的、以前感觉熟悉的、但却又似是而非的东西有一个确切的了解,并且能了解到这些输出信息的来龙去脉。嵌入式linux的启动信息是一个很值得我们去好好研究的东西,它能将一幅缩影图呈现在我们面前,来指导我们更加深入地理解linux内核。 关键字:linux,嵌入式,启

2008-06-18 19:38:00 764

原创 基于Linux的嵌入式文件系统构建与设计

摘 要:Linux是当今一种十分流行的嵌入式操作系统。由于其具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,因此被广泛应用于工业控制领域。该文对其文件系统进行了简单的介绍,结合嵌入式系统应用中的实际情况,建立起一套简单的文件系统。引言:在便携电子设备中,随着系统复杂性的增加,存储容量的扩大,嵌入文件系统成为一种必然趋势。而Flash存储器由于具有存储容量大、掉电数据不丢 失、何种小以及

2008-05-28 15:05:00 835

原创 shell脚本精华集锦

http://colding.bokee.com/5629570.html

2008-05-06 18:38:00 486

原创 设计模式概要

工厂模式(Abstract Factory):客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。     建造模式(Builder):将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不

2008-05-06 15:07:00 376

原创 linux学习笔记

linux目录架构/   根目录/bin    常用的命令 binary file 的目錄/boot   存放系统启动时必须读取的档案,包括核心 (kernel) 在内     /boot/grub/menu.lst   GRUB设置     /boot/vmlinuz   内核     /boot/initrd     核心解壓縮所需 RAM Disk/dev    系统周边设备    

2008-04-26 13:50:00 415

原创 将 Windows IPC 应用移植到 Linux

随着开发者将原本普遍的 Windows® 应用迁移到 Linux™ 平台,正在进行的向开源迁移的浪潮有可能引发极大的移植问题。这个由三部分构成的系列文章提供一个映射指南,并附有例子,能够简化从 Windows 到 Linux 的转变。第 1 部分介绍了进程和线程。当前,很多全球商务和服务都正在趋于开源 —— 业界的所有主要参与者都在争取实现此目标。这一趋势催生了一个重要的迁移模式:为不同平台(

2008-04-25 11:10:00 1886

原创 Unix/Linux下C/C++开发技术概览

1. 平台差异简介 Windows和Unix是当前两大主流操作系统平台,基于C/C++的开发人员经常会面临这 两个平台之间的移植的问题。Unix作为一个开发式的系统,其下有出现了很多个分 支,包括Sun的Solaris、IBM的AIX、HP Unix、SCO Unix、Free BSD、苹果的MAC  OS以及开源的Linux等。对于这些Unix的分支操作系统,其实现又有很大的差别, 因此开发人员

2008-04-25 11:05:00 1387 1

原创 Linux下通用线程池的创建与使用

本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关。另外该线程池具有动态伸缩性,它能根据执 行任务的轻重自动调整线程池中线程的数量。文章的最后,我们给出一个简单示例程序,通过该示例程序,我们会发现,通过该线程池框架执行多线程任务是多么的 简单。 为什么需要线程池 目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等都具有

2008-04-24 21:59:00 555

原创 windows进程间通讯的各种方法

进程通常被定义为一个正在运行的程序的实例,它由两个部分组成:  一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方  另一个是地址空间,它包含所有的可执行模块或DLL模块的代码和数据。它还包含动态分配的空间。如线程堆栈和堆分配空间。每个进程被赋予它自己的虚拟地址空间,当进程中的一个线程正在运行时,该线程可以访问只属于它的进程的内存。属于其它进程的内存则是隐藏的,

2008-04-22 16:49:00 854 1

原创 经典进程同步问题

3.4.3 经典进程同步问题    本节我们讨论几个利用信号量来实现进程互斥和同步的经典例子。这里的主要问题是如何选择信号量和如何安排P、V原语的使用顺序。    依据信号量与进程的关系,我们可把进程中使用的信号量分成私有信号量和公用信号量。私有信号量是指只与制约进程和被制约进程有关的信号量;公用信号量是指与一组并发进程有关的信号量。1.生产者一消费者问题生产者一消费者问题(p

2008-04-22 16:25:00 3370

原创 awk使用教程

1.awk | -F field-separator| `cmd` input file    awk -F : `cmd` input file2.将awk命令插入一个文件,并使awk程序可以执行,然后用awk命令解释器作为脚本首行。3.将所有awk命令插入一个单独文件    awk -f awk-script-file inputfile模式和动作模式:两个特殊断 BEGIN和END动作:实际

2008-04-19 10:47:00 1337

原创 Linux启动添加内核参数简介

 Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。 如果不使用启动管理器,比如直接从BIOS或者把内核文件用“cp zImage /dev/fd0”等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用引导管理器比如LILO的好处之一吧。 L

2008-04-16 12:07:00 1399

原创 linux常见问题

vi /etc/sysconfig/network,修改HOSTNAME一行为HOSTNAME=主机名,重启后也能生效 0002 Ret Hat Linux启动到文字界面(不启动xwindow) 将/etc/inittab中 id:5:initdefault: 一行中的5改为3 0003 redhat的自动升级更新问题(hutuworm) 在www.redhat.com/corp/support/

2008-04-14 15:13:00 994

原创 Linux 2.6.19.x 内核编译配置选项简介

http://lamp.linux.gov.cn/Linux/kernel_options.html 

2008-04-14 14:38:00 393

原创 init getty login shell

 0推荐init getty login shell的关系init进程是系统所有进程的起点,内核在完成核内引导以后,即在本线程(进程)空间内加载init程序,它的进程号是1。在rc返回后,init将得到控制,并启动mingetty(见第五节)。mingetty是getty的简化,不能处理串口操作。getty的功能一般包括:打开终端线,并设置模式 输出登录界面及提示,接受

2008-04-14 14:25:00 2103

原创 使用 /proc 文件系统来访问 Linux 内核的内容

/proc 文件系统是一个虚拟文件系统,通过它可以使用一种新的方法在 Linux? 内核空间和用户空间之间进行通信。在 /proc 文件系统中,我们可以将对虚拟文件的读写作为与内核中实体进行通信的一种手段,但是与普通文件不同的是,这些虚拟文件的内容都是动态创建的。本文对 /proc 虚拟文件系统进行了介绍,并展示了它的用法。 最初开发 /proc 文件系统是为了提供有关系统中进程的信息。但是由

2008-04-14 14:14:00 497

原创 几个重要的Linux操作系统 内核文件介绍

在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行:ls –l。编译过RedHat Linux内核的人对其中的System.map 、vmli

2008-04-14 14:14:00 697

原创 linux 命令另一篇

" apropos word 显示和word相关的命令。 参见线程安全 " which command 显示命令的完整路径名 " time command 计算命令运行的时间 " time cat 开始计时. Ctrl-d停止。参见sw " nice info 运行一个低优先级命令(这里是info) " renice 19 -p $$ 使脚本运行于低优先级。用于非交互任务。 " look pref

2008-04-09 19:08:00 451

原创 gdb参数详解

名称        gdb - GNU 调试器提要        gdb    [-help] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps]              [-tty=dev] [-s symfile] [-e prog] [-se prog] [-c              core] [-x cmds] [-d dir] [prog[

2008-04-02 11:45:00 555

原创 /proc内核目录

3.8.1 内核参数对应目录控制内核运行的参数存储在/proc目录下,可以简单通过查看/proc目录树下的文件来查看关于内核、处理器、内存、网络和其他部分的内核参数的配置情况。系统下运行的每个进程在proc下都有一个对应的以PID命名的目录。下表列出了一些目录存储的内核信息 文件/目录 信息

2008-03-25 09:10:00 1053

原创 Iptables 指南

http://iptables-tutorial.frozentux.net/cn/iptables-tutorial-cn-1.1.19.html 

2008-03-24 19:59:00 314

原创 AWK介绍

AWK介绍 0.awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk。 1.awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。完整的awk脚本通常用来格式化文本文件中的信息。 2.三种方式调用awk 1) awk [opion] awk_script input_file1 [input_file2 ...] awk

2008-03-24 18:00:00 371

原创 深入Linux网络核心堆栈

==Phrack Inc.==              卷标 0x0b, 期刊号 0x3d, Phile #0x0d of 0x0f|=---------------------=[ 深入Linux网络核心堆栈 ]=-----------------------=||=----------------------------------------------------------------

2008-03-19 10:04:00 778

原创 Unix/Linux编程中所谓"僵尸(zombie/defunct)进程"

在Unix下的一些进程的运作方式。当一个进程死亡时,它并不是完全的消失了。进程终止,它不再运行,但是还有一些残留的小东西等待父进程收回。这些残留的东西包括子进程的返回值和其他的一些东西。当父进程 fork() 一个子进程后,它必须用 wait() 或者 waitpid() 等待子进程退出。正是这个 wait()

2008-03-18 21:24:00 1529

原创 内核启动参数从哪来?

Linux内核在启动时需要通过“启动参数(Boot Parameters)”来获取必要的启动信息,例如根文件系统分区,类型,终端配置等等。启动参数是如何传递给内核的呢?以下内容来自firenet:http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=embedded&Number=579007&page=2&view=collapsed&

2008-03-18 20:37:00 2117 1

原创 uClinux交叉编译综合文档。

交叉编译busybox可以参考《嵌入式系统设计与应用开发》(郑灵翔)一书131页,以及http://hi.baidu.com/zengzhaonong/blog/item/b0895436d24c33dea2cc2b03.html。主要过程:(1)下载,打补丁。这里使用ELFS版本的busybox v1.8.2.(2)修改Makefile:ARCH = armCROSS_COMPILE = a

2008-03-18 20:35:00 1033

原创 使用mkfs.jffs2工具制作jffs2根文件系统映像。

使用mkfs.jffs2工具制作jffs2根文件系统映像。mkfs.jffs2 -o rootfs_jffs2.img -r rootfs -e 0x40000 -l --pad=0x1e80000-e 表示擦除块大小,-l表示little-endian, --pad=0x1e80000 表示文件系统大小为0x1e80000 bytes,如果不足则使用0xff例如:mkfs.jffs2 --p

2008-03-18 20:22:00 2456

原创 skb_buff结构分析

struct sk_buff { /* These two members must be first. */ struct sk_buff  *next;  //这两个变量让sk_buff     struct sk_buff  *prev;  //构成双向的链表           struct sk_buff_head *list;  //指向链表的头 struct sock  

2008-03-18 11:45:00 2692

原创 lsof的用法

lsof的功能很多,特別提醒大家, -c,-g,-p,-u,这四个参数最有用。更详细的资料请参看:man lsof。1、查看文件系统阻塞    根据工作需要,系统管理员想卸载一个文件系统并执行umount /mountpoint,但程序报告常常显示:umount: /mountpoint: device is busy;这是因为该文件系统上有正在打开的文件而不允许你这么做。这时,我们需要知

2008-03-12 19:58:00 1182

原创 Linux内存管理

http://www.kerneltravel.net/journal/v/mem.htm摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终

2008-03-12 12:58:00 1548

原创 关于嵌入式Linux系统进程调度

1 前言 处理机(CPU)是整个计算机系统的核心资源,在多进程的操作系统中,进程数往往多于处理机数,这将导致各进程互相争夺处理机。进程调度对系统功能的实现及各方面的性能都有着决定性的影响,其实质就是把处理机公平、合理、高效地分配给各个进程。调度是实现多任务并发执行的必要手段,不同的操作系统有着不同的调度目标。在传统的Unix类分时系统中,保证多个进程公平地使用系统资源,提供较好的响应时间是调度

2008-03-12 01:26:00 1235 2

原创 sed简明教程

1. Sed简介sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。以下

2008-03-11 15:16:00 4988

原创 gprof使用介绍

前两天尝试了一下gprof,感觉还挺好,写点东西介绍一下。gprof介绍gprof是GNU profiler工具。可以显示程序运行的“flat profile”,包括每个函数的调用次数,每个函数消耗的处理器时间。也可以显示“调用图”,包括函数的调用关系,每个函数调用花费了多少时间。还可以显示“注释的源代码”,是程序源代码的一个复本,标记有程序中每行代码的执行次数。为gprof编译程序在编译或链接源

2008-03-11 13:50:00 468

原创 Valgrind的主要功能

Valgrind是一个GPL的软件,用于Linux(For x86, amd64 and ppc32)程序的内存调试和代码剖析。你可以在它的环境中运行你的程序来监视内存的使用情况,比如C 语言中的malloc和free或者 C++中的new和 delete。使用Valgrind的工具包,你可以自动的检测许多内存管理和线程的bug,避免花费太多的时间在bug寻找上,使得你的程序更加稳固。

2008-03-11 13:49:00 735

原创 Linux下的调试工具

1.         mtrace在linux下开发应用程序,用C/C++语言的居多。内存泄露和内存越界等内存错误,无疑是其中最头疼的问题之一。glibc为解决内存错误提供了两种方案: 一种是hook内存管理函数。hook内存管理函数后,你可以通过记下内存分配的历史记录,在程序终止时查看是否有内存泄露,这样就可以找出内存泄露的地方了。你也可以通过在所分配内存的首尾写入特殊的标志,在释放

2008-03-11 13:49:00 630

原创 使用truss、strace或ltrace诊断软件的"疑难杂症"

truss 和strace用来跟踪一个进程的系统调用或信号产生的情况,而 ltrace用来跟踪进程调用库函数的情况。truss是早期为System V R4开发的调试程序,包括Aix、FreeBSD在内的大部分Unix系统都自带了这个工具;而strace最初是为SunOS系统编写的,ltrace 最早出现在GNU/Debian Linux中。这两个工具现在也已被移植到了大部分Unix系统中,大多数

2008-03-11 13:48:00 390

原创 strace命令用法

ldd命令行用法如下: ldd [--version] [-v|--verbose] [-d|--data-relocs] [-r|--function-relocs] [--help] FILE... 各选项说明如下: (1) --version : 此选项用于打印出ldd的版本号. (2) -v 或 --verbose : 此选项指示ldd输出关于所依赖的动态链接库的尽可能详细的信息. (3)

2008-03-11 13:47:00 552

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除