linux相关
文章平均质量分 60
sandflee
这个作者很懒,什么都没留下…
展开
-
Address already in use的解决方法
当客户端保持着与服务器端的连接,这时服务器端断开,再开启服务器时会出现: Address already in usr可以用netstat -anp | more可以看到客户端还保持着与服务器的连接(还在使用服务器bind的端口)。这是由于client没有执行close,连接还会等待client的FIN包一段时间。解决方法是使用setsockopt,使得socket可以被重用,是最转载 2010-01-04 21:19:00 · 744 阅读 · 0 评论 -
tune2fs和dumpe2fs 命令用法
<br />tune2fs是linux下面重要的文件系统调整工具,其中的几个选项解释如下:<br />-c:表示文件系统在mount次数达到设定后,需要运行fsck检查文件系统。<br />-i:文件系统的检查间隔时间。系统在达到时间间隔时,自动检查文件系统。<br />-l:显示文件系统的很多参数。<br />-j:转换为ext3文件系统。<br />-m: Set the percentage of reserved filesystem blocks。 设置保留的空间百分比<br />转载 2010-06-24 15:40:00 · 2281 阅读 · 0 评论 -
转:Linux的TUN/TAP编程
<br />原文地址:http://hi.baidu.com/zkheartboy/blog/item/e96acf33508e4a40ad4b5f88.html<br />TUN/TAP虚拟网络设备为用户空间程序提供了网络数据包的发送和接收能力。他既可以当做点对点设备(TUN),也可以当做以太网设备(TAP)。实际上,不仅Linux支持TUN/TAP虚拟网络设备,其他UNIX也是支持的,他们之间只有少许差别。<br /><br />原理简介<br /><br />TUN/TAP 虚拟网络设备的原理比较转载 2010-07-01 17:15:00 · 472 阅读 · 0 评论 -
ZT]Linux2.6内核在嵌入式应用上的突破
<br />摘要<br />众所周知,Linux在嵌入式系统中的应用已经非常普遍。为了进一步促进这方面的应用,在Linux2.6中,引入了很多非常有利于嵌入式应用的功能。这些新功能包括实时性能的增强、更方便的移植性、对大容量内存的支持、支持微控制器和I/O系统的改进等。(2004-05-06 19:40:18)<br /><br />--------------------------------------------------------------------------------转载 2010-07-05 12:12:00 · 294 阅读 · 0 评论 -
RDMA over TCP的协议栈工作过程浅析
随着网络带宽和速度的发展和大数据量数据的迁移的需求,网络带宽增长速度远远高于处理网络流量时所必需的计算节点的能力和对内存带宽的需求,数据中心网络架构已经逐步成为计算和存储技术的发展的瓶颈,迫切需要采用一种更高效的数据通讯架构。<br /> 传统的TCP/IP技术在数据包处理过程中,要经过操作系统及其他软件层,需要占用大量的服务器资源和内存总线带宽,所产生严重的延迟来自系统庞大的开销、数据在系统内存、处理器缓存和网络控制器缓存之间来回进行复制移动,如图1.1所示,给服务器的转载 2010-07-08 14:21:00 · 494 阅读 · 0 评论 -
InfiniBand 技术及其在 Linux 系统中的配置简介
文档选项<trvalign="top"><td width="8"><img alt="" height="1" width="8"src="//www.ibm.com/i/c.gif"/></td><td width="16"><img alt="" width="16"height="16" src="//www.ibm.com/i/c.gif"/></td><td class="small"width="122"><p><span class="ast">未显示需要 JavaScrip转载 2010-07-08 14:56:00 · 953 阅读 · 0 评论 -
[总结] Linux下/dev/mem和/dev/kmem的区别及作用
<br /> 区别:<br />/dev/mem: 物理内存的全镜像。可以用来访问物理内存。/dev/kmem: kernel看到的虚拟内存的全镜像。可以用来访问kernel的内容。<br />作用:<br />前者用来访问物理IO设备,比如X用来访问显卡的物理内存,或嵌入式中访问GPIO。用法一般就是open,然后mmap,接着可以使用map之后的地址来访问物理内存。这其实就是实现用户空间驱动的一种方法。后者一般可以用来查看kernel的变量,或者用作rootkit之类的。参考1和2描述了用来查看ke转载 2010-07-09 14:38:00 · 1354 阅读 · 0 评论 -
linux自动登录
<br />本文以redhat 8.0操作系统平台为背景,阐述如何实现启动级别为3时的自动登录,及自动运行相应程序,并简要介绍了如何在redhat 8.0下自动登录X window(系统启动级别为5),并自动运行指定的应用程序。<br />一、启动级别为3时自动登录的实现<br /><br />启动级别为3时自动登录的实现涉及两个软件包:mingetty-1.00-3.src.rpm软件包及util-linux-2.11r-10.src.rpm软件包。<br /><br />(1)min转载 2010-07-09 16:19:00 · 956 阅读 · 0 评论 -
掌握 Linux 调试技术
您可以用各种方法来监控运行着的用户空间程序:可以为其运行调试器并单步调试该程序,添加打印语句,或者添加工具来分析程序。本文描述了几种可以用来调试在 Linux 上运行的程序的方法。我们将回顾四种调试问题的情况,这些问题包括段错误,内存溢出和泄漏,还有挂起。<br />本文讨论了四种调试Linux 程序的情况。在第 1 种情况中,我们使用了两个有内存分配问题的样本程序,使用 MEMWATCH 和 Yet AnotherMalloc Debugger(YAMD)工具来调试它们。在第 2 种情况中,我们使转载 2010-07-12 22:14:00 · 325 阅读 · 0 评论 -
Linux热插拔
Linux热插拔From: http://blog.chinaunix.net/u1/34190/showart_287894.html将可移动设备连入系统时,系统的后台中会依次发生如下事件:l 内核检测到新硬件插入,然转载 2010-05-19 16:57:00 · 302 阅读 · 0 评论 -
linux 上的虚拟化技术
Linux上的虚拟化技术转自http://blog.zhaoke.com/45.html赵珂, 2007-01-05 虚拟化技术的方法, 架构和实现概览级别: 中级M. Tim Jones [mtj@mtjones.com], 顾问工程师, Emulex原文: Virtual Linux译: 赵珂 cn.zhaoke.com转载 2010-05-19 17:05:00 · 314 阅读 · 0 评论 -
虚拟网卡TUN/TAP驱动程序设计原理
<br />虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装。本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在linux环境下的设计思路。<br />tun/tap驱动程序实现了虚拟网卡的功能,tun表示虚拟的是点对点设备,tap表示虚拟的是以太网设备,这两种设备针对网络包实施不同的封装。利用tun/tap驱动,可以将tcp/ip协议栈处理好的网络分包传给任何一个使用tun/tap驱动的进程,由进程重新处理后转载 2010-06-28 18:51:00 · 368 阅读 · 0 评论 -
pygame
<br />http://www.czug.org/python/startprogramming/01.htm#head-5eb786da1abb009ee4c5a7f60973540d0162f87e转载 2010-06-25 17:07:00 · 249 阅读 · 0 评论 -
一个问题
调试一个socket程序,服务器端总是显示有内存错误,通过core文件分析,发现fclose时调用free,会引发一个段错误,难道函数库的bug让哥们我遇到了,不至于吧,于是查看fclose系统调用,左看右看愣是没找到。突然想到这个函数在客户端也调用了,也没出什么bug,!!!!!!!!曾经有一个bug,在客户端调试的时候改了,当时也懒,没改服务端的代码,结果查了半天才找到。 有没原创 2010-01-05 21:14:00 · 281 阅读 · 0 评论 -
gdb调试多线程
GDB 多线程调试基本命令 实现简介 以及一个问题的解决 teawater@gmail.com 一直对GDB多线程调试接触不多,最近因为工作有了一些接触,简单作点记录吧。 先介绍一下GDB多线程调试的基本命令。 info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。转载 2010-01-07 11:27:00 · 5395 阅读 · 0 评论 -
linux下的调试工具
转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 随着XP的流行,人们越来越注重软件的前期设计、后期的实现,以及贯穿于其中的测试工作,经过这个过程出来的自然是高质量的软件。甚至有人声称XP会淘汰调试器!这当然是有一定道理的,然而就目前的现实来看,这还是一种理想。在日常工作中,调试工具还是必不可少的。在Linux下,调试工具原创 2010-01-07 12:09:00 · 200 阅读 · 0 评论 -
gcc生成.a静态库和.so动态库
我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。本文主要通过举例来说明在Linux中如何创建静态库和动态库,以及使用它们。在创建函数库前,我们先来准备举例用的源程序,并将函数库的源程序编译转载 2010-01-09 22:38:00 · 722 阅读 · 0 评论 -
Linux网络代码导读v0.2[zhuantie]
1 前言许多人在分析linux代码时对网络部分(主要是src/linux/net,src/linux/include/net及src/linux/include/linux目录下的文件)比较感兴趣,确实,尽管已经从书本上学到了大量的TCP/IP原理,不读源码的话,头脑中还是建立不起具体的印象。而分析这部分代码的一个问题便是代码众多而资料很少。这篇文章的目的就是勾勒出一个框架,让读者能够大致能够转载 2010-01-08 22:03:00 · 449 阅读 · 0 评论 -
OHCI and usb-core and related
OHCI规范 OHCI规范定义了两种主机控制器(HC)和主机控制器驱动(HCD)的通信通道,第一个为主机控制器操作寄存器,第二个为主机控制器通信域(HCCA)。在HCCA中定义了四种链表,周期性数据链表,控制传输数据链表,批量传输数据链表和完成数据链表。由数据结构TD和ED组成,每个ED描述USB设备一个端点的所有数据传输,所有ED链接在一起,TD描述在USB总线上传输的数据包。属于同一原创 2010-01-08 17:38:00 · 506 阅读 · 0 评论 -
linux内核中中断不能睡眠的原因[zt]
先把中断处理流程给出来1.进入中断处理程序--->2.保存关键上下文---->3.开中断(sti指令)--->4.进入中断处理程序的handler--->5.关中断(cli指令)---->6.写EOI寄存器(表示中断处理完成)---->7.开中断。硬中断:对应于上图的1、2、3步骤,在这几个步骤中,所有中断是被屏蔽的,如果在这个时候睡眠了,操作系统不会收到任何中断(包括时钟中断),系统就基转载 2010-01-10 20:13:00 · 563 阅读 · 0 评论 -
linux wireless相关网站
http://linuxwireless.org/ 或是 http://wireless.kernel.org/http://wireless.kernel.org/mac80211book/http://www.hpl.hp.com/personal/J ... Linux/Wireless.htmlhttp://madwifi.原创 2010-01-13 15:21:00 · 442 阅读 · 0 评论 -
sendpage漏洞分析
之前看了《新爆内核高危漏洞sock_sendpage的利用分析的讨论》这篇帖子,在九贱兄和诸位CUer的指引下,大致弄清了整个漏洞的始末。现与大家分享(引用自我的空间)。有什么不足之处还望多多指教~内核的BUG这个BUG首先得从sendfile系统调用说起。考虑将一个本地文件通过socket发送出去的问题。我们通常的做转载 2010-05-21 15:35:00 · 658 阅读 · 0 评论 -
stack smashing detected 错误的处理
如果运行的时候报“*** stack smashing detected ***, 那是因为你的系统默认使用了GCC的“ -fstack-protector"参数导致的,我们只需要在编译的时候 export CFLAGS="-fno-stack-protector"就好。转载 2010-05-21 15:43:00 · 1316 阅读 · 0 评论 -
sed & awk 显示文件的最后一行
<br />sed -n '$p'<br />awk 'END{print}'转载 2010-06-01 16:10:00 · 2072 阅读 · 0 评论 -
shell数组
原文地址:[url]http://blog.chinaunix.net/u/21908/showart.php?id=1420565[/url] 磁针石联系方式:gmail and gtalk: xurongzhong#gmail.com 参考资料*《学习bash shell 第3版》6.4. ArraysBash中还可以使用数组变量,其赋值有两种:<br />(1) name = (value1 ... valuen) 此时下标从0开始,也可以:names=([2]=alice [0]=hat转载 2010-06-01 16:54:00 · 241 阅读 · 0 评论 -
linux tc 详解
Linux 内核流量控制 TC 详解 <br />量控制设置 <br />摘要<br />tcqdisc [ add | change | replace | link ] dev DEV [ parent qdisc-id |root ] [ handle qdisc-id ] qdisc [ qdisc specific parameters ] <br /><br />tc class [ add | change | replace ] dev DEV parent qdis转载 2010-06-11 11:26:00 · 2553 阅读 · 0 评论 -
tcpdump介绍
<br />TCPDUMP简介<br />在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。sniffer工具首先是为网络管理员和网络程序员进行网络分析而设计的。对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过sniffer工具来分析原因,找出造成网络阻塞的来源。对于网络程序员来说,通过sniffer工具来调试程序。 <br />用过windows平台上的sniffer工具(例如,netxray和snifferpr转载 2010-06-16 15:33:00 · 382 阅读 · 0 评论 -
二层组播协议IGMP proxy或IGMP Snooping
二层组播协议IGMP proxy或IGMP Snooping,采取的基本方法是对每个组播数据包分组传送,下面分析这两种协议的实现方式。 <br />一、IGMP SnoopingIGMP Snooping和IGMP协议一样,两者都用于组播组的管理和控制,它们都使用IGMP报文。IGMP协议运行在网络层,而IGMP Snooping则运行在链路层,当二层以太网交换机收到主机和路由器之间传递的IGMP报文时,IGMP Snooping分析IGMP报文所带的信息,在二层建立和维护MAC组播地址表,以后从路转载 2010-06-17 10:05:00 · 1026 阅读 · 0 评论 -
linux 组播编程
组播客户端代码如下:<br /><br /><br />#include <sys/types.h><br />#include <sys/socket.h><br />#include <arpa/inet.h><br />#include <stdio.h><br />#include <stdlib.h><br />#include <string.h><br /><br />#define BUFLEN 255<br />int main(int argc, char转载 2010-06-17 15:50:00 · 3685 阅读 · 1 评论 -
unix编程常见问题
标题: Unix编程常见问题解答<br />1. 进程控制<br />***********<br /><br />1.1 创建新进程:fork函数<br />========================<br /><br />1.1.1 fork函数干什么?<br />----------------------<br /><br /> #include <sys/types.h><br /> #include <unistd.h><br /><br />转载 2010-08-11 13:59:00 · 844 阅读 · 0 评论 -
sysctl
<br />sysctl用于配置与显示在/proc/sys目录中的内核参数.可以用sysctl来设置或重新设置联网功能,如IP转发、IP碎片去除以及源路由检查等。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。 <br /><br />命令格式: <br /><br />sysctl [-n] [-e] -w variable=value <br /><br />sysctl [-n] [-e] -p <filename> (default /et转载 2010-06-21 13:46:00 · 331 阅读 · 0 评论 -
awk编程笔记
Awk学习笔记整理:Jims of 肥肥世家<br /><jims.yang@gmail.com><br />Copyright © 2004 本文遵从GPL协议,欢迎转载、修改、散布。<br />第一次发布时间:2004年8月6日<br />Table of Contents1. awk简介2. awk命令格式和选项2.1. awk的语法有两种形式2.2. 命令选项3. 模式和操作3.1. 模式3.2. 操作4. awk的环境变量5. awk运算符6. 记录和域6.1. 记录6.2. 域6.3.转载 2010-06-01 13:38:00 · 238 阅读 · 0 评论 -
tcpdump的一些使用说明
<br /><br />tcpdump采用命令行方式,它的命令格式为:<br /> tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]<br /> [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]<br /> [ -T 类型 ] [ -w 文件名 ] [表达式 ]<br /><br /> 1. tcpdump的选项介绍<br /> -a 将网络地转载 2010-07-29 17:16:00 · 298 阅读 · 0 评论 -
netconsole配置
【Godbach注】Netconsole用于将本地主机的日志信息打印到远程主机上,便于远程用户查看日志信息。至于如何配置Netconsole,网上搜到一篇文章,讲的比较全面,包括了本地主机和远程服务器的配置。这里转载过来,虽是英文的的,但理解起来应该没有难度,就不再翻译了。根据文中netconsole模块的参数形式,应该是适用于2.6内核的。<br />Linux Configure Netconsole To Log Messages Over UDP NetworkLinux can b转载 2010-07-19 11:02:00 · 3054 阅读 · 0 评论 -
X86汇编语言学习手记(1)
作者: BadcoffeeEmail: blog.oliver@gmail.com2004年10月原文出处: http://blog.csdn.net/yayong版权所有: 转载时请务必以超链接形式标明文章原始出处、作者信息及本声明这是作者在学习X86汇编过程中的学习笔记,难免有错误和疏漏之处,欢迎指正。作者将随时修改错误并将新的版转载 2010-05-21 22:25:00 · 289 阅读 · 0 评论 -
sed入门
原出处:http://phi.sinica.edu.tw/aspac/reports/96/96005/index.html1.Introduction Sed(Stream EDitor)為 UNIX 系統上提供將編輯工作自動化的編輯器 , 使用者無需直接編輯資料。使用者可利用 sed 所提供 20 多種不同的函數參數 , 組合(註解 [1])它們完成不同的編輯動作。此外 , 由於转载 2010-05-23 16:32:00 · 332 阅读 · 0 评论 -
qemu使用手册
<br /><br />Qemu使用手册<br />快速启动<br />在我们下载并解压linux镜像(linux.img)以后,我们可以输入下面的命令来启动:<br />qemu linux.img<br />这样Linux就会启动并会展示给我们一个提示.<br />调用<br />用法:qemu [option] [disk_image]<br />disk_image是代表IDE的硬盘的硬盘镜像.<br />一般选项:<br />-M machine<br />转载 2010-07-23 16:14:00 · 635 阅读 · 0 评论 -
用ftrace调试内核
<br />ftrace主要是用来帮助开发人员了解Linux内核的运行轨迹,以便进行故障调试或性能分析。它是在2.6.27内核中开始出现的,自此以后,不断有新的tracer加入,到2.6.30为止最少已经有10种tracer。具体的tracer可以参阅/Documentation/trace/ftrace.txt。<br /><br />本文主要说明ftrace的使用方法:<br />要使用ftrace必须在内核中首先添加对其的支持,也就是要重新编译一个新的内核。<br />Kernel转载 2010-07-21 10:57:00 · 1029 阅读 · 1 评论 -
linux里命令pkg-config工具的使用
一、编译和连接 一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的不同,造成了用 -I 参数指定的头文件的路径也可能不同,其结果就是造成了编译命令界面的不统一。如果使用 -L参数,转载 2010-05-28 19:19:00 · 180 阅读 · 0 评论 -
iptables连接跟踪(Connection tracking),网络攻击防御的基础!
<br />每个网络连接包括以下信息:源地址、目的地址、源端口和目的端口,叫作套接字对(socketpairs);协议类型、连接状态(TCP协议)和超时时间等。防火墙把这些信息叫作状态(stateful),能够检测每个连接状态的防火墙叫作状态包过滤防火墙。它除了能够完成简单包过滤防火墙的包过滤工作外,还在自己的内存中维护一个跟踪连接状态的表,比简单包过滤防火墙具有更大的安全性。<br /><br />iptables中的状态检测功能是由state选项来实现的。对这个选项,在iptables的手册转载 2010-07-26 17:52:00 · 2522 阅读 · 0 评论