Ten Years

十年一剑!
-------------------------------------------------
Operating System Research / Technique

Saturday, September 23, 2006

修改了模版,可以展开评论了

和blog模版战斗了半个多小时,终于可以让评论直接显示出来了!

blogger的一个缺点就是图形化的定制比较差,需要自己去改HTML代码。真不知道那些非专业人士怎么办?
  • At 5:49 PM, Blogger xiayubin said…

    这岂不是一个很好的研究机会?hoho,web2.0的时代~~
     

  • At 8:56 PM, Blogger water said…

    共享一下可以展开评论的html哦,老大!
     

  • At 12:50 AM, Blogger Andy Yang said…

    总的来说,在用原来的模版时,点击发帖时间打开单个帖子时(即,帖子页),下边是有评论的。把相关的代码copy到相应的主页面代码中就可以了。

    具体的,注释中标出了 Begin #comments,是评论的部分,这部分应该是在ItemPage标签中的,表示只有帖子页有评论。然后找到帖子正文的地方,就在这一段前边,注释中注明了Begin .post和End .Post。其中的核心是$BlogItemBody$,就是正文。下边应该是post-footer,可以就把copy过来评论部分加在post-footer后边。

    copy完了之后就改改,精简一下。对照实际的页面,理解每一部分都是什么意思也不太困难。

    HTML代码就不贴了,我不知道怎么方便的在HTML中现实HTML代码:(
     

  • At 11:48 AM, Blogger xiayubin said…

    评论的字体过大,不好看:(
     

  • At 10:50 PM, Blogger Andy Yang said…

    这下大家满意了吧^_^
     

Post a Comment

(简介)PCI Extension ROM

PCI Spec 2.2

很多PCI设备都带有自己的ROM(比如网卡,显卡),里面存放着设备的特有初始化代码(代码类型有可执行的和解释型的,俗称BIOS),并且这个ROM是和主芯片分离的。

当系统BIOS做POST时,会检测各个PCI设备的头部结构中的Extension ROM BAR寄存器,如果实现了这个寄存器(bit0为1)就表示该设备包含Extension ROM,需要做设备特有的初始化。通过往这个寄存器写全1的数,然后再读出来得到一个mask,此mask表示需要为ROM提供多大的映射内存地址空间。

Extension ROM存放的是多个image,每个image的功能一般是一样的,但是它们的内容格式确是不同的,多个image是为了要支持不同的体系结构,各个image由image头部中的vendorID和deviceID识别。每个image的头2个字节固定为0xAA55,用于定位ROM的位置。

ROM内容的格式主要有:PC/AT, Open Firmware Spec, HP Spec。当前比较常用的是PC/AT。
对于PC/AT格式,第2个字节表示image有多少个512字节是有用的初始化代码(即需要搬运到RAM的代码大小),第3,4个字节是一个指向INIT entry的偏移指针,程序最后通过这个指针跳到ROM的初始化代码处去执行。
  • At 11:13 AM, Blogger xiayubin said…

    如果ROM为解释性的代码是否就不存在体系结构依赖的问题?
    PS:有错别字哦:)
     

  • At 11:48 AM, Blogger Andy Yang said…

    Brady学会我的偏执了,哈哈……
     

  • At 8:55 PM, Blogger water said…

    又读了一遍,没错呀。难道是已经被改了?
     

  • At 8:58 PM, Blogger water said…

    之前说过的FCode的代码(Open Firmware Spec)就是一种体系结构无关的代码。
     

  • At 9:04 PM, Blogger Andy Yang said…

    FCode怎么执行呢?解释?

    这不有是VMM吗?哈哈:)
     

  • At 4:12 PM, Blogger water said…

    FCODE的二进制代码由BIOS中的解释器解释执行,是有点虚拟机的概念。
     

Post a Comment

Friday, September 22, 2006

下午参加YOCSEF报告会——无线传感网络

今天下午,Andy、Brady、Vivian去北航参加了YOCSEF的报告会,主题是:无线传感网络(Wireless Sensor Network)

经过一周的版本整合,UZ-2.0封版了,定格与build-37。之后Andy、Brady、Vivian火速前往北航参加YOCSEF的报告会。其间接到版本相关电话若干:-)

报告的主题是Wireless Sensor Network (WSN),应当算是pervasive computing的一部分吧。此次会议的执行主席之一史元春教授(清华大学计算机系)是中国计算机学会(CCF)普适计算专业委员会的主任。

