自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 资源 (1)
  • 收藏
  • 关注

转载 全面深入介绍C语言字符串函数

有人说,C语言就是提供了函数/结构体/指针,可是语言库确实相当重要, 特别是字符串库。1 函数头文件怎么用就不用介绍了,帮你回忆一下:extern char * strcpy(char *,const char *);//__kernel_

2011-10-02 17:30:53 1135

转载 linux网桥设置MAC地址时的行为

brctl addbr br0ifconfig br0br0 MAC is 00:00:00:00:00:00brctl addif br0 eth1  (eth1 is xx:xx:xx:xx:xx:33)ifconfig br0br0 MAC is xx:xx:xx:xx:xx:33  same as eth1, auto changebrctl addif br0 eth2  (et

2010-04-20 13:29:00 3969

转载 Linux网桥的实现分析

本文分析了linux 2.4.x内核的网桥的实现方法,并且描述了如何使用2.4中的网桥。网桥,类似于中继器,连接局域网中两个或者多个网段。它与中继器的不同之处就在于它能够解析它收发的数据,读取目标地址信息(MAC),并决定是否向所连接网络的其他网段转发数据包。为了能够决策向那个网段发送数据包,网桥学习接收到数据包的源MAC地址,在本地建立一个以MAC和端口为记录项的信息数据库。 Linux内核

2010-04-20 09:59:00 1246

转载 Redboot配置从flash引导的linux内核

首先,配置RedBoot的IP及其tftp服务器IP,装好tftp服务器,需要下载的内核及内存镜象应放在服务器的/tftpboot目录下配置RedBoot的指令是> fconfig注意:启动的延时不要设为0,否则以后就很难再更改系统了然后要执行flash存储器的初始化工作:> fis init之后,将kernel与ramdisk.gz通过tftp下载至内存并写入flash中> load -

2010-04-16 23:58:00 989

转载 哈佛图书馆

看到这篇文章,觉得很有感触,或许这再一次印证任何人每一次的成功背后都有不为人知的付出和汗水。 每当觉得坚持不下去时,就看看它。。。哈佛老师经常给学生这样的告诫:如果你想在进入社会后,在任何时候任何场合下都能得心应手并且得到应有的评价,那么你在哈佛的学习期间,就没有晒太阳的时间。      作为闻名于世的学府,哈佛大学培养了许多名人,他们中有33位诺贝尔奖获得者、7位美国总统以及各行各业的职业精

2010-04-10 08:39:00 566

转载 linux信号机制之sigaction结构体浅析

 信号安装函数sigaction(int signum,const struct sigaction *act,struct sigaction *oldact)的第二个参数是一个指向sigaction结构的指针(结构体名称与函数名一样,千万别弄混淆了)。在结构sigaction的实例中,指定了对特定信号的处理,信号所传递的信息,信号处理函数执行过程中应屏蔽掉哪些函数等。当然,此指针也可以为NUL

2010-03-30 10:47:00 650

转载 Linux的TUN/TAP编程

TUN/TAP虚拟网络设备为用户空间程序提供了网络数据包的发送和接收能力。他既可以当做点对点设备(TUN),也可以当做以太网设备(TAP)。实际上,不仅Linux支持TUN/TAP虚拟网络设备,其他UNIX也是支持的,他们之间只有少许差别。原理简介TUN/TAP虚拟网络设备的原理比较简单,他在Linux内核中添加了一个TUN/TAP虚拟网络设备的驱动程序和一个与之相关连的字符设备/dev/net/

2010-03-29 13:49:00 1149

转载 [百度分享]频繁分配释放内存导致的性能问题的分析

现象1 压力测试过程中,发现被测对象性能不够理想,具体表现为: 进程的系统态CPU消耗20,用户态CPU消耗10,系统idle大约70 2 用ps -o majflt,minflt -C program命令查看,发现majflt每秒增量为0,而minflt每秒增量大于10000。初步分析majflt代表major fault,中文名叫大错误,minflt代表minor fault,中文名叫小错误。

2010-03-27 09:22:00 745

转载 百度面试

1 完成函数size_t foo(unsigned int *a1, size_t al1, unsigned int* a2, size_t al2)其中a1和a2都为无符号数组,al1和al2为数组的长度,数组的长度为偶数。无符号数组由一对数字区间组成。如下例:a1 为 0,1,3,6,10,20a2 为 0,1,20,50,4,5则 a1表示以下区间[0,1] [3,6] [10,20]a2

2010-03-26 22:05:00 1000

转载 内核定时器(2.6.23)

一、定义:/include/linux/timer.h struct timer_list {struct list_head entry;unsigned long expires;void (*function)(unsigned long);unsigned long data;struct tvec_t_base_s *base;#ifd

2010-03-25 13:06:00 1845

转载 mmap driver

mmap will establish a mapping between kernel and userspace, We can use it to read data from kernel more quickly.mmap is a function pointer in driver, so we have to write a driver to realize it, a simp

2010-03-24 19:05:00 2739

转载 spinlock与linux内核调度的关系

关于自旋锁用法介绍的文章,已经有很多,但有些细节的地方点的还不够透。我这里就把我个人认为大家容易有疑问的地方拿出来讨论一下。 一、自旋锁(spinlock)简介 自旋锁在同一时刻只能被最多一个内核任务持有,所以一个时刻只有一个线程允许存在于临界区中。这点可以应用在多处理机器、或运行在单处理器上的抢占式内核中需要的锁定服务。二、信号量简介这里也介绍下信号量的概念,因为它的用法和自旋锁

2010-03-24 09:05:00 710

转载 __init的用法

在kernel中有很多__init,这个东东到底是何方神圣捏?且听小生我一一道来。下面是其定义:file:/include/linux/init.h 43 #define __init      __attribute__ ((__section__ (".init.text"))) __cold 44 #define __initdata  __attribute__ ((__section__

2010-03-23 20:10:00 594

转载 kthread usage

1 使用kthread_create创建线程:    struct task_struct *kthread_create(int (*threadfn)(void *data),                                                                   void *data,                              

2010-03-23 11:17:00 627

转载 字符设备 register_chrdev_region()、alloc_chrdev_region() 和 register_chrdev()

内核中所有已分配的字符设备编号都记录在一个名为 chrdevs 散列表里。该散列表中的每一个元素是一个 char_device_struct 结构,它的定义如下:   static struct char_device_struct {       struct char_device_struct *next;    // 指向散列冲突链表中的下一个元素的指针       unsigned

2010-03-19 09:26:00 514

转载 File_operations结构体

File_operations结构体       file_operation就是把系统调用和驱动程序关联起来的关键数据结构。这个结构的每一个成员都对应着一个系统调用。读取file_operation中相应的函数指针,接着把控制权转交给函数,从而完成了Linux设备驱动程序的工作。    在系统内部,I/O设备的存取操作通过特定的入口点来进行,而这组特定的入口点恰恰是由设备驱动程序提供的。

2010-03-18 21:02:00 591

转载 十年学会程序设计

这里分享一篇 Peter Norvig的 《十年学会程序设计》 (Peter Norvig  系Google研究院主任、美国计算机协会(ACM)资深会员(Fellow))。全文如下:十年学会程序设计Peter Norvig (Copyright 2001) 原文网址为何大家如此匆忙?走进任何一家书店,你会看到书架上一排不见尽头的放着如 以及几天或者几小时学会Windows, 因特网或者V

2010-03-18 13:31:00 508

转载 kernel 网桥代码分析

作者:林海枫 本文地址: http://blog.csdn.net/linyt/archive/2010/01/14/5191512.aspx 注:本文由作者所拥用,欢迎转载,但请全文转载并注明作者,请勿用于 任何商途。 本文分析的kernel版本为:2.6.24.4,网桥代码目录为:linux-2.6.24.4/net/bridge。 本文着重分析网桥的基本功能,关于STP的功能

2010-03-17 16:21:00 1340

转载 网桥实现与分析

第一部份 源码框架一、        网桥原理传统的中继器,如HUB,是一个单纯的物理层设备,它将每一个收到的数据包,在其所有的端口上广播,由接收主机来判断这个数据包是否是给自己的。这样,网络资源被极大的浪费掉了。网桥之所以不同于中继器,主要在于其除了有中继的作用外,还有一个更重要的作用,就是学习MAC地址,然后根据每个数据包的目的MAC与自身端口的对应,从关联端口发送数据,而不完全地在整个网

2010-03-17 16:16:00 799

转载 LINUX 内核协议栈各层的数据结构

 一, BSD/** *  struct socket - general BSD socket *  @state - socket state (%SS_CONNECTED, etc) *  @flags - socket flags (%SOCK_ASYNC_NOSPACE, etc) *  @ops - protocol specific socket operations * 

2010-03-16 09:53:00 1119

转载 How to enable packet forwarding for IPv4 and IPv6

Key words:/etc/sysctl.conf /sbin/sysctl /proc/sys Linuxrc/Documentation/networking/ip-sysctl.txt 方法一 proc/sys相关参数赋值 echo 1 > /proc/sys/net/ipv6/conf/default/forwarding –IPv6 echo 1 > /proc/sys/net/i

2010-03-16 09:23:00 2035

转载 Linux网络接口的源码结构

一.前言   Linux的源码里,网络接口的实现部份是非常值得一读的,通过读源码,不仅对网络协议会有更深的了解,也有助于在网络编程的时候,对应用函数有更精确的了解和把握。   本文把重点放在网络接口程序的总体结构上,希望能作为读源码时一些指导性的文字。   本文以Linux2.4.16内核作为讲解的对象,内核源码可以在http://www.kernel.org上下载。我读源码时参考的是

2010-03-16 09:11:00 597

转载 Linux网络代码导读v0.2

1 前言许多人在分析linux代码时对网络部分(主要是src/linux/net,src/linux/include/net及src/linux/include/linux目录下的文件)比较感兴趣,确实,尽管已经从书本上学到了大量的TCP/IP原理,不读源码的话,头脑中还是建立不起具体的印象。而分析这部分代码的一个问题便是代码众多而资料很少。这篇文章的目的就是勾勒出一个框架,让读者能够大致能够了解

2010-03-16 09:10:00 762

转载 linux内核网络栈代码分析

1. linux内核ipv4网络部分分层结构:  BSD socket层: 这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件 主要有:/net/socket.c /net/protocols.c etcINET socket层:BSD socket是个可以用于各种网络协议的接口,而当用于tcp/ip,即建立了AF_INET形

2010-03-16 09:07:00 536

转载 Linux多线程编程

一:Linux多线程编程:         线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。  为什么有了进程

2010-03-06 22:15:00 833

转载 十大好习惯

1、吃一顿营养的早餐   早餐是激活一天脑力的燃料,不能不吃。许多研究都指出,吃一顿优质的早餐可以让人在早晨思考敏锐,反应灵活,并提高学习和工作效率。研究也发现,有吃早餐习惯的人比较不容易发胖,记忆力也比较好。    2、每日5蔬果     这是1991年,由美国国家癌症研究院和健康促进基金会,共同推动的全民营养运动。根据调查,多吃蔬菜水果的人,可以减轻癌症与心脏病的风险。建议你,把蔬果放在最容易

2010-03-05 09:07:00 519

转载 IT工程师必看的十条建议

 [1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深入了解,不要频繁跳槽,特别是不要为了一点工资而转移阵地,从长远看,这点钱根本不算什么,当你对一个行业有那么几年的体会,以后钱根本不是问题。频繁地动荡不是上策,最后你对哪个行业都没有摸透,永远是新手!

2010-03-04 10:40:00 297

转载 “赢在中国”对80后的30个忠告

1、一个年轻人,如果三年的时间里,没有任何想法,他这一生,就基本这个样子,没有多大改变了。 -2、成功者就是胆识加魄力,曾经在火车上听人谈起过温州人的成功,说了这么三个字,胆子大。这其实,就是胆识,而拿得起,放得下,就是魄力。 -3、这个世界,有这么一小撮的人,打开报纸,是他们的消息,打开电视,是他们的消息,街头巷尾,议论的是他们的消息,仿佛世界是为他们准备的,他们能够呼风唤雨,无所不能。

2010-03-04 10:40:00 401

转载 简述C和C++程序员学习历程

总是被同学们问到,如何学习C和C++才不茫然,才不是乱学,想了一下,这里给出一个总的回复。   一家之言,欢迎拍砖哈。   1、可以考虑先学习C.   大多数时候,我们学习语言的目的,不是为了成为一个语言专家,而是希望成为一个解决问题的专家。做一个有用的程序员,做一个赚钱的程序员。我们的价值,将体现在客户价值上,而不是语言写得好不好看。   C++是C的一个面向对象的解释,C++为C扩充了大规模工

2010-03-03 10:07:00 379

转载 从程序人跨到学术人的深度历险

中央研究院資訊科學研究所助研究員/多媒體網路與系統實驗室主持人1976年生●學經歷:臺灣大學電機工程博士,於清華大學資訊工程系取得碩士與學士。原名陳寬達,曾擔任 Windows 及系統程式設計師、業界程式設計課程講師、技術書籍及雜誌專欄作者、共享軟體作者及 BBS 開發者/站長等工作,並著有《Delphi 深度歷險》、《C++Builder 深度歷險》等書●個人的中文網站連結網址:www.ii

2010-02-01 17:55:00 656

转载 TCP截包分段重组

TCP截包分段重组的设计功能-------TCP报文段会有失序,重复,对于截包还会有丢包。在进行上层协议分析之前,需要对TCP报文进行重组。分段重组是对TCP数据进行重新排序,丢序重复的数据,并指示数据的丢失。输入-------重组只处理单向数据流,所以一个TCP连接需要分别处理两个方向的数据流。重组的数据假定已经检查了检验和。截包重组忽略TCP窗口的大小。简单地讲,重组仅关心TCP序号,

2010-01-24 22:39:00 2675

转载 Linux内核数据结构

1.1.链表list_head    include/linux/list.h    很经典,链表在内核中很常用,例如管理进程,进程的各个状态队列都是使用这个双向链表实现的。内核中的链表定义成和数据无关的形式,而不是通常我们使用的链表格式,例如typedef struct _list{    Elemtype elem;    struct _list *next;}list;内核中的链表定义为s

2010-01-19 23:45:00 752

转载 linux内核导读

一.核心源程序的文件组织: 1.Linux核心源程序通常都安装在/usr/src/linux下,而且它有一个非常简单的编号约定:任何偶数的核心(例如2.0.30)都是一个稳定地发行的核心,而任何奇数的核心(例如2.1.42)都是一个开发中的核心。 本文基于稳定的2.2.5源代码,第二部分的实现平台为 Redhat Linux 6.0。 2.核心源程序的文件按树形结构进行组织,在源程序树的最上层你会

2010-01-11 13:00:00 600

转载 c书籍

《C专家编程》《C和指针》《C陷阱与缺陷》《C语言解析教程第5版》《C primer plus 》《C语言核心技术》《The C Programming Language》

2010-01-11 12:49:00 852

转载 好的程序员

要判断一个程序员是不是好的程序员,主要看他写的代码,因为程序员最重要的事是写代码。即便不去理解代码的意图,只要看一眼,好的程序员写的代码与差的程序员写的代码基本上就可以看出来。好的程序员写的代码,整洁而规范,视觉上自然有一种美感。空白错落有致,注释恰到好处,命名和排版遵守统一的规范。差的程序员写的代码则经常出现过长的函数,前后不一致的命名方式和排版,过深的嵌套结构,非常复杂的表达式,随处可

2010-01-08 19:19:00 725

转载 知识与智慧

数学是知识,哲学是智慧 至于知识和智慧的区别,下面是摘自网上的一段,说的很好,我在这里直接引用: 知识是人类对有限认识的理解与掌握,智慧是一种悟,是对无限和永恒的理解和推论。因此,博学家与智者是两种不同类型的人,智者掌握的知识不一定胜过博学家,但智者对世界的理解一定深刻得多。两者比较就如一个知识女性和一个聪慧女性的比较,后者令人心仪的不是其掌握知识的多少而是在其灵性。 知识是有限的,再博学的知识在

2010-01-08 18:59:00 1036

转载 TCP push

 由于发送该数据会清空发送缓冲,所以要加上PUSH标志。(告诉接收者:所有数据已发送,马上送到应用层去。)这里所说的数据包括与此PUSH包一起传输的数据以及之前就为该进程传输过来的数据设置PUSH标志:如果待发送的数据会清空发送缓存,那么栈就会自动为此包设置PUSH标志正在看《tcp/ip详解》8个wrtie,每个写1024的数据,每个都会加上push标志,原因是这么说的each

2010-01-05 11:03:00 9006 1

转载 基于libnids的TCP数据流的还原(多线程实现)

 我们知道,libnids本身可以实现TCP数据流的重组,但是如果一个TCP流数据量比较大的时候,就会分成好多个TCP报文段,这些报文段在网络中的传播可能是乱序的,利用libnids可以帮助我们按顺序接收到这些报文段,即实现TCP报文段的重组。    但是我们如何把这些顺序的报文段重新还原成一个完整的数据文件,也是要考虑的一个问题,因为在很多时候,单个的报文段对我们的意义不大,我们需要一个完整

2010-01-03 14:40:00 3231 3

转载 HTTP协议

引言                                        HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTT

2010-01-03 12:35:00 894

转载 libnids-1.21 中 IP 分片重组分析之数据结构与处理流程

http://blog.csdn.net/sandrain_zeq/archive/2007/06/13/1651246.aspx

2010-01-03 12:33:00 1148

VMware Workstation 6 基本使用

详细介绍了VMware Workstation 6 基本使用,对虚拟机有个全方位的掌握

2008-10-27

空空如也

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

TA关注的人

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