自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 内存分配

1.      原理说明Linux内核中采用了一种同时适用于32位和64位系统的内存分页模型,对于32位系统来说,两级页表足够用了,而在x86_64系统中,用到了四级页表,如图2-1所示。四级页表分别为:l         页全局目录(Page Global Directory)l         页上级目录(Page Upper Directory)l      

2013-09-29 12:08:46 680

原创 设置core

ulimit -aulimit -c unlimitedecho "ulimit -c unlimited" >> /etc/profileecho "/usap/hdstorage/core.%p" > /proc/sys/kernel/core_patternsource /etc/profileulimit -a

2013-09-27 18:18:59 551

转载 WTERMSIG

1、system()函数相关函数:fork,execve,waipid,popen表头文件:#include函数定义:int system(const char *string)返回值:如果fork()失败 返回-1:出现错误如果exec()失败,表示不能执行Shell,返回值相当于Shell执行了exit(127)如果执行成功则返回子Shell的终止状态

2013-09-27 16:05:15 4572

转载 pstree

1. 使用 pstree -p PIDps aux | grep firefox | grep -v grepcharles  26058  0.0  0.0   4908  1152 ?        S    19:17   0:00 /bin/sh /usr/lib/firefox-3.5.4/run-mozilla.sh /usr/lib/firefox-3.5.4/firef

2013-09-25 11:29:20 1637

转载 Linux 网卡丢包严重

生产中有一台linux设备并发比较大,droped包比较多,尤其是在跑游戏数据包的时候,存在严重的丢包现象,怀疑网卡性能不足,在更换设备前想能不有通过软件方法解决,通过网上一些资料显示,出现这种现象,也有可能是网卡buffer size 太小的原因,遂尝试更改buffer 大小解决,下面的设备运行了64天,丢包超过20多亿找了一些国外的文章,可以通过ethtool来修改网卡的buf

2013-09-25 10:07:08 4454

转载 ps -aux

运行 ps aux 的到如下信息:   ps auxUSER    PID   %CPU %MEM VSZ   RSS TTY    STAT   START TIME COMMANDsmmsp 3521   0.0    0.7     6556 1616     ?        Ss      20:40 0:00 sendmail: Queue runner@01:00:00

2013-09-25 09:41:51 930

转载 ftruncate

ftruncateftruncate()函数功能:改变文件大小相关函数:open、truncate表头文件:#include 函数原型:int ftruncate(int fd, off_t length)函数说明:ftruncate()会将参数fd指定的文件大小改为参数length指定的大小。参数fd为已打开的文件描述词,而且必须是以写入模式打开的

2013-09-12 15:45:44 1026

转载 dhcp

Linux 实现dhcp的MAC与IP绑定2012年02月17日 星期五 2:53 P.M.在Linux下,要实现dhcp的MAC与IP绑定,就需要在/etc/dhcpd.conf 文件中为每一个MAC指定一个IP地址。dhcp的配置文件是/etc/dhcpd.conf,不过默认的情况下这个文件不存在,你需要使用它的模板建一个配置文件。模板的位置在/usr/sh

2013-09-12 15:44:48 964

转载 Linux系统调用--getrlimit()与setrlimit()函数详解

获取或设定资源使用限制。每种资源都有相关的软硬限制,软限制是内核强加给相应资源的限制值,硬限制是软限制的最大值。非授权调用进程只可以将其软限制指定为0~硬限制范围中的某个值,同时能不可逆转地降低其硬限制。授权进程可以任意改变其软硬限制。RLIM_INFINITY的值表示不对资源限制。用法:#include int getrlimit(int resource, struct r

2013-09-12 09:21:37 721

转载 linux free

下面和大家分享在Linux下查看内存使用情况的free命令:  [root@scs-2 tmp]# free  total used free shared buffers cached  Mem: 3266180 3250004 16176 0 110652 2668236  -/+ buffers/cache: 471116 2795064  Swap:

2013-09-11 20:08:40 562

转载 inux 路由表维护

查看 Linux 内核路由表使用下面的 route 命令可以查看 Linux 内核路由表。# routeDestination Gateway Genmask Flags Metric Ref Use Iface192.168.0.0 * 255.255.255.0 U

