自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 linux 笔记 关于struct file 结构下 private_data 数据结构的思考

http://blog.csdn.net/bush2582/article/details/7731220  struct file是字符设备驱动相关重要结构。struct file代表一个打开的文件描述符,它不是专门给驱动程序使用的,系统中每一个打开的文件在内核中都有一个关联的 struct file。 它由内核在 open时创建,并传递给在文件上操作的任何函数,知道最后关闭

2014-09-26 17:26:03 1939

转载 linux内核网络监听哈希表介绍:如何将sk加入表和将sk移除表的过程

以下基于linux内核2.4.0源码(转载请注明出处)松哥 jccz_zys@tom.com     网络通信过程中,服务器必然提供监听socket响应客户端连接请求,也必然提供连接socket与客户端进行交互。一台主机上有不止一个的socket服务器,如ftp、telnet服务器等,他们初始都处于监听状态,等待连接请求的到来。linux中为了管理这两类socket提供了两个哈希链表:

2014-09-26 17:22:58 1357

转载 多队列网卡简介以及Linux通过网卡发送数据包源码解读

http://blog.csdn.net/yanghua_kobe/article/details/7485254 首先我们看一下一个主流多队列网卡(E1000)跟多核CPU之间的关系图:非多队列:linux的网卡由结构体net_device表示,一个该结构体对应一个可以调度的数据包发送队列。数据包的实体在内核中以结构体sk_buff(s

2014-09-26 11:08:42 889

转载 Linux网络协议栈之数据包处理过程(非技术人员勿看)

http://blog.chinaunix.net/uid-16867579-id-2857166.html Linux网络协议栈之数据包处理过程  1 前言翻译《 The journey of a packet through the linux 2.4 network stack 》 这篇文章这篇文档是基于 x86 体系结构和转发 IP 分组的。  

2014-09-26 10:18:30 6173

转载 Linux 网络堆栈的排队机制

http://blog.jobbole.com/62917/ 在任何网络堆栈或设备中,数据包的队列都是非常重要。这些队列使得不在同一时刻加载的模块能够相互通信,并且能提高网络性能,同时也会间接影响到网络延时的长短。本文章通过阐述IP数据包在Linux网络中的排队机制,来解释两个问题:BQL一类新特性是如何减小网络延时的。如何控制已减小延时后的缓存。下面这张图(和它的

2014-09-25 16:23:20 1115

转载 TCP恋爱史:三次握手和四次分手

http://linux.cn/article-3896-1.html TCP协议非常重要,这里把它的连接和释放整理一下。首先是三次握手:1、  客户端发起,像服务器发送的报文SYN=1,ACK=0,然后选择了一个初始序号:seq=x。SYN是干什么用的?在链接的时候创建一个同步序号,当SYN=1同时ACK=0的时候,表明这是一个连接请求的报

2014-09-25 14:25:13 792

转载 100个常用的linux命令

http://blogread.cn/it/article/6368?f=wb1,echo “aa” > test.txt 和 echo “bb” >> test.txt //>将原文件清空,并且内容写入到文件中,>>将内容放到文件的尾部   2,chmod go+w -R /home/zhangy //给组用户和其他用户添加写的权限   3,tar -tzvf t

2014-09-24 09:41:06 600

转载 高效Linux用户需要了解的命令行技能

http://blog.jobbole.com/46976/ 最近在Quora上看到一个问答题目,关于在高效率Linux用户节省时间Tips。将该题目的回答进行学习总结,加上自己的一些经验,记录如下,方便自己和大家参考。下面介绍的都是一些命令行工具,这些工具在几位回答者的日常工作中都很有用。对于任何不了解的命令,请使用“man “查看,或者使用Google。有些命令需要先用

2014-09-24 09:39:54 592

转载 三张图看遍Linux 性能监控、测试、优化工具

http://linux.cn/article-3820-1-qqmail.html Linux 平台上的性能工具有很多,眼花缭乱,长期的摸索和经验发现最好用的还是那些久经考验的、简单的小工具。系统性能专家 Brendan D. Gregg 在最近的 LinuxCon NA 2014 大会上更新了他那个有名的关于 Linux 性能方面的 talk (Linux Performanc