第一个报告,计算所的崔莉博士介绍了她们在WSN方面的几个应用项目的情况。其中一个项目是故宫的书画展示监测系统,很有意思。

第二个报告,北邮的周正教授介绍了超宽带(UWB)无线通信技术的一些进展,包括对WSN的支持。比较偏重通信方面。介绍一些相关标准进展情况,如IEEE 802.15 WPAN(无线个域网)相关标准等。

第三个报告,清华的任丰原博士介绍了WSN研究的一些历史、现状和展望,分析了WSN研究的主要问题、思路。更侧重网络方面,提到了TinyOS的左右、发展等。

回来的路上大家讨论很热烈,总体感觉收获很多,特此记录
  • At 11:17 PM, Blogger Andy Yang said…

    好像不能,只有单独看一篇文章时参可以展开。

    回头研究一下吧。
     

  • At 11:59 PM, Blogger xiayubin said…

    下午有一点很有收获,这也是我曾经思考过的一个问题:瘦客户端和普适计算的关系是什么?
    虽然现在还不是很明白,不过至少肯定了一点:瘦客户端的一个本质特征就是与人的交互;而今天下午讨论的传感网络,基本上是不需要人的参与,尽可能的让传感器自动化的去做一些事情(从这个角度看,似乎还和AI有一点关系呢。在讲机器人的时候,就提到过很重要的一点就是传感器的作用)。
     

  • At 11:50 AM, Blogger Andy Yang said…

    我有想起了清华拍的《寝室夜话》中的哪个女生,呵呵……

    女生A:那你们实验室有什么好玩的呀?
    女生B:(思考状,1分钟后)机器人?
     

Post a Comment

访问量超过100!

现在是2006年9月22日晚上20:00,“十年”开张的第9天。
访问量达到了100!
庆祝一下!!
  • At 8:14 PM, Blogger water said…

    赞一把。
     

  • At 11:50 PM, Blogger xiayubin said…

    最新外报!泡泡的blog开张两个月,已经成功赚到2美刀!
    不过更牛的还是曲宁师兄,由于blog中有inte和AMD的友情链接,而且某篇blog内容中提到Itanium,结果出现的广告超牛,据说点击一下就1美刀!!
    建议Andy修改一下友情链接,比如宝马啊,波音啊,香奈儿啊什么的……
     

Post a Comment

第三次学术沙龙

昨天晚上第三次学术沙龙在Plato顺利举行,Andy、Brady、Vivian、Water参加。

Water介绍了LOBOS的论文。大家讨论了其基本思想,但是对于其研究动机还是不太清楚。Water还会在去了解一下。BTW,Water已经把笔记贴上来了,很神速:P
另外,大家还就上次讨论的VGA BIOS问题聊了一下。Water发了Paul提供的binary translation资料,大家有不少收获。继续跟进吧……

Vivian介绍了最近看的Huffman编码的一些文章,除了Andy其他人都比较晕。很正常,对没有关注的领域直接进入深层内容难度还是很大的。但总结一下,几个基本方向还是应该了解一下。一个是Huffman编码的内存使用优化问题,一个是Huffman编码改进问题(更接近于熵),一个是decoding的效率改进问题,一个是错误传播/隔离问题。

Brady介绍了GFS和MapReduce两篇Google人的文中,后者是OSDI 2004上的。两个研究对于问题的定义、约束很好,对于明确的应用环境(Google),受限的目标(海量数据等),提出有效的方法。这是一种很务实,很好的研究思路。建议大家都读一下啊。BTW,看了之后会对Google加深感情的。

最后大家讨论了沙龙活动的一些组织形式问题。
决定加强在“十年”blog上整理阅读笔记的力度,将不在沙龙上具体介绍论文,改为先发帖,在blog上讨论有问题,有感觉,再在沙龙中聊。同时增加封闭实践活动。
决定开始分头系统阅读OS方向论文,每人每次选定一年的论文集,通读Abstract,选读部分感兴趣的文章,Andy的经验是不超过1/3,阅读后写笔记贴上来。

目前安排:
Andy -- HotOS 2003
Brady -- OSDI 2004
Vivian -- SOSP 2003
Water -- HotOS 2005
  • At 11:18 AM, Blogger xiayubin said…

    作为一个GFans,我在想把Google这几年发的论文都看一下,哈哈。
    PS:“Google人的文中”应该是“文章”吧?
     

