??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
每次定位完一个问题后Q在整理思\的时候,L感觉q是多么自然而然的事情啊Q居然当时没有想到。哈哈,可能很多人都有同L感受Q可是真正n在其中有太多的因素干CQ把你引入歧途,{你发现的时候又要从头而来。由己及人,我们对待别h的问题是否也是这P一个看似很单的逻辑其中也包含了别h在很多错误基上的试。或许我们在嘲笑别h犯错误的同时Q更要看到别人正在向正确q进?br> 呵呵Q每ơ写BOLG都发现脑子有很多东西都成一团,不知道从哪里开始,写v来东一句西一句的Q可能这也是我高中语文作文L不及格的原因吧。看来要找时间好好整理下自己的思\了?/p>
]]>
今天l于会用新闻l了。国内的新闻l好像不太多Q大部分都是外国Q看英文q是比较累的
下面是{载的一文章:
使用UsenetQ新ȝQ的十大理由
1. 全球l一的分cRUsenetQ新ȝQ上有多辑և万个不同cd的组Q而且有着严格l一的管理,更重要的是它是按分原理l织命名的,有着清楚的脉l可寅R组是UsenetQ新ȝQ的单位Q服务器是居于次要地位的Q当Ӟ前提是你d用一台服务器^_^Q。在UsenetQ新ȝQ中有着C清的服务器,来自全世界的Usenet用户们不你q接哪台UsenetQ新ȝQ服务器Q都可以扑ֈ一Ll名、一L标记Q找C旧的朋友们!论坛׃同了Q每个论坛的分组几乎都不同,而且各有侧重点,有时提个比较q问题q得立马现找新论坛。你说ؓ了寻找一个答案把帖子往几个论坛里发Q或者在几个论坛里面搜烦Q是不是比较费力了一炏V?
2. 分散的服务器。你只要能找到UsenetQ新ȝQ中的一台服务器p了,剩下的你׃必管了,你根本不需要担心是否有人看刎ͼ能传播到多大的范_你要怿UsenetQ新ȝQ的力量是无所不到的。你更不必担心由于服务器H然关闭使得好不Ҏ在某个讨论组上Ş成的某种C气氛的消失;像论坛倒闭一P大家作鸟兽散Q这U现象在UsenetQ新ȝQ中是绝对不会存在的Q?
3. 有Google替你存档。你是不是经常有q种现象Q某个你曄看过的帖子,日后׃某种原因你突然感觉一定要重新扑ֈ再看一下,如果是在论坛Q你可能得费九牛二虎之力q不一定找得到Q更不要说可能连q个论坛都不在了Q至于用搜烦器搜Q现在许多论坛都是用动态的脚本Q许多搜索器也对之鞭长莫及。而在 UsenetQ新ȝQ中׃会有q种现象QQ何过ȝ帖子你都可以用google扑ֈQ因为google为整个UsenetQ新ȝQ保存着备䆾?
4. 高效的交体验。很有论坛具备「自动跟t自己参与过的讨论」之cȝ功能Q菜鸟发表一帖问题,W二天去L{案得篏MQ找啊找Q最后终于找C别hl他的回复帖Q你看看q要费多少查找的时_如果最l还是没扑ֈ回复帖,他就会疑问:到底是我没找到回复帖呢,q是Ҏ没有h回复Q由此可见,论坛是一个折h的地斏VUsenetQ新ȝQ不一PUsenetQ新ȝQ用新闻l阅dL获取帖子Q每一帖子客L都会自动识别Q凡是你参与q的讨论Q你感兴而标记过的主题或作者,你讨厌而加入黑名单的主题或作?..你的新闻l阅dL都会l你分得清清楚楚Q配上不同的视图Q让你一目了然?
5. 集中_֊。UsenetQ新ȝQ的风格是简朴的Q功能又是最强大的。UsenetQ新ȝQh性化的设计得你能最大限度的精力集中于交流本nQ不像论坛,每个论坛都有不同的分cR每个论坛都有不同的版式Q到了个新的论坛往往找个回复链接按钮都要上下左右看一看,׃带宽的限制以及论坛外表设计的趋复杂Q连接、下载往往会出现等待的现象Q你研R标也没用Q,那些和你无关的花ql的flash、图片、背景音乐充斥着你的感官Q你说你是来讨论交流的还是来虐待自己的?
6. 充分的思考。现在几乎每个hC会事务都很J忙Q用Usenet可以高效率地分配你的旉。在C宽带逐渐普及的情况下Q新ȝȝ特点的意义在于能够充分利用你的每一个空闲的旉Dc上U取回一批帖子,在离U状态下Q你可以有充裕的旉和时D|_ֿ回复你所感兴、你所「跟t」的讨论。所谓「文如其人」,你可以将自己的思烦l过充分酝酿后展C给世界。你不需要天天在U,只要利用好线索、跟t等功能Q你不会错过你感兴趣的Q何讨论?
7. 论坛需要登陆。你说你没关pd正整天挂在网上,靠,你是为显CZ有钱q是昄你是个无事闲人?再说了,即你用隐n登陆挂着也不好啊QM有h知道你隐w了Q小P整天w在背后Q没准内心阴暗着呢。你看看Q你白担了多虚名。新ȝ不一P新闻l就没有在线、隐w一_q上服务器拉回一批帖子,之后和它没关系了,你大可以慢慢看,是断断l箋地看个十天半月也没关p,看完了,也写好回帖了Q再ơ连上(别嫌烦,点一个位|永q不变的按钮而已Q服务器发出帖子Q之后就又和服务器没关系了?
8. 以「CN」开头中文GB码顶极组?001q_正式成立了cn.*极l(the top CN hierachyQ,中国的Usenet用户l于有了自己的家园,UsenetQ新ȝQ终于正式有了中国的w媄。感谢news.cn99.comQ感?PYQ虽然三q过MQ中文UsenetQ新ȝQ一直未能真正发展v?..但是Q我们相信网l的力量Q我们相信h之ؓ人的自由表达的天赋权力;我们怿UsenetQ新ȝQ应有简体中文的一席之地。请支持中文UsenetQ新ȝQ的发展?
9. 一份历史文档。在UsenetQ新ȝQ中QQ何一帖子都有可能成Z份历史文献。例如:当年21岁的Linus Benedict Torvalds在UsenetQ新ȝQ的comp.os.minixl中的一pd关于开发Inter 80386体系机构的新操作pȝ的讨论已l是Linux历史的一部分Q嗯QLinus不是Zh能做的,但如果你能在1981q??1日在自己发往 UsenetQ新ȝQ帖子中提到一家名叫Microsoft的小公司Q你同样能名垂史册的...
10. 不要看了自己。UsenetQ新ȝQ能够忠实记录和实践你的生命中每D|ȝ所见所L惻I你的q步、你的困惑、你的迷茫、你的喜?..即你终其一生只能是一个普通hQ但几十q后自己回头看看你一路走q的风光Q那些的只言片语、那些的人生思烦、那些曾l多么年ȝ?..你一定会感叹Q「哦Q我当年也不是不׃的。」;即你终其一生只能成Z个普通hQ但q不妨碍你的后辈q随你的Q以彰显Zu的Ԓ慕和光辉。请CQh生的意义在于其过E?
好了Q谢谢你l于看完q篇文档Q你愿意试试吗?请在IE或MozillaQ不是Mozilla FirefoxQ地址栏键?news://news.yaako.com Q订阅「cn」开头的pdl进入中文UsenetQ新ȝQ世界(q里提醒你一下,yaako服务器中有近三万个分cȝQ下载组列表时可能要p一Ҏ?..Q。如果你Ҏ样加入Usenet新闻l一无所知也没有关系Q请点击下面的链接:http://news.yaako.com/oeflash/ Q?q里有一关于用Outlook ExpressQIE是调用OE来进入Usenet的)加入Usenet新闻l的视频教程?
PS:什么?你说什么?你说论坛有积分,你有荣耀感?拜托Q老大Q都什么时代了q搞q套q腐的东东!大侠不是U分U出来的Q大侠是灌出来的Q你见过有几个真正的大{Q整天扛着块牌子上写「我是老大」?怿自己Q你是那么帅!凭你那光辉灿烂的IDQ只要你愿意Q你一定能够像cn.fanl的星99一P是发出个内Ҏ「呵c签名有四行的帖子,大家都得认真拜读Q从中领会大侠一颦一W的真谛?
]]>
]]>
]]>
Z最大程度的避免中断处理旉q长而导致中断丢失,有时候我们需要把一些在中断处理中不是非常紧急的d攑֜后面执行Q而让中断处理E序快q回。在老版本的
linux
中通常中断处理分?/span>
top half handler
?/span>
bottom half handler
。利?/span>
top half handler
处理中断必须处理的Q务,?/span>
bottom half handler
处理不是太紧急的d?/span>
但是
linux2.6
以后?/span>
linux
采取了另外一U机Ӟ是软中断来代替
bottom half handler
的处理。?/span>
tasklet
机制正是利用软中断来完成寚w?/span>
bottom half
的处理?/span>
Linux2.6
中Y中断通常只有固定的几U:
HI_SOFTIRQ(
高优先?/span>
tasklet
Q一U特D的
tasklet)
?/span>
TIMER_SOFTIRQ
Q定时器Q?/span>
NET_TX_SOFTIRQ
Q网口发送)?/span>
NET_RX_SOFTIRQ
Q网口接Ӟ
?/span>
BLOCK_SOFTIRQ
Q块讑֤Q?/span>
TASKLET_SOFTIRQ
Q普?/span>
tasklet
Q。当然也可以通过直接修改内核自己加入自己的Y中断Q但是一般来说这是不合理的,软中断的优先U比较高Q如果不是在内核处理频繁的Q务不使用。通常驱动用户使用
tasklet
_了?/span>
软中断和
tasklet
的关pd下图Q?/span>
上图可以看出Q?/span>
ksoftirqd
是一个后台运行的内核U程Q它会周期的遍历软中断的向量列表Q如果发现哪个Y中断向量被挂起了Q?/span>
pend
Q,执行对应的处理函数Q对?/span>
tasklet
来说Q此处理函数是
tasklet_action
Q这个处理函数在pȝ启动时初始化软中断的挂接了?/span>
Tasklet_action
函数Q遍历一个全局?/span>
tasklet_vec
链表Q此链表对于
SMP
pȝ是每?/span>
CPU
都有一个)Q此链表中的元素?/span>
tasklet_struct
。此l构如下
:
struct tasklet_struct
{
struct tasklet_struct *next;
unsigned long state;
atomic_t count;
void (*func)(unsigned long);
unsigned long data;
};
每个l构一个函数指针,指向你自己定义的函数。当我们要?/span>
tasklet
Q首先新定义一?/span>
tasklet_struct
l构Qƈ初始化好要执行函数指针,然后它挂接?/span>
task_vec
链表中,q发一个Y中断可以等着被执行了?/span>
原理大概如此Q对?/span>
linux
驱动的作者其实不需要关心这些,关键是我们如何去使用
tasklet
q种机制?/span>
Linux
中提供了如下接口Q?/span>
DECLARE_TASKLET(name,function,data)
Q此接口初始化一?/span>
tasklet
Q其?/span>
name
?/span>
tasklet
的名字,
function
是执?/span>
tasklet
的函敎ͼ
data
?/span>
unsigned long
cd?/span>
function
参数?/span>
static inline void tasklet_schedule(struct tasklet_struct *t)
Q此接口定义后?/span>
tasklet
挂接?/span>
cpu
?/span>
tasklet_vec
链表Q具体是哪个
cpu
?/span>
tasklet_vec
链表Q是Ҏ当前U程是运行在哪个
cpu
来决定的。此函数不仅会挂?/span>
tasklet
Q而且会v一个Y
tasklet
的Y中断
,
既把
tasklet
对应的中断向量挂?/span>
(pend)
?/span>
两个工作完成后,基本上可以了Q?/span>
tasklet
机制q不复杂Q很Ҏ的ɽE序快的响应中断,避免造成中断丢失?/span>