2014-09-24 09:18:11 600

转载 gcc 生成 .a静态库和 .so动态库

http://www.cnblogs.com/ymy124/archive/2012/04/13/2446434.html 我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态

2014-09-17 14:37:36 875

转载 linux 内核tcp接收数据的实现

http://simohayha.iteye.com/blog/478025 相比于发送数据,接收数据更复杂一些。接收数据这里和3层的接口是tcp_v4_rcv(我前面的blog有介绍3层和4层的接口的实现).而4层和用户空间,也就是系统调用是socket_recvmsg(其他的读取函数也都会调用这个函数).而这个系统调用会调用__sock_recvmsg.下面我们就先来看下这个函数。 

2014-09-16 11:15:57 2664

转载 linux kernel笔记——中断

http://blog.chinaunix.net/uid-27119491-id-3273595.html cpu与磁盘、网卡、键盘等外围设备(相对于cpu和内存而言)交互时,cpu下发I/O请求到这些设备后,相对cpu的处理能力而言,磁盘、网卡等设备需要较长时间完成请求处理。那么在请求发出到处理完成这段时间,应如何设定cpu的行为,既能让这期间运行的其他程序得到执行

2014-09-15 18:07:38 985

转载 qperf测量网络带宽和延迟

http://blog.yufeng.info/archives/2234 原创文章,转载请注明: 转载自系统技术非业余研究本文链接地址: qperf测量网络带宽和延迟我们在做网络服务器的时候,通常会很关心网络的带宽和延迟。因为我们的很多协议都是request-reponse协议,延迟决定了最大的QPS,而带宽决定了最大的负荷。 通常我们知道自己的网卡是

2014-09-15 14:36:19 1299

转载 深入分析 Linux 内核链表

http://www.ibm.com/developerworks/cn/linux/kernel/l-chain/index.html 一、 链表数据结构简介链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表

2014-09-15 11:55:08 569

转载 SystemTap Beginner

http://blog.csdn.net/kafeiflynn/article/details/6429976 SystemTap 应用:对管理员,SystemTap可用于监控系统性能,找出系统瓶颈,而对于开发者,可以查看他们的程序运行时在linux系统内核内部的运行情况。主要用于查看内核空间事件信息,对用户空间事件的探测,目前正加紧改进。安装1、SystemT

2014-09-11 14:40:31 686

转载 使用systemtap调试linux内核

http://blog.csdn.net/heli007/article/details/7187748 安装SystemTap(ubuntu10.10)简便的安装方式通过下面命令直接下载并安装在系统里:# sudo apt-get install systemtap也可以去http://sourceware.org/systemtap/getinvolve

2014-09-09 17:50:48 992

转载 使用gdb调试linux内核

http://blog.csdn.net/heli007/article/details/7187586 使用Gdb+qemu调试内核:我们调试内核需要一个叫qemu的虚拟机,qemu虚拟的一个好处便是可以让cpu处于冻结状态,从而让操作系统处于暂停状态,这样我们才能很方便的调试内核。首先使用qemu安装一个操作系统,再将该操作系统的内核换成我们要调试的。安

2014-09-09 17:49:16 1072

转载 Linux 2.6.35 新增特性 RPS RFS [复制链接]

http://bbs.chinaunix.net/thread-1925718-1-1.html 懒得拷贝了(主要是试了拷贝,竟然拷贝不了图片,突然感觉还是QQ空间发表日志时的粘贴功能强大,连文字带图一起拷贝过去了,之后还提示是否要把图片给抓取过来存到QQ相册),见链接:http://blog.chinaunix.net/u/26524/showart_2297201.html

2014-09-09 15:41:20 731

转载 Linux open系统调用流程

1.概述我们知道,Linux把设备看成特殊的文件,称为设备文件。在操作文件之前,首先必须打开文件,打开文件的函数是通过open系统调用来实现的。而简单的文件打开操作,在Linux内核实现却是非常的复杂。open函数打开原理就是将进程files_struct结构体和文件对象file相关联。那么具体是怎么实现的呢?让我们一起走进Linux内核文件打开流程。2. 首先,通过系统调用sys

