那种纸上游戏吧本该怎么制作

2083人阅读
导读:   标
题: 看看国外的本科生能做什么?
     人物专访:核心黑客系列之一Robert Love
     每个星期,我们都采访一个内核编写社区的人,虽然这样的采访会很侧重技术,
  但是我们的立足点是为了让所有人都能接受。本周我们采访了Robert Love,现在
  他正在维护&可抢占内核&的升级包和其他一些事。他使用Linux已经7年了,对于
     现在的内核有很多贡献。所有这些最后用他自己的话来描述。
  记者Jeremy Andrews(一下简称&JA&):请谈一点关于你自己和你的背景Robert
     Love:我现在是Florida大学计算机和数学系的学生,未婚但有一个很可爱的女朋
  友。我的编程兴趣是操作系统和数学/科学计算。
  JA:你何时毕业?还会继续读研吗?
  Rebert Love:我想继续留在学校里读研究生,特别是如果社会经济状况还像现在
  这样的话。
  JA:你何时并且如何开始学习Linux的?
  Rebert Love:在1994年,我有了第一台运行Linux的个人电脑,那时还是1.0的内
  核。这也是我第一次实际接触一个类UNIX的系统。有我一台386SX电脑(感谢妈
  妈!)并且安装了可转换的Windows 95beta版。随着使用Linux越来越多,我最
  后终于在2.2的时候完全的转移到Linux上来,从那时起,我一直完全的使用
  Linux。
  我当时部分的转移到Linux上是由于一个明显的原因:我相信Linux是一个强大和
  强壮的系统,它有很好的应用程序。但根本的原因是我喜欢和Linux系统以及围绕
  在它周围的社区交流的能力。
  JA:你能比较一个1.0和2.4内核的不同点吗?
  Rebert Love:如果它们有几页代码是相同的话,我会感到很惊奇的。所以,每件
  事都不同。
  JA:安装和使用1.0的内核是怎样的?当时有什么软件?
  Rebert Love:很幸运,在年,Linux发展的很好。当时SLS和Slackware
  都发行完整版。我最开始使用Slackware2.0。你不得不下载很多磁盘文件集
  (disk sets)-也许现在也一样。我记得磁盘文件A好像是核心,磁盘文件N提供
  网络支持等等。(译者:我想那时没有光盘,发布还是用软盘的,所以才有所谓
  的磁盘文件,也就是一个文件1.44M)
  那时Linux就有网络,X (XFree86 2.0)也有,还支持很多硬件呢。
  从今天看来最大的问题就是缺少文档,在加上复杂的安装过程。我记得我怎么做
  都不能让PPP工作&&最终我放弃了。如果我可以让PPP工作的话,我也许那时就
  转换到Linux上了。
  JA:你做了那些贡献?
  Rebert Love:现在我大多数时间用来维护可抢占内核的升级包上。它允许低优先
  级的进程被抢占,即使是在内核空间(译者:现在的内核是不可抢占的,抢占是
  只发生在内核空间的工作完成,切换回用户空间的时候),这样可以提高体统响
  应。这个升级包最初是由MontaVista-一个很棒的公司-做的,所以我现在和他
  们以及社区的其他人紧密的工作。它是一个很有趣的项目。我门的目标是使它加
  入2.5内核中。
  我很随意的,否则&&我修改漏洞,做优化。我写了i815和AMD761 AGP GART
  代码。我还维护其他可能加入内核或没用的升级包。
  JA:如果内核可以被抢占的话,那么内核将发生什么样的变化?
  Rebert Love:我们使用的模型是当内核没有被锁时,允许内核在任何时间都能被
  抢占。在这种思路的设计下,当使高优先级的进程变为可运行(runnable)的事
  件发生时,系统将抢占当前的任务并运行高优先级的任务。
  我们必须修改在entry.S中的中断代码,防止一些情况发生和允许从一个中断处理
  程序返回的时候抢占。但是,就象我们不能允许多处理同时在临界区(critical
  regions)内一样,我们不能在临界区内执行抢占-所以当保持一个spinlock
  (holding a spinlock)的时候,我们要避免抢占的发生。低速内核例程(bottom
     half handler)和调度程序也被修改来防止它们在执行时被抢占。
  JA:就目前来说,你认为这个包有多稳定?我在一个单独的Linux服务器上作所有
  的工作,我经常升级到新内核和新软件。提高整体系统响应时间看上去很吸引
  人,但是你认为这个升级包可以稳定到可以被&每天都使用(every-day-use)&的
     服务器用吗?
  Robert Love:这个包非常稳定。我很自信的建议每个人都使用它。我们有很多用
  户并收到了很多反馈。我想所有明显的bug都被改正了。
  我现在在我的主系统上就在使用这个包。
  好的一面是我们知道设计和实现是正确的。使用我们最近的包,我想我们可以处
  理任何问题。
  JA:你看到系统响应时间提高的有多明显?
  Rebert Love:非常明显。
  系统响应时间有200%的提高。通过这个可抢占内核的升级包,平均系统响应时
  间现在是1ms,最大到10ms。现在还有降低响应时间的一些长时间锁,有些长度
  达到100ms+。幸运的是,它们只在特别的地方发生,比如&VC切换(switching
  VCs-译者:不知什么意思:-&)&。
  JA:还有一个有Andrew Mortan维护的包也要达到同一个目标,你的和他的有什么
  区别?
  Rebort Love:我们的目标是相同的,那是因为内核代码是非抢占的。所以,内核
  会一直运行直到完成或者显式的自动放弃。如果在内核执行期间,用户空间的事
  件发生了,它们必须等到内核完成。这就是我们需要解决的问题,也就是降低系
  统响应时间的原因。
  Andrew的低响应时间包在整个内核中的策略点放置了基于条件的调度调用。这些
  调用可以有效的允许长时间的内核操作说&我很好心可以让其他人来运行,有任务
  需要运行吗?如果有,运行吧!&这样会打断操作,减少这些地方的系统响应时
  我的这个可抢占内核的包同他的工作机制不同,它通过修改内核本身来允许内核
  代码被抢占。所以上面的问题根本不会发生-如果一个任务要运行,它就会运行
  -并且系统响应也改善了。
  JA:最近在lkml上你谈到将两种包结合的可能性,你现在有作这方面的工作吗?
  Rebert Love:这当然值得考虑。因为我们在上锁期间不能抢占,那么长时间的锁
  就会对系统响应时间造成值得注意的影响。该锁的操作时间就是系统的等待时间
  一个解决办法是像Andrew那样中断锁操作。这就是将他的包融入可抢占内核的部
  分。或者更实际的办法,做一个应用了他的包的能意识到抢占的版本,当一个锁
  操作时引发的任何一个基于条件的调度程序也许是很有帮助的。
  这个方向的一个问题就是确认一个长时间的锁操作。这是preempt-stats包的作
  用,它测量非抢占时间并报告到底是什么锁产生的。
  这只是关于长时间锁的一种解决办法。
     JA:内核的那些部分会有你说的长时间的锁?
  Robert Love:控制台层(console layer)曾经使用了一些很长时间的锁,不过幸运
  的是Andrew Mortan最近修改了很多。帧缓存(frame buffer)使中断无效了很长
  时间-避免向它打印很多东西。如果你卷动了很多次屏幕,你将发现需要等待最
  长500ms。切换虚拟终端很糟糕。blkdev_close()使用了一个长时间的锁。一些模
  块操作也很耗时。如果VM开始thrashing,将产生很长时间的等待,因为在保持
  一个锁期间,它做所有的事。VFS也有一些长时间的锁。
     JA:你的这个包进入内核2.5有多大可能性?会有写什么困难?
  Robert Love:这将取决于Linus对这个包的评价,其他内核编程者的意见。Linus曾
  经说过他这个主意很感兴趣,我希望这有所帮助。
  我们有一个很大的用户数据库,那也将有所帮助。我们得到了很多反馈包括展现
  其提高性能的基准测试结果。
  关于可抢占内核的争论是因为它降低了系统吞吐量(system throughput)。这是
  很正确的观点。也是需要我们关注的观点。现在的测试表明会损失0-5%的吞吐
  量-我想对于200%的响应速度的增加还是很值得!而且,有时候还会增加吞吐
  量。不管如何,对于那些任何吞吐量的损失都不能接受的系统,可抢占性内核只
  是一个配置参数而已。
     JA:开发时你使用的主要工具?请描述一下你的环境,计算机和使用的方法。
  Robert Love:我主要的机器是P3-733,384M内存,U2W SCSI硬盘。我也有一个
  IBM的ThinkPad和我公寓里各种各样的老机器。我运行最新的RedHat Rawhide和
  Ximian GNOME。
  我使用vi编码因为我不想学习其他OS :-)
  我一般在X里,所以我通常使用gnome=terminal和gvim窗口打开我的project。我
  倾向于先广泛的看看,如果需要做做研究,然后开始编码。很少在纸上作设计。
  我经常依靠lkml和email-我喜欢其他人跳跃性的想法。
     JA:你使用其他的操作系统吗?和Linux相比,你喜欢还是不喜欢它们?
  Robert Love:我有一个Windows2000的工作站,和一台运行Irix的老式SGI Indy。
  除此之外,任何事情都是Linus。我使用Windows是为了Powerpoint,以防
  AbiWord不能剪贴它。
  我最不喜欢其他操作系统的原因就是它们不是open source的。我不是一个free
  software的狂热者-虽然我赞成它们的优点,我认为源码开放和围绕它的社区是
  无价的。
     JA:你曾经使用open source的BSD操作系统吗?特别是,你曾经关注过它的内核
  Robert Love:我曾经有一台OpenBSD的机器,但是我把它丢到垃圾箱了。(虽然
  不是因为OpenBSD)
  其他的我所知道的就是学术性的了,我被Matt Dillon在FreeBSD的工作所打动(他
  写了VM)。他们的SMPng工作进展的很不错(在SMP扩展性方面,他们落后于
  Linux)并且他们甚至在考虑实现一个可抢占内核。
     JA:你知道他们倾向于使用何种抢占性吗?可能像你的升级包,或者像Andrew的
  升级包,或者是个结合体?
  Robert Love:他们考虑一个完全抢占性内核,就象我的包一样。我不知道对此他
  们会做了什么,也许在FreeBSD Core开发组已经被讨论过了。
  JA:你对当前2.4内核系列有什么看法?你认为它很稳定吗?
  Robert Love:我想我们比2.2有很大的提高。在2.3和2.4中完成的工作太棒了。我
  们做的一些提高,特别是Linus和Ingo作的一些工作真的是棒极了。2.4现在可以
  完成一些高性能/高扩展性的工作了。
  这并不是说在这点上我对2.4完全满意,我认为拆分Rik的VM是个错误。如果
  Linus想在2.5中尝试不同的东西,他都可以。在稳定的系列中,我认为我们需要
  更少的改变。我们不能就这么丢掉了花在VM上一年多的工作,还有所有的对应文
  档和理念。但是看来VM被裁减的很
  好。我使用Alan的内核,这个内核还坚持Rik的VM,而且我们正在为提高它而努
  力。谁知道当2.4的内核被传递到Alan手上以后,我们会有什么样的内核。
     JA:如果你遇到突然改变内核,你会如何处理?
  Robert Love:首先,也许内核会变成不知道什么鬼样子,不管我如何抱怨或者其
  他人如何反对Linus,他不单单是一个不可思议的高手(hacker)而是一个很棒的
  管理者,Linux需要他。
  对于VM的问题,我将跟随Alan领导的2.4内核。测试和文档化Rik的VM。我想我
  们需要更好的测试。太多Rik的主意和包都被忽略了。其他包被合并而不复存在
  了。我们需要一点一点的进行合并VM的工作,同时需要没有冲突的包,测试和结
  果。我们现在在Alan的代码树中需要这些。
  对于2.5,当然了,任何事都在发展。丢弃任何可以丢掉的。我认为Andrea的VM
  性能很好,可能它更好。It is just a bad time to find out, IMHO。
     JA:对于2.5内核,你最希望看到什么?从这里你打算何时开始?
  Robert Love:当然是一个可抢占的内核 :-)
  除了那个,我将继续探索更好粒度的锁(finer-grained locking)和整体清除
  (overall cleanup)。我想块设备,SCSI层和控制台层需要重写。我们关注NAPI
  and/or 某种形式的中断扼杀(IRQ throtting)。Ben LaHaise的异步I/O工作合
  并。Keith的新的kbuild看上去不错。我期待这所有这些。
  我真的认为我们需要重写tty系统,但是我不知道谁会做这个-我肯定不会做的。
  我想没有人,包括Linus对于2.5开始有一个明确的线索。我最初认为是2.4.0发布
  ()几个月后-可能是3月,或5月,可是现在还这样,一年又过去
  了,我猜不到。我怀疑等VM被证明是稳定的并且Alan和Linus可以完全同步的时
  候,我们将看到2.5.0。我希望这很快发生
  JA:你遇到到Linus吗?或者其他内核开发者?
  Rebort Love:我没有遇到国任何&著名&的高手。我希望遇到他们,也许某天,在
  一个会议或是宠物公园吧。
     JA:对于希望称为内核高手的人你有什么窍门和灵感?
  Rebort Love:读代码,&玩&代码(译者:其实文中多次提到&玩(play with)&
  词),并且要经常洗澡。对于初学者,O'Reilly有几本很棒的书(&Understandin