Post a Comment

(Note)Multimedia Over IP for Thin Clients: Building a Collaborative Resource-Sharing Prototype

Janet Chen
阅读内容:全文(4页) 阅读时间:50分钟

作者介绍了一种在瘦客户端模式下进行视频会议的模型,并着重就音频问题提出了解决方案。
论文基于H323标准*的ITU-I建议来实现。

We can attain a balanced architecture that supports both centralized management application softwares and distributed multimedia processing for I/O device.

作者提出了在这个过程中遇到的三个问题:
IP address conflict issue
Application transparent adaptive issue
Device capability issue

具体实现是在Windows的RDP基础上做的,add multimedia streaming handling protocol coexist with RDP。作者实现了两种Agent:在Client端,实现了Service Agent,用来采集音频,并传送给Server;在Server端,实现了Control Agent,用来接受传过来的音频数据(这种想法与我们的想法很接近)。

* H323:Packet-based multimedia communications systems
  • At 10:42 AM, Blogger Andy Yang said…

    我记得作者不只一个吧,可以在第一作者后加上 et al

    et al: (Lat) 以及其他人,等人
     

Post a Comment

(Note)LOBOS:(Linux OS Boots OS) Booting a kernel in 32-bit mode

作者:Ron Minnich, Advanced Computing Lab, Los Alamos National Labs, New Mexico
出处:Proceedings of the 4th Annual Linux Showcase & Conference, Atlanta, 2000(USENIX Association)

解决问题:
在cluster的环境中,更换单个节点的系统环境(包括OS和根文件系统)传统的方式是通过对单个节点的更新,这样当节点很多时非常费时费力。本文提出一种新的方法,使得可以通过网络更新各个节点的系统环境。

核心思想:
通过在Linux内核中增加一个系统调用,,使其能直接在运行于32位模式下的内核中启动另一个新的内核,并且不通过传统的BIOS。这样,Linux 内核就可以直接作为一个网络启动程序,而不需BIOS的参与。并且,lobos调用可以指定一个新的内核和根文件系统来运行。
  • At 9:29 AM, Blogger xiayubin said…

    还有点不明白:为什么要在一个Linux上启动另一个Linux?是不是有多台机器?或者为其他机器提供服务?
     

Post a Comment

Thursday, September 21, 2006

Andy's Literature Summary转到Google Spreadsheet上啦!

今天我把自己整理的文献资料的总体情况表转移到Google Spreadsheet上啦,这样大家就都可以看啦。
在blog的sidebar上有一个链接,欢迎大家来捧场!
 
多谢了先!
  • At 9:26 AM, Blogger xiayubin said…

    不知道是不是下面的意思对不对?

    Total:一共有多少篇
    Abstract:阅读Abstract
    Read:阅读全文
    Note:已经在Blog上发表
     

  • At 9:58 AM, Blogger Andy Yang said…

    Read其实包括Skim、Read1、Read2、……也就是浏览一下introduction和主要内容也算。
    Note还有一部分是原来写的,还没有上传,后续也回传到blog上。
     

Post a Comment