2014-09-09 14:44:46 6023

转载 Linux学习】epoll详解

http://blog.csdn.net/xiajun07061225/article/details/9250579 什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux

2014-09-09 10:48:57 630

转载 linux 内核编程之proc虚拟文件系统

http://blog.csdn.net/shallnet/article/details/17734619 【版权声明:转载请保留出处:blog.csdn.net/gentleliu。邮箱:shallnew*163.com】在 Linux 系统中,/proc 文件系统十分有用,它被用于内核向用户导出信息。/proc 文件系统是一个虚拟文件系统,通过它可以使用一种新

2014-09-07 20:12:08 756

转载 Linux IO协议栈框图

Linux IO协议栈框图今天4月份在高阳同学的IO协议栈相关的PPT里面发现了这张图,最终来源 http://www.thomas-krenn.com/en/oss/linux-io-stack-diagram/linux-io-stack-diagram_v0.1.pdf,忍不住还是贴了出来。这张图很清晰的把linux IO协议栈的层次给勾出来了,而且内容很

2014-09-05 09:49:57 2440

转载 linux:dropwatch 网络协议栈丢包检查利器

原创文章,转载请注明: 转载自系统技术非业余研究本文链接地址: dropwatch 网络协议栈丢包检查利器在做网络服务器的时候,会碰到各种各样的网络问题比如说网络超时,通常一般的开发人员对于这种问题最常用的工具当然是tcpdump或者更先进的wireshark来进行抓包分析。通常这个工具能解决大部分的问题,但是比如说wireshark发现丢包,那深层次的原因就很难解释了。这

2014-09-05 09:47:29 4175

转载 linux:systemtap观察page_cache的使用情况

本文链接地址: systemtap观察page_cache的使用情况在规划服务器的内存使用的时候经常需要知道应用在理想情况下会使用多少的pagecache, 我们好预先把这个内存预留出来.这个值操作系统没有提供可查看的管道,我们只能自己写个脚本来实现.下面的systemtap脚本每隔N秒显示下当前os下头10个文件占用多少的pagecache, 降序排列.

2014-09-05 09:41:03 1010

转载 linux:用systemtap来修改下linux内核变量的值

原创文章,转载请注明: 转载自系统技术非业余研究本文链接地址: 用systemtap来修改下linux内核变量的值我们在探索linux内核的时候,经常需要调整下变量的值,看它对系统的影响。如果这个值没有透过/proc来修改的话,那只能编译内核。这个步骤是非常繁琐的。现在我们有systemtap这个利器来帮忙了。演示如下:我们通过修改过extern int s

2014-09-05 09:40:46 1116

转载 linux:网络栈内存不足引发进程挂起问题

http://blog.yufeng.info/archives/2511 原创文章,转载请注明: 转载自系统技术非业余研究本文链接地址: 网络栈内存不足引发进程挂起问题我们知道TCP socket有发送缓冲区和接收缓冲区,这二个缓冲区都可以透过setsockopt设置SO_SNDBUF,SO_RCVBUF来修改,但是这些值设多大呢?这些值和协议栈的内存

2014-09-05 09:34:04 1634

转载 linux kernel中epoll的设计和实现

http://www.pagefault.info/?p=264 本文链接地址: 路由的基本概念介绍这里主要是针对linux下的路由一些基本概念.1 路由是位于L3(ip层)。2 路由表(routing table)也叫做Forwarding Information Base(FIB).3 路由器之间通过路由协议(routing

2014-09-05 09:30:48 799

转载 linux kernel中epoll的设计和实现

http://www.pagefault.info/?p=264 原创文章,转载请注明: 转载自pagefault本文链接地址: linux kernel中epoll的设计和实现这里就不贴源码了,源码分析的话,网上一大堆,我这里只是简要的描述下epoll的实现和一些关键的代码片段。相关的文件在 fs/eventpoll.c中,我看的是2.6.38

