- 博客(33)
- 资源 (1)
- 收藏
- 关注
原创 数据中心overlay
目前主要的overlay技术有VXLAN、NVGRE、 STT和SPB MAC-in-MAC,TRILL,思科的OTV和LISP。这些技术基本上是采用封装或者隧道的方式来创建虚拟网络的。VXLAN是在一个三层网络上借助MAC-in-UDP封装,叠加一个二层网络来实现网络虚拟的。目前,VXLAN是IETF标准草案的一个子集,支持厂商有VMware、思科、Arista网络、博科、红帽和Citrix
2013-07-26 17:24:46 1572
原创 Linux 内核中的 GCC 特性(转)
M. Tim Jones, 顾问工程师, Emulex Corp. 2009 年 4 月 07 日 Linux® 内核使用 GNU Compiler Collection (GCC) 套件的几个特殊功能。这些功能包括提供快捷方式和简化以及向编译器提供优化提示等等。了解这些特殊的 GCC 特性,学习如何在 Linux 内核中使用它们。 GCC 和 Linux 是出色的组合。尽管它们是独立的软件,但是
2013-05-16 22:31:58 606
原创 Bash check IP and port
33 #check arguments34 35 #check ip36 pattern_ip="^(([0-9]|[1-9][0-9]|1[0-9]{2}|2([0-4][0-9]|5[0-5]))\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2([0-4][0-9]|5[0-5]))$"37 #pattern_ip="^((1?[0-9]?[0-9]|2([0-4][0-
2013-05-16 22:31:55 1028
原创 Use clonezilla to clone and restore disk
http://drbl.nchc.org.tw/clonezilla/ http://b2ddoc.tnc.edu.tw/yh/drbl/index.htmlhttp://ssorc.tw/rewrite.php/read-713.htmlhttp://www.embedstudy.com/viewthread-8113http://clonezilla.org/cl
2013-05-16 22:31:53 711
原创 vim diff two files
1 目录树相同的情况6.0和6.2的源码往往具有相同的目录树结构,例如,都存在文件sys/i386/i386/machdep.c,且其中都有函数init386这时,如果我们想比较函数init386的不同之处,就可以直接比较这两个文件的不同之处。我们要实现的场景是这样的:首先,浏览6.2(或者6.0)的源码中的函数init386;这时,我们突然想看看与6.0的有什么不同,我们先后按下,d(逗号和字母
2013-05-16 22:31:51 762
原创 vim multifile edit
1 screena 通过ports安装screenb $screenc $vi file1.cd CTRL+a c (表示同时按住CTRL和a,松开后再单击c,以下同)新建一个窗口e $vi file2.cf 光标移动到起始点g CTRL+a [进入copy模式h 单击空格标志起始点i 通过hjkl选择范围j 单击空格标志结束点k CTRL+a p进入上一窗口l 单击i进入insert模式m CT
2013-05-16 22:31:49 617
原创 利用ftrace调试内核
ftrace主要是用来帮助开发人员了解Linux内核的运行轨迹,以便进行故障调试或性能分析。它是在2.6.27内核中开始出现的,自此以后,不断有新的tracer加入,到2.6.30为止最少已经有10种tracer。具体的tracer可以参阅/Documentation/trace/ftrace.txt。本文主要说明ftrace的使用方法:要使用ftrace必须在内核中首先添加对其的支持,也
2013-05-16 22:31:46 1595
原创 Some interesting C problems
The expected output of the following C programis to print the elements in the array. But whenactually run, it doesn't do so. #include #define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
2013-05-16 22:31:44 763
原创 c 语言中的宏,井号,可变参数
C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏:#define WARN_IF(EXP) \ do{ if (EX
2013-05-16 22:31:42 652
原创 QEMU - Running Debian in Debian
==Building Debian Images for QEMU==Install qemu and debootstrap: apt-get install qemu debootstrapCreate image: qemu-img create disk.img 512MAssociate image file with a loopbac
2013-05-16 22:31:39 771
原创 程序设计中多核的影响--多核系列之三
1。内存对齐及cache对性能的影响在RISC体系结构下,当数据在自然对齐的边界时内存操作更加高效。CPU在读取内存的时候,是以cache线的长度来读取的,当cache block为128bytes时, CPU每次会读取128bytes至L2 cache,如果在分配时不以128bytes对齐就会增加内存的访问次数,对程序的效率有很大的影响。如果数据超出了cache line的长度(128b
2013-05-16 22:31:36 1062
原创 软件并行模型--多核系列之二
网络多核处理器硬件的设计都与并行处理相关,包括通常核间并行、核内部并行、核与协处理器的并行。如何组织核间并行以及核与协处理器的并行是网络处理器并行模型研究的重点。在硬件并行的基础上,软件的处理就是要充分利用处理任务间的彼此独立性,将不同的任务同时交给不同的硬件单元来处理。通常,一个网络应用程序可分为三个逻辑层面:控制层、数据处理层和管理层。从网络处理器所面向的处理任务看,不同的处理层面并行特性
2013-05-16 22:31:34 1004
原创 多核体系概述--多核系列之一
接触多核有段时间了,决定把这方面的知识做个总结。 1。多核基本理论多核即在一个单芯片上面集成两个甚至更多个处理器内核,其中每个内核都有自己的逻辑单元、控制单元、中断处理器、运算单元、一级cache、二级cache共享或独有,其部件的完整性和单核处理器内核相比完全一致。片上多核处理器(CMP)是将多个计算内核集成在一个片处理器芯片中,从而提高计算能力。每个微处理器核心实质上都是一个相
2013-05-16 22:31:32 2529
原创 kernel_debug
1.使用gdb调试 * /proc/kcore文件是系统内核运行情况的内存映像 * 如果编译内核的时候增加-g选项,即会在生成的二进制代码vmlinuz或vmlinux中,添加调试相关的数据。 * 以root身份运行 #gdb /usr/src/linux/vmlinux /proc/kcore * 因为core-file命令是静态的,如果需要查看内核最近的运行情况
2013-05-16 22:31:30 1137
原创 linux C char colors
Linux在终端出输出颜色 #include ; int main (int argc, char **argv) { printf ("\033[31mThe color of this line is red, %s!\033[0m", "ha
2013-05-16 22:31:27 656
原创 Bash 字符串
得到长度CODE:%x="abcd"#方法一%expr length $x4# 方法二%echo ${#x}4# 方法三%expr "$x" : ".*"4# expr 的帮助# STRING : REGEXP anchored pattern match of REGEXP in STRING查找子串CODE:%expr index $x "b"2%expr index $x
2013-05-16 22:31:25 655
原创 SED usage
sed '1,3d' file //删除1-3行 sed '/[Aa]bc/p' file //打印包含Abc或者abc的行 sed '/ABC/d' //删除包含ABC的行 sed '/ABC/!d' //不删除包含ABC的行 sed '5,$d' //从第五行到最后一行全部删除 sed 1q //显示第一行 sed 's/$/.../g' //每行的最后面添加 ... sed 's/d.(s
2013-05-16 22:31:23 593
原创 Linux LVM HOWTO
一份非常内行的Linux LVM HOWTO 蓝森林 http://www.lslnet.com 2000年12月29日 17:43作 者: 谢启发1. 绪论 欢迎你,亲爱的读者。 写这个文档的目的是为了告诉你什么是LVM,它怎样工作,你怎样运用它使你的生活变得更容易。虽然有一份LVM FAQ,但仍是德文的,它是从不同的角度来描写的。它是一份“真的”HOWTO,在传授理解(有希望的)的时候也是非常
2013-05-16 22:31:21 670
原创 Debian编译内核源码
安装内核源码apt-cache search kernel-sourceuname -r内核源文件:apt-get install linux-tree-xxxxapt-get install linux-source-xxxx内核头文件:apt-get install linux-headers-xxxx内核编译程序:apt-get install linux-kbuild-xxxx内核镜像做成
2013-05-16 22:31:16 955
原创 转:GAS 的AT&T的语法规则
Syntax 1.寄存器引用引用寄存器要在寄存器号前加百分号%,如“movl %eax, %ebx”。80386有如下寄存器:8个32-bit寄存器 %eax,%ebx,%ecx,%edx,%edi,%esi,%ebp,%esp; 8个16-bit寄存器,它们事实上是上面8个32-bit寄存器的低16位:%ax,%bx,%cx,%dx,%di,%si,%bp,%sp;
2013-05-16 22:31:14 1342
转载 用户和kernel空间使用mmap共享内存
原来的程序:/* 文件操作 */static struct file_operations xxx_fops = { ...... .mmap = _xxxx_mmap, ......};static int _xxxx_mmap(struct file * file, struct vm_area_struct * vma){ int offset;
2009-01-12 01:28:00 993
转载 firefox_config
首先,在URL栏输入“about:config”, 将打开一个参数的命令行清单,这就是我们以下进行编辑的第一步。Firefox 加速技巧:修改参数- -让灵动的Firefox跑得更快 1.network.http.pipelining在 Filter 中输入 network.http.pipelining,双击赋值为 true,默认为 false。如果没有找到这个键值,可以右键新建一个
2008-12-20 14:26:00 1777
转载 Linux操作系统下IPTables配置方法详解
[root@tp ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) ta
2008-08-19 22:21:00 657
转载 超级详细Tcpdump 的用法
阅读提示: 第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23指明端口号是23。如果没有指定类型,缺省的类型是host.第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst
2008-08-19 22:10:00 793
转载 使用Busybox做一个小巧的Linux操作系统
1.基础知识 一个操作系统可以简单的抽象为,引导程序 内核 文件系统。 vmlinuz是Linux 内核的镜像文件,可以被引导程序加载,从而启动Linux系统。 initrd的全称是boot loader initialized RAMdisk,它是系统启动时所使用的根文件系统映像文件,这个文件系统中包含几个驱动模块,用来装载实际的根文件系统,比如一个IDE或SCSI
2008-08-08 19:01:00 569
转载 bash 字符串
得到长度[Copy to clipboard] [ - ]CODE:%x="abcd"#方法一%expr length $x4# 方法二%echo ${#x}4# 方法三%expr "$x" : ".*"4# expr 的帮助# STRING : REGEXP anchored pattern match of REGEXP in STRING查找子
2008-08-08 16:00:00 570
转载 linux top 命令
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombi
2008-08-08 11:35:00 475
转载 有用的linux命令
1. pgrep:比如,你可以使用 pgrep -u root 来代替 ps -ef | egrep ^root | awk {print $2},以便抓取属于 root 的 PID。 2. pstree:我觉得这个命令很酷,它可以直接列出进程树,或者换句话说是按照树状结构来列出进程。 3. bc:这个命令在我的系统中没有找到,可能需要安装。这是用来执行计算的一个命令,
2008-08-08 11:21:00 547
转载 linux软中断的实现
中断服务程序往往都是在CPU关中断的条件下执行的,以避免中断嵌套而使控制复杂化。但是CPU关中断的时间不能太长,否则容易丢失中断信号。为此,Linux将中断服务程序一分为二,各称作“Top Half”和“Bottom Half”。前者通常对时间要求较为严格,必须在中断请求发生后立即或至少在一定的时间限制内完成。因此为了保证这种处理能原子地完成,Top Half通常是在CPU关中断的条件下执行
2008-08-05 19:17:00 923
转载 spinlock
在這篇文章中,我將會介紹 Kernel 提供用來使用 spinlock 的 function。除此之外,我還會告訴各位,為何在 SMP 的環境裡,使用 spinlock 會比將所有 CPU 的中斷 disable 這個方法來的有效率,我也會告訴各位如何針對不同的使用需求,使 spinlock 的 cost 再降低,進而使系統的效能更好...前言在 Linux Kernel 裡有著許多重要的資料結
2008-08-05 18:07:00 744
转载 Printk的loglevel和日志记录分析
Printk的loglevel和日志记录分析(分析版本是ubuntu7.10,内核源码是2.6.23) 首先,printk有8个loglevel,定义在中,其中数值范围从0到7,数值越小,优先级越高。#define KERN_EMERG "" /* system is unusable */ 系统崩溃#define KERN_ALERT
2008-08-05 17:49:00 4069
转载 如何恢复 Linux 上删除的文件:ext2
要想恢复误删除的文件,必须清楚数据在磁盘上究竟是如何存储的,以及如何定位并恢复数据。本文从数据恢复的角度,着重介绍了 ext2 文件系统中使用的一些基本概念和重要数据结构,并通过几个实例介绍了如何手工恢复已经删除的文件。最后针对 ext2 现有实现存在的大文件无法正常恢复的问题,通过修改内核中的实现,给出了一种解决方案。对于很多 Linux 的用户来说,可能有一个问题一直都非常头疼:对于那
2008-08-01 14:00:00 5090
转载 掌握 Linux 调试技术
您可以用各种方法来监控运行着的用户空间程序:可以为其运行调试器并单步调试该程序,添加打印语句,或者添加工具来分析程序。本文描述了几种可以用来调试在 Linux 上运行的程序的方法。我们将回顾四种调试问题的情况,这些问题包括段错误,内存溢出和泄漏,还有挂起。本文讨论了四种调试 Linux 程序的情况。在第 1 种情况中,我们使用了两个有内存分配问题的样本程序,使用 MEMWATC
2008-07-30 18:47:00 521
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人