Linux Cross Reference Linux内核源代码阅读工具
摘要:原来不曾知道有这个好东西,找一个函数要用那种文件搜索软件等好久好久才能出来结果。Linux Cross Reference(LXR)全解决了!真是阅读Linux源代码的好工具。下面是google搜索出来的第一个:http://lxr.linux.no/优点是版本比较全哈,从2.6.11之后的所有版本都有。缺点就是速度比较慢。但是据说还可以在本机上搭建一个镜像。。。太麻烦了 没试。http://tomoyo.sourceforge.jp/cgi-bin/lxr/ident这个速度相当快,不过就是没有老版本的。
阅读全文
posted @
2011-05-12 01:03
微型葡萄
阅读(938)
推荐(0)
免费SSH工具 SecureCRT/Putty替代:Poderosa
摘要:又免费,功能也不错,还有什么需要说的呢。虽然没有商业的SecureCRT那么强大,连接到我的中文版Debian Linux服务器也不会乱码,夫复何求?官方地址:http://en.poderosa.org/
阅读全文
posted @
2011-05-12 01:02
微型葡萄
阅读(1671)
推荐(0)
如何配置proftpd使用FTPS(FTP over SSL/TLS)
摘要:proftpd是一个Linux下的多功能ftp服务器软件。官网见:http://www.proftpd.org/而FTPS是一个有安全机制的FTP协议,有相应的标准(RFC 4217 http://www.faqs.org/rfcs/rfc4217.html )。使用源代码安装proftpd# cd /usr/src# wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.10.tar.gz# tar -xvzf proftpd-1.2.10.tar.gz# cd proftpd-1.2.10编译之前要确定自己装了以下两个包:# apt-g
阅读全文
posted @
2011-05-12 01:02
微型葡萄
阅读(2313)
推荐(0)
TcpTrace and TcpShow after TcpDump
摘要:现在专心研究网络了,云计算只要跟进就好了。TcpDump是Linux平台上常用的抓包工具,一般的Linux发行版中都包括了。官方网站见:http://www.tcpdump.org/===================TcpTrace=================TcpTrace就是个强大的包了,具体功能我还没有研究,现在只用到最简单的功能。官方网站点这里。安装只要下载tar包,然后按照常规configure/make/make install就可以了。不过要注意:安装TcpTrace之前,必须要安装libpcap,这个包在fedora官方源中有,输入下面的命令即可:# yum inst
阅读全文
posted @
2011-05-12 01:01
微型葡萄
阅读(1365)
推荐(0)
安装X11/缺少X11头文件 Debian
摘要:昨天在编译Xplot的时候,configure的时候报:checking for main in -lX11... no意即找不到X11库文件,后来在/usr/include/X11文件夹下也没有找到相应的头文件,证明确实是没安装X11。其实很简单,先运行# apt-get install libx11*查看一下到底x11的库有哪些,提示有很多包未安装,其中有libx11-dev。一般在开发中用到的都会后缀有dev字样。所以我就安装了这个包。# apt-get install libx11-dev重新configure就发现上文的那个no变成了yes。注:在我的fedora 10上需要两个包,
阅读全文
posted @
2011-05-12 01:01
微型葡萄
阅读(2431)
推荐(0)
使用xplot图形显示tcpdump+tcptrace结果
摘要:这个工作流可以表示为tcpdump=>tcptrace=>xplot,即tcpdump产生的数据为16位数据,需要经过tcptrace解读成人可读或者xplot可表示的数据(xplot所需数据文件后缀名为xpl)。tcpdump截取数据的用法网上很多,请你自己google。然后就是用tcptrace加选项,来产生xplot可显示的数据。每种图形在tcptrace中所需的选项,可以见此页:http://www.tcptrace.org/manual/node11_tf.html。然后直接用下面的命令即可画图(xxx.xpl为tcptrace所产生的数据文件):# xplot xxx.
阅读全文
posted @
2011-05-12 01:00
微型葡萄
阅读(904)
推荐(0)
Debian Linux支持8G内存
摘要:今天实验室进了三台IBM x3650做Hadoop试验之用。第一次接触蓝色巨人的东西,硕大的体积几乎挤爆了我的办公桌,不过倒是觉得那风扇的噪音特别好听。。。夸IBM几句吧:机器做的真人性,前后都有USB口;前面板甚至加了一个VGA接口(这样在前面板调设备会十分简单,鼠标键盘显示器都直接可用);作为服务器IBM专门提供了系统引导盘,用来做RAID;两颗4路Xeon至强CPU+做RAID5之后的558G硬盘+8G内存让我high到极点,YY着什么时候这样的配置会变成我的笔记本。。。sigh,废话少说。引导盘完了之后装了Debian 4.0,还是RC版。再夸夸Debian吧,虽然我只用了一张CD安装
阅读全文
posted @
2011-05-12 00:59
微型葡萄
阅读(1084)
推荐(0)
CentOS 中文配置/中文乱码/中文输入问题解决
摘要:CentOS如果装英文版,如果在系统语言里改为汉语后会导致所有的显示都是乱码的方块。那么需要两个中文支持的包:fonts-chinese-3.02-12.el5.noarch.rpmfonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm一个是中文字体,一个是字体显示,两个包。可以在下面地址下载:http://ftp.dc.volia.com/pub/CentOS/CentOS/页面搜索即可。下载后,在命令行安装:rpm -ivh XXXX(XXXX代表上面那两个包的全名,rpm不会不知道怎么用吧?)安装完成后,重新启动即可。=============中文输入====
阅读全文
posted @
2011-05-12 00:58
微型葡萄
阅读(436)
推荐(0)
《深入理解Linux内核》笔记5:内存管理
摘要:本文介绍内核如何给自己分配物理内存并管理。对应《深入》第8章。在《深入》第2章“内存寻址”(或者是我博客中的这篇文章,点这里)中,已经介绍了内核如何给自己分配1G的线性地址的。但是物理内存的分配及管理恐怕更复杂而且更有必要:内存分配和释放的速度(由内存管理的算法决定)影响内核的工作效率。首先介绍概念:页框:通俗的说就是物理内存上的单元。请注意与“页”的区别。页有两重意思,不过最多的用法是指线性地址的单元。所以一个是实际物理内存的单元,一个是线性地址/虚拟内存的单元。在大多数情况下,页框大小等于页的大小,为4KB,使得一个页框恰好可以容纳一个页的数据。(1)为什么要进行内存管理?内存管理的目的总
阅读全文
posted @
2011-05-12 00:57
微型葡萄
阅读(353)
推荐(0)
《深入理解Linux内核》笔记4:软中断/tasklet/工作队列
摘要:软中断、tasklet和工作队列并不是Linux内核中一直存在的机制,而是由更早版本的内核中的“下半部”(bottom half)演变而来。下半部的机制实际上包括五种,但2.6版本的内核中,下半部和任务队列的函数都消失了,只剩下了前三者。本文重点在于介绍这三者之间的关系。(函数细节将不会在本文中出现,可以参考文献,点这里)(1)上半部和下半部的区别上半部指的是中断处理程序,下半部则指的是一些虽然与中断有相关性但是可以延后执行的任务。举个例子:在网络传输中,网卡接收到数据包这个事件不一定需要马上被处理,适合用下半部去实现;但是用户敲击键盘这样的事件就必须马上被响应,应该用中断实现。两者的主要区别
阅读全文
posted @
2011-05-12 00:56
微型葡萄
阅读(404)
推荐(0)
《深入理解Linux内核》笔记3:中断
摘要:本文基于2.6.11内核简单介绍了中断处理的过程。本文是一个概述性质的整理,可能没有对每段代码有详细的分析,但希望读者看完之后对整个过程有大致了解。详细的文档请参考这篇论文以及这篇精华帖子,还有这里。整个中断大致的过程(注:本处并不仅仅指中断处理程序)可以描述如下:硬件中断==>CPU在指令周期的最后检测到有中断==>中断应答时序提供8位矢量(中断号)==>根据IDTR找到IDT表(idt_table)==>再根据中断号在IDT表中找到对应的描述符(irq_desc_t)==>根据描述符,调用对应的IRQ0xNN_interrupt,实际上就是调用common_i
阅读全文
posted @
2011-05-12 00:55
微型葡萄
阅读(583)
推荐(0)
《深入理解Linux内核》笔记2:进程的数据结构与其生命周期
摘要:(1)底层数据结构:双向链表在进程管理中,双向链表是一个基础性的数据结构(后面涉及到的运行队列和等待队列等都使用了这个数据结构)。它的声明如下(虽然名称中含有head,但实际上每个结点都是相同的):struct list_head {struct list_head *next, *prev;};其中含有指向前一节点和后一节点的指针。而作为双向链表,提供的主要操作就是添加/删除元素、遍历链表(特别是list_for_each()函数很重要,可以对每个元素采取相同的操作)。(2)进程描述符进程描述符是一个名为task_struct的C结构(进程也就是任务,所以叫task),其中包含了进程所有的信
阅读全文
posted @
2011-05-12 00:54
微型葡萄
阅读(408)
推荐(0)
《深入理解Linux内核》笔记1:内存寻址
摘要:Linux的内存管理应该是Linux最核心和最复杂的部分之一。因为个人理解水平有限,所以只能根据自己的思路概述,细节还需要更多的去相关参考文献(《深入理解Linux内核》第三版中文版,以下简称《深入》,我买了一本纸版的)中探寻。(英文版可以从网上搜到,我的skydrive中有一份chm的版本,点这里)。(1)逻辑地址、线性地址(虚拟地址)与物理地址下面的图表示三者之间的转化关系。逻辑地址通过分段转化为线性地址,而线性地址通过分页转化为物理地址。分段单元和分页单元都是内存控制单元(MMU)的组成部分。这三种地址中的核心是线性地址。线性地址永远是32位的无符号整形,可以用来表示4GB的地址空间(2
阅读全文
posted @
2011-05-12 00:53
微型葡萄
阅读(454)
推荐(0)
Linux内核:分段和分页的区别
摘要:分段和分页其实都是一种对地址的划分或者映射的方式。两者的区别主要有以下几点:a) 页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要(也是对用户透明的)。段是信息的逻辑单位,它含有一组其意义相对完整的信息(比如数据段、代码段和堆栈段等)。分段的目的是为了能更好的满足用户的需要(用户也是可以使用的)。b) 页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而一个系统只能有一种大小的页面。段的长度却不固定,决定于用户所编写的程序,通常由编辑程序在对源程序进行编辑时,根据信息的
阅读全文
posted @
2011-05-12 00:50
微型葡萄
阅读(1010)
推荐(0)
Linux内核网络协议栈笔记
摘要:Linux内核网络协议栈笔记0:序言(附参考书籍)自己是研究网络的,但实际上对Linux中网络协议栈的实现知之甚少。最近看完《深入理解Linux内核》前几章之后(特别是与网络子系统密切相关的软中断),觉得可以而且应该看一下网络协议栈了。这部分网上的文章大部分都没有什么结构和思路,很少有能够条分缕析的把协议栈讲述明白的。当然,个人水平有限,还是希望朋友们能够批评指正。参考书籍《Understanding Linux Network Internals》以及《The Linux Networking Architecture Design and Implementation of Network
阅读全文
posted @
2011-05-12 00:44
微型葡萄
阅读(3790)
推荐(0)