2014-09-05 09:28:47 1552

转载 Linux内核分析 - 网络[十二]:UDP模块 - socket

http://blog.csdn.net/qy532846454/article/details/6942667 内核版本:2.6.34这部分内容在于说明socket创建后如何被内核协议栈访问到,只关注两个问题:sock何时插入内核表的,sock如何被内核访问的。对于核心的sock的插入、查找函数都给出了流程图。sock如何插入内核表      socket创建后就

2014-09-04 15:13:20 814

转载 Linux内核哈希表分析与应用

http://blog.csdn.net/tigerjibo/article/details/8450995 Author:tiger-johnTime:2012-12-20mail:jibo.tiger@gmail.comBlog:http://blog.csdn.net/tigerjb/article/details/8450995

2014-09-04 14:55:57 696

转载 编程之外:使用Latex/Tex创建自己的简历。

http://www.cnblogs.com/aoaoblogs/archive/2013/01/24/2874595.html 使用Latex/Tex创建自己的简历。正在折腾Latex,看到篇博客Creating a Resume Using LaTeX, 于是也把自己的简历用Latex重新写了一遍,好处就是可以使用git来管理自己的简历版本了,比

2014-09-04 11:00:24 1550

转载 linux内核:CPU私有变量(per-CPU变量)

http://blog.chinaunix.net/uid-24148050-id-300576.html分类: LINUX一、简介2.6内核上一个新的特性就是per-CPU变量。顾名思义,就是每个处理器上有此变量的一个副本。per-CPU的最大优点就是,对它的访问几乎不需要锁,因为每个CPU都在自己的副本上工作。tasklet、timer_

2014-09-03 15:16:29 690

转载 linux:查看内核锁

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/lockstat.txt LOCK STATISTICS- WHATAs the name suggests, it provides statistics on locks.- WHYBecause th

2014-09-03 14:57:39 2125

原创 linux:socket 系统调用在linux内核中的实现流程图

socket 系统调用在linux内核中的实现:

2014-09-03 12:26:12 2020

转载 linux内核的数据结构:2 散列表

http://blog.csdn.net/fengtaocat/article/details/7025488 Linux内核中实现了一种简单的开散列表。散列表中的每个项都是一个hlist_head结构,hlist_head结构是一个链表的头结点,它的大小是固定的。而在链表中具体保存我们需要的信息。这个链表的实现方式与前文所讲的双向循环链表有所不同。Linux内核中

2014-09-02 17:00:47 866

转载 linux内核的数据结构:3 每CPU变量

http://blog.csdn.net/fengtaocat/article/details/7078472 本文采用linux 3.04内核版本。             多核情况下,CPU是同时并发运行的,但是多它们共同使用其他的硬件资源的,因此我们需要解决多个CPU之间的同步问题。每CPU变量(per-cpu-variable)是内核中一种重要的同步机制

2014-09-02 16:59:40 815

转载 linux:如何指定进程运行的CPU

http://www.cnblogs.com/liuhao/archive/2012/06/21/2558069.html 如何指定进程运行的CPUcoolshell最新的文章《性能调优攻略》在“多核CPU调优”章节,提到“我们不能任由操作系统负载均衡,因为我们自己更了解自己的程序,所以,我们可以手动地为其分配CPU核,而不会过多地占用CPU0,或是让我

2014-09-01 14:26:24 668

转载 Linux系统调用之SYSCALL_DEFINE

相信熟悉系统调用的都知道,系统调用在内核中的入口都是sys_xxx,我也不例外,记得有一次,我抱着学习一下socket内核实现的心态想在内核中寻找sys_socket系统调用,却发现只能找到宏定义,怎么也找不到函数实现。后来经过查阅才知道,原来Linux的系统调用都改为SYSCALL_DEFINE定义的了。相信大家都很疑惑,原来的sys_xxx不是挺好的吗?为什么要定义成SYSCALL_DEFIN

2014-09-01 09:36:43 928

空空如也

空空如也

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

TA关注的人

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