显示下一条  |  关闭

lagignition

Linux kernel study & share

 
 
 
 
 
 

Linux ELF file format introduction

2012-2-13 14:49:37 阅读13 评论0 132012/02 Feb13

作者  | 2012-2-13 14:49:37 | 阅读(13) |评论(0) | 阅读全文>>

数据结构之红黑树

2012-1-28 15:14:33 阅读39 评论0 282012/01 Jan28

1. 简介

红黑树是一种自平衡二叉查找树。它的统计性能要好于平衡二叉树(AVL树),因此,红黑树在很多地方都有应用。在C++ STL中,很多部分(目前包括set, multiset, map, multimap)应用了红黑树的变体(SGI STL中的红黑树有一些变化,这些修改提供了更好的性能,以及对set操作的支持)。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是 高效的: 它可以在O(log n)时间内做查找,插入和删除等操作。

本文介绍了红黑树的基本性质和基本操作。

2. 红黑树的性质

红黑树,顾名思义,通过红黑两种颜色域保证树的高度近似平衡。它的每个节点是一个五元组:color(颜色),key(数据),left(左孩子),right(右孩子)和p(父节点)。

作者  | 2012-1-28 15:14:33 | 阅读(39) |评论(0) | 阅读全文>>

对动态链接库的概念其实还很模糊,自己的理解是:
把一些常用的代码,如函数,类等,编译成一个"包"即DLL(WINDOWS下)或者SO(LINUX下)文件,
然后供其它程序使用时直接调用里面封闭的函数即可,实现的代码的重用,也节省了
硬盘空间(这点可能是次要的吧).在WIDOWS下利用VC++可方便的生成DLL,在LINUX下则需要通过
各种编译命令来实现,对于像我这种菜鸟级程序员来说是个不小的挑战.
下面用个简单的例子来说明生成一个.SO文件和如何使用它:
1.我这有几个文件:
ConfigMap.cpp ConfigMap.h (读配置文件类)GetWinState.cpp GetWinState.h(ICE接口文件,由SLICE生成) GetWinSysState.cpp GetWinSysState.h (远程接口实现文件)

作者  | 2011-12-30 11:36:04 | 阅读(35) |评论(0) | 阅读全文>>

Useful cmds

2011-11-16 23:42:11 阅读27 评论0 162011/11 Nov16

ps -meo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:24,comm

作者  | 2011-11-16 23:42:11 | 阅读(27) |评论(0) | 阅读全文>>

linux等待队列(转载)

2011-11-15 23:56:27 阅读34 评论0 152011/11 Nov15

http://www.cnblogs.com/iceocean/archive/2010/01/18/1650926.html

Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。在Linux2.4.21中,等待队列在源代码树include/linux/wait.h中,这是一个通过list_head连接的典型双循环链表,如下图所示。


linux等待队列(转载) - lagignition - lagignition

作者  | 2011-11-15 23:56:27 | 阅读(34) |评论(0) | 阅读全文>>

Oprofile gprof

2011-9-14 11:08:26 阅读32 评论0 142011/09 Sept14

作者  | 2011-9-14 11:08:26 | 阅读(32) |评论(0) | 阅读全文>>

How to generate gcc debug symbol outside the build target?

2011-9-9 9:28:58 阅读40 评论0 92011/09 Sept9

gcc -ggdb -o test test.c; cp test test.debug; strip --only-keep-debug test.debug; strip test; objcopy --add-gnu-debuglink=test.debug test

 

http://stackoverflow.com/questions/866721/how-to-generate-gcc-debug-symbol-outside-the-build-target

作者  | 2011-9-9 9:28:58 | 阅读(40) |评论(0) | 阅读全文>>

使用gdbserver远程调试

2011-9-8 17:16:46 阅读54 评论0 82011/09 Sept8

1.默认crosstool交叉编译器没有自带gdbserver,需要自行编译
到GNU官方FTP下载,目前最新版的是gdb-6.7.1
下载地址:http://ftp.gnu.org/gnu/gdb/
注:若已有gdbserver,可以直接跳到步骤4
 
2.编译gdbserver
编译GDB源码时只需要编译出gdbserver就可以了,交叉编译器自带arm-linux-gdb(client端)可以使用。
gdb-6.7.1
# cd gdb-6.7.1/gdb/gdbserver/
#./configure --host=arm-linux --prefix=/work/install/gdbserver

作者  | 2011-9-8 17:16:46 | 阅读(54) |评论(0) | 阅读全文>>

Vi string replacement

2011-8-2 19:03:33 阅读31 评论0 22011/08 Aug2

:s/string_1/string_2/  string_1  string_2
:s/string_1/string_2/g  string_1  string_2
:n,$s/string_1/string_2/  n  string_1  string_2
:n,$s/string_1/string_2/g  n  string_1  string_2


n  n  .
:%s/string_1/string_2/( :g/string_1/s//string_2/)  string_1  string_2
:%s/string_1/string_2/g( :g/string_1/s//string_2/g)  string_1  string_2

作者  | 2011-8-2 19:03:33 | 阅读(31) |评论(0) | 阅读全文>>

ramdisk/ramfs/tmpfs/initrd/initramfs/rootfs/cpio

2011-7-21 23:40:05 阅读76 评论0 212011/07 July21


一 RAMDISK VS INITRD
  先简单介绍一下ramdisk,Ramdisk是虚拟于RAM中的盘(Disk)。对于用户来说,可以把RAM disk与通常的硬盘分区(如/dev/hda1)同等对待来使用
  # mkfs.ext2 /dev/ram0
  # mount /dev/ram0
  # mkdir /mnt/rd
  # mount /dev/ram0 /mnt/rd
  # ls /mnt/rd
  lost+found
  # df -h /dev/ram0
  编译到核心时,可以通过下面的一些核心命令行参数来配置Ramdisk:
  ramdisk_size - ramdisk的大小(Kbytes);
  initrd概述
  上面已经提到,Ramdisk需要先格式化然后理能使用。那么,如

作者  | 2011-7-21 23:40:05 | 阅读(76) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 我要留言
 
 
 
留言列表加载中...
 
 
 
 
 

发现好博客

 
 
列表加载中...
 
 
 
 
 
 
 
 

北京市 东城区 白羊座

 发消息  写留言

 
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 
 
 
 
 
 
 
下载音乐盒  曲目表歌词秀
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
列表加载中...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2012

   
创建博客 登录  
 关注