(HotOS'03 Note)Cassyopia: Compiler Assisted System Optimization

Cassyopia: Compiler Assisted System Optimization
Mohan Rajagopalan et al.
HotOS 2003

Focus on applying optimization techniques across address spaces on the same or different machines.跨保护边界的调用开销是非常大的,将过程内优化、过程间优化、全局优化等方面的技术应用在跨地址空间方面。文章中主要讨论的是对于系统调用方面的优化,也提到了远程过程调用的优化问题,不过没有展开。

主要采用profiling-based optimization,针对crossing次数和cost两个方面进行优化。对crossing次数采用system call clustering技术,包括mutil-callloop multi-call等。至于crossing cost方面,似乎没有多说。

System call clustering:通过profiling,建立system call graph,类似基本块图,但粒度更大一些。然后采用循环展开、调动等优化方法,把不相关的system call组合成multi-call或者loop multi-call,减少上下文切换次数。注意,这里错误处理可能会成为一个问题。

另外也提到了内核中执行应用程序代码的问题,replace general purpose code in the kernel bye compiler-generated case-specific code in user-space.解释了一些别人的工作,认为文中profiling可以为这些工作提供进一步支持。

文章中牵涉一些编译优化技术,发现自己了解的太少,以前了解的也忘差不多了。真后悔刚上研一时没有在编译组认真学!!!

另外,文中提到使用multi-call可以使mpeg_play性能(frame rate)提高25%,很震撼。要研究一下,怎么有这么多呢?

(HotOS'03 Note)Using Performance Reflection in Systems Software

Using Performance Reflection in Systems Software
Robert Fowler et al.
HotOS 2003

Alan Cox是第二作者哦。

这篇文章关注基于现代处理器中广泛支持的性能计数器为OS及应用提供性能数据。开发称为kernel performance reflection的工具。

作者提出从overheadproductivity两个角度进行度量,TLB missdata cache miss等属于overhead,而指令数、浮点操作数、数据传输量等则属于productivity。作者将overheadproductivity之间的关系作为系统健康状况的一个重要指标。例如:如果productivity指标增长,overhead也增长,应当属于正常情况,具体来说,数据传输量增长,TLB miss增长就是正常情况;但是,productivity下降,overhead增长,则说明什么地方出了问题。这种思路很不错,可以从多种多样的指标和应用环境中建立简单的模型。

作者举了一个内核应用的例子、一个应用程序应用的例子。对于使用性能数据进行自动行为调整,本文没有具体讨论,只是点了一些相关的研究。

Wednesday, September 20, 2006

(Note)Transporting Real-Time Video over the Internet: Challenges and Approaches

Dapeng Wu et al
来自Proceedings of IEEE的一篇Invited Paper。

主要问题非常清晰:在Internet上实时传输视频数据,最大的需求在于三点:bandwidth、delay、loss,而这三个需求(QoS)并不是现有的协议所能提供的。

对于视频数据传输来说,有两大类的异构(heterogeneity):Network 和 Receiver。针对这两种异构,目前有两种思路:Network centric 和 End system based。前者以网络参数为核心关注对象,后者在不依赖任何QoS的情况下,最大化视频质量。

显然,后者的意义更为重大。基于后者,作者提出了一种构架:
congestion control: prevent package loss
rate control (for transport)
rate-adaptive encoding (for compression)
rate-shaping (for both)
error control: max quality under package loss
forword error correction (FEC): Add redunt info to reconstruct when loss package.
* channel coding
* source coding based
* joint source/channel coding
retransmission: Translate again
error resilience: Consider the semantic meaning of the compression layer
error concealment: A post-processing technique used by the decoder

  • At 8:24 AM, Anonymous Anonymous said…

    不大看得懂呀……
    不过这个主题相当有挑战的,要多了解一些了。
     

  • At 9:55 AM, Anonymous Anonymous said…

    大牛的blog,好好学习^_^
     

Post a Comment

关于iSCSI

iSCSI风头很劲,似乎已经成为网络存储的一个趋势。另一方面,它和以前我调研的Network-attached peripheral (NAP)又有联系。

下面这段来自www.znet.com.cn上一篇文章《iSCSI初级读本》,可以给出一个总体的印象。
有些人认为iSCSI 是光纤这样的专用的存储局域网(SAN)和网络附加存储(NAS)的混合产物。这种看法可能是因为iSCSI 利用以太网作为传输介质。也就是说,一端是NAS,一端是SAN,iSCSI 更接近SAN。但是NAS设备在文件层工作,也就是说工作时整个文件在设备间传输,而iSCSI 是在区块层工作,非常象一块本地连接的硬盘。这也就意味着在某些NAS不适用的数据库应用或者Exchange环境下,iSCSI可以发挥作用。(尽管Exchange可以使用NAS文件级设备,区块级存储机制无疑更为适用)。把服务器和iSCSI阵列连接以后,存储就好象一块本地硬盘,从而可以提供无缝存储。

还有一个项目,叫Linux-iSCSI Project,也值得关注。主页:http://linux-iscsi.sourceforge.net/
需要2.4.20以上的kernel。

Post a Comment

Tuesday, September 19, 2006

三大开源视频播放器比较(2)

关于模块性,做一个简单的比较。

Mplayer:
比较差,编出来是一个比较大的可执行文件。而且,其可配置性比较差,config阶段虽然有很多参数,但有些东东还是很难裁减掉。

xine:
xine是一个共享库,初步编了一下感觉模块划分比较清楚,不同模块有不同的so。在X86下默认编译,主要模块大小如下。
libxine.so 380K
xineplug-ao-out-oss.so 22K -- OSS audio
xineplug-vo-out-fb.so 70K -- Framebuffer video
xineplug-decode-ff.so 2300K -- ffmepg decoder ??
xineplug-decode-mpeg2.so 132K -- mpeg2 decoder ??
xineplug-dmx-mpeg.so 19K -- demuxer
xineplug-inp-file.so 20K -- file input
xineplug-inp-net.so 19K -- network input
xineplug-inp-rtsp.so 22K -- RTSP input

(HotOS'03 Note)Magpie: online modeling and performance-aware systems

Magpie: online modeling and performance-aware systems
Paul Barham et al.
HotOS 2003

本文讨论了Magpie的设计思路,主要解决分布式系统的性能分析问题。其主要特点就是综合运用各种已有的插入式性能记录方法,形成一个Black-box instrumentation系统。已有很多面向不同侧面的log或性能分析系统,包括对系统调用、网络踪迹、IIS服务、HLL VM等进行分析。Magpie的特点在于将这些技术记录的数据综合起来,在全系统的层面上给出分布式应用的运行踪迹,并建立统计模型,从而可以分析出异常的情况,为性能调试提供线索。

老革命遇到老问题——FC2和Windows XP双启动问题

晚上心不在焉地在家里PC上装了一个Fedora Core 2,发现竟然启动不了Windows了,真是老革命遇到“新问题”。仔细一想,发现原来在lab也遇到过,应该有解决的。

于是开始google。搜了一下“FC2和Windows XP双系统”,果然有这个问题:Windows启动不了,出现以下信息停止:
rootnoverify (hda0, 0)
chainloader +1

到此一切顺利。接下来就发现全是一些不着调的解决方案,重新装Windows啦,修复分区表什么的,再就是求助的。真让人对国内技术论坛失望,至少是搜索引擎搜出来的结果……

再用英文搜,搜FC2 Windows boot problem,很快就有了结果。这个问题却是是FC2的BUG,但Red Hat给出了修复办法,也很简单,使用如下命令即可。
sfdisk -d /dev/hda sfdisk --no-reread -H255 /dev/hda
关于具体含义,参看:
http://www.redhat.com/archives/fedora-devel-list/2004-May/msg00908.html

赶快记在这里,别又到处找,谁让我有刻好的FC2光盘呢,嗨~~~~~~

Post a Comment

Sunday, September 17, 2006

三大开源视频播放器比较(1)

Google了一下,主要的opensource的视频播放器有不少,比较强大的有MplayerXineVideoLAN等。其它的就不如它们全面了,比如:Ogle主要支持DVD,包括导航什么的;mpegTV不完全open;……

这里先把三大player简单总结一下,主要面向针对移植和开发的问题。

Mplayer
版本:1.0pre8 (2006.6.11)
.bz2包大小:7.9MB
主页:http://www.mplayerhq.hu/
代码风格:比较差,代码很挤,还有些数千行的函数:-(
其它说明:移植和使用了一段时间后,说实话比较失望。音视频同步方面比较弱,我们花了不少时间进行调试。当然mplayer对各种格式的支持还是很赞的。

Xine
版本:1.1.2 (2006.7.11)
.bz2包大小:6.5MB
主页:http://xinehq.de
代码风格:不错
其它说明:支持很多前端界面项目,甚至有专为Set-Top Box设计的(oxine ),赞!新的Fedora Core里带的应该就是它,好像是totem吧。

VideoLAN
版本:0.8.5 (2006.5.6)
.bz2包大小:8.3MB
主页:http://www.videolan.org/
代码风格:不错
其它说明:对Windows支持较好,Stream server的功能很赞!

Opensource Flash Player?

关有opensource的Flash支持,这个网站不错:http://osflash.org/

我浏览了一下,感觉比较成熟的还是gnash,主页是http://www.gnu.org/software/gnash/
它可以支持很多SWF 7的特性。

几个opensource项目的近况

我关注的几个opensource项目近期的一些情况。
  • rdesktop:刚刚发布1.5.0版本,加入了Session Directory支持,初步支持Vista RC1了。
  • openoffice:2006年1月发布了2.0.1中文版本。
  • dillo:项目过完了6岁生日,2006年5月发布了0.8.6版本。

Windows软件的Linux类似/替换/相近品

一个很不错的Windows软件替代品列表:
http://www.linuxrsp.ru/win-lin-soft/table-chn.html