the Linux Kernel&-Bovet and Cesati,和&Linux Device Driver 2ed&-Rub
Corbet非常棒)。但是打开内核的钥匙还是度代码。你有整个系统的代码-读
  它,修改它,学习它。
  我一年前加入了lkml,但是直到2.3我才第一次真的做出了贡献。在lkml旁观
  (Lurking on lkml)是观看高手出招的最好办法,你能学到很多。
     JA:谢谢你有时间回答所有的问题,由于这次谈话,我一定要下载你的包并升级
  我的系统
  Rebort Love:太好了!请让我知道它工作的如何并且也同时感谢MontaVista的伙
  计们(可抢占内核最初的开发者)。
  ------------------------------------------------------------------------
  Any comments you have about this interview, or this series, can be poste
  d here
or mailed to me at
     后记:与Robert谈完后,我下载了他的包并测试了一下(2.4.10-ac12)。wow!
  提高很明显!VMWare和Mozilla这样的程序在加载和退出时我的系统要冻住一段
  时间的,应用了Robert的包后,我能够同时加载他们两个,而我的系统还可以响
  应。我注意到当大型程序装载时xmms不再&skips&了。从现在起,我将使用它
  了,我希望它能更快的融入2.5内核
  from: /article.php sid=328
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:80808次
积分:1294
积分:1294
排名:第14803名
原创:40篇
转载:29篇
评论:11条
(1)(1)(8)(5)(1)(1)(5)(1)(1)(5)(1)(1)(2)(2)(1)(1)(2)(2)(2)(1)(1)(1)(5)(1)(2)(1)(2)(3)(2)(5)(3)推荐这篇日记的豆列
······
&(2198人关注)
&(1874人关注)
&(413人关注)
&(1548人关注)
&(19人关注)}

我要回帖

更多关于 在纸上玩的游戏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信