2013-09-11 17:08:27 879

转载 kernel time

linux内核是通过定时器中断来跟踪时间流;使用"HZ"宏表示1秒的时钟中断次数;并使用"jiffies"及"jiffies_64"变量来记录时钟中断次数,在系统引导时计数器初始化为0。  示例4_1#include linux/jiffies.h>unsigned long stamp;stamp = jiffies + HZ; /* 之后1秒 */

2013-09-09 09:41:03 1192

转载 netfilter内核态与用户态 通信 之 sockopt

用户态与内核态交互通信的方法不止一种,sockopt是比较方便的一个,写法也简单.缺点就是使用 copy_from_user()/copy_to_user()完成内核和用户的通信, 效率其实不高, 多用在传递控制 选项 信息,不适合做大量的数据传输用户态函数:发送:int setsockopt ( int sockfd, int proto, int cmd, void *da

2013-09-08 23:14:44 1002

转载 Netfilter 连接跟踪与状态检测的实现

Netfilter 连接跟踪与状态检测的实现   作者:九贱 www.skynet.org.cn 内核版本:2.6.12 本文只是一部份,详细分析了连接跟踪的基本实现,对于ALG部份,还没有写,在整理笔记,欢迎大家提意见,批评指正。 [size=4][color=Red]1.什么是连接跟踪[/col

2013-09-08 23:09:33 1124

转载 Linux 内存的布局

n[地址映射](图:左中)linux内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址。想一下,地址映射还是一件很恐怖的事情。当访问一个由虚拟地址表示的内存空间时,需要先经过若干次的内存访问,得到每一级页表中用于转换的页表项(页表是存

2013-09-08 11:11:42 823

转载 do_div

【问题】编译Linux下面的代码,经常会遇到这种错误:undefined reference to `__udivdi3'【解决过程】之前遇到过几次了,都是类似的原因导致此问题的。后来才了解,其根本原因:嵌入式中,32位系统中(目前多数系统都是,比如ARM的片子),对于普通的a除以b(b为32位):(1)当a为32位,Linux 内核中,常用uint

2013-09-06 17:40:51 7197

转载 man kernel

在学linux设备驱动的时候,有好多函数的查看都比较麻烦,必须要进入到内核目录中去看函数的定义,个人还是比较习惯使用man命令查看。    有困难找男人(man),这是一个很高效的方法,由于平时所使用的man命令都只是支持应用层的一些函数,因为内核每一次升级对内核函数库,都会有点影响,所以才没有添加支持man把(自己粗解)。    要先把男人先装好,才能找他,步骤如下(我用的是Ub

2013-09-06 14:16:27 720

转载 netfilter1

注:     当用户态进程发送数据时,调用sendmsg实现,其调用内核netlink_sendmsg函数完成,新建了sk_buff,然后给其cb私有缓存中保存了源地址信息,然后把数据拷贝到sk_buff中[nlmsghdr头部已经附在数据部分前面,作为数据部分了]然后利用netlink_unicast发送出去      而当内核态发送时,新建了一个sk_buff,头部填写了nlmsghd

2013-09-06 13:52:21 864

转载 netfilter sock

开发和维护内核是一件很繁杂的工作,因此,只有那些最重要或者与系统性能息息相关的代码才将其安排在内核中。其它程序,比如GUI,管理以及控制部分的代码,一般都会作为用户态程序。在linux系统中,把系统的某个特性分割成在内核中和在用户空间中分别实现一部分的做法是很常见的(比如linux系统的防火墙就分成了内核态的Netfilter和用户态的iptables)。然而,内核程序与用户态的程序又是怎样行通讯

2013-09-06 11:39:15 1132

转载 create_proc_read_entry中函数的说名

原型:struct proc_dir_entry *create_proc_read_entry (const char *name, mode_t mode, struct proc_dir_entry *base, read_proc_t *read_proc, void *data);说明:name : 要创建的文件名;mode : 文件掩码,为

2013-09-06 10:09:46 5240

转载 nefilter

这个函数实现很简单,它就是置事件缓存的标志位。static inline voidnf_conntrack_event_cache(enum ip_conntrack_events event, struct nf_conn *ct){        struct nf_conntrack_ecache *e;        if (nf

2013-09-05 23:10:30 3053

转载 netfilter

Netlink在2.6版本的内核中变化也是很大的,在最新的2.6.37内核中,其定义已经改成下面这种形式,传递的参数已经达到6个。其中第一个参数和mutex参数都是最新添加的。Mutex也可以为空。这里主要是关于内核空间中的netlink函数的使用。extern struct sock *netlink_kernel_create(struct net *net, 

2013-09-05 18:19:05 744

转载 内核通知链表简介

1.内核通知链表简介(引用网络资料)    大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用,而不能够在内核与用户空间之间进行事件的通知。   通知链表是一个函数链表,链表上的每一个节点都注册了一个函数。当某个事情发

2013-09-05 17:23:30 806

转载 内核定时器

分类: LINUXLinux内核2.4版中去掉了老版本内核中的静态定时器机制,而只留下动态定时器。相应地在timer_bh()函数中也不再通过run_old_timers()函数来运行老式的静态定时器。动态定时器与静态定时器这二个概念是相对于Linux内核定时器机制的可扩展功能而言的,动态定时器是指内核的定时器队列是可以动态变化的,然而就定时器本身而言,二者并无本质的区别。考虑到静

2013-09-05 16:09:02 678

转载 原理操作

atomic_inc(&v)对变量v用锁定总线的单指令进行不可分解的"原子"级增量操作,避免v的值由于中断或多处理器同时操作造成不确定状态。原子操作  所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用了物理学里的物质微粒的概念。  原子操作需要硬件的支持,因此是架构相

2013-09-05 16:02:51 659

转载 Linux网络协议栈QoS模块(TC)的设计与实现

本文描述了linux 2.4.x内核中对QoS支持的设计与实现,并且对缺省的数据包调度机制PFIFO进行了详细的分析。在传统的TCP/IP网络的路由器中,所有的IP数据包的传输都是采用FIFO(先进先出),尽最大努力传输的处理机制。在早期网络数据量和关键业务数据不多的时候,并没有体现出非常大的缺点,路由器简单的把数据报丢弃来处理拥塞。但是随着计算机网络的发展, 数据量的急剧增长,以及多媒体

2013-09-05 15:47:37 2077

转载 miii

查看:dmesg| grep eth01. 查看网卡的工作模式,输入命令:  #mii-tool -v  eth0: negotiated 100baseTx-FD,link ok  product info:Vendor 00:05:be,model 8 rev 0  basic status: autonegotiation complete,lin

2013-09-05 10:23:39 1673

转载 Linux下patch打补丁命令

此命令用于为特定软件包打补丁,他使用diff命令对源文件进行操作。基本命令语法:patch [-R] {-p(n)} [--dry-run] p:为path的缩写。n:指将patch文件中的path第n条’/’及其左边部分取消。-R:卸载patch包。--dry-run:尝试patch软件,并不真正修改软件。使用实例:/home/sense/patch-2.6.19

2013-09-05 09:28:16 24388

转载 自旋锁

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yunsongice/archive/2010/05/18/5605264.aspx加锁(locking)是一种广泛应用的同步技术。当内核控制路径必须访问共享数据结构或进入临界区时,就需要为自己获取一把“锁”。由锁机制保护的资源非常类似于限制于房间内的资源,当某人进入房间时,就把门锁上。如果内核控制路径希望访问资源

2013-09-03 22:37:34 643

转载 rcu

众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用。但是随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速度在成倍地增加,原因很简单,CPU的速度与访问内存的速度差距越来越大,而这种锁使用了原子操作指令,它需要原子地访问内存,也就说获得锁的开销

2013-09-03 22:28:02 757

转载 create_proc_read_entry(), create_proc_entry() | 创建 /proc 文件

reate_proc_read_entry(), create_proc_entry() | 创建 /proc 文件说明:name : 要创建的文件名;mode : 文件掩码,为 0 则按照系统默认的掩码创建文件。base : 指定该文件所在的目录,如果为 NULL,则文件被创建在 /proc 根目录下。read_proc : 实现该文件的 read

2013-09-03 11:19:21 1010

空空如也

空空如也

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

TA关注的人

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