<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1571745939204173805</id><updated>2011-06-08T14:19:32.884+08:00</updated><category term='安全'/><category term='Singularity'/><category term='千鸟窝'/><category term='本站消息'/><category term='security'/><category term='生活 旅游'/><category term='SMACK'/><category term='UI'/><category term='HI'/><category term='SELinux'/><category term='工具网页'/><category term='动漫空间'/><category term='appArmor'/><category term='空之境界'/><category term='多媒体'/><category term='人机界面'/><category term='Linux空间'/><category term='章鱼圈'/><category term='cee一'/><category term='产品＆生活'/><category term='毕业设计'/><category term='威克生活'/><category term='用户界面'/><category term='技术wawa'/><category term='章鱼のACG专栏'/><title type='text'>墨羽硅</title><subtitle type='html'>丐帮07年新据点</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>NiAo</name><uri>http://www.blogger.com/profile/10080612613110075298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>95</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-3709723561860162603</id><published>2009-05-03T21:59:00.002+08:00</published><updated>2009-05-03T23:14:52.875+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='章鱼圈'/><category scheme='http://www.blogger.com/atom/ns#' term='生活 旅游'/><title type='text'>宅之境界</title><content type='html'>&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;默默地将手机的闹钟开启，选中那个标注为“工作日”的项目，一如既往的生活重新进入了轮回。开往帝都的火车上的两人大概还可以沿途继续欢乐吧，而依偎在我身边的只有猫了。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;有个亲友跟我说过，最好的朋友总是三个人。的确，从小学、初中、高中直到大学，我总是在不同的三人众当中扮演自己的角色。孤僻也好，闷骚也罢，我从来都不擅长也不喜欢跟一大堆人混在一起，这也许就算是宅的性格吧。我在帝都的大学生活几乎没有任何可以向人诉说的精彩桥段，唯一保留至今的也只有最后一年结成的三人党了吧。如果要说是什么样的朋友的话，昨晚两人有如下的对话：“矿工，你平时晚上都干啥？”“宅～”&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;宅是什么？褪去各种正面及负面的社会看法，我的理解，宅就是认真去做自己喜欢的事情，宅人也就是执着于自己喜欢的事情的人。所以在这个层面上来说，我只是伪宅。不清楚自己自己真正喜欢的是什么，不能执着于自己真正喜欢的东西，物质欲望也日渐消散，说懒散不够懒散说勤奋不够勤奋，深陷于如同阻尼振动般趋向于静止的生活曲线。原本以为自己追求的是生活，到头来发现自己寻找的状态只是生存。为了生活的人总是追求最好的结果，为了生存的人总是考虑最坏的情况。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;如果再给我一次选择工作的机会，我想还是不会选择留在帝都。也许并不是真的那么喜欢杭州，只是单纯地认为最糟糕的状况下也可以逃回家躲在被窝里吧。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;在火车站送行前，来自帝都的两人说起了明年去日本旅游的计划。我觉得在弄明白自己真正的状况之前还是老实地待在国内比较好。人不是为了花钱去赚钱的，当然这是我的幼稚想法。直接用钱解决问题往往简单却粗俗。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;09年的“五一”在怀旧中度过，跟大学里的亲友一起吃饭、吐槽、玩游戏，似乎又体会了那已逝去永不再回的时光。夜晚的天空依旧泛滥着橙红色的光，但愿这个世界不要太早完蛋。&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-3709723561860162603?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/3709723561860162603/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=3709723561860162603' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/3709723561860162603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/3709723561860162603'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/05/blog-post.html' title='宅之境界'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-3973789903484562199</id><published>2009-04-18T00:14:00.004+08:00</published><updated>2009-04-19T22:19:06.593+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='章鱼圈'/><category scheme='http://www.blogger.com/atom/ns#' term='空之境界'/><title type='text'>《空之境界》人物浅析之无我之赤</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_w_VmU13txZw/SeirNZq_SNI/AAAAAAAAAIw/FiSho9LpaNI/s1600-h/%E6%A9%99%E5%AD%90.bmp"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 221px;" src="http://3.bp.blogspot.com/_w_VmU13txZw/SeirNZq_SNI/AAAAAAAAAIw/FiSho9LpaNI/s400/%E6%A9%99%E5%AD%90.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5325694806083455186" /&gt;&lt;/a&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;这次介绍的主角便是左边的这位大姐（御姐？）——苍崎橙子。&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;原作中对橙子的外貌描写很少：身穿紧身裙般毫无装饰的黑色长裤，以及崭新笔挺的白衬衫；头发不长，刚好能露出颈部。这副打扮的橙子小姐好似哪里的社长秘书。不过摘下眼镜时的眼神凶恶得难以形容，恐怕一辈子也做不了那个职业吧。本来小说中对橙子的设定是黑色长发，但是到了动画里却变成了红色，有些镜头为橙色，可能是为了跟其他人物有所区别的原因吧（好牵强的原因）。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;特别值得一说的是橙子的那副眼镜。在《空之境界》中橙子对外宣称眼镜的作用是切换性格，就是戴上眼镜的橙子是温柔的没话说，“没有戴眼镜的话这个人是要多坏就有多坏”。简单的说，不带眼镜的橙子就是恶魔，眼神和话语都凶恶至极。此外，在网上搜到一些《魔法使之夜》的设定资料，里面提到橙子天生便拥有“难得的魔眼”。这个魔眼当然没有两仪那双“直死之魔眼”那么逆天，不过应该也是具有相当强大能力的吧，具体的还不清楚（好吧，蘑菇你又挖了个坑）。橙子有个不良癖好就是抽烟，几乎是不间断的。在第五章《矛盾螺旋》中预测到与荒耶之战自己不利的情况下交给黑桐保存的居然只是一包劣质（龙牌）香烟。她染上烟瘾的年龄应该相当早。从网上流出来的《魔法使之夜》前三章来看，当时的青子大概十六岁，比她大三岁的橙子一出场也是很拉风地叼着烟头……本来是很完美的御姐，这个坏习惯让她给我的印象大打折扣。&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;苍崎家族在魔术师界中是被认为异端的家族。苍崎姐妹的祖父是个魔法使。橙子一出生便拥有数量不多但精密度极高的魔术回路，并伴随着天才之名被认为是苍崎家的继承人。也不知发生了什么（也许是某人老糊涂了），最后老人家决定让青子继承家业——也就是魔术师家族最终要的魔术回路。可能还导致了两姐妹反复成仇之类的事情。以上内容全部来自TM社即将发售的《魔法使之夜》的设定，在《空之境界》中没有提及。虽然没有继承魔术刻印，但橙子依然在伦敦魔术协会进行了学习，并最终得到了三原色中“红”的称号（虽然他期盼的是“青”的称号），被协会指定封印。然后橙子关闭了工房偷偷跑回日本藏了起来，在一幢烂尾楼里开始经营自己的生意，这也是《空之境界》故事主线的开端。在番外篇《未来福音》中，那幢烂尾楼（橙子之前的工房）度让给了别人，自己又不知道跑哪里快活去了……&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;其实橙子最擅长的工作是设计，全领域范围，包括建筑和图稿。她的另一个身份是最高位的人偶师，制作出来的人偶可以拥有与真人一样的生理结构（如果去做SD娃娃一定会大卖的 &gt;_&lt;）。橙子做出的最完美的作品就是她自己，真正与本人完全一样的替身。一个死去，另一个替身就会苏醒，代替原来那个成为现在的橙子。这并不是说橙子的灵魂在各个人偶身上附身什么的，死了就是真正的死掉了。只不过有一个跟本体完全一样的另一个“人”代替了橙子的位置继续存在而已。所以说，橙子其实已经舍弃了自我。个人还觉得最早作为人类被生下来的橙子可能是被自己设计的人偶杀掉的。&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;虽然很想喊一声“橙子最高”，想想还是算了。橙子在《空之境界》中的主要任务是介绍世界观的，并且起一些叙述衔接作用。蘑菇的小说中必定存在三种人：变态、杀人鬼以及魔术师。魔术师往往是主要人物而不是核心人物。也许还说不上背景系角色，总体来说就是戏份太少。现在更期待《魔法使之夜》里橙子作为反派的另类活跃……&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-3973789903484562199?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/3973789903484562199/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=3973789903484562199' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/3973789903484562199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/3973789903484562199'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/04/blog-post_18.html' title='《空之境界》人物浅析之无我之赤'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_w_VmU13txZw/SeirNZq_SNI/AAAAAAAAAIw/FiSho9LpaNI/s72-c/%E6%A9%99%E5%AD%90.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-5601929469599498929</id><published>2009-04-01T23:20:00.003+08:00</published><updated>2009-04-02T00:12:14.220+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='章鱼圈'/><category scheme='http://www.blogger.com/atom/ns#' term='空之境界'/><title type='text'>《空之境界》人物浅析之禁忌火花</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_w_VmU13txZw/SdOGqvZVwKI/AAAAAAAAAIo/A7nd085A_ZU/s1600-h/%E9%B2%9C%E8%8A%B1.bmp"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 223px;" src="http://1.bp.blogspot.com/_w_VmU13txZw/SdOGqvZVwKI/AAAAAAAAAIo/A7nd085A_ZU/s400/%E9%B2%9C%E8%8A%B1.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5319743653690065058" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;先放上萌图一张～&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;嗯，右边这位就是黑桐干也的妹妹——黑桐鲜花，礼园女子学院高中部的学生。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;原作中鲜花第一次正式登场是在第三章《痛觉残留》，Ahnenerbe咖啡馆中与浅上藤乃同学一起出现的。并且一出场就跟两仪同学大吵一架，最后让两仪给黑桐带话“哥哥，请尽快和这种女人分手”……真是相当有性格的出场秀。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;奈须对鲜花的外貌是这样描述的：鲜花的眼中有一种刚毅，也有如同要去挑战什么似的刚强。纵然外表是一副千金小姐的样子，却掩藏不住鲜花内里的坚强。如果说干也是由于仁厚而被同级生亲近的话，鲜花就是由于严格而被尊敬的那种类型吧。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;当然，仅仅是这种性格也并不见得会讨人喜欢。一旦有事情跟自己的哥哥扯上关系，这个妹子就会激萌了（哇哈哈哈）……第六章《忘却录音》里鲜花是主角，强烈期待。顺便说句题外话，《忘却录音》里有黑桐兄妹童年的一段回忆，那个人设——小鲜花居然扎着双马尾还是用黑色蝴蝶结，怎么看都像FATE中的远坂（武内，你这是在制造怨念么 &gt;_&lt;）。鲜花的起源是禁忌，虽然没有觉醒，但对她的人生影响还是很大的，喜欢上自己的哥哥这种事情也并不稀奇。“式，坦白讲。与其说我喜欢特别的东西，还不如说我的性格会被禁忌所吸引。所以干也是我哥哥这点完全不成问题，我反而还会觉得兴奋呢！何况我认为，喜欢的对象是近亲，这是件非常幸运的事。”鲜花从两仪那边得到的评价是“你这变态”……貌似最近兄控现象在ACG届发生频率逐渐升高，鲜花可以算是始祖级人物了。&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;为了可以与黑桐干也建立起非兄妹的感情，体育课从来没有得到过A以外的成绩的鲜花谎称身体虚弱，到了叔父家中并当了养女。在与干也近10年未见面后正准备回来下手的时候发现中途杀出了个两仪式（新年第一天，两仪去黑桐家把干也拉出去一起参加初拜，让原本先与干也约好的鲜花相当生气），所以就依靠养父的身份和财产伪装成大小姐进入了礼园女子学院。礼园是个森严的教会学校，学生父母的财产远比学生的成绩更重要。平时连请假出校门都很困难的地方，对鲜花来说却是基本出入自由，因为学校也要考虑升学率……原作中称鲜花拥有考入东大的实力（相当于中国的北大），在全国的模拟考试中也能进前十名，大概在《未来福音》中濑尾静音提到的成绩很好的转校生也是她吧。并且为了接近哥哥想必也经常会跑出学校……&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;另外，鲜花是橙子的弟子（貌似也是唯一弟子）。按照TM的设定，魔术师的能力是需要靠魔术师家族一代代积累和加强的，第一代的魔术师基本没有什么特殊能力。黑桐家都是普通人，所以橙子会收鲜花为徒弟着实有些奇怪。从橙子的性格来说，也许是一开始就看出了鲜花对干也的特殊感情，纯粹是为了拉近两人想看好戏也不一定。而且橙子也当面询问过鲜花有没有对干也表白……不过，鲜花还是有一点特殊才能——纵火。准确的说，是操纵火。鲜花的能力并不强，平时也就能烧个纸头什么的，需要与人战斗时还要带上橙子赠予的火蜥蜴皮做的手套，当然对手也得是黄路这种菜鸟级别的才行……&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;在《忘却录音》事件结束之后，两兄妹有一段小聚，大体是这样的：&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;干也很在意那次正月时不守信用，为了弥补所以来找我。&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;“虽然有点晚，这是压岁钱，要吗？”&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;因为哥哥的这句话，我就不再追究正月的事。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;真是的，我明明就很讨厌自己无法坚持的这一点，但现在却不免承认即使那样也不错。第一次要他买东西给我时，可是让我失眠烦恼到早上，而现在这样并排行走着，也是让我苦恼不已，不过……这不也是件很可爱的事吗。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;非常非常可惜啊，这么萌的妹子最后还是没有保住自己哥哥，甚至在第七章《杀人考察（后）》中没有登场，《未来福音》也未曾对她提到过一个字，奈须真可恶！算了，也许那天蘑菇得到天启之后会单独为鲜花写几个故事也说不定。现在我就等着《忘却录音》中妹子的活跃了，啊哈哈哈！&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-5601929469599498929?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/5601929469599498929/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=5601929469599498929' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/5601929469599498929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/5601929469599498929'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/04/blog-post.html' title='《空之境界》人物浅析之禁忌火花'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_w_VmU13txZw/SdOGqvZVwKI/AAAAAAAAAIo/A7nd085A_ZU/s72-c/%E9%B2%9C%E8%8A%B1.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-1878631646386308842</id><published>2009-03-29T23:06:00.001+08:00</published><updated>2009-03-29T23:08:11.734+08:00</updated><title type='text'>纪念我人生的第一次重大加班</title><content type='html'>&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;周日——10点到9点——几乎无中途休息……&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;明天正常上班，早早睡觉去……&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-1878631646386308842?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/1878631646386308842/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=1878631646386308842' title='3 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/1878631646386308842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/1878631646386308842'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/03/blog-post_29.html' title='纪念我人生的第一次重大加班'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-8818843538962748634</id><published>2009-03-26T22:28:00.002+08:00</published><updated>2009-03-27T00:02:18.052+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='章鱼圈'/><category scheme='http://www.blogger.com/atom/ns#' term='空之境界'/><title type='text'>《空之境界》人物浅析之人畜无害</title><content type='html'>&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;首先让我感叹下：奈须蘑菇你太赞了！《空之境界》是至今为止唯一让我有兴趣从看动画到阅读原著小说并且购买实体书收藏的作品。如果一定要问这部小说有多棒的话，应该形容为看过之后就想把奈须拖过来鞭打一番并追问何时写续作的程度吧。&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;关于这部小说的世界观设定等等这里暂不讨论，TYPE MOON那个庞大的月世界就是个坑，待我闲来再发文详细说明。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;本次介绍的《空之境界》的男主角——黑桐干也。关于黑桐的外貌，原著中的描写为：头发既不染色也不留长，皮肤既不晒黑也不纹身，既没有手机也不和女人搅和，个子在一百七十公分上下的程度，温和的容貌属于可爱的那一类，黑框的眼镜则增强了这种感觉。黑桐的最大特别之处就是他没有任何特别之处（笑）。虽然这个说法感觉很矛盾，但奈须对黑桐的设定就是非常普通的人类。&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;不过，黑桐只是貌似普通，作为男主角还是需要一点特殊才能的。橙子曾经说过，对于人来说有两个系统和两个属性，分别是创造者和探求者，使用者和破坏者。黑桐明显没有创造者的才能，橙子雇佣他的原因大概是看出了其探求者的才能。实际上黑桐的信息收集能力相当了得，在第五章《矛盾螺旋》里更是做到了让橙子也感到折服的程度，并且打趣说黑桐不去当侦探就太可惜了。&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;黑桐干也的家庭状况在小说中没有详细描写，只提到他大学辍学一事导致与父母关系恶化并长时间没有回家。非常值得一说的是黑桐有个妹妹——黑桐鲜花！关于鲜花我认为以后再细说比较好，因为这个妹子实在太萌了……&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;黑桐的日常生活状况也并不详细，作为男主角似乎并不算合格，所有战斗章节几乎全是由两仪一人搞定的。我非常纳闷的是这个家伙为什么对出现的大多数女性角色都有绝对杀伤力……从两仪式、浅上藤乃、黑桐鲜花（这是禁忌），到只见面后在咖啡店谈了一个小时的濑尾静音，甚至两仪未那（这个人以后再说，当时我也很震惊）都对这个男人有着特殊感情。简单的形容黑桐，典型的“老好人”。因为只是觉得两仪总是一副受伤的样子而去关心，遇到并不相识的藤乃和静音也会认真照料（并且说什么总不能就这样丢下不管），从妹妹那里得到的评价也是：这个家伙到底有什么好……是啊，这种家伙到底有什么好，偏偏有一大票女人迷上他。至于黑桐自己对后宫们的态度则是很明确的：就算两仪是男人也没有关系！这种被鲜花评价为“肮脏”的论调其实我个人是很欣赏的。身体的性别固然很重要，但人格性别才是进行交流的主体，尤其在面对两仪这种具有双重人格的变态时就更是如此。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;奈须并没有把黑桐描写成完美的男人。虽然是老好人并且善于照顾别人，黑桐也是会吐槽的哦：橙子得了感冒就趁机反击，以发泄平日里收的气。并且小孩子般固执地不允许两仪杀死完全暴走的白纯里绪。另外，黑桐几乎不会做饭，“最普通的是杯面，最高级的是煮面级别”。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;《空之境界》的故事主线应该还是两仪与黑桐的感情。只是这个感情在经历了两仪的车祸之后变得有些诡异。两仪体内的另一个人格“织”死了，留下的人格“式”失去了生的实感。通过两人遭遇的各种猎奇事件后，两仪心中的伽蓝之洞由黑桐所填满。第七章结尾出现的两仪肉体人格又把之前已经可以确定下来的感情线搅得有些复杂。好在最后两人算是走到一起，HAPPY END了。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;总体来说《空之境界》对黑桐自身的描写不多，很多时候只是借用他的视角来陈述故事而已。其他各位女性角色的心理描写则是毫不吝惜文墨，待我下回分解……&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-8818843538962748634?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/8818843538962748634/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=8818843538962748634' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8818843538962748634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8818843538962748634'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/03/blog-post_26.html' title='《空之境界》人物浅析之人畜无害'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-3692399401632620580</id><published>2009-03-22T12:21:00.002+08:00</published><updated>2009-03-22T12:27:08.168+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='千鸟窝'/><title type='text'>縗</title><content type='html'>1.手机在公交车上被扒。。3小时内办了新卡买了只便宜的黑莓&lt;br /&gt;2.周日加班中。。&lt;br /&gt;3.认识一个做传销的朋友。。真是扰人不倦。。软硬都来，可惜我软硬不吃。感谢我吧，如果我被传染了，马上就来传染你们&lt;br /&gt;4.天气忽冷忽热。。能正常点吗？&lt;br /&gt;5.偷偷介绍下现在工作地方的事情，是一家科普展示公司，我做展品设计，其实也不仅仅是局限在这里，老板很有钱，做好了估计能混的不错。现在我了解公司在做的浙江省科技馆的项目就有2个亿。所以加班。。我忍=。=&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-3692399401632620580?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/3692399401632620580/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=3692399401632620580' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/3692399401632620580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/3692399401632620580'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/03/blog-post_22.html' title='縗'/><author><name>NiAo</name><uri>http://www.blogger.com/profile/10080612613110075298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-4723354540737550771</id><published>2009-03-15T16:49:00.004+08:00</published><updated>2009-03-15T17:05:02.649+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='千鸟窝'/><title type='text'>继续碎碎念</title><content type='html'>1.前阵子看了部动画电影&lt;a href="http://www.verycd.com/topics/2732947/"&gt;《空中杀手》&lt;/a&gt;(导　　演　押井守 Mamoru Oshii)。空战描写和机设还是不错的，某些色调很像《最终流放》，剧情略显闷骚，某人可以出动了=。=&lt;br /&gt;2.今天去做了个头，明天上班去了，新环境新生活，努力挣钱，恩！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-4723354540737550771?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/4723354540737550771/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=4723354540737550771' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/4723354540737550771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/4723354540737550771'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/03/blog-post_15.html' title='继续碎碎念'/><author><name>NiAo</name><uri>http://www.blogger.com/profile/10080612613110075298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-3588307768562354253</id><published>2009-03-11T22:53:00.002+08:00</published><updated>2009-03-11T23:06:55.435+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='章鱼圈'/><title type='text'>无题</title><content type='html'>&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;之前几周的杭州连绵阴雨，但我的嘴唇却干燥异常。开头只是嘴唇干裂，后来连上下的皮肤也开始干燥，甚至开始出现细碎的脱皮。果然我是异类，这个世界的不和谐音……&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;自我否定是个痛苦的过程。也许在幼小的时候还不是那么困难，因为自我的否定总是在周围人的推动下进行，通常可以称之为“成长”。随着年龄的增长，“成长”也将趋于缓慢并最终停滞，所以老人往往是食古不化的代名词。极端的自我否定可能产生严重的自卑心理和负面情绪，或者准确的说是容易将人内在的负面心理扩大并表象化，同时人自身对这些负面心理的恐惧造成自我否定变得愈加困难。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;最近在看《空之境界》的原作小说，感觉很有意思。&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-3588307768562354253?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/3588307768562354253/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=3588307768562354253' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/3588307768562354253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/3588307768562354253'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/03/blog-post_11.html' title='无题'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-7900497073559098724</id><published>2009-03-08T10:54:00.003+08:00</published><updated>2009-03-08T11:08:20.449+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>越狱</title><content type='html'>最近没干劲，已经有不少人向我推荐越狱，恩恩，暂时逃避下现实吧。&lt;br /&gt;如果日常而又无意义，但不得不做的事是监狱，毕竟这是责任和义务么。那么完成那些私人计划的有意义的事就是挖开监狱的通道。也如同主人公一般，各种事让越狱变得很不顺利，让人烦躁。&lt;br /&gt;&lt;br /&gt;现在的软件一些构成了地狱，而其他的就是照向地狱阳光。追逐阳光，直到象Linus所说的那样，我是这个世界的上帝。于是我将发动洪水，把火种留在诺亚方舟上.......&lt;br /&gt;&lt;br /&gt;哈哈，开个玩笑，发泄下怨念。不过对GNU和Debian之类的Hack的浪子般的不负责的开发软件表示极度的BS。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-7900497073559098724?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/7900497073559098724/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=7900497073559098724' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/7900497073559098724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/7900497073559098724'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/03/blog-post_08.html' title='越狱'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-8081611926039251003</id><published>2009-03-02T18:38:00.003+08:00</published><updated>2009-03-02T18:49:31.880+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='千鸟窝'/><title type='text'>似乎要天晴了?</title><content type='html'>靠，最近都习惯把事情一条条列出来了，这是病，得医。。&lt;br /&gt;1.连续3天早上7点起，然后冒雨挤公交，穿着唯一一身体面的半正装（薄），奔波于杭城，稍微带着点凄凉～真的很冷啊，今天等该死的815（估计半小时一班），居然看到冰雹砸到地上蹦蹦跳跳的，妈的，莫非要冻死一批穷人维持世界和平？&lt;br /&gt;2.看了校内一个转载的文章，毕业半年换四个工作的达人也有，还是个女生，不说啥了，列个数据&lt;span style="color:#3333ff;"&gt;（&lt;/span&gt;&lt;span style="color:#ff9900;"&gt;纵观我08的求职经历：网申300家（其中校园招聘150家），笔试2家，面试5家，录了3家。而07年的数据是：网申60家，笔试50家，面试11家，录了2家。可见我08年真的是很勤奋，因为各大公司不招往届的，于是只能靠勤奋在150个网申中混到2个笔试机会，并靠忽悠获得了一个经过四轮PK的offer。）&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;3.明天要搬家了，蜗居到一个要出国的同学家去了，房子小了，厨房方便点，因为至少有个水池。。顺便借下他的运气=。=&lt;/span&gt;&lt;br /&gt;4.这几天还要做方案，因为设计就是靠实力说话的，名气大人家也不会马上要你的，再苦两天吧。。&lt;br /&gt;5.居然能进银行面试，唉，说不定有机会一冲动就去混个银行小职员当当了，8过希望不大啦。。面试的mm都挺pp的，zjuer的悲哀啊。。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-8081611926039251003?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/8081611926039251003/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=8081611926039251003' title='4 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8081611926039251003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8081611926039251003'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/03/blog-post.html' title='似乎要天晴了?'/><author><name>NiAo</name><uri>http://www.blogger.com/profile/10080612613110075298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-6717494386426307480</id><published>2009-02-26T20:05:00.003+08:00</published><updated>2009-02-26T20:18:14.974+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='千鸟窝'/><title type='text'>工作碎碎念</title><content type='html'>既然是碎碎念，那就一条条来吧～&lt;br /&gt;1.断断续续也找了2个月工作了，出来才发现生活不容易啊～金融危机不是盖的，生活有甜蜜，也有痛苦，但至少目前为止还neet得蛮充实的。&lt;br /&gt;2.设计在中国不好做，不管是威克上100元一个标志，还是工业设计师那微薄的薪水，还有那能上ccav的山寨的阿迪王，都表示现在中国这种急功近利的环境是很难静下心来沉淀的，设计是个快餐行业。另外再说一句，中国的设计师很多太水，看看威克的有些作品，我哭了&lt;br /&gt;3、为了生活，我把简历改成了5个版本，以适应各个职业的要求=。=，混口饭吃先&lt;br /&gt;4.居然有企业专门来收浙大学生，虽然和工业设计无关&lt;br /&gt;5、目前来说我觉得学得广不如学得专，至少混口饭吃还是容易的&lt;br /&gt;6.做什么都要适度，距离产生美，也更容易让你发现美&lt;br /&gt;7、全球资讯榜最后的图片新闻居然有很多工业设计产品，虽然入选作品的品位我不大敢恭维&lt;br /&gt;8.ccav5新闻女主播换了，真是的因为经常讲错话吗？？？虽然新来的没几天也出现过错误，额。。&lt;br /&gt;9.好马不吃回头草，离开了就不要想着回去了&lt;br /&gt;10.换房换风水！&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-6717494386426307480?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/6717494386426307480/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=6717494386426307480' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6717494386426307480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6717494386426307480'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/02/blog-post_26.html' title='工作碎碎念'/><author><name>NiAo</name><uri>http://www.blogger.com/profile/10080612613110075298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-4703654498668180207</id><published>2009-02-23T23:35:00.003+08:00</published><updated>2009-02-23T23:59:04.376+08:00</updated><title type='text'>我想……</title><content type='html'>&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;晚上无事，终于还是决定写点什么，如果不写的话真的会把仅有的文字表达能力都丧失殆尽吧……&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;稍微罗嗦一下本鱼的近况：&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;懒！每日对着类似的代码都有点懒得复制粘贴了，统统扔进库函数里面，看你们以后再需要出现的时候就直接调用，哇哈哈哈……&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;《Little Big Planet》神作了（虽然我早说是神作了，不然我还买来作甚），在第12届互动艺术成就奖的评比中获得了8个奖项。可惜的是我买来之后对这个游戏的热情实在不是很高……&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;《世界传说2 光明神话》今天终于通了，真是个很需要爱的游戏啊！&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;昨日从学校论坛得知SF社（版）准备拍摄一个静态电影，于是就热血涌到脑门，不经思考揽下了剧本和分镜的任务（故事情节已经有了）。关于静态电影，好像是一个新生事物。简单的说就是真人版的中国连环画。没错，中国连环画！貌似只有国内对这个东西比较热衷，google上搜索"static movie"基本没看到国外的作品。在网上看到比较好的是完美时空给自己的网游《赤壁》做的那个宣传（真的很不错）。之所以能在中国有所发展，本鱼私下认为可能是跟国人的连环画情结是有莫大的联系的。但是本鱼当初揽活时候的理解是单帧照片+配音+运镜+配乐，结果——现在只好另外改一个剧本以满足学校里的要求了。原先的剧本也不会扔掉，将抽空继续完成。同时我也联系了学校里组织拍摄的相关人员，要求提供500张以上的照片做素材，以实现本鱼的最初想法（单帧照片+配音+运镜+配乐）。之前构思了几个看上去还不错的想法，包括每秒8帧的快进（什么？为什么不是每秒15帧？因为太浪费了……每秒24帧？有人能看清画面上到底出现了虾米么……），抖动镜头等等。当然如果可以的话还可以做一个长时间的无配音无配乐定格镜头，3分58秒如何（偷笑）？这个计划实施期暂定为一年，如果一年也无法完成——那我也没什么办法。&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;最后，Linux是个好东西，就是用起来稍微麻烦了点……我到现在连个媒体播放器都没装上……&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-4703654498668180207?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/4703654498668180207/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=4703654498668180207' title='3 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/4703654498668180207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/4703654498668180207'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/02/blog-post_7390.html' title='我想……'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-29721225747091674</id><published>2009-02-23T18:55:00.008+08:00</published><updated>2009-02-23T19:16:47.592+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='威克生活'/><title type='text'>威克生活</title><content type='html'>想赚点钱，所以这两天都泡在任务中国。放下自己的作品吧。&lt;br /&gt;ps：上传图片的功能好像很愚蠢啊，图片传好以后总是置顶，照理应该出现在文字输入符后面吧，你们怎么搞的？&lt;br /&gt;一、一个房产信息网站“爱房网”的logo，要求以文字为主体进行设计&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_-1VjsI0JKhI/SaKErJcNiSI/AAAAAAAAANU/wljfRd8CfGQ/s1600-h/ç»ç¨¿.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5305949187799353634" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 340px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_-1VjsI0JKhI/SaKErJcNiSI/AAAAAAAAANU/wljfRd8CfGQ/s400/%E7%BB%88%E7%A8%BF.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_-1VjsI0JKhI/SaKD9DOYBtI/AAAAAAAAANE/lURqF6p6130/s1600-h/ç»ç¨¿.jpg"&gt;&lt;/a&gt;&lt;br /&gt;二、一个童装公司的logo&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_-1VjsI0JKhI/SaKDRPwwFyI/AAAAAAAAAM8/Z5fG-mB0uUA/s1600-h/tinybaby2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5305947643307890466" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 340px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_-1VjsI0JKhI/SaKDRPwwFyI/AAAAAAAAAM8/Z5fG-mB0uUA/s400/tinybaby2.jpg" border="0" /&gt;&lt;/a&gt;  &lt;div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_-1VjsI0JKhI/SaKCfiPa22I/AAAAAAAAAMs/c0NcMdCCVg0/s1600-h/tinybaby1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5305946789274901346" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 340px; CURSOR: hand; HEIGHT: 400px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_-1VjsI0JKhI/SaKCfiPa22I/AAAAAAAAAMs/c0NcMdCCVg0/s400/tinybaby1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;老天保佑让我赚到第一桶金吧&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-29721225747091674?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/29721225747091674/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=29721225747091674' title='3 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/29721225747091674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/29721225747091674'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/02/blog-post_23.html' title='威克生活'/><author><name>NiAo</name><uri>http://www.blogger.com/profile/10080612613110075298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-1VjsI0JKhI/SaKErJcNiSI/AAAAAAAAANU/wljfRd8CfGQ/s72-c/%E7%BB%88%E7%A8%BF.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-2634567442034589476</id><published>2009-02-17T14:50:00.003+08:00</published><updated>2009-02-17T15:00:28.349+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='产品＆生活'/><title type='text'>梦想mixed现实</title><content type='html'>人这一生该何去何从？&lt;br /&gt;也许梦想就像信仰一样，在触手而不可及的时候，是最美的。&lt;br /&gt;变得现实并不糟糕，现实可以让你更有效率地计算人生，给自己定下一个个目标，给自己的每一次进步一点点奖励。&lt;br /&gt;没有付出的爱情不会长久，&lt;br /&gt;没有努力过的梦想永远不会成为现实。&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-2634567442034589476?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/2634567442034589476/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=2634567442034589476' title='4 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/2634567442034589476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/2634567442034589476'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/02/mixed.html' title='梦想mixed现实'/><author><name>NiAo</name><uri>http://www.blogger.com/profile/10080612613110075298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-1077449179981675935</id><published>2009-02-16T14:48:00.004+08:00</published><updated>2009-02-16T15:24:09.292+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='千鸟窝'/><title type='text'>关于博客“墨羽硅”构架的一些想法（未完）</title><content type='html'>我对墨羽龟的设想是一个网上的“三室一厅一厨一卫一阳台”豪华精装套房，“羽”是我的房间，“一厅一厨一卫一阳台”的公共设施代表我们的共同空间，基于这个理念，现在的墨鱼龟构架可能还不够完美，所以今天抛砖引玉和两位同居者商讨下改造我们的房子。&lt;br /&gt;“羽”我想再分几个子标签：我的设计-设计眼界-商业合作-关系网（=。=），以后可能还会再细分，&lt;span style="color:#3366ff;"&gt;问皮：现在我们的标签是一层的，是能再多分几层的吧？（其实现在的标签差不多有我们需要的分类，但是貌似是杂在一起的，没有房间的概念）&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;墨和硅两位可以自行考虑是否要建子标签。&lt;/span&gt;&lt;br /&gt;偶们的“一厅一厨一卫一阳台”，现在来说，动漫空间是不错的，就像客厅摆着一台大液晶和ps3一样。貌似可以再出一个音乐标签，发布一些大家喜欢的音乐做交流。嗯嗯，自己先说这么多，等你们两位的高见了，我会集中整理起来，然后就是大装修了～&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-1077449179981675935?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/1077449179981675935/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=1077449179981675935' title='8 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/1077449179981675935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/1077449179981675935'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/02/blog-post_16.html' title='关于博客“墨羽硅”构架的一些想法（未完）'/><author><name>NiAo</name><uri>http://www.blogger.com/profile/10080612613110075298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-6032253929463364494</id><published>2009-02-10T21:16:00.002+08:00</published><updated>2009-02-10T21:20:26.376+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='千鸟窝'/><title type='text'>回来了</title><content type='html'>还是人多点好。因为些事情，把163的博客全删了，回到这个单纯的地方，你们还会收留我的吧TAT。博客在IE里显示非常难看，先讨论下整个容吧。偶的要求不高，简单点就好。在这里写写设计和心情～&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-6032253929463364494?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/6032253929463364494/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=6032253929463364494' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6032253929463364494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6032253929463364494'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/02/blog-post.html' title='回来了'/><author><name>NiAo</name><uri>http://www.blogger.com/profile/10080612613110075298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-1953175975646901521</id><published>2009-01-27T18:28:00.032+08:00</published><updated>2009-01-28T13:05:12.973+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>牛年新气象</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_nInZ8ZXtrrE/SX7h-dIMgAI/AAAAAAAAAy8/__ZSkSRxUKk/s1600-h/dsc00688.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://2.bp.blogspot.com/_nInZ8ZXtrrE/SX7h-dIMgAI/AAAAAAAAAy8/__ZSkSRxUKk/s400/dsc00688.jpg" alt="" id="BLOGGER_PHOTO_ID_5295918674921422850" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_nInZ8ZXtrrE/SX7izJyZ3pI/AAAAAAAAAzE/l43vRXXfGmM/s1600-h/dsc00647.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_nInZ8ZXtrrE/SX7izJyZ3pI/AAAAAAAAAzE/l43vRXXfGmM/s400/dsc00647.jpg" alt="" id="BLOGGER_PHOTO_ID_5295919580262817426" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(255, 255, 51); font-weight: bold;font-family:arial;font-size:130%;"  &gt;凤凰区&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_nInZ8ZXtrrE/SX7jhuV8OlI/AAAAAAAAAzM/_yX7lJ_OBbk/s1600-h/dsc00695.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_nInZ8ZXtrrE/SX7jhuV8OlI/AAAAAAAAAzM/_yX7lJ_OBbk/s400/dsc00695.jpg" alt="" id="BLOGGER_PHOTO_ID_5295920380349528658" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_nInZ8ZXtrrE/SX7ju6DIsNI/AAAAAAAAAzU/2zuc_OMuhJU/s1600-h/dsc00699.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_nInZ8ZXtrrE/SX7ju6DIsNI/AAAAAAAAAzU/2zuc_OMuhJU/s400/dsc00699.jpg" alt="" id="BLOGGER_PHOTO_ID_5295920606830178514" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_nInZ8ZXtrrE/SX7kI11lbQI/AAAAAAAAAzc/GZYnH7jhHZY/s1600-h/DSC00617.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_nInZ8ZXtrrE/SX7kI11lbQI/AAAAAAAAAzc/GZYnH7jhHZY/s400/DSC00617.JPG" alt="" id="BLOGGER_PHOTO_ID_5295921052376198402" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 0);font-size:130%;" &gt;桥&lt;/span&gt; &lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_nInZ8ZXtrrE/SX7khJKgBtI/AAAAAAAAAzk/K8SRQSCVIxo/s1600-h/dsc00714.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_nInZ8ZXtrrE/SX7khJKgBtI/AAAAAAAAAzk/K8SRQSCVIxo/s400/dsc00714.jpg" alt="" id="BLOGGER_PHOTO_ID_5295921469881059026" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_nInZ8ZXtrrE/SX7ksp-IukI/AAAAAAAAAzs/vNzF33pDacs/s1600-h/DSC00608.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_nInZ8ZXtrrE/SX7ksp-IukI/AAAAAAAAAzs/vNzF33pDacs/s400/DSC00608.JPG" alt="" id="BLOGGER_PHOTO_ID_5295921667666131522" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;&lt;span style="color: rgb(255, 255, 0);font-size:130%;" &gt;地方特色&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_nInZ8ZXtrrE/SX7lJayb9yI/AAAAAAAAAz0/GinEmpS9qjo/s1600-h/DSC00594.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_nInZ8ZXtrrE/SX7lJayb9yI/AAAAAAAAAz0/GinEmpS9qjo/s400/DSC00594.JPG" alt="" id="BLOGGER_PHOTO_ID_5295922161806735138" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_nInZ8ZXtrrE/SX7lxHwMaeI/AAAAAAAAA0E/StsRvArWWkg/s1600-h/DSC00591.JPG"&gt;&lt;img style="margin: 0pt auto 10px; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://1.bp.blogspot.com/_nInZ8ZXtrrE/SX7lxHwMaeI/AAAAAAAAA0E/StsRvArWWkg/s400/DSC00591.JPG" alt="" id="BLOGGER_PHOTO_ID_5295922843891821026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_nInZ8ZXtrrE/SX7rd5n-s0I/AAAAAAAAA1g/quVdjX8B1Fg/s1600-h/DSC00593.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://2.bp.blogspot.com/_nInZ8ZXtrrE/SX7rd5n-s0I/AAAAAAAAA1g/quVdjX8B1Fg/s400/DSC00593.JPG" alt="" id="BLOGGER_PHOTO_ID_5295929110751523650" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 0);font-size:130%;" &gt;院落&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_nInZ8ZXtrrE/SX7mVT6U0TI/AAAAAAAAA0M/mqVUKF-4Yuk/s1600-h/dsc00718.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_nInZ8ZXtrrE/SX7mVT6U0TI/AAAAAAAAA0M/mqVUKF-4Yuk/s400/dsc00718.jpg" alt="" id="BLOGGER_PHOTO_ID_5295923465630830898" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_nInZ8ZXtrrE/SX7mfQdSQkI/AAAAAAAAA0U/6zvmnZJWb3M/s1600-h/DSC00641.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_nInZ8ZXtrrE/SX7mfQdSQkI/AAAAAAAAA0U/6zvmnZJWb3M/s400/DSC00641.JPG" alt="" id="BLOGGER_PHOTO_ID_5295923636502413890" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 0);font-size:130%;" &gt;窗&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_nInZ8ZXtrrE/SX7m7v4zuOI/AAAAAAAAA0c/UuWtnTKmrIs/s1600-h/dsc00660.jpg"&gt;&lt;img style="margin: 0pt auto 10px; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://2.bp.blogspot.com/_nInZ8ZXtrrE/SX7m7v4zuOI/AAAAAAAAA0c/UuWtnTKmrIs/s400/dsc00660.jpg" alt="" id="BLOGGER_PHOTO_ID_5295924125975689442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_nInZ8ZXtrrE/SX7nFaT6eSI/AAAAAAAAA0k/_pTnWloH4fI/s1600-h/dsc00671.jpg"&gt;&lt;img style="margin: 0pt auto 10px; text-align: center; cursor: pointer; width: 300px; height: 400px;" src="http://4.bp.blogspot.com/_nInZ8ZXtrrE/SX7nFaT6eSI/AAAAAAAAA0k/_pTnWloH4fI/s400/dsc00671.jpg" alt="" id="BLOGGER_PHOTO_ID_5295924291982489890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_nInZ8ZXtrrE/SX7n2I2QbHI/AAAAAAAAA1U/sXjS2vHBHmc/s1600-h/dsc00721.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_nInZ8ZXtrrE/SX7n2I2QbHI/AAAAAAAAA1U/sXjS2vHBHmc/s400/dsc00721.jpg" alt="" id="BLOGGER_PHOTO_ID_5295925129108286578" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 0);font-size:130%;" &gt;内景&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-1953175975646901521?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/1953175975646901521/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=1953175975646901521' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/1953175975646901521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/1953175975646901521'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2009/01/blog-post.html' title='牛年新气象'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_nInZ8ZXtrrE/SX7h-dIMgAI/AAAAAAAAAy8/__ZSkSRxUKk/s72-c/dsc00688.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-8469530464997384758</id><published>2008-12-15T23:48:00.000+08:00</published><updated>2008-12-15T23:49:40.075+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='章鱼圈'/><title type='text'>2008年终致词</title><content type='html'>&lt;div class="Section0" style="layout-grid:15.6000pt;"&gt;&lt;p class="p0" style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;2008&lt;span style="font-family:宋体;"&gt;即将过去。这是一个不寻常的年头，对我个人而言。因为这一年中，我从16年的学生身份中破茧而出的，成为了纯粹的一个社会人。也许可喜，也许可悲。仅在这一年即将结束的某晚草草写下致词，作为新一段人生旅程的路标。&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span class="Apple-style-span" style="font-family: 宋体;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;span style="font-family:宋体;"&gt;致我的父母：&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;span style="font-family:宋体;"&gt;我爱你们，虽然从未说出口。时代赋予的烙印使得我并不能将这句简单而朴素的话语向你们轻易诉说。你们曾经给予我的，我并不能真正回报。生命的珍贵在于，它无法放在天平上称量。那些曾经的痛苦与快乐、眼泪与微笑，我已收藏在名为过去的角落中。将来发生任何事情，我都将会支撑起这个家庭，无论那意味着什么。&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span class="Apple-style-span" style="font-family: 宋体;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;span style="font-family:宋体;"&gt;致我的朋友们：&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;span style="font-family:宋体;"&gt;如果我的口语曾经伤害了你们，请你们宽恕我。我只是叔本华所说的一只可怜的豪猪，寻找温暖而又害怕刺伤，时刻保持着距离而又不断尝试接近。你们的喜好、习惯和隐藏的秘密都是吸引我接近的原因，虽然有时那会带来疼痛。因为你们的存在使得旅途变得多彩，冬天变得温暖，生活变得丰富。我会履行所有与你们的承诺，甚至在需要时以生命为代价。&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span class="Apple-style-span" style="font-family: 宋体;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;span style="font-family:宋体;"&gt;致我所关心的人：&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;span style="font-family:宋体;"&gt;也许你会抱怨我不够关心你，也许你会抱怨我并不在意你，也许你会抱怨我总是把想法压抑在心底而不告诉你。实际上，每天我也是会不定时地想起你。在我看来，重要的并不是喜不喜欢，而是我能带给你什么。如果两个人的世界相距太远，结果往往是在浪费时间。如果你给予我一个机会，我会用一生去努力为你追求这世上另一件珍贵之物：幸福。&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span class="Apple-style-span" style="font-family: 宋体;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;span style="font-family:宋体;"&gt;致我自己：&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;span style="font-family:宋体;"&gt;你已经多次完成了人生的阶段性目标，现在则处于一个更重要的转折点上。明白自己真正的追求，排除噪音和其他繁杂或者不重要的事物。你明白钱绝对不是目的只是方法，最简单和粗俗的方法就是花钱。多看书，保持积极的兴趣爱好，尽可能的锻炼自己（包括心理和生理）。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span class="Apple-style-span" style="font-family: 宋体;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; text-align:right; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;CursedOctopus&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p0" style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; text-align:right; "&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;2008.12.15&lt;span style="font-family:宋体;"&gt;夜&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-spacerun:'yes'; font-size:12.0000pt; font-family:'宋体'; "&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-8469530464997384758?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/8469530464997384758/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=8469530464997384758' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8469530464997384758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8469530464997384758'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/12/2008.html' title='2008年终致词'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-6259932425696136844</id><published>2008-09-12T19:14:00.003+08:00</published><updated>2008-09-12T19:33:58.618+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技术wawa'/><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>新的Linux包管理方式与目录结构</title><content type='html'>&lt;p class="western" style="margin-bottom: 0in;" align="left"&gt;&lt;/p&gt;&lt;div id="jrj3" style="padding: 1em; text-align: center;"&gt;&lt;a href="http://docs.google.com/a/7yes.com/File?id=dgs79b8w_428g5rmqv8r_b" target="_blank"&gt;&lt;img style="width: 320px; height: 293.547px;" src="http://docs.google.com/a/7yes.com/File?id=dgs79b8w_428g5rmqv8r_b" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;特性：&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;模块化&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;“&lt;span style="font-family:宋体;"&gt;热插拔”&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;稳健性&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;读、写、执行分离&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;易于访问控制&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h1 class="western"&gt;&lt;span style="font-family:宋体;"&gt;模块化&lt;/span&gt;&lt;br /&gt;&lt;/h1&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;整个系统如同拼图版一样拼成。并且呈现一定的层次结构：&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;微核：由内核&lt;/span&gt;+initrd&lt;span style="font-family:宋体;"&gt;构成，其中&lt;/span&gt;initrd&lt;span style="font-family:宋体;"&gt;的要求是启动、恢复系统的最小集合：&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;initrd&lt;span style="font-family:宋体;"&gt;不能依赖除内核、自身以外&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;能够恢复系统——恢复&lt;i&gt;核心环境&lt;/i&gt;（&lt;/span&gt;C&lt;span style="font-family:宋体;"&gt;库、包管理系统&lt;/span&gt;...&lt;span style="font-family:宋体;"&gt;）&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;含&lt;/span&gt;klibc&lt;span style="font-family:宋体;"&gt;、&lt;/span&gt;busybox&lt;span style="font-family:宋体;"&gt;、必要的模块&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;核心环境：具备一定完整功能的最小集合：&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;C&lt;span style="font-family:宋体;"&gt;库&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;包管理系统&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;init&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;...&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt; &lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;其他环境&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;一个示例的目录结构：&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;div id="hqk." style="padding: 1em 0pt; text-align: center;"&gt;&lt;a href="http://docs.google.com/a/7yes.com/File?id=dgs79b8w_429gkb9qmnk_b" target="_blank"&gt;&lt;img style="width: 320px; height: 543.668px;" src="http://docs.google.com/a/7yes.com/File?id=dgs79b8w_429gkb9qmnk_b" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-family:宋体;"&gt;说明：这是一个原生&lt;/span&gt;(Native)&lt;span style="font-family:宋体;"&gt;文件系统上的本地磁盘布局。&lt;/span&gt;Files&lt;span style="font-family:宋体;"&gt;文件夹存放字体、墙纸之类的资源。&lt;/span&gt;&lt;br /&gt;&lt;h1 class="western"&gt;PuzzleFS&lt;/h1&gt;&lt;p class="western"&gt;PuzzleFS&lt;span style="font-family:宋体;"&gt;是假象中的实现“热插拔”功能的用户态文件系统&lt;/span&gt;(FUSE)&lt;span style="font-family:宋体;"&gt;。&lt;/span&gt;PuzzleFS&lt;span style="font-family:宋体;"&gt;还是用来实现访问控制的文件系统。&lt;/span&gt;&lt;/p&gt;&lt;div id="j.tz" style="padding: 1em 0pt; text-align: center;"&gt;&lt;a href="http://docs.google.com/a/7yes.com/File?id=dgs79b8w_430c64p94cp_b" target="_blank"&gt;&lt;img style="width: 320px; height: 75.4585px;" src="http://docs.google.com/a/7yes.com/File?id=dgs79b8w_430c64p94cp_b" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;PuzzleFS&lt;span style="font-family:宋体;"&gt;管理着系统可以执行代码的文件系统命名空间视图。因此，&lt;/span&gt;PuzzleFS&lt;span style="font-family:宋体;"&gt;启动后，对文件系统的读写都交由&lt;/span&gt;PuzzleFS进行访问控制，可能地记录到数据库，最后分流到各自源上的原生文件系统实现。&lt;br /&gt;PuzzleFS&lt;span style="font-family:宋体;"&gt;上的目录结构指定，类似示例目录结构。这样，它和&lt;b&gt;&lt;i&gt;&lt;span style="font-size:130%;"&gt;主源&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;的映射关系就比较简单。所不同的是，&lt;/span&gt;PuzzleFS&lt;span style="font-family:宋体;"&gt;是所有源的混合，其某个文件夹下的内容是多个源对应文件夹的并集。&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;当新的包发现时（新源挂载，或者包下载复制到对应目录——依据配置在&lt;b&gt;&lt;i&gt;&lt;span style="font-size:130%;"&gt;执行域&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;中），启动“热插拔”历程。&lt;br /&gt;&lt;/span&gt;“&lt;span style="font-family:宋体;"&gt;热插拔”时，首先读取&lt;/span&gt;/&lt;span style="font-family:宋体;"&gt;验证新包的&lt;/span&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-size:130%;"&gt;meta&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style="font-family:宋体;"&gt;信息。&lt;/span&gt;&lt;b&gt;&lt;i&gt;&lt;span style="font-size:130%;"&gt;meta&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style="font-family:宋体;"&gt;信息包括以下：&lt;br /&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt; &lt;span style="font-family:宋体;"&gt;数字签名&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:宋体;"&gt;依赖关系（例如冲突&lt;/span&gt;...&lt;span style="font-family:宋体;"&gt;）&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:宋体;"&gt;访问控制规则（基于路径的正则表达式匹配，可以更复杂地制定主体。当然这意味着对建链接的额外关注）&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:宋体;"&gt;包的所属环境&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:宋体;"&gt;包的分类&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:宋体;"&gt;图标&lt;/span&gt;&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family:宋体;"&gt;&lt;i&gt;&lt;span style="font-size:130%;"&gt;讨论&lt;/span&gt;&lt;/i&gt;：&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;熟悉&lt;/span&gt;Singularity&lt;span style="font-family:宋体;"&gt;的朋友，可以想象依赖关系和访问控制规则是其相应风格的（&lt;/span&gt;MBP...&lt;span style="font-family:宋体;"&gt;）？&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;br /&gt;另外，这个方式符合“现代”的安全实现方式：在进行动作前，基于某种描述方式来对动作的影响进行描述，之后验证该动作不违背先前描述。因此，在系统辅助不产生冲突的情形下，软件的安全规则由软件开发者提供（没有人比软件开发者更了解软件的正常行为）&lt;/span&gt;&lt;br /&gt;“&lt;span style="font-family:宋体;"&gt;热插拔”的第二阶段，是可选，为解包阶段。即包如果是压缩，或者需要安装时刻动作（比如编译&lt;/span&gt;...&lt;span style="font-family:宋体;"&gt;），则进行相应动作。包解包后存放的实际地址可以指定源。&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;br /&gt;第三阶段，为新包分配相关“资源”。包的内容是&lt;b&gt;&lt;i&gt;&lt;span style="font-size:130%;"&gt;只读&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;的，并且只有指定目录下的文件可以有可执行的权限（&lt;/span&gt;bin&lt;span style="font-family:宋体;"&gt;、&lt;/span&gt;lib&lt;span style="font-family:宋体;"&gt;）。因此，比如为包分配一个影子&lt;/span&gt;etc&lt;span style="font-family:宋体;"&gt;目录（在&lt;/span&gt;System&lt;span style="font-family:宋体;"&gt;下某个目录中或者用户目录下的某个目录下），当有程序改写&lt;/span&gt;etc&lt;span style="font-family:宋体;"&gt;目录中的内容时，则执行一个&lt;/span&gt;COW&lt;span style="font-family:宋体;"&gt;（&lt;/span&gt;Copy On Write&lt;span style="font-family:宋体;"&gt;），结果在影子&lt;/span&gt;etc&lt;span style="font-family:宋体;"&gt;目录下&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;&lt;br /&gt;第四阶段，包的注册阶段。包的某些内容写入数据库（&lt;/span&gt;Sytem&lt;span style="font-family:宋体;"&gt;某个目录下）。这样做是因为：&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:宋体;"&gt;比如，包中&lt;/span&gt;lib&lt;span style="font-family:宋体;"&gt;是公开的，则其下文件等内容数据库索引。对&lt;/span&gt;bin&lt;span style="font-family:宋体;"&gt;下的内容也是，加快相应操作&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:宋体;"&gt;包的&lt;/span&gt;meta&lt;span style="font-family:宋体;"&gt;中的信息，比如实现分类，方便用户分类搜索浏览&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:宋体;"&gt;包的源来分类浏览&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:宋体;"&gt;包是封装的，任何其他包不能访问包中的非公开文件（配置文件&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;，则在数据库中注册（通用接口的）配置信息，即这是类似注册表或者&lt;/span&gt;GConf&lt;span style="font-family:宋体;"&gt;的。&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-family:宋体;"&gt;&lt;span style="font-size:130%;"&gt;&lt;i&gt;&lt;b&gt;总结：&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;PuzzleFS&lt;span style="font-family:宋体;"&gt;实现了“热插拔”、访问控制、包封装、搜索、通用接口的配置功能。&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt; &lt;span style="font-family:宋体;"&gt;访问控制机制是通过&lt;/span&gt;PuzzleFS&lt;span style="font-family:宋体;"&gt;是对多个原生文件系统统一封装的用户态文件系统的自然结果。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;包的封装是指对包的访问，（在访问控制规则许可下）限制只可对&lt;/span&gt;bin&lt;span style="font-family:宋体;"&gt;、&lt;/span&gt;lib&lt;span style="font-family:宋体;"&gt;以及通用配置信息的访问。其他，比如外包不能访问非本包的&lt;/span&gt;etc&lt;span style="font-family:宋体;"&gt;下文件。&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;搜索。是由于&lt;/span&gt;PuzzleFS&lt;span style="font-family:宋体;"&gt;背后有数据库支持的结果。用于比如加快输入命令，链接库等的查找，分类视图的作用。这是对之前硬盘搜索的自然嵌入（想像微软未曾经计划的&lt;/span&gt;WinFS&lt;span style="font-family:宋体;"&gt;、苹果的&lt;/span&gt;spotlight&lt;span style="font-family:宋体;"&gt;搜索、&lt;/span&gt;Novell&lt;span style="font-family:宋体;"&gt;的&lt;/span&gt;beagle...&lt;span style="font-family:宋体;"&gt;）&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p class="western" style="margin-bottom: 0in; line-height: 100%; page-break-inside: auto; page-break-before: auto; page-break-after: auto;" align="justify"&gt;&lt;span style="font-family:宋体;"&gt;通用接口的配置。使得&lt;/span&gt;PuzzleFS&lt;span style="font-family:宋体;"&gt;扮演了注册表&lt;/span&gt;(GConf&lt;span style="font-family:宋体;"&gt;）的角色，用于包配置信息的导出共享等。相比注册表，这里的实现方式更加稳健：所有&lt;/span&gt;PuzzleFS&lt;span style="font-family:宋体;"&gt;数据库中的信息只是一个&lt;b&gt;&lt;i&gt;&lt;span style="font-size:130%;"&gt;缓冲&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;，出现问题后可以方便重建的。&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-6259932425696136844?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/6259932425696136844/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=6259932425696136844' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6259932425696136844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6259932425696136844'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/09/initrd-initrd-initrd-c.html' title='新的Linux包管理方式与目录结构'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-6377445308834075040</id><published>2008-09-05T17:36:00.001+08:00</published><updated>2008-12-23T10:03:25.444+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='技术wawa'/><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>项目</title><content type='html'>&lt;br /&gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; &lt;ul id="m3su"&gt;&lt;li id="m3su0"&gt;&lt;font id="a:ai" size="3"&gt;一个高性能程序编写框架：&lt;/font&gt;&lt;/li&gt;&lt;ul id="c-75"&gt;&lt;li id="c-750"&gt;&lt;font id="a:ai0" size="3"&gt;异步：&lt;/font&gt;&lt;/li&gt;&lt;ul id="ovzk"&gt;&lt;li id="ovzk0"&gt;&lt;font id="a:ai1" size="3"&gt;使用I/O设备、使用其他CPU（主线模型）&lt;/font&gt;&lt;/li&gt;&lt;li id="ovzk1"&gt;&lt;font id="a:ai2" size="3"&gt;信号机制&lt;/font&gt;&lt;/li&gt;&lt;li id="ovzk2"&gt;&lt;font id="a:ai3" size="3"&gt;调度（优先级）&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li id="g-e0"&gt;&lt;font id="a:ai4" size="3"&gt;对OpenCL等的封装，易于使用&lt;/font&gt;&lt;/li&gt;&lt;li id="n4nc"&gt;&lt;font id="a:ai5" size="3"&gt;管线对象：&lt;/font&gt;&lt;/li&gt;&lt;ul id="ovzk3"&gt;&lt;li id="ovzk4"&gt;&lt;font id="a:ai6" size="3"&gt;一系列串行例程不需要用信号机制连接&lt;/font&gt;&lt;/li&gt;&lt;li id="ovzk5"&gt;&lt;font id="a:ai7" size="3"&gt;流水线两个阶段约定数据传递方式（可以是Unix的shell风格）&lt;/font&gt;&lt;/li&gt;&lt;li id="l2k8"&gt;&lt;font id="a:ai8" size="3"&gt;由依赖图生成管线（并被缓冲，参见缓冲对象）&lt;/font&gt;&lt;/li&gt;&lt;li id="iv4j"&gt;&lt;font id="a:ai9" size="3"&gt;期待代替Gstreamer和LLVM编译器驱动&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li id="t0on"&gt;&lt;font id="a:ai10" size="3"&gt;缓冲对象：&lt;/font&gt;&lt;/li&gt;&lt;ul id="psr4"&gt;&lt;li id="psr40"&gt;缓冲对象未必在内存中，可以在磁盘...（发布对象?）&lt;br&gt;&lt;/li&gt;&lt;li id="psr40"&gt;&lt;font id="a:ai11" size="3"&gt;内存的缓冲（SLAB风格的内存分配）&lt;/font&gt;&lt;/li&gt;&lt;li id="psr41"&gt;&lt;font id="a:ai12" size="3"&gt;管线缓冲（缓冲由依赖图和状态动态生成的管线）&lt;/font&gt;&lt;/li&gt;&lt;li id="vvq9"&gt;&lt;font id="a:ai13" size="3"&gt;其他...对若干操作得到的结果（立体的）——一个操作就能得到结果（平面化，命中的情形下）&lt;/font&gt;&lt;/li&gt;&lt;li id="yp4d"&gt;&lt;font id="a:ai14" size="3"&gt;与系统资源监视服务互动，调整缓冲大小&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li id="yp4d"&gt;&lt;font id="a:ai14" size="3"&gt;Detective Conan：&lt;/font&gt;&lt;/li&gt;&lt;ul&gt;&lt;li id="yp4d"&gt;&lt;font id="a:ai14" size="3"&gt;嵌入在调用中。&lt;br&gt;&lt;/font&gt;&lt;/li&gt;&lt;li id="yp4d"&gt;&lt;font id="a:ai14" size="3"&gt;在收集I/O结果、错误、性能参数。报告某监视进程。&lt;br&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li id="ts8_"&gt;&lt;font id="a:ai15" size="3"&gt;用例：web服务器、下载器、&lt;b&gt;启动器&lt;/b&gt;&amp;lt;&lt;i&gt;缓冲&lt;/i&gt;、&lt;i&gt;日志&lt;/i&gt;、&lt;i&gt;收集结果&lt;/i&gt;&amp;gt;。&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li id="u:sl"&gt;&lt;font id="a:ai16" size="3"&gt;非MVC的UI编写框架&lt;/font&gt;&lt;/li&gt;&lt;ul id="gr4y"&gt;&lt;li id="gr4y0"&gt;&lt;font id="a:ai17" size="3"&gt;界面和模型参数的传递是“量子”的而非经典的（需要和控制器无限交互）&lt;/font&gt;&lt;/li&gt;&lt;li id="y2eb"&gt;&lt;font id="a:ai18" size="3"&gt;由ASL库启发&lt;/font&gt;&lt;/li&gt;&lt;li id="t-lu"&gt;&lt;font id="a:ai19" size="3"&gt;解析器等依赖LLVM，依赖图依赖上一框架&lt;/font&gt;&lt;/li&gt;&lt;li id="k5qt"&gt;&lt;font id="a:ai20" size="3"&gt;LLVM整合？&amp;nbsp;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li id="k5qt0"&gt;&lt;font id="a:ai21" size="3"&gt;基于结构化、模式匹配的限制(contrain)模型&lt;/font&gt;&lt;/li&gt;&lt;ul id="r0x4"&gt;&lt;li id="r0x42"&gt;&lt;font id="a:ai22" size="3"&gt;用于窗口系统对窗口“权限”的限制&lt;/font&gt;&lt;/li&gt;&lt;li id="w8-2"&gt;&lt;font id="a:ai23" size="3"&gt;所见即所得编辑器缺陷的弥补：附加在文字编辑器的模板，对某一域限制的图形化显示，违背限制的图形化显示。比如论文的索引，鼠标移到之上显示某些下拉菜单等的组合，移出恢复”所见所得“模式&lt;/font&gt;&lt;/li&gt;&lt;li id="qo6b"&gt;&lt;font id="a:ai24" size="3"&gt;易用的访问控制模型。结合系统包管理方式&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li id="qo6b0"&gt;&lt;font id="a:ai25" size="3"&gt;包管理方式：&lt;/font&gt;&lt;/li&gt;&lt;ul id="hc0e"&gt;&lt;li id="hc0e0"&gt;分布式&amp;lt;没有中心/usr...，热插拔&amp;gt;、文件系统布局、特性通知（忘了configure...）、访问控制&amp;lt;封装&amp;gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li id="sp2l"&gt;&lt;font id="a:ai32" size="3"&gt;X windows的移除&lt;/font&gt;&lt;/li&gt;&lt;ul id="caeb"&gt;&lt;li id="caeb0"&gt;&lt;font id="a:ai33" size="3"&gt;分离功能，一些功能分离到EGL、OpenGL中&lt;/font&gt;&lt;/li&gt;&lt;li id="by8l"&gt;&lt;font id="a:ai34" size="3"&gt;关注窗口树结构，DOM风格(事件传递、处理)&lt;/font&gt;&lt;/li&gt;&lt;li id="by8l"&gt;&lt;font id="a:ai34" size="3"&gt;&lt;b&gt;wayland now&lt;/b&gt;&lt;br&gt;&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li id="fqgw"&gt;&lt;font id="a:ai35" size="3"&gt;LLVM SVA操作系统的设计&lt;/font&gt;&lt;/li&gt;&lt;ul id="fqgw0"&gt;&lt;li id="fqgw1"&gt;&lt;font id="a:ai36" size="3"&gt;Singularity Like&lt;/font&gt;&lt;/li&gt;&lt;li id="i11b"&gt;&lt;font id="a:ai37" size="3"&gt;...&lt;/font&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br&gt;将在某个CMS中实践部分&lt;br&gt;&lt;font id="a:ai38" size="3"&gt;&lt;br id="i3cy"&gt;&lt;/font&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-6377445308834075040?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/6377445308834075040/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=6377445308834075040' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6377445308834075040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6377445308834075040'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/09/iocpu-opencl-unixshell-gstreamerllvm.html' title='项目'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-8745651008084165754</id><published>2008-08-03T21:06:00.000+08:00</published><updated>2008-08-03T21:07:35.597+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='章鱼圈'/><title type='text'>楚歌</title><content type='html'>&lt;p class="0" style="text-indent: 28pt;"&gt;&lt;span style="font-size: 14pt; font-family: '华文行楷';"&gt;项王军壁垓下，兵少食尽，汉军及诸侯兵围之数重。夜闻汉军四面皆楚歌，项王乃大惊，曰：“汉皆已得楚乎？是何楚人之多也。”&lt;/span&gt;&lt;span style="font-size: 14pt; font-family: '华文行楷';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="0" style="text-indent: 28pt; text-align: right;"&gt;&lt;span style="font-size: 14pt; font-family: '华文行楷';"&gt;——司马迁《史记•项羽本纪》&lt;/span&gt;&lt;span style="font-size: 14pt; font-family: '华文行楷';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="0" style="text-indent: 28pt; text-align: justify;"&gt;&lt;span style="font-size: 14pt; font-family: '宋体';"&gt;对于项羽来说，楚歌四起也就以为着自己的灭亡。刘邦觊觎的是天下，而项羽是他一统天下的最大障碍。但扔开这个失败的英雄，四面楚歌也即意味着长年战乱的落幕，民生撩乱的终结。&lt;/span&gt;&lt;span style="font-size: 14pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="0" style="text-indent: 28pt; text-align: justify;"&gt;&lt;span style="font-size: 14pt; font-family: '宋体';"&gt;对于一个普通的楚军士兵来说，是该回家的时候了。&lt;/span&gt;&lt;span style="font-size: 14pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="0" style="text-indent: 28pt; text-align: justify;"&gt;&lt;span style="font-size: 14pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="0" style="text-indent: 28pt; text-align: justify;"&gt;&lt;span style="font-size: 14pt; font-family: '宋体';"&gt;“我回来了！”我在机场门口大声呼喊。&lt;/span&gt;&lt;span style="font-size: 14pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="0" style="text-indent: 28pt; text-align: justify;"&gt;&lt;span style="font-size: 14pt; font-family: '宋体';"&gt;整个大地以母亲般的温柔回应了我：“欢迎回来。”&lt;/span&gt;&lt;span style="font-size: 14pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="0" style="text-indent: 28pt; text-align: justify;"&gt;&lt;span style="font-size: 14pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="0" style="text-indent: 28pt; text-align: justify;"&gt;&lt;span style="font-size: 14pt; font-family: '宋体';"&gt;是的，我真的离开得有些久了，以至于说话的口音也依然沾染着北方的水土。那段不算平淡也不算精彩的北漂经历将被我永久珍藏，毕竟是我第一次离开故土的回忆，毕竟是我曾经年少无畏的证明，毕竟是我生命中唯一的大学生活。然而我不会将其作为自己的荣耀，因为我是浙江人，这是我出生便已拥有的荣耀。10年，20年，50年后，我将依然深爱着这片土地，这个称之为家的地方。并不需要什么特殊的理由，无论多大的孩子都将永远怀念母亲的拥抱。&lt;/span&gt;&lt;/p&gt;&lt;p class="0" style="text-indent: 28pt; text-align: right;"&gt;BY CursedOctopus&lt;br /&gt;&lt;span style="font-size: 14pt; font-family: '宋体';"&gt;&lt;/span&gt;&lt;span style="font-size: 14pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-8745651008084165754?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/8745651008084165754/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=8745651008084165754' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8745651008084165754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8745651008084165754'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/08/blog-post.html' title='楚歌'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-8117011734336041786</id><published>2008-07-13T09:08:00.006+08:00</published><updated>2008-07-14T16:26:38.423+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='毕业设计'/><category scheme='http://www.blogger.com/atom/ns#' term='章鱼圈'/><title type='text'>我的毕业设计以及一些啰嗦</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;　　毕业设计论文比较长，估计也不会有什么人看，所以直接扔论坛里了。这个是链接&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://groups.google.com/group/MoYuGui/web/%E8%AE%BA%E6%96%87%E7%BB%88%E7%A8%BF.doc?hl=zh-CN"&gt;点我下载章鱼的毕业设计论文&lt;/a&gt;&lt;br /&gt;腐败的龟不要再恶意挖出来重发了（我估计你想重新编辑发布的话也是会累死的吧  &gt;_&lt;）  论文题目是《IMS中多媒体彩铃业务相关技术研究》。这里不对IMS进行任何展开，有兴趣的人可以参考&lt;/span&gt;《IMS:移动领域的IP多媒体概念和服务》一书。此书据说是IMS的经典（中文版翻译得差强人意），就是出版的年代有点早，有一些内容跟现在的实际情况略有差别。&lt;br /&gt;&lt;br /&gt;　　彩铃这个东西，大家都一定使用过或者正在使用吧。传说最早开展彩铃业务的是韩国，从通信增值业务的发展来看，高丽棒子还是有点想法的。但是……我本人是绝对不喜欢用彩铃的！因为普通GSM网络的语音传输速度不过13Kbit/s，如此低的比特率根本不可能进行高质量音乐的传输，普通的wav和mp3文件也有44100hz的抽样率，转换为彩铃的压缩率可想而知……当然，通信技术还在发展，3G甚至4G无线通信网络的到来意味着更高的传输速度，视频彩铃都已经进入可实用阶段。好吧，我承认自己只是节省彩铃月租费  -_-b&lt;br /&gt;&lt;br /&gt;　　言归正传，还是回到我的毕设上来吧。虽然题目说的是IMS中的彩铃，实质上更多的是讨论现有智能网环境下的技术方案，其核心依然是软交换（Softswitch)。要说软交换网络跟IMS的实质性区别，可能就是一些交换部分的构架方式的差别，更加深入具体的分析就不是我能够写出来的了。曾经看到的相关资料提到：在核心网元方面，智能网使用的是软交换（就是一堆交换机和服务器），各厂商和运营商没有统一的标准，各自为战；IMS细化了应用层的网元结构，提出了各CSCF与广义上的AS；从硬件上来说从智能网向IMS的升级过渡是比较方便的，更多的是软件方面的更改。说到底，IMS还是过分前沿化的网络构架方案，虽然中国各大运营商都有私底下进行研究和实验，实际能够达到试用阶段也还是需要几年的吧。&lt;br /&gt;　　在IMS中有应用了一项非常重要的通信协议：SIP（会话初始协议）。SIP协议脱胎于TCP，其安全和效率不言而喻。并且如果IMS真正进入实用阶段，SIP就有一统天下的趋势了。关于SIP的技术规范极多，可以看出这种通信协议的良好发展前景。&lt;br /&gt;&lt;br /&gt;　　毕设论文总体来说还是相当幼稚的，许多细节性问题根本不在我考虑的能力范围内。好在跟现在的工作也没多大关系了，有达人看到死命拍砖我也不怕（死猪不怕开水烫）。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-8117011734336041786?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/8117011734336041786/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=8117011734336041786' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8117011734336041786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8117011734336041786'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/07/blog-post.html' title='我的毕业设计以及一些啰嗦'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-4637592990366238241</id><published>2008-06-29T21:38:00.001+08:00</published><updated>2008-06-29T21:40:03.632+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='毕业设计'/><category scheme='http://www.blogger.com/atom/ns#' term='安全'/><category scheme='http://www.blogger.com/atom/ns#' term='技术wawa'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>缓冲溢出漏洞的防御</title><content type='html'>&lt;p id="ndji3"&gt;&lt;font id="ndji4" face="宋体"&gt;&lt;span id="ndji5" lang="zh-CN"&gt;缓冲溢出通常发生在&lt;/span&gt;&lt;/font&gt;C&lt;font id="ndji6" face="宋体"&gt;&lt;span id="ndji7" lang="zh-CN"&gt;或者&lt;/span&gt;&lt;/font&gt;C++&lt;font id="ndji8" face="宋体"&gt;&lt;span id="ndji9" lang="zh-CN"&gt;编程语言中。在&lt;/span&gt;&lt;/font&gt;2002&lt;font id="ndji10" face="宋体"&gt;&lt;span id="ndji11" lang="zh-CN"&gt;年，针对缓冲漏洞的修正占了全部安全修正的&lt;/span&gt;&lt;/font&gt;22.5%&lt;a id="ndji12" class="sdfootnoteanc" name="sdfootnote1anc" href="#sdfootnote1sym"&gt;&lt;sup id="ndji13"&gt;1&lt;/sup&gt;&lt;/a&gt;&lt;font id="ndji14" face="宋体"&gt;&lt;span id="ndji15" lang="zh-CN"&gt;，而基于此的开发攻击所占的比重更高（&lt;/span&gt;&lt;/font&gt;2003&lt;font id="ndji16" face="宋体"&gt;&lt;span id="ndji17" lang="zh-CN"&gt;年为&lt;/span&gt;&lt;/font&gt;75%&lt;font id="ndji18" face="宋体"&gt;&lt;span id="ndji19" lang="zh-CN"&gt;）。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="ndji20"&gt;&lt;div id="ep9:" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img id="x3d:" style="width: 506px; height: 133px;" src="http://docs.google.com/File?id=dgs79b8w_413db5pshgz_b"&gt;&lt;/div&gt;&lt;font id="ndji23" face="宋体"&gt;&lt;span id="ndji24" lang="zh-CN"&gt;图&lt;/span&gt;&lt;/font&gt;2&lt;font id="ndji25" face="宋体"&gt;&lt;span id="ndji26" lang="zh-CN"&gt;展示了某典型的、使用固定长度缓冲区函数的栈在内存中的布局。当函数调用结束时，控制流根据&lt;i id="ndji27"&gt;返回地址&lt;/i&gt;继续。在&lt;/span&gt;&lt;/font&gt;x86&lt;font id="ndji28" face="宋体"&gt;&lt;span id="ndji29" lang="zh-CN"&gt;处理器上，栈总是从反向生长的（即从高内存地址向低内存地址生长），所以&lt;i id="ndji30"&gt;缓冲区&lt;/i&gt;存储在&lt;i id="ndji31"&gt;返回地址&lt;/i&gt;之前。缓冲区溢出攻击，利用程序中的某个漏洞，如在图&lt;/span&gt;&lt;/font&gt;2&lt;font id="ndji32" face="宋体"&gt;&lt;span id="ndji33" lang="zh-CN"&gt;函数调用中，放入超过缓冲区容量的数据，从而覆写&lt;i id="ndji34"&gt;返回地址&lt;/i&gt;指向一个恶意代码的起始地址，使得函数调用结束后就跳转到恶意代码起始处执行（图&lt;/span&gt;&lt;/font&gt;3&lt;font id="ndji35" face="宋体"&gt;&lt;span id="ndji36" lang="zh-CN"&gt;）。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;h1 id="ndji37" class="western"&gt;&lt;div id="qb7x" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img id="clwr" style="width: 508px; height: 168px;" src="http://docs.google.com/File?id=dgs79b8w_414gh46s7hg_b"&gt;&lt;/div&gt;&lt;font id="ndji40" face="黑体"&gt;&lt;span id="ndji41" lang="zh-CN"&gt;防御手段&lt;/span&gt;&lt;/font&gt;1——“&lt;font id="ndji42" face="黑体"&gt;&lt;span id="ndji43" lang="zh-CN"&gt;金丝雀”（&lt;/span&gt;&lt;/font&gt;Canaries&lt;font id="ndji44" face="黑体"&gt;&lt;span id="ndji45" lang="zh-CN"&gt;）法&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt; &lt;p id="ndji46"&gt;&lt;font id="ndji47" face="宋体"&gt;&lt;span id="ndji48" lang="zh-CN"&gt;通过在缓冲区和控制数据之间放置“金丝雀&lt;a id="ndji49" class="sdfootnoteanc" name="sdfootnote2anc" href="#sdfootnote2sym"&gt;&lt;sup id="ndji50"&gt;2&lt;/sup&gt;&lt;/a&gt;”（或叫做“金丝雀”数据），来监视缓冲区是否溢出。当缓冲区溢出时，第一个损坏的数据就是“金丝雀”，之后对“金丝雀”数据进行验证就可预警发生了缓冲溢出。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="ndji51"&gt;Stack-Smashing Protector(SSP)&lt;font id="ndji52" face="宋体"&gt;&lt;span id="ndji53" lang="zh-CN"&gt;是&lt;/span&gt;&lt;/font&gt;GCC&lt;font id="ndji54" face="宋体"&gt;&lt;span id="ndji55" lang="zh-CN"&gt;编译器的对“金丝雀”法的实现。&lt;/span&gt;&lt;/font&gt;SSP&lt;font id="ndji56" face="宋体"&gt;&lt;span id="ndji57" lang="zh-CN"&gt;在缓冲区与控制数据之间放置“特殊符号”（已知符号，随机符号或随机符号与控制信息异或产物），之后检查这些符号来侦测溢出。（同时，&lt;/span&gt;&lt;/font&gt;SSP&lt;font id="ndji58" face="宋体"&gt;&lt;span id="ndji59" lang="zh-CN"&gt;还把数组变量移向栈底来增加溢出的难度）&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="ndji60"&gt;“&lt;font id="ndji61" face="宋体"&gt;&lt;span id="ndji62" lang="zh-CN"&gt;金丝雀”法的防御是有限的，比如不能防御通过溢出来改变结构体中的函数指针的攻击。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;h1 id="ndji63" class="western"&gt;&lt;font id="ndji64" face="黑体"&gt;&lt;span id="ndji65" lang="zh-CN"&gt;防御手段&lt;/span&gt;&lt;/font&gt;2——&lt;font id="ndji66" face="黑体"&gt;&lt;span id="ndji67" lang="zh-CN"&gt;对内存页保护增加执行位&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt; &lt;p id="ndji68"&gt;&lt;font id="ndji69" face="宋体"&gt;&lt;span id="ndji70" lang="zh-CN"&gt;最近的&lt;/span&gt;&lt;/font&gt;CPU&lt;font id="ndji71" face="宋体"&gt;&lt;span id="ndji72" lang="zh-CN"&gt;，都开始支持在内存的页保护中加入执行位（比如&lt;/span&gt;&lt;/font&gt;Intel&lt;font id="ndji73" face="宋体"&gt;&lt;span id="ndji74" lang="zh-CN"&gt;和&lt;/span&gt;&lt;/font&gt;AMD&lt;font id="ndji75" face="宋体"&gt;&lt;span id="ndji76" lang="zh-CN"&gt;的&lt;/span&gt;&lt;/font&gt;NX(No &lt;/p&gt; &lt;p id="ndji77"&gt;eXecute )&lt;font id="ndji78" face="宋体"&gt;&lt;span id="ndji79" lang="zh-CN"&gt;技术），从而阻止不在“可执行”页中的代码。这样，当溢出使得控制流跳转到恶意代码起始时，由于恶意代码所在页不具备执行位，故会产生页异常导致程序退出。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="ndji80"&gt;&lt;font id="ndji81" face="宋体"&gt;&lt;span id="ndji82" lang="zh-CN"&gt;通过增加可执行位能够对缓冲溢出攻击提供较为全面的保护。但仍有不如意之处（以主流&lt;/span&gt;&lt;/font&gt;x86&lt;font id="ndji83" face="宋体"&gt;&lt;span id="ndji84" lang="zh-CN"&gt;处理器为例）：&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;ul id="ndji85"&gt;  &lt;li id="ndji86"&gt;&lt;p id="ndji87"&gt;&lt;font id="ndji88" face="宋体"&gt;&lt;span id="ndji89" lang="zh-CN"&gt;需要&lt;/span&gt;&lt;/font&gt;CPU&lt;font id="ndji90" face="宋体"&gt;&lt;span id="ndji91" lang="zh-CN"&gt;支持&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="ndji92"&gt;&lt;p id="ndji93"&gt;&lt;font id="ndji94" face="宋体"&gt;&lt;span id="ndji95" lang="zh-CN"&gt;需要启用&lt;/span&gt;&lt;/font&gt;PAE&lt;a id="ndji96" class="sdfootnoteanc" name="sdfootnote3anc" href="#sdfootnote3sym"&gt;&lt;sup id="ndji97"&gt;3&lt;/sup&gt;&lt;/a&gt;&lt;font id="ndji98" face="宋体"&gt;&lt;span id="ndji99" lang="zh-CN"&gt;扩展（这是由于传统页保护字段中没有多余位可用）。启用&lt;/span&gt;&lt;/font&gt;PAE&lt;font id="ndji100" face="宋体"&gt;&lt;span id="ndji101" lang="zh-CN"&gt;会带来大约&lt;/span&gt;&lt;/font&gt;6%&lt;font id="ndji102" face="宋体"&gt;&lt;span id="ndji103" lang="zh-CN"&gt;的性能上开销&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="ndji104"&gt;&lt;p id="ndji105"&gt;&lt;font id="ndji106" face="宋体"&gt;&lt;span id="ndji107" lang="zh-CN"&gt;不能完全抵御缓冲漏洞的攻击。比如改写返回地址到&lt;/span&gt;&lt;/font&gt;system  ()&lt;font id="ndji108" face="宋体"&gt;&lt;span id="ndji109" lang="zh-CN"&gt;函数上，此操作并未对当前进程中注入新的可执行代码，从而绕过保护机制。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;h1 id="ndji110" class="western"&gt;&lt;font id="ndji111" face="黑体"&gt;&lt;span id="ndji112" lang="zh-CN"&gt;防御手段&lt;/span&gt;&lt;/font&gt;3——&lt;font id="ndji113" face="黑体"&gt;&lt;span id="ndji114" lang="zh-CN"&gt;段限制法&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt; &lt;p id="ndji115"&gt;&lt;font id="ndji116" face="宋体"&gt;&lt;span id="ndji117" lang="zh-CN"&gt;使用段限制，即只有进程虚拟地址的前&lt;/span&gt;&lt;/font&gt;N&lt;font id="ndji118" face="宋体"&gt;&lt;span id="ndji119" lang="zh-CN"&gt;个&lt;/span&gt;&lt;/font&gt;M&lt;font id="ndji120" face="宋体"&gt;&lt;span id="ndji121" lang="zh-CN"&gt;字节可执行。&lt;/span&gt;&lt;/font&gt;N&lt;font id="ndji122" face="宋体"&gt;&lt;span id="ndji123" lang="zh-CN"&gt;值由操作系统来选定。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="ndji124"&gt;&lt;div id="o1.g" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img id="clwr0" style="width: 438px; height: 191px;" src="http://docs.google.com/File?id=dgs79b8w_415db5gkxhq_b"&gt;&lt;/div&gt; &lt;/p&gt; &lt;p id="ndji129"&gt;&lt;font id="ndji130" face="宋体"&gt;&lt;span id="ndji131" lang="zh-CN"&gt;操作系统来保证所有程序的代码在段限制长度之内（图&lt;/span&gt;&lt;/font&gt;4&lt;font id="ndji132" face="宋体"&gt;&lt;span id="ndji133" lang="zh-CN"&gt;左部），而数据，栈则在虚拟内存高地址处（图&lt;/span&gt;&lt;/font&gt;4&lt;font id="ndji134" face="宋体"&gt;&lt;span id="ndji135" lang="zh-CN"&gt;右部）。当缓冲溢出执行恶意代码时，会触发段错误而导致程序退出。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="ndji136"&gt;&lt;font id="ndji137" face="宋体"&gt;&lt;span id="ndji138" lang="zh-CN"&gt;段限制法在大多数程序中可行，但在某些非常少见的情形下（比如负责&lt;/span&gt;&lt;/font&gt;Linux&lt;font id="ndji139" face="宋体"&gt;&lt;span id="ndji140" lang="zh-CN"&gt;图形的&lt;/span&gt;&lt;/font&gt;XFree86&lt;font id="ndji141" size="2"&gt;&lt;sup id="ndji142"&gt;TM&lt;/sup&gt;&lt;/font&gt;&lt;font id="ndji143" face="宋体"&gt;&lt;span id="ndji144" lang="zh-CN"&gt;服务端）也许不是最好保护方式。此外，段限制法要求&lt;/span&gt;&lt;/font&gt;CPU&lt;font id="ndji145" face="宋体"&gt;&lt;span id="ndji146" lang="zh-CN"&gt;支持分段机制。在不支持分段的情形下（比如&lt;/span&gt;&lt;/font&gt;CPU&lt;font id="ndji147" face="宋体"&gt;&lt;span id="ndji148" lang="zh-CN"&gt;不支持或&lt;/span&gt;&lt;/font&gt;x86-64&lt;font id="ndji149" face="宋体"&gt;&lt;span id="ndji150" lang="zh-CN"&gt;处理器运行于纯&lt;/span&gt;&lt;/font&gt;64&lt;font id="ndji151" face="宋体"&gt;&lt;span id="ndji152" lang="zh-CN"&gt;位模式&lt;a id="ndji153" class="sdfootnoteanc" name="sdfootnote4anc" href="#sdfootnote4sym"&gt;&lt;sup id="ndji154"&gt;4&lt;/sup&gt;&lt;/a&gt;）不能使用。不过此种情形下，处理器一般支持页保护字段中的“执行位”。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;h1 id="ndji155" class="western"&gt;&lt;font id="ndji156" face="黑体"&gt;&lt;span id="ndji157" lang="zh-CN"&gt;防御手段&lt;/span&gt;&lt;/font&gt;4——&lt;font id="ndji158" face="黑体"&gt;&lt;span id="ndji159" lang="zh-CN"&gt;随机化内存布局&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt; &lt;p id="ndji160"&gt;&lt;font id="ndji161" face="宋体"&gt;&lt;span id="ndji162" lang="zh-CN"&gt;随机化内存布局基于一个观察：即攻击者只有知道缓冲区大体位置的才能实施攻击。在防御手段&lt;/span&gt;&lt;/font&gt;2&lt;font id="ndji163" face="宋体"&gt;&lt;span id="ndji164" lang="zh-CN"&gt;中提到的如改写返回地址到&lt;/span&gt;&lt;/font&gt;system ()&lt;font id="ndji165" face="宋体"&gt;&lt;span id="ndji166" lang="zh-CN"&gt;函数的攻击方法，也需要知道&lt;/span&gt;&lt;/font&gt;system&lt;font id="ndji167" face="宋体"&gt;&lt;span id="ndji168" lang="zh-CN"&gt;函数的位置。这些可以通过攻击者在其电脑上运行相似的系统来观察到。通过随机化内存布局，使得攻击者不能猜测相关的地址，从而抵御攻击。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="ndji169" align="left"&gt;&lt;font id="ndji170" face="宋体"&gt;&lt;span id="ndji171" lang="zh-CN"&gt;例如，随机化程序以下部分的内存地址：&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;ul id="ndji172"&gt;  &lt;li id="ndji173"&gt;&lt;p id="ndji174" align="left"&gt;&lt;font id="ndji175" face="宋体"&gt;&lt;span id="ndji176" lang="zh-CN"&gt;栈&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="ndji177"&gt;&lt;p id="ndji178" align="left"&gt;&lt;font id="ndji179" face="宋体"&gt;&lt;span id="ndji180" lang="zh-CN"&gt;共享库&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="ndji181"&gt;&lt;p id="ndji182" align="left"&gt;&lt;font id="ndji183" face="宋体"&gt;&lt;span id="ndji184" lang="zh-CN"&gt;程序堆&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="ndji185"&gt;&lt;font id="ndji186" face="宋体"&gt;&lt;span id="ndji187" lang="zh-CN"&gt;随机化内存布局需要编译器支持，并且重新构筑关键的程序。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="ndji188"&gt;&lt;font id="ndji189" face="宋体"&gt;&lt;span id="ndji190" lang="zh-CN"&gt;防御手段&lt;/span&gt;&lt;/font&gt;2&lt;font id="ndji191" face="宋体"&gt;&lt;span id="ndji192" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/font&gt;3&lt;font id="ndji193" face="宋体"&gt;&lt;span id="ndji194" lang="zh-CN"&gt;和&lt;/span&gt;&lt;/font&gt;4&lt;font id="ndji195" face="宋体"&gt;&lt;span id="ndji196" lang="zh-CN"&gt;，即构成了&lt;/span&gt;&lt;/font&gt;RedHat ExecShield&lt;font id="ndji197" face="宋体"&gt;&lt;span id="ndji198" lang="zh-CN"&gt;技术，并且融合到了&lt;/span&gt;&lt;/font&gt;Linux&lt;font id="ndji199" face="宋体"&gt;&lt;span id="ndji200" lang="zh-CN"&gt;内核&lt;/span&gt;&lt;/font&gt;2.6.25&lt;font id="ndji201" face="宋体"&gt;&lt;span id="ndji202" lang="zh-CN"&gt;版。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;div id="sdfootnote1"&gt;  &lt;p id="ndji203" class="sdfootnote"&gt;&lt;a id="ndji204" class="sdfootnotesym" name="sdfootnote1sym" href="#sdfootnote1anc"&gt;1&lt;/a&gt;&lt;font id="ndji205" face="宋体"&gt;&lt;span id="ndji206" lang="zh-CN"&gt;数据源自&lt;/span&gt;&lt;/font&gt;http://cve.mitre.org/board/archives/2002-10/msg00005.html&lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote2"&gt;  &lt;p id="ndji207" class="sdfootnote"&gt;&lt;a id="ndji208" class="sdfootnotesym" name="sdfootnote2sym" href="#sdfootnote2anc"&gt;2&lt;/a&gt;&lt;font id="ndji209" face="宋体"&gt;&lt;span id="ndji210" lang="zh-CN"&gt;金丝雀对有毒气体敏感，在煤矿中，被用来预警有毒气体。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote3"&gt;  &lt;p id="ndji211" class="sdfootnote"&gt;&lt;a id="ndji212" class="sdfootnotesym" name="sdfootnote3sym" href="#sdfootnote3anc"&gt;3&lt;/a&gt;PAE&lt;font id="ndji213" face="宋体"&gt;&lt;span id="ndji214" lang="zh-CN"&gt;允许&lt;/span&gt;&lt;/font&gt;32&lt;font id="ndji215" face="宋体"&gt;&lt;span id="ndji216" lang="zh-CN"&gt;位&lt;/span&gt;&lt;/font&gt;CPU&lt;font id="ndji217" face="宋体"&gt;&lt;span id="ndji218" lang="zh-CN"&gt;访问大于&lt;/span&gt;&lt;/font&gt;4GB&lt;font id="ndji219" face="宋体"&gt;&lt;span id="ndji220" lang="zh-CN"&gt;的内存。参见&lt;/span&gt;&lt;/font&gt;Intel®  64 and IA-32 Architectures Software Developer's Manual&lt;font id="ndji221" face="宋体"&gt;&lt;span id="ndji222" lang="zh-CN"&gt;，&lt;/span&gt;&lt;/font&gt;Volume  3A: System Programming Guide, Part 1&lt;font id="ndji223" face="宋体"&gt;&lt;span id="ndji224" lang="zh-CN"&gt;，&lt;/span&gt;&lt;/font&gt;4.13  PAGE-LEVEL PROTECTION AND EXECUTE-DISABLE BIT   &lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote4"&gt;  &lt;p id="ndji225" class="sdfootnote"&gt;&lt;a id="ndji226" class="sdfootnotesym" name="sdfootnote4sym" href="#sdfootnote4anc"&gt;4&lt;/a&gt;&lt;font id="ndji227" face="宋体"&gt;&lt;span id="ndji228" lang="zh-CN"&gt;参见&lt;/span&gt;&lt;/font&gt;Intel®  64 and IA-32 Architectures Software Developer's Manual&lt;font id="ndji229" face="宋体"&gt;&lt;span id="ndji230" lang="zh-CN"&gt;，&lt;/span&gt;&lt;/font&gt;Volume  3A: System Programming Guide, Part 1&lt;font id="ndji231" face="宋体"&gt;&lt;span id="ndji232" lang="zh-CN"&gt;，&lt;/span&gt;&lt;/font&gt;3.2.4  Segmentation in IA-32e Mode&lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-4637592990366238241?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/4637592990366238241/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=4637592990366238241' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/4637592990366238241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/4637592990366238241'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/06/c-c-2002-22.html' title='缓冲溢出漏洞的防御'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-6267371706222146216</id><published>2008-06-29T21:31:00.001+08:00</published><updated>2008-06-29T21:32:47.457+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='毕业设计'/><category scheme='http://www.blogger.com/atom/ns#' term='安全'/><category scheme='http://www.blogger.com/atom/ns#' term='技术wawa'/><category scheme='http://www.blogger.com/atom/ns#' term='appArmor'/><category scheme='http://www.blogger.com/atom/ns#' term='SMACK'/><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><category scheme='http://www.blogger.com/atom/ns#' term='SELinux'/><title type='text'>强制访问控制技术</title><content type='html'>&lt;h1 id="qjmy3" class="western"&gt;SELinux&lt;font id="qjmy4" face="黑体"&gt;&lt;span id="qjmy5" lang="zh-CN"&gt;（&lt;/span&gt;&lt;/font&gt;Security Enhanced Linux&lt;font id="qjmy6" face="黑体"&gt;&lt;span id="qjmy7" lang="zh-CN"&gt;）&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt; &lt;p id="qjmy8"&gt;&lt;font id="qjmy9" face="宋体"&gt;&lt;span id="qjmy10" lang="zh-CN"&gt;强制访问控制技术是对自主访问控制（&lt;/span&gt;&lt;/font&gt;discretionary access control&lt;font id="qjmy11" face="宋体"&gt;&lt;span id="qjmy12" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/font&gt;DAC&lt;font id="qjmy13" face="宋体"&gt;&lt;span id="qjmy14" lang="zh-CN"&gt;）信任模型改进。在自主访问控制中，用户不全是可信的，而资源的所有者指定信任哪些用户（从而这些用户可以访问资源）。自主访问控制的缺陷在于其不能区别人类用户和计算机程序，或者说，在自主访问控制的信任模型中，用户对计算机程序充分信任，即认为程序是无缺陷的、无恶意的。这显然与现实不相符合。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;h2 id="qjmy15" class="western"&gt;&lt;font id="qjmy16" face="宋体"&gt;&lt;span id="qjmy17" lang="zh-CN"&gt;类型强制（&lt;/span&gt;&lt;/font&gt;Type Enforcement&lt;font id="qjmy18" face="宋体"&gt;&lt;span id="qjmy19" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/font&gt;TE&lt;font id="qjmy20" face="宋体"&gt;&lt;span id="qjmy21" lang="zh-CN"&gt;）&lt;/span&gt;&lt;/font&gt;&lt;/h2&gt; &lt;p id="qjmy22" align="left"&gt;&lt;font id="qjmy23" face="宋体"&gt;&lt;span id="qjmy24" lang="zh-CN"&gt;在&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy25" face="宋体"&gt;&lt;span id="qjmy26" lang="zh-CN"&gt;，进程是访问控制的主体，联合某一安全上下文。客体是系统所有安全对象，包括进程（比如&lt;/span&gt;&lt;/font&gt;A&lt;font id="qjmy27" face="宋体"&gt;&lt;span id="qjmy28" lang="zh-CN"&gt;进程向&lt;/span&gt;&lt;/font&gt;B&lt;font id="qjmy29" face="宋体"&gt;&lt;span id="qjmy30" lang="zh-CN"&gt;进程发送信号时，&lt;/span&gt;&lt;/font&gt;B&lt;font id="qjmy31" face="宋体"&gt;&lt;span id="qjmy32" lang="zh-CN"&gt;进程就作为客体）。&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy33" face="宋体"&gt;&lt;span id="qjmy34" lang="zh-CN"&gt;的核心是类型强制（&lt;/span&gt;&lt;/font&gt;Type Enforcement&lt;font id="qjmy35" face="宋体"&gt;&lt;span id="qjmy36" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/font&gt;TE&lt;font id="qjmy37" face="宋体"&gt;&lt;span id="qjmy38" lang="zh-CN"&gt;）。系统根据主体的类型（&lt;/span&gt;&lt;/font&gt;type&lt;font id="qjmy39" face="宋体"&gt;&lt;span id="qjmy40" lang="zh-CN"&gt;），客体的类型（&lt;/span&gt;&lt;/font&gt;type&lt;font id="qjmy41" face="宋体"&gt;&lt;span id="qjmy42" lang="zh-CN"&gt;）与规则作出访问控制的决策。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy43"&gt;&lt;font id="qjmy44" face="宋体"&gt;&lt;span id="qjmy45" lang="zh-CN"&gt;进程的类型在进程创建时确定且基本不变（一个例外是当进程有&lt;/span&gt;&lt;/font&gt;dyntransition&lt;font id="qjmy46" face="宋体"&gt;&lt;span id="qjmy47" lang="zh-CN"&gt;权限时，可以在执行时改变其类型，这是个不安全的特性，故只允许进入对应许可集为原类型的子集的类型）。&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy48" face="宋体"&gt;&lt;span id="qjmy49" lang="zh-CN"&gt;对系统中的所有需要保护对象的访问方式加以罗列，定义为对象类（&lt;/span&gt;&lt;/font&gt;object class&lt;font id="qjmy50" face="宋体"&gt;&lt;span id="qjmy51" lang="zh-CN"&gt;）。之后依据主客类型，许可主体对客体的部分访问权限（即客体所属对象类的所有方法的某个子集）。&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy52" face="宋体"&gt;&lt;span id="qjmy53" lang="zh-CN"&gt;实行白名单方式的访问控制，规则中未许可的访问将被拒绝。如图&lt;/span&gt;&lt;/font&gt;5&lt;font id="qjmy54" face="宋体"&gt;&lt;span id="qjmy55" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy56"&gt;&lt;/p&gt;&lt;div id="te.6" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img id="e.pu" style="width: 647px; height: 182px;" src="http://docs.google.com/File?id=dgs79b8w_405rn8k8tgf_b"&gt;&lt;/div&gt;  &lt;h2 id="qjmy61" class="western"&gt;&lt;font id="qjmy62" face="宋体"&gt;&lt;span id="qjmy63" lang="zh-CN"&gt;基于角色的访问控制&lt;/span&gt;&lt;/font&gt;&lt;/h2&gt; &lt;p id="qjmy64"&gt;SELinux&lt;font id="qjmy65" face="宋体"&gt;&lt;span id="qjmy66" lang="zh-CN"&gt;中，基于角色的访问控制构筑在类型强制（&lt;/span&gt;&lt;/font&gt;TE&lt;font id="qjmy67" face="宋体"&gt;&lt;span id="qjmy68" lang="zh-CN"&gt;）之上。一个&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy69" face="宋体"&gt;&lt;span id="qjmy70" lang="zh-CN"&gt;对象安全上下文如下：&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy71"&gt;&lt;font id="qjmy72" face="宋体"&gt;&lt;span id="qjmy73" lang="zh-CN"&gt;用户&lt;/span&gt;&lt;/font&gt;:&lt;font id="qjmy74" face="宋体"&gt;&lt;span id="qjmy75" lang="zh-CN"&gt;角色&lt;/span&gt;&lt;/font&gt;:&lt;font id="qjmy76" face="宋体"&gt;&lt;span id="qjmy77" lang="zh-CN"&gt;类型&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy78"&gt;&lt;font id="qjmy79" face="宋体"&gt;&lt;span id="qjmy80" lang="zh-CN"&gt;在该上下文中，一个用户可能拥有多个角色，而每个角色则与多个类型相关联。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy81"&gt;&lt;font id="qjmy82" face="宋体"&gt;&lt;span id="qjmy83" lang="zh-CN"&gt;一个用户的进程（主体）的最初始的安全上下文在登录时获得。用户登录时确定用户的角色（从该用户拥有的多个角色中择一）。在登录后，运行新程序的进程的类型由如下决定：&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;ul id="qjmy84"&gt;  &lt;li id="qjmy85"&gt;&lt;p id="qjmy86"&gt;&lt;font id="qjmy87" face="宋体"&gt;&lt;span id="qjmy88" lang="zh-CN"&gt;可执行文件的类型&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy89"&gt;&lt;p id="qjmy90"&gt;&lt;font id="qjmy91" face="宋体"&gt;&lt;span id="qjmy92" lang="zh-CN"&gt;父进程的类型&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy93"&gt;&lt;p id="qjmy94"&gt;&lt;font id="qjmy95" face="宋体"&gt;&lt;span id="qjmy96" lang="zh-CN"&gt;规则库中，相关类型转换规则。如&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="qjmy97"&gt;  &lt;font id="qjmy98" color="#000080"&gt;type_transition&lt;/font&gt; user_t passwd_exec_t &lt;font id="qjmy99" color="#800000"&gt;process&lt;/font&gt; passwd_t;&lt;/p&gt; &lt;p id="qjmy100"&gt;&lt;font id="qjmy101" face="宋体"&gt;&lt;span id="qjmy102" lang="zh-CN"&gt;图&lt;/span&gt;&lt;/font&gt;6&lt;font id="qjmy103" face="宋体"&gt;&lt;span id="qjmy104" lang="zh-CN"&gt;展示了通过类型转换来确定新进程的类型的全过程。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;h2 id="qjmy105" class="western"&gt;&lt;div id="hchz" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img id="mmn5" style="width: 720px; height: 381px;" src="http://docs.google.com/File?id=dgs79b8w_406fnj3r6fs_b"&gt;&lt;/div&gt;Bell-La Padula&lt;font id="qjmy108" face="宋体"&gt;&lt;span id="qjmy109" lang="zh-CN"&gt;模型的实现&lt;/span&gt;&lt;/font&gt;&lt;/h2&gt; &lt;p id="qjmy110"&gt;&lt;font id="qjmy111" face="宋体"&gt;&lt;span id="qjmy112" lang="zh-CN"&gt;对&lt;/span&gt;&lt;/font&gt;BLP&lt;font id="qjmy113" face="宋体"&gt;&lt;span id="qjmy114" lang="zh-CN"&gt;模型的支持是通过可选的&lt;/span&gt;&lt;/font&gt;MSL&lt;font id="qjmy115" face="宋体"&gt;&lt;span id="qjmy116" lang="zh-CN"&gt;（&lt;/span&gt;&lt;/font&gt;multilevel security&lt;font id="qjmy117" face="宋体"&gt;&lt;span id="qjmy118" lang="zh-CN"&gt;）机制实现的。为了支持&lt;/span&gt;&lt;/font&gt;MSL&lt;font id="qjmy119" face="宋体"&gt;&lt;span id="qjmy120" lang="zh-CN"&gt;，&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy121" face="宋体"&gt;&lt;span id="qjmy122" lang="zh-CN"&gt;对对象的安全上下文进行扩充：&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy123"&gt;&lt;font id="qjmy124" face="宋体"&gt;&lt;span id="qjmy125" lang="zh-CN"&gt;用户&lt;/span&gt;&lt;/font&gt;:&lt;font id="qjmy126" face="宋体"&gt;&lt;span id="qjmy127" lang="zh-CN"&gt;角色&lt;/span&gt;&lt;/font&gt;:&lt;font id="qjmy128" face="宋体"&gt;&lt;span id="qjmy129" lang="zh-CN"&gt;类型&lt;/span&gt;&lt;/font&gt;:&lt;font id="qjmy130" face="宋体"&gt;&lt;span id="qjmy131" lang="zh-CN"&gt;安全级范围（低安全级&lt;/span&gt;&lt;/font&gt;-&lt;font id="qjmy132" face="宋体"&gt;&lt;span id="qjmy133" lang="zh-CN"&gt;高安全级）&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy134"&gt;&lt;font id="qjmy135" face="宋体"&gt;&lt;span id="qjmy136" lang="zh-CN"&gt;其中，一个安全级有两个部分组成：敏感级（即密级）和附在本敏感级上的（&lt;/span&gt;&lt;/font&gt;0&lt;font id="qjmy137" face="宋体"&gt;&lt;span id="qjmy138" lang="zh-CN"&gt;个以上）分类。敏感级之间是层次的，而分类则不是。因此，安全级范围的两端要求：&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;ul id="qjmy139"&gt;  &lt;li id="qjmy140"&gt;&lt;p id="qjmy141"&gt;&lt;font id="qjmy142" face="宋体"&gt;&lt;span id="qjmy143" lang="zh-CN"&gt;高安全级中的敏感级  &lt;/span&gt;&lt;/font&gt;&amp;gt; &lt;font id="qjmy144" face="宋体"&gt;&lt;span id="qjmy145" lang="zh-CN"&gt;低安全级中的敏感级&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy146"&gt;&lt;p id="qjmy147"&gt;&lt;font id="qjmy148" face="宋体"&gt;&lt;span id="qjmy149" lang="zh-CN"&gt;高安全级中的所属分类集合  包含 低安全级中的所属分类集合&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="qjmy150"&gt;&lt;font id="qjmy151" face="宋体"&gt;&lt;span id="qjmy152" lang="zh-CN"&gt;例如，为了防止高密级的数据流向低密级的数据（保证机密性：向下读，向上写）：&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy153"&gt;&lt;font id="qjmy154" color="#000080"&gt;mlsconstrain&lt;/font&gt; &lt;font id="qjmy155" color="#800000"&gt;file&lt;/font&gt; write ( L1 &lt;font id="qjmy156" color="#000080"&gt;domby&lt;/font&gt; L2 );&lt;/p&gt; &lt;p id="qjmy157"&gt;&lt;font id="qjmy158" color="#000080"&gt;mlsconstrain&lt;/font&gt; &lt;font id="qjmy159" color="#800000"&gt;file&lt;/font&gt; { read getattr execute } ( L1 &lt;font id="qjmy160" color="#000080"&gt;dom&lt;/font&gt; L2 );&lt;/p&gt; &lt;p id="qjmy161"&gt;&lt;font id="qjmy162" face="宋体"&gt;&lt;span id="qjmy163" lang="zh-CN"&gt;在第一条规则中，&lt;/span&gt;&lt;/font&gt;L1&lt;font id="qjmy164" face="宋体"&gt;&lt;span id="qjmy165" lang="zh-CN"&gt;指主体的（安全级范围中的）低安全级，&lt;/span&gt;&lt;/font&gt;L2&lt;font id="qjmy166" face="宋体"&gt;&lt;span id="qjmy167" lang="zh-CN"&gt;指客体（安全级范围中的）低安全级。这样，写某个文件必须保证，主体的安全级不得高于客体的安全级。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy168"&gt;&lt;font id="qjmy169" face="宋体"&gt;&lt;span id="qjmy170" lang="zh-CN"&gt;在第二条规则中，&lt;/span&gt;&lt;/font&gt;L1&lt;font id="qjmy171" face="宋体"&gt;&lt;span id="qjmy172" lang="zh-CN"&gt;与&lt;/span&gt;&lt;/font&gt;L2&lt;font id="qjmy173" face="宋体"&gt;&lt;span id="qjmy174" lang="zh-CN"&gt;分别代表主客体（安全级范围中的）的低安全级。这样，读取某个文件必须保证，主体的安全级不得低于客体安全级。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;h2 id="qjmy175" class="western"&gt;SELinux&lt;font id="qjmy176" face="宋体"&gt;&lt;span id="qjmy177" lang="zh-CN"&gt;的访问控制过程&lt;/span&gt;&lt;/font&gt;&lt;/h2&gt; &lt;p id="qjmy178"&gt;&lt;font id="qjmy179" face="宋体"&gt;&lt;span id="qjmy180" lang="zh-CN"&gt;在启用&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy181" face="宋体"&gt;&lt;span id="qjmy182" lang="zh-CN"&gt;的&lt;/span&gt;&lt;/font&gt;Linux&lt;font id="qjmy183" face="宋体"&gt;&lt;span id="qjmy184" lang="zh-CN"&gt;发行版中，访问控制的过程如下：&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;ul id="qjmy185"&gt;  &lt;li id="qjmy186"&gt;&lt;p id="qjmy187"&gt;&lt;font id="qjmy188" face="宋体"&gt;&lt;span id="qjmy189" lang="zh-CN"&gt;进行&lt;/span&gt;&lt;/font&gt;DAC&lt;font id="qjmy190" face="宋体"&gt;&lt;span id="qjmy191" lang="zh-CN"&gt;检查&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy192"&gt;&lt;p id="qjmy193"&gt;&lt;font id="qjmy194" face="宋体"&gt;&lt;span id="qjmy195" lang="zh-CN"&gt;进行&lt;/span&gt;&lt;/font&gt;TE&lt;font id="qjmy196" face="宋体"&gt;&lt;span id="qjmy197" lang="zh-CN"&gt;检查&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy198"&gt;&lt;p id="qjmy199"&gt;&lt;font id="qjmy200" face="宋体"&gt;&lt;span id="qjmy201" lang="zh-CN"&gt;进行&lt;/span&gt;&lt;/font&gt;MLS&lt;font id="qjmy202" face="宋体"&gt;&lt;span id="qjmy203" lang="zh-CN"&gt;检查&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="qjmy204"&gt;&lt;font id="qjmy205" face="宋体"&gt;&lt;span id="qjmy206" lang="zh-CN"&gt;访问控制是每次访问时进行的。例如&lt;/span&gt;&lt;/font&gt;DAC&lt;font id="qjmy207" face="宋体"&gt;&lt;span id="qjmy208" lang="zh-CN"&gt;仅在打开文件时进行访问控制，而&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy209" face="宋体"&gt;&lt;span id="qjmy210" lang="zh-CN"&gt;则在每次对文件进行读（或其他操作）进行。这样作的好处是使得对许可规则的改变可以迅速反映出来。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;h3 id="qjmy211" class="western"&gt;SELinux&lt;font id="qjmy212" face="宋体"&gt;&lt;span id="qjmy213" lang="zh-CN"&gt;的结构&lt;/span&gt;&lt;/font&gt;&lt;/h3&gt; &lt;p id="qjmy214"&gt;&lt;/p&gt;&lt;div id="bsyt" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img id="mmn50" style="width: 594px; height: 304px;" src="http://docs.google.com/File?id=dgs79b8w_407gw7rqwft_b"&gt;&lt;/div&gt;&lt;font id="qjmy217" face="宋体"&gt;&lt;span id="qjmy218" lang="zh-CN"&gt;图&lt;/span&gt;&lt;/font&gt;7&lt;font id="qjmy219" face="宋体"&gt;&lt;span id="qjmy220" lang="zh-CN"&gt;，反映了&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy221" face="宋体"&gt;&lt;span id="qjmy222" lang="zh-CN"&gt;在&lt;/span&gt;&lt;/font&gt;Linux&lt;font id="qjmy223" face="宋体"&gt;&lt;span id="qjmy224" lang="zh-CN"&gt;内核中通过&lt;/span&gt;&lt;/font&gt;LSM&lt;font id="qjmy225" face="宋体"&gt;&lt;span id="qjmy226" lang="zh-CN"&gt;（&lt;/span&gt;&lt;/font&gt;Linux Security Module&lt;font id="qjmy227" face="宋体"&gt;&lt;span id="qjmy228" lang="zh-CN"&gt;）的一个实现。其有如下特点：&lt;/span&gt;&lt;/font&gt; &lt;ul id="qjmy229"&gt;  &lt;li id="qjmy230"&gt;&lt;p id="qjmy231"&gt;&lt;font id="qjmy232" face="宋体"&gt;&lt;span id="qjmy233" lang="zh-CN"&gt;对内核对象提供访问控制&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy234"&gt;&lt;p id="qjmy235"&gt;&lt;font id="qjmy236" face="宋体"&gt;&lt;span id="qjmy237" lang="zh-CN"&gt;通过访问向量缓冲（&lt;/span&gt;&lt;/font&gt;Access  Vector Cache&lt;font id="qjmy238" face="宋体"&gt;&lt;span id="qjmy239" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/font&gt;AVC&lt;font id="qjmy240" face="宋体"&gt;&lt;span id="qjmy241" lang="zh-CN"&gt;），来减小访问控制带来的性能开销&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy242"&gt;&lt;p id="qjmy250"&gt;&lt;font id="qjmy244" face="宋体"&gt;&lt;span id="qjmy245" lang="zh-CN"&gt;通过伪文件系统&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy246" face="宋体"&gt;&lt;span id="qjmy247" lang="zh-CN"&gt;（就像许多&lt;/span&gt;&lt;/font&gt;Linux&lt;font id="qjmy248" face="宋体"&gt;&lt;span id="qjmy249" lang="zh-CN"&gt;的伪文件系统一样）来导出管理接口&lt;/span&gt;&lt;/font&gt;&lt;br id="qjmy251"&gt;&lt;br id="qjmy252"&gt; &lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p id="qjmy253"&gt;&lt;/p&gt;&lt;div id="fh5z" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img id="pc_j" style="width: 702px; height: 221px;" src="http://docs.google.com/File?id=dgs79b8w_408gw587hgf_b"&gt;&lt;/div&gt;&lt;font id="qjmy256" face="宋体"&gt;&lt;span id="qjmy257" lang="zh-CN"&gt;图&lt;/span&gt;&lt;/font&gt;8&lt;font id="qjmy258" face="宋体"&gt;&lt;span id="qjmy259" lang="zh-CN"&gt;，通过在用户空间部署&lt;/span&gt;&lt;/font&gt;SELinux&lt;a id="qjmy260" class="sdfootnoteanc" name="sdfootnote1anc" href="#sdfootnote1sym"&gt;&lt;sup id="qjmy261"&gt;1&lt;/sup&gt;&lt;/a&gt;&lt;font id="qjmy262" face="宋体"&gt;&lt;span id="qjmy263" lang="zh-CN"&gt;，来提供对用户对象的访问控制。策略管理服务器（&lt;/span&gt;&lt;/font&gt;policy management server&lt;font id="qjmy264" face="宋体"&gt;&lt;span id="qjmy265" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/font&gt;PMS&lt;font id="qjmy266" face="宋体"&gt;&lt;span id="qjmy267" lang="zh-CN"&gt;）管理和操作所有系统策略。&lt;/span&gt;&lt;/font&gt; &lt;p id="qjmy268"&gt;PMS&lt;font id="qjmy269" face="宋体"&gt;&lt;span id="qjmy270" lang="zh-CN"&gt;本身是个用户空间的对象管理器，负责创建代表策略资源的对象类，并对这些策略资源实施细粒度的访问控制。通过&lt;/span&gt;&lt;/font&gt;PMS&lt;font id="qjmy271" face="宋体"&gt;&lt;span id="qjmy272" lang="zh-CN"&gt;，可以允许用户管理工具不用改变&lt;/span&gt;&lt;/font&gt;TE&lt;font id="qjmy273" face="宋体"&gt;&lt;span id="qjmy274" lang="zh-CN"&gt;许可规则，增加用户和赋予角色。更大的好处，可以仅授权数据库服务器改变与之相关的对象类（&lt;/span&gt;&lt;/font&gt;object class&lt;font id="qjmy275" face="宋体"&gt;&lt;span id="qjmy276" lang="zh-CN"&gt;）和&lt;/span&gt;&lt;/font&gt;TE&lt;font id="qjmy277" face="宋体"&gt;&lt;span id="qjmy278" lang="zh-CN"&gt;规则。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy279"&gt;PMS&lt;font id="qjmy280" face="宋体"&gt;&lt;span id="qjmy281" lang="zh-CN"&gt;把系统策略分离为内核与用户两部分，分别把他们载入内核安全服务器与用户空间安全服务器（&lt;/span&gt;&lt;/font&gt;userspace security server&lt;font id="qjmy282" face="宋体"&gt;&lt;span id="qjmy283" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/font&gt;USSS&lt;font id="qjmy284" face="宋体"&gt;&lt;span id="qjmy285" lang="zh-CN"&gt;）。由于&lt;/span&gt;&lt;/font&gt;PMS&lt;font id="qjmy286" face="宋体"&gt;&lt;span id="qjmy287" lang="zh-CN"&gt;是一个运行中的服务器，可以扩展其接口来允许远程的网络访问，从而支持分布式策略管理。&lt;/span&gt;&lt;/font&gt;PMS&lt;font id="qjmy288" face="宋体"&gt;&lt;span id="qjmy289" lang="zh-CN"&gt;与&lt;/span&gt;&lt;/font&gt;USSS&lt;font id="qjmy290" face="宋体"&gt;&lt;span id="qjmy291" lang="zh-CN"&gt;允许运行时刻注册对象类（&lt;/span&gt;&lt;/font&gt;object class&lt;font id="qjmy292" face="宋体"&gt;&lt;span id="qjmy293" lang="zh-CN"&gt;）。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;h2 id="qjmy294" class="western"&gt;&lt;font id="qjmy295" face="宋体"&gt;&lt;span id="qjmy296" lang="zh-CN"&gt;总结&lt;/span&gt;&lt;/font&gt;&lt;/h2&gt; &lt;p id="qjmy297"&gt;SELinux&lt;font id="qjmy298" face="宋体"&gt;&lt;span id="qjmy299" lang="zh-CN"&gt;的限制：&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;ul id="qjmy300"&gt;  &lt;li id="qjmy301"&gt;&lt;p id="qjmy302"&gt;&lt;font id="qjmy303" face="宋体"&gt;&lt;span id="qjmy304" lang="zh-CN"&gt;复杂性：用户需要定义类型（&lt;/span&gt;&lt;/font&gt;Type&lt;font id="qjmy305" face="宋体"&gt;&lt;span id="qjmy306" lang="zh-CN"&gt;）和（极为繁多的）规则。&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy307" face="宋体"&gt;&lt;span id="qjmy308" lang="zh-CN"&gt;全面涵盖了各式各样的安全威胁，这也是它复杂的一个原因。为了降低其复杂性，&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy309" face="宋体"&gt;&lt;span id="qjmy310" lang="zh-CN"&gt;的策略可模块化，并适时载入。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy311"&gt;&lt;p id="qjmy312"&gt;&lt;font id="qjmy313" face="宋体"&gt;&lt;span id="qjmy314" lang="zh-CN"&gt;性能：复杂性带来性能上的开销，这在桌面或者服务器系统上也许并不重要，但是对于消费电子设备来说是不可接受的。因此需要进行相应的优化。在&lt;/span&gt;&lt;/font&gt;08&lt;font id="qjmy315" face="宋体"&gt;&lt;span id="qjmy316" lang="zh-CN"&gt;年的嵌入式&lt;/span&gt;&lt;/font&gt;Linux&lt;font id="qjmy317" face="宋体"&gt;&lt;span id="qjmy318" lang="zh-CN"&gt;会议（&lt;/span&gt;&lt;/font&gt;Embedded  Linux Conference&lt;font id="qjmy319" face="宋体"&gt;&lt;span id="qjmy320" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/font&gt;ELC&lt;font id="qjmy321" face="宋体"&gt;&lt;span id="qjmy322" lang="zh-CN"&gt;）上，&lt;/span&gt;&lt;/font&gt;Yuichi  Nakamura&lt;font id="qjmy323" face="宋体"&gt;&lt;span id="qjmy324" lang="zh-CN"&gt;宣称通过削减策略（保留适合嵌入式环境的策略——一个令人生畏的工作，但通过创建更简单的策略语言和策略编辑器，&lt;/span&gt;&lt;/font&gt;Nakamura&lt;font id="qjmy325" face="宋体"&gt;&lt;span id="qjmy326" lang="zh-CN"&gt;做到了：&lt;/span&gt;&lt;/font&gt;4.6M&lt;font id="qjmy327" face="宋体"&gt;&lt;span id="qjmy328" lang="zh-CN"&gt;大小的策略文件削减为&lt;/span&gt;&lt;/font&gt;60K&lt;font id="qjmy329" face="宋体"&gt;&lt;span id="qjmy330" lang="zh-CN"&gt;）、移除多余许可检查、优化读写路径和转换缓冲静态分配为动态分配，使得在其&lt;/span&gt;&lt;/font&gt;SuperH&lt;font id="qjmy331" face="宋体"&gt;&lt;span id="qjmy332" lang="zh-CN"&gt;平台上的性能提升了&lt;/span&gt;&lt;/font&gt;10&lt;font id="qjmy333" face="宋体"&gt;&lt;span id="qjmy334" lang="zh-CN"&gt;倍，内存节省了&lt;/span&gt;&lt;/font&gt;250K&lt;a id="qjmy335" class="sdfootnoteanc" name="sdfootnote2anc" href="#sdfootnote2sym"&gt;&lt;sup id="qjmy336"&gt;2&lt;/sup&gt;&lt;/a&gt;&lt;font id="qjmy337" face="宋体"&gt;&lt;span id="qjmy338" lang="zh-CN"&gt;。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy339"&gt;&lt;p id="qjmy340"&gt;&lt;font id="qjmy341" face="宋体"&gt;&lt;span id="qjmy342" lang="zh-CN"&gt;动态最小权限原则：&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy343" face="宋体"&gt;&lt;span id="qjmy344" lang="zh-CN"&gt;的主体（进程）被赋予某一类型（&lt;/span&gt;&lt;/font&gt;Type&lt;font id="qjmy345" face="宋体"&gt;&lt;span id="qjmy346" lang="zh-CN"&gt;）后，在其生命周期内基本不能再改变（一个例外是有&lt;/span&gt;&lt;/font&gt;dyntransition&lt;font id="qjmy347" face="宋体"&gt;&lt;span id="qjmy348" lang="zh-CN"&gt;权限时，允许其改变为某些权限更小的类型上）。在基于工作流的模型中，在工作流的各个阶段，可以指定不同的最小权限，即理想下，贯穿于工作流各个阶段的进程应在执行中改变类型——动态最小权限。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy349"&gt;&lt;p id="qjmy350"&gt;&lt;font id="qjmy351" face="宋体"&gt;&lt;span id="qjmy352" lang="zh-CN"&gt;粒度：&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy353" face="宋体"&gt;&lt;span id="qjmy354" lang="zh-CN"&gt;的访问控制的粒度是对象，或者具体的说来，是在当前安全上下文下，决策是否允许对客体对象方法的访问。而对于某些复杂的方法——整合多个功能、参数之间相互依赖，组合形成不同的访问方式，&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy355" face="宋体"&gt;&lt;span id="qjmy356" lang="zh-CN"&gt;便无法控制了。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="qjmy357"&gt;&lt;font id="qjmy358" face="宋体"&gt;&lt;span id="qjmy359" lang="zh-CN"&gt;对于复杂性，需要程序的开发者负责开发，实现对应程序运行时最小权限的策略（程序的开发者应该更加了解程序运行的最小权限是什么）。用户信任并接受相应策略，并在安装时刻随程序一起安装到系统中（相应策略应与系统已有策略一致）。这样用户就无须为策略的编写而担心。事实上，可以把对程序的强制访问控制策略看成是程序的正确性&lt;i id="qjmy360"&gt;断言&lt;/i&gt;，通过信任断言的有效性（断言失败，程序便被终结而不会造成更大的破坏），来信任程序。故用户可以回到原来的&lt;/span&gt;&lt;/font&gt;DAC&lt;font id="qjmy361" face="宋体"&gt;&lt;span id="qjmy362" lang="zh-CN"&gt;世界中。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy363"&gt;&lt;font id="qjmy364" face="宋体"&gt;&lt;span id="qjmy365" lang="zh-CN"&gt;对于动态最小权限原则，可以考虑缩小主体的粒度，比如为一个代码段。不同的代码段完成不同的工作阶段，一个进程则由多个不同类型（&lt;/span&gt;&lt;/font&gt;Type&lt;font id="qjmy366" face="宋体"&gt;&lt;span id="qjmy367" lang="zh-CN"&gt;）代码段构成。实现起来需要考虑的一个问题是相应代码段的安全标签的存储问题：主流操作系统支持的外存的存储粒度是文件，而多个代码段则可能被存储到一个库文件中，这样各个代码段安全标签存储、代码段的界定值得考虑。也许需要&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy368" face="宋体"&gt;&lt;span id="qjmy369" lang="zh-CN"&gt;引入新的信任（比如信任编译器&lt;/span&gt;&lt;/font&gt;/&lt;font id="qjmy370" face="宋体"&gt;&lt;span id="qjmy371" lang="zh-CN"&gt;链接器）。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;h1 id="qjmy372" class="western"&gt;&lt;font id="qjmy373" face="黑体"&gt;&lt;span id="qjmy374" lang="zh-CN"&gt;强制访问控制技术——&lt;/span&gt;&lt;/font&gt;SMACK&lt;/h1&gt; &lt;p id="qjmy375"&gt;&lt;font id="qjmy376" face="宋体"&gt;&lt;span id="qjmy377" lang="zh-CN"&gt;针对&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy378" face="宋体"&gt;&lt;span id="qjmy379" lang="zh-CN"&gt;的复杂性带来的实际应用部署上的困难，&lt;/span&gt;&lt;/font&gt;SMACK&lt;a id="qjmy380" class="sdfootnoteanc" name="sdfootnote3anc" href="#sdfootnote3sym"&gt;&lt;sup id="qjmy381"&gt;3&lt;/sup&gt;&lt;/a&gt;&lt;font id="qjmy382" face="宋体"&gt;&lt;span id="qjmy383" lang="zh-CN"&gt;（&lt;/span&gt;&lt;/font&gt;The Simplified Mandatory Access Control Kernel&lt;font id="qjmy384" face="宋体"&gt;&lt;span id="qjmy385" lang="zh-CN"&gt;）通过简单的方式，来解决&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy386" face="宋体"&gt;&lt;span id="qjmy387" lang="zh-CN"&gt;所针对安全威胁的某个子集。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy388"&gt;SMACK&lt;font id="qjmy389" face="宋体"&gt;&lt;span id="qjmy390" lang="zh-CN"&gt;访问控制方式相当简单：&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;ul id="qjmy391"&gt;  &lt;li id="qjmy392"&gt;&lt;p id="qjmy393"&gt;&lt;font id="qjmy394" face="宋体"&gt;&lt;span id="qjmy395" lang="zh-CN"&gt;标签与标签名一致&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy396"&gt;&lt;p id="qjmy397"&gt;&lt;font id="qjmy398" face="宋体"&gt;&lt;span id="qjmy399" lang="zh-CN"&gt;标签之间没有隐含的关系&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy400"&gt;&lt;p id="qjmy401"&gt;&lt;font id="qjmy402" face="宋体"&gt;&lt;span id="qjmy403" lang="zh-CN"&gt;主客体有各自的标签&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy404"&gt;&lt;p id="qjmy405"&gt;&lt;font id="qjmy406" face="宋体"&gt;&lt;span id="qjmy407" lang="zh-CN"&gt;客体的标签源自创建其主体的标签&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy408"&gt;&lt;p id="qjmy409"&gt;&lt;font id="qjmy410" face="宋体"&gt;&lt;span id="qjmy411" lang="zh-CN"&gt;直接指明访问控制许可&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="qjmy412"&gt;&lt;font id="qjmy413" face="宋体"&gt;&lt;span id="qjmy414" lang="zh-CN"&gt;比如：&lt;/span&gt;&lt;/font&gt;sub obj r&lt;font id="qjmy415" face="宋体"&gt;&lt;span id="qjmy416" lang="zh-CN"&gt;，就许可了有标签&lt;/span&gt;&lt;/font&gt;sub&lt;font id="qjmy417" face="宋体"&gt;&lt;span id="qjmy418" lang="zh-CN"&gt;的主体对标签为&lt;/span&gt;&lt;/font&gt;obj&lt;font id="qjmy419" face="宋体"&gt;&lt;span id="qjmy420" lang="zh-CN"&gt;的客体有读权限。所有的许可（信任）关系必须被直接指明。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;h2 id="qjmy421" class="western"&gt;Bell-LaPadula&lt;font id="qjmy422" face="宋体"&gt;&lt;span id="qjmy423" lang="zh-CN"&gt;模型的实现&lt;/span&gt;&lt;/font&gt;&lt;/h2&gt; &lt;p id="qjmy424"&gt;&lt;font id="qjmy425" face="宋体"&gt;&lt;span id="qjmy426" lang="zh-CN"&gt;需要指明所有级别的相互许可关系，比如有三个秘密度依此上升的安全级：&lt;/span&gt;&lt;/font&gt;unclass&lt;font id="qjmy427" face="宋体"&gt;&lt;span id="qjmy428" lang="zh-CN"&gt;、 &lt;/span&gt;&lt;/font&gt;secret&lt;font id="qjmy429" face="宋体"&gt;&lt;span id="qjmy430" lang="zh-CN"&gt;、 &lt;/span&gt;&lt;/font&gt;topsecret&lt;font id="qjmy431" face="宋体"&gt;&lt;span id="qjmy432" lang="zh-CN"&gt;，实现向下读，需要以下规则：&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;ul id="qjmy433"&gt;  &lt;li id="qjmy434"&gt;&lt;p id="qjmy435"&gt;secret  unclass  rx&lt;font id="qjmy436" face="宋体"&gt;&lt;span id="qjmy437" lang="zh-CN"&gt;（读、执行权限）&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy438"&gt;&lt;p id="qjmy439"&gt;topsecret  secret  rx&lt;/p&gt;  &lt;/li&gt;&lt;li id="qjmy440"&gt;&lt;p id="qjmy441"&gt;topsecret  unclass  rx&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;h1 id="qjmy442" class="western"&gt;&lt;font id="qjmy443" face="黑体"&gt;&lt;span id="qjmy444" lang="zh-CN"&gt;强制访问控制：基于路径 &lt;/span&gt;&lt;/font&gt;vs &lt;font id="qjmy445" face="黑体"&gt;&lt;span id="qjmy446" lang="zh-CN"&gt;基于标签&lt;/span&gt;&lt;/font&gt;&lt;/h1&gt; &lt;p id="qjmy447"&gt;&lt;font id="qjmy448" face="宋体"&gt;&lt;span id="qjmy449" lang="zh-CN"&gt;在&lt;/span&gt;&lt;/font&gt;SUSE Linux&lt;font id="qjmy450" face="宋体"&gt;&lt;span id="qjmy451" lang="zh-CN"&gt;，引入了名为&lt;/span&gt;&lt;/font&gt;AppArmor&lt;font id="qjmy452" face="宋体"&gt;&lt;span id="qjmy453" lang="zh-CN"&gt;的基于路径的访问控制。基于路径的访问控制方式，相当灵活，例如：&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy454"&gt;/home/*/public_html/**.html r&lt;/p&gt; &lt;p id="qjmy455"&gt;&lt;font id="qjmy456" face="宋体"&gt;&lt;span id="qjmy457" lang="zh-CN"&gt;许可了各个用户的&lt;/span&gt;&lt;/font&gt;public_html&lt;font id="qjmy458" face="宋体"&gt;&lt;span id="qjmy459" lang="zh-CN"&gt;目录下&lt;/span&gt;&lt;/font&gt;.html&lt;font id="qjmy460" face="宋体"&gt;&lt;span id="qjmy461" lang="zh-CN"&gt;文件的读操作。与之相比，在&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy462" face="宋体"&gt;&lt;span id="qjmy463" lang="zh-CN"&gt;和&lt;/span&gt;&lt;/font&gt;SMACK&lt;font id="qjmy464" face="宋体"&gt;&lt;span id="qjmy465" lang="zh-CN"&gt;中需要对上述每个文件打上相应标签。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy466"&gt;&lt;font id="qjmy467" face="宋体"&gt;&lt;span id="qjmy468" lang="zh-CN"&gt;对基于路径的访问控制最大的批评是这种方式很容易被绕过。比如可以建立一个指向目标文件，从而获得一条不同的路径，绕过对原路径的进行的访问控制。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy469"&gt;&lt;font id="qjmy470" face="宋体"&gt;&lt;span id="qjmy471" lang="zh-CN"&gt;基于路径的访问控制比较贴近管理逻辑（即高层），而访问控制机制只有在底层实现才能确保不被绕过，因此可以考虑在比如&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="qjmy472" face="宋体"&gt;&lt;span id="qjmy473" lang="zh-CN"&gt;管理工具中基于路径，之后管理工具对相应文件贴上标签。这个过程中管理工具的行为类似一个编译器：把高层的逻辑翻译成底层的实现。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy474"&gt;&lt;font id="qjmy475" face="宋体"&gt;&lt;span id="qjmy476" lang="zh-CN"&gt;其他可以考虑的方式，是对文件系统的名空间给予保护，从而防止用户随便增加新的名指向被保护名（代表的文件），来确保基于路径的访问控制不被绕过。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy477"&gt;&lt;font id="qjmy478" face="宋体"&gt;&lt;span id="qjmy479" lang="zh-CN"&gt;总体来看，&lt;/span&gt;&lt;/font&gt;MAC&lt;font id="qjmy480" face="宋体"&gt;&lt;span id="qjmy481" lang="zh-CN"&gt;更加倾向反应对程序的正确性的强制（断言），而非用户的意志。因此需要&lt;/span&gt;&lt;/font&gt;DAC&lt;font id="qjmy482" face="宋体"&gt;&lt;span id="qjmy483" lang="zh-CN"&gt;（反应用户的意志来进行补充）。可以如下表达：&lt;/span&gt;&lt;/font&gt;MAC&lt;font id="qjmy484" face="宋体"&gt;&lt;span id="qjmy485" lang="zh-CN"&gt;与程序紧密联系，而&lt;/span&gt;&lt;/font&gt;DAC&lt;font id="qjmy486" face="宋体"&gt;&lt;span id="qjmy487" lang="zh-CN"&gt;则与用户联系密切些。因此，终端用户定制安全环境，应该更多地从&lt;/span&gt;&lt;/font&gt;DAC&lt;font id="qjmy488" face="宋体"&gt;&lt;span id="qjmy489" lang="zh-CN"&gt;入手。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="qjmy490"&gt;&lt;font id="qjmy491" face="宋体"&gt;&lt;span id="qjmy492" lang="zh-CN"&gt;当用户的角色成为&lt;/span&gt;&lt;/font&gt;MAC&lt;font id="qjmy493" face="宋体"&gt;&lt;span id="qjmy494" lang="zh-CN"&gt;确定最小权限的因素时（变量），&lt;/span&gt;&lt;/font&gt;MAC&lt;font id="qjmy495" face="宋体"&gt;&lt;span id="qjmy496" lang="zh-CN"&gt;与&lt;/span&gt;&lt;/font&gt;DAC&lt;font id="qjmy497" face="宋体"&gt;&lt;span id="qjmy498" lang="zh-CN"&gt;可能会存在逻辑上的联系，需要定义&lt;/span&gt;&lt;/font&gt;/&lt;font id="qjmy499" face="宋体"&gt;&lt;span id="qjmy500" lang="zh-CN"&gt;导出公认的、一致的角色。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;div id="sdfootnote1"&gt;  &lt;p id="qjmy501" class="sdfootnote"&gt;&lt;a id="qjmy502" class="sdfootnotesym" name="sdfootnote1sym" href="#sdfootnote1anc"&gt;1&lt;/a&gt;&lt;font id="qjmy503" face="宋体"&gt;&lt;span id="qjmy504" lang="zh-CN"&gt;这个项目在：&lt;/span&gt;&lt;/font&gt;http://sepolicy-server.sourceforge.net&lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote2"&gt;  &lt;p id="qjmy505" class="sdfootnote"&gt;&lt;a id="qjmy506" class="sdfootnotesym" name="sdfootnote2sym" href="#sdfootnote2anc"&gt;2&lt;/a&gt;LWN.net  Weekly Edition 2008.4.24 &lt;a id="qjmy507" href="http://lwn.net/Articles/278492/"&gt;http://lwn.net/Articles/278492/&lt;/a&gt;&lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote3"&gt;  &lt;p id="qjmy508" class="sdfootnote"&gt;&lt;a id="qjmy509" class="sdfootnotesym" name="sdfootnote3sym" href="#sdfootnote3anc"&gt;3&lt;/a&gt;SMACK&lt;font id="qjmy510" face="宋体"&gt;&lt;span id="qjmy511" lang="zh-CN"&gt;已经融入了&lt;/span&gt;&lt;/font&gt;Linux&lt;font id="qjmy512" face="宋体"&gt;&lt;span id="qjmy513" lang="zh-CN"&gt;内核&lt;/span&gt;&lt;/font&gt;2.6.25&lt;font id="qjmy514" face="宋体"&gt;&lt;span id="qjmy515" lang="zh-CN"&gt;中&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-6267371706222146216?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/6267371706222146216/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=6267371706222146216' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6267371706222146216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6267371706222146216'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/06/selinux-security-enhanced-linux.html' title='强制访问控制技术'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-3310228801961488199</id><published>2008-06-29T21:20:00.001+08:00</published><updated>2008-06-29T21:21:50.402+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='毕业设计'/><category scheme='http://www.blogger.com/atom/ns#' term='安全'/><category scheme='http://www.blogger.com/atom/ns#' term='技术wawa'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>虚拟机技术</title><content type='html'>&lt;p id="fkww3"&gt;&lt;font id="fkww4" face="宋体"&gt;&lt;span id="fkww5" lang="zh-CN"&gt;在&lt;/span&gt;&lt;/font&gt;SELinux&lt;font id="fkww6" face="宋体"&gt;&lt;span id="fkww7" lang="zh-CN"&gt;中，可信基包括：内核、对象管理器、安全服务器及相关工具。这是相当大的一个可信基，特别是&lt;/span&gt;&lt;/font&gt;Linux&lt;font id="fkww8" face="宋体"&gt;&lt;span id="fkww9" lang="zh-CN"&gt;内核并非微内核设计，是个庞大的部分。在这个大的可信基中，难免不出现导致保护措施失败的&lt;/span&gt;&lt;/font&gt;Bug&lt;font id="fkww10" face="宋体"&gt;&lt;span id="fkww11" lang="zh-CN"&gt;。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="fkww12"&gt;&lt;font id="fkww13" face="宋体"&gt;&lt;span id="fkww14" lang="zh-CN"&gt;因此，基于纵深防御原则，引入虚拟机技术。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="fkww15"&gt;&lt;font id="fkww16" face="宋体"&gt;&lt;span id="fkww17" lang="zh-CN"&gt;虚拟机技术有各种实现方式。比如操作系统级的虚拟化，通过引入&lt;/span&gt;&lt;/font&gt;IPC&lt;font id="fkww18" face="宋体"&gt;&lt;span id="fkww19" lang="zh-CN"&gt;命名空间&lt;a id="fkww20" class="sdfootnoteanc" name="sdfootnote1anc" href="#sdfootnote1sym"&gt;&lt;sup id="fkww21"&gt;1&lt;/sup&gt;&lt;/a&gt;、对进程调度器引入调度实体&lt;a id="fkww22" class="sdfootnoteanc" name="sdfootnote2anc" href="#sdfootnote2sym"&gt;&lt;sup id="fkww23"&gt;2&lt;/sup&gt;&lt;/a&gt;实现二级调度及内存容器&lt;a id="fkww24" class="sdfootnoteanc" name="sdfootnote3anc" href="#sdfootnote3sym"&gt;&lt;sup id="fkww25"&gt;3&lt;/sup&gt;&lt;/a&gt;等，把一组相关的进程放入一个容器，构成一个虚拟环境，共享硬件资源。每个虚拟环境有一个虚拟的&lt;/span&gt;&lt;/font&gt;IP&lt;font id="fkww26" face="宋体"&gt;&lt;span id="fkww27" lang="zh-CN"&gt;，从而虚拟环境之间构成虚拟网络进行通信。当某个虚拟环境崩溃时，其他虚拟环境不受影响。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="fkww28"&gt;&lt;font id="fkww29" face="宋体"&gt;&lt;span id="fkww30" lang="zh-CN"&gt;关于虚拟机技术的总览，参见&lt;/span&gt;&lt;/font&gt;&lt;a id="fkww31" href="http://www.ibm.com/developerworks/cn/linux/l-linuxvirt/"&gt;http://www.ibm.com/developerworks/cn/linux/l-linuxvirt/&lt;/a&gt;&lt;font id="fkww32" face="宋体"&gt;&lt;span id="fkww33" lang="zh-CN"&gt;。下面回顾下&lt;/span&gt;&lt;/font&gt;Xen&lt;font id="fkww34" face="宋体"&gt;&lt;span id="fkww35" lang="zh-CN"&gt;虚拟技术。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="fkww36"&gt;Xen&lt;font id="fkww37" face="宋体"&gt;&lt;span id="fkww38" lang="zh-CN"&gt;有两种工作模式：全虚拟化（&lt;/span&gt;&lt;/font&gt;full virtualization&lt;font id="fkww39" face="宋体"&gt;&lt;span id="fkww40" lang="zh-CN"&gt;）和泛虚拟化（&lt;/span&gt;&lt;/font&gt;paravirtualization&lt;font id="fkww41" face="宋体"&gt;&lt;span id="fkww42" lang="zh-CN"&gt;）模式。前者不需要操作系统修改，借助&lt;/span&gt;&lt;/font&gt;CPU&lt;font id="fkww43" face="宋体"&gt;&lt;span id="fkww44" lang="zh-CN"&gt;支持实现同一时刻运行多个操作系统。后者需要修改操作系统驱动，及其他相关代码，来实现同一时刻运行多操作系统。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p id="fkww50"&gt;&lt;div id="jrbp" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img id="fh2g" style="width: 377px; height: 237px;" src="http://docs.google.com/File?id=dgs79b8w_399ccp7p9gd_b"&gt;&lt;/div&gt;&lt;font id="fkww51" face="宋体"&gt;&lt;span id="fkww52" lang="zh-CN"&gt;图&lt;/span&gt;&lt;/font&gt;9&lt;font id="fkww53" face="宋体"&gt;&lt;span id="fkww54" lang="zh-CN"&gt;显示了&lt;/span&gt;&lt;/font&gt;Xen&lt;font id="fkww55" face="宋体"&gt;&lt;span id="fkww56" lang="zh-CN"&gt;虚拟机的一般结构，当&lt;/span&gt;&lt;/font&gt;CPU&lt;font id="fkww57" face="宋体"&gt;&lt;span id="fkww58" lang="zh-CN"&gt;支持实行全虚拟化方案时，&lt;/span&gt;&lt;/font&gt;Hypervisor&lt;font id="fkww59" face="宋体"&gt;&lt;span id="fkww60" lang="zh-CN"&gt;运行于根态&lt;a id="fkww61" class="sdfootnoteanc" name="sdfootnote4anc" href="#sdfootnote4sym"&gt;&lt;sup id="fkww62"&gt;4&lt;/sup&gt;&lt;/a&gt;。当实行泛虚拟化方案时，运行于环&lt;/span&gt;&lt;/font&gt;0&lt;font id="fkww63" face="宋体"&gt;&lt;span id="fkww64" lang="zh-CN"&gt;，客户&lt;/span&gt;&lt;/font&gt;OS&lt;font id="fkww65" face="宋体"&gt;&lt;span id="fkww66" lang="zh-CN"&gt;运行于环&lt;/span&gt;&lt;/font&gt;1&lt;font id="fkww67" face="宋体"&gt;&lt;span id="fkww68" lang="zh-CN"&gt;，应用程序运行于环&lt;/span&gt;&lt;/font&gt;3&lt;font id="fkww69" face="宋体"&gt;&lt;span id="fkww70" lang="zh-CN"&gt;。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="fkww71"&gt;Hypervisor&lt;font id="fkww72" face="宋体"&gt;&lt;span id="fkww73" lang="zh-CN"&gt;提供对客户机的页表进行修改（泛虚拟化），或者使用影子页表（全虚拟化），来把客户机的虚拟地址到客户机物理地址的映像（客户机页表）进行重新映射。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="fkww74"&gt;Hypervisor&lt;font id="fkww75" face="宋体"&gt;&lt;span id="fkww76" lang="zh-CN"&gt;本身并不负责&lt;/span&gt;&lt;/font&gt;I/O&lt;font id="fkww77" face="宋体"&gt;&lt;span id="fkww78" lang="zh-CN"&gt;，而是把设备专有地配给某个虚拟域或者转发来自其他虚拟域的（前端驱动的）请求到虚拟域&lt;/span&gt;&lt;/font&gt;0&lt;font id="fkww79" face="宋体"&gt;&lt;span id="fkww80" lang="zh-CN"&gt;，由虚拟域&lt;/span&gt;&lt;/font&gt;0&lt;font id="fkww81" face="宋体"&gt;&lt;span id="fkww82" lang="zh-CN"&gt;的后端驱动接收请求后，交由其自生的原生驱动处理后应答。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="fkww83"&gt;&lt;font id="fkww84" face="宋体"&gt;&lt;span id="fkww85" lang="zh-CN"&gt;每个客户机可以配置成拥有任意数量的虚拟&lt;/span&gt;&lt;/font&gt;CPU&lt;font id="fkww86" face="宋体"&gt;&lt;span id="fkww87" lang="zh-CN"&gt;，&lt;/span&gt;&lt;/font&gt;Hypervisor&lt;font id="fkww88" face="宋体"&gt;&lt;span id="fkww89" lang="zh-CN"&gt;以虚拟&lt;/span&gt;&lt;/font&gt;CPU&lt;font id="fkww90" face="宋体"&gt;&lt;span id="fkww91" lang="zh-CN"&gt;为调度单位进行调度。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="fkww92"&gt;Hypervisor&lt;font id="fkww93" face="宋体"&gt;&lt;span id="fkww94" lang="zh-CN"&gt;和各个虚拟域之间的&lt;i id="fkww95"&gt;内部&lt;/i&gt;通信：&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;ul id="fkww96"&gt;  &lt;li id="fkww97"&gt;&lt;p id="fkww98"&gt;&lt;font id="fkww99" face="宋体"&gt;&lt;span id="fkww100" lang="zh-CN"&gt;通过事件通道进行通知&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="fkww101"&gt;&lt;p id="fkww102"&gt;&lt;font id="fkww103" face="宋体"&gt;&lt;span id="fkww104" lang="zh-CN"&gt;通过环形缓冲区放置请求和应答&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="fkww105"&gt;&lt;p id="fkww106"&gt;&lt;font id="fkww107" face="宋体"&gt;&lt;span id="fkww108" lang="zh-CN"&gt;通过授权表来允许别的虚拟域访问本虚拟域的内存页。比如可以交换内存页来实现内存零拷贝。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="fkww109"&gt;&lt;font id="fkww110" face="宋体"&gt;&lt;span id="fkww111" lang="zh-CN"&gt;在外存上的隔离，每个虚拟机使用各自镜像文件。不过，可以通过使用写时拷贝（&lt;/span&gt;&lt;/font&gt;Copy On Write&lt;font id="fkww112" face="宋体"&gt;&lt;span id="fkww113" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/font&gt;COW&lt;font id="fkww114" face="宋体"&gt;&lt;span id="fkww115" lang="zh-CN"&gt;）特性文件系统，比如&lt;/span&gt;&lt;/font&gt;ZFS&lt;a id="fkww116" class="sdfootnoteanc" name="sdfootnote5anc" href="#sdfootnote5sym"&gt;&lt;sup id="fkww117"&gt;5&lt;/sup&gt;&lt;/a&gt;&lt;font id="fkww118" face="宋体"&gt;&lt;span id="fkww119" lang="zh-CN"&gt;或者&lt;/span&gt;&lt;/font&gt;Btrfs&lt;a id="fkww120" class="sdfootnoteanc" name="sdfootnote6anc" href="#sdfootnote6sym"&gt;&lt;sup id="fkww121"&gt;6&lt;/sup&gt;&lt;/a&gt;&lt;font id="fkww122" face="宋体"&gt;&lt;span id="fkww123" lang="zh-CN"&gt;，来使得各个虚拟机共享某些文件。当某一虚拟机写共享文件时，该文件被拷贝并被改写。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="fkww124"&gt;&lt;font id="fkww125" face="宋体"&gt;&lt;span id="fkww126" lang="zh-CN"&gt;在&lt;/span&gt;&lt;/font&gt;Xen&lt;font id="fkww127" face="宋体"&gt;&lt;span id="fkww128" lang="zh-CN"&gt;虚拟机技术中，某一虚拟域上的客户操作系统的失败不会影响其他虚拟域上的操作系统。&lt;/span&gt;&lt;/font&gt;Xen&lt;font id="fkww129" face="宋体"&gt;&lt;span id="fkww130" lang="zh-CN"&gt;虚拟技术的可信基只有&lt;/span&gt;&lt;/font&gt;Hypervisor&lt;font id="fkww131" face="宋体"&gt;&lt;span id="fkww132" lang="zh-CN"&gt;本身，比较容易确保其正确性。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p id="fkww133"&gt;Xen&lt;font id="fkww134" face="宋体"&gt;&lt;span id="fkww135" lang="zh-CN"&gt;虚拟机技术的应用中，如在同一服务器硬件上一个虚拟机上中运行&lt;/span&gt;&lt;/font&gt;web&lt;font id="fkww136" face="宋体"&gt;&lt;span id="fkww137" lang="zh-CN"&gt;服务器，一个虚拟机上运行邮件服务器。使得之一服务器的崩溃对另一服务器无影响，同时也提高了硬件的利用率。&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;div id="sdfootnote1"&gt;  &lt;p id="fkww138" class="sdfootnote"&gt;&lt;a id="fkww139" class="sdfootnotesym" name="sdfootnote1sym" href="#sdfootnote1anc"&gt;1&lt;/a&gt;&lt;a id="fkww140" href="http://lwn.net/Articles/256389/"&gt;http://lwn.net/Articles/256389/&lt;/a&gt;&lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote2"&gt;  &lt;p id="fkww141" class="sdfootnote"&gt;&lt;a id="fkww142" class="sdfootnotesym" name="sdfootnote2sym" href="#sdfootnote2anc"&gt;2&lt;/a&gt;&lt;a id="fkww143" href="http://lwn.net/Articles/240474/"&gt;http://lwn.net/Articles/240474/&lt;/a&gt;&lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote3"&gt;  &lt;p id="fkww144" class="sdfootnote"&gt;&lt;a id="fkww145" class="sdfootnotesym" name="sdfootnote3sym" href="#sdfootnote3anc"&gt;3&lt;/a&gt;&lt;a id="fkww146" href="http://lwn.net/Articles/243795/"&gt;http://lwn.net/Articles/243795/&lt;/a&gt;&lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote4"&gt;  &lt;p id="fkww147" class="sdfootnote"&gt;&lt;a id="fkww148" class="sdfootnotesym" name="sdfootnote4sym" href="#sdfootnote4anc"&gt;4&lt;/a&gt;Intel®  64 and IA-32 Architectures Software Developer's Manual&lt;font id="fkww149" face="宋体"&gt;&lt;span id="fkww150" lang="zh-CN"&gt;，&lt;/span&gt;&lt;/font&gt;Volume  3B: System Programming Guide, Part 2&lt;font id="fkww151" face="宋体"&gt;&lt;span id="fkww152" lang="zh-CN"&gt;，&lt;/span&gt;&lt;/font&gt;CHAPTER  20 VIRTUAL-MACHINE CONTROL STRUCTURES   &lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote5"&gt;  &lt;p id="fkww153" class="sdfootnote"&gt;&lt;a id="fkww154" class="sdfootnotesym" name="sdfootnote5sym" href="#sdfootnote5anc"&gt;5&lt;/a&gt;&lt;a id="fkww155" href="http://opensolaris.org/os/community/zfs/"&gt;http://opensolaris.org/os/community/zfs/&lt;/a&gt;&lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote6"&gt;  &lt;p id="fkww156" class="sdfootnote"&gt;&lt;a id="fkww157" class="sdfootnotesym" name="sdfootnote6sym" href="#sdfootnote6anc"&gt;6&lt;/a&gt;&lt;a id="fkww158" href="http://btrfs.wiki.kernel.org/"&gt;http://btrfs.wiki.kernel.org&lt;/a&gt;&lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-3310228801961488199?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/3310228801961488199/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=3310228801961488199' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/3310228801961488199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/3310228801961488199'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/06/selinux-linux-bug-ipc-1-2-3-ip-httpwww.html' title='虚拟机技术'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-8858109268286274149</id><published>2008-06-29T20:53:00.003+08:00</published><updated>2008-06-29T21:22:20.453+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='毕业设计'/><category scheme='http://www.blogger.com/atom/ns#' term='安全'/><category scheme='http://www.blogger.com/atom/ns#' term='技术wawa'/><category scheme='http://www.blogger.com/atom/ns#' term='Singularity'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>概念分布式操作系统——Singularity</title><content type='html'>&lt;p id="sour5" style="margin-bottom: 0in;"&gt;singularity&lt;span id="sour6"  style="font-family:宋体;"&gt;&lt;span id="sour7" lang="zh-CN"&gt;是微软概念分布式操作系统，展示了一个“把可靠性和可信度 作为首要的设计目标”，从头来设计的软件平台。 &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="sour8" style="margin-bottom: 0in;"&gt;singularity&lt;span id="sour9"  style="font-family:宋体;"&gt;&lt;span id="sour10" lang="zh-CN"&gt;的设计者认为，通过更为可靠的技术和设计方法是可以在很大程度上提高系统的可靠性的。因此，&lt;/span&gt;&lt;/span&gt;singularity&lt;span id="sour11"  style="font-family:宋体;"&gt;&lt;span id="sour12" lang="zh-CN"&gt;的可靠性与安全的实现依赖了许多其他方面的技术：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul id="sour13"&gt;  &lt;li id="sour14"&gt;&lt;p id="sour15" style="margin-bottom: 0in;"&gt;&lt;span id="sour16"  style="font-family:宋体;"&gt;&lt;span id="sour17" lang="zh-CN"&gt;通过安全的设计语言消除可以预防的缺陷，如缓冲溢出。&lt;/span&gt;&lt;/span&gt;singularity&lt;span id="sour18"  style="font-family:宋体;"&gt;&lt;span id="sour19" lang="zh-CN"&gt;主要使用&lt;/span&gt;&lt;/span&gt;C#&lt;span id="sour20"  style="font-family:宋体;"&gt;&lt;span id="sour21" lang="zh-CN"&gt;语言的扩展——&lt;/span&gt;&lt;/span&gt;Sing#&lt;span id="sour22"  style="font-family:宋体;"&gt;&lt;span id="sour23" lang="zh-CN"&gt;来编写。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour24"&gt;&lt;p id="sour25" style="margin-bottom: 0in;"&gt;&lt;span id="sour26"  style="font-family:宋体;"&gt;&lt;span id="sour27" lang="zh-CN"&gt;通过健全的验证工具在开发周期中侦测程序的错误。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour28"&gt;&lt;p id="sour29" style="margin-bottom: 0in;"&gt;&lt;span id="sour30"  style="font-family:宋体;"&gt;&lt;span id="sour31" lang="zh-CN"&gt;通过一个改进的系统构架，在明晰定义的边界处，阻止运行时刻错误的传播。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;h1 id="sour32" class="western"&gt;&lt;span id="sour33"  style="font-family:黑体;"&gt;&lt;span id="sour34" lang="zh-CN"&gt;软件隔离的进程（&lt;/span&gt;&lt;/span&gt;Software-Isolated Processes&lt;span id="sour35"  style="font-family:黑体;"&gt;&lt;span id="sour36" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour37"  style="font-family:黑体;"&gt;&lt;span id="sour38" lang="zh-CN"&gt;）&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt; &lt;p id="sour39"&gt;&lt;span id="sour40"  style="font-family:宋体;"&gt;&lt;span id="sour41" lang="zh-CN"&gt;和传统的操作系统中进程的概念类似，&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour42"  style="font-family:宋体;"&gt;&lt;span id="sour43" lang="zh-CN"&gt;是作为处理资源的载体，为程序执行提供了上下文：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul id="sour44"&gt;  &lt;li id="sour45"&gt;&lt;p id="sour46"&gt;SIP&lt;span id="sour47"  style="font-family:宋体;"&gt;&lt;span id="sour48" lang="zh-CN"&gt;关联一组包含数据和代码的内存页面。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour49"&gt;&lt;p id="sour50"&gt;SIP&lt;span id="sour51"  style="font-family:宋体;"&gt;&lt;span id="sour52" lang="zh-CN"&gt;以某一安全&lt;/span&gt;&lt;/span&gt;ID&lt;span id="sour53"  style="font-family:宋体;"&gt;&lt;span id="sour54" lang="zh-CN"&gt;执行，关联&lt;/span&gt;&lt;/span&gt;OS&lt;span id="sour55"  style="font-family:宋体;"&gt;&lt;span id="sour56" lang="zh-CN"&gt;的安全属性。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour57"&gt;&lt;p id="sour58"&gt;&lt;span id="sour59"  style="font-family:宋体;"&gt;&lt;span id="sour60" lang="zh-CN"&gt;通过内核&lt;/span&gt;&lt;/span&gt;ABI&lt;span id="sour61"  style="font-family:宋体;"&gt;&lt;span id="sour62" lang="zh-CN"&gt;（&lt;/span&gt;&lt;/span&gt;Application  Binary Interface&lt;span id="sour63"  style="font-family:宋体;"&gt;&lt;span id="sour64" lang="zh-CN"&gt;），&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour65"  style="font-family:宋体;"&gt;&lt;span id="sour66" lang="zh-CN"&gt;来使用内核函数。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour67"&gt;&lt;p id="sour68"&gt;&lt;span id="sour69"  style="font-family:宋体;"&gt;&lt;span id="sour70" lang="zh-CN"&gt;含有一个以上的线程。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour71"&gt;&lt;p id="sour72"&gt;&lt;span id="sour73"  style="font-family:宋体;"&gt;&lt;span id="sour74" lang="zh-CN"&gt;每个&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour75"  style="font-family:宋体;"&gt;&lt;span id="sour76" lang="zh-CN"&gt;是自治的，含有自己的数据布局、运行时刻系统和垃圾收集器&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="sour77"&gt;&lt;span id="sour78"  style="font-family:宋体;"&gt;&lt;span id="sour79" lang="zh-CN"&gt;与传统的进程不同的是：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul id="sour80"&gt;  &lt;li id="sour81"&gt;&lt;p id="sour82"&gt;SIP&lt;span id="sour83"  style="font-family:宋体;"&gt;&lt;span id="sour84" lang="zh-CN"&gt;的隔离是通过软件而非硬件（如&lt;/span&gt;&lt;/span&gt;MMU&lt;span id="sour85"  style="font-family:宋体;"&gt;&lt;span id="sour86" lang="zh-CN"&gt;单元等）实现的。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour87"&gt;&lt;p id="sour88"&gt;SIP&lt;span id="sour89"  style="font-family:宋体;"&gt;&lt;span id="sour90" lang="zh-CN"&gt;之间不共享数据。通过在&lt;/span&gt;&lt;/span&gt;channels&lt;span id="sour91"  style="font-family:宋体;"&gt;&lt;span id="sour92" lang="zh-CN"&gt;上交换消息进行通信。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour93"&gt;&lt;p id="sour94"&gt;SIP&lt;span id="sour95"  style="font-family:宋体;"&gt;&lt;span id="sour96" lang="zh-CN"&gt;中的代码是密封的，不能动态载入和创建代码。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;h2 id="sour97" class="western"&gt;&lt;span id="sour98"  style="font-family:宋体;"&gt;&lt;span id="sour99" lang="zh-CN"&gt;软件隔离&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt; &lt;p id="sour100"&gt;&lt;span id="sour101"  style="font-family:宋体;"&gt;&lt;span id="sour102" lang="zh-CN"&gt;软件隔离通过篇基于语言的类型和内存访问检查来实现。类型检查保证值或对象被正确解释和操作，内存访问检查保证引用的内存在有效对象的边界内。软件隔离能够比硬件隔离更加细粒度。硬件隔离中，进程可以按照页保护字段的规定，随意访问自己的内存空间（栈和堆），而在软件隔离中，访问的方式和范围被限制，对粒度为变量的区域提供了保护（封装）。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour103"&gt;&lt;span id="sour104"  style="font-family:宋体;"&gt;&lt;span id="sour105" lang="zh-CN"&gt;借助软件隔离，所有的&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour106"  style="font-family:宋体;"&gt;&lt;span id="sour107" lang="zh-CN"&gt;和内核可以运行于单一的环&lt;/span&gt;&lt;/span&gt;0&lt;span id="sour108"  style="font-family:宋体;"&gt;&lt;span id="sour109" lang="zh-CN"&gt;的地址空间中，从而进程的创建，系统调用，调度与通信等的开销减小了。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour110"&gt;&lt;span id="sour111"  style="font-family:宋体;"&gt;&lt;span id="sour112" lang="zh-CN"&gt;另外，类型和内存安检确保了函数的执行的完整性，从而可以在安检后，在&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour113"  style="font-family:宋体;"&gt;&lt;span id="sour114" lang="zh-CN"&gt;中运行的信任函数中使用特权指令。例如，访问硬件&lt;/span&gt;&lt;/span&gt;I/O&lt;span id="sour115"  style="font-family:宋体;"&gt;&lt;span id="sour116" lang="zh-CN"&gt;的特权指令可以在安装阶段，安全地内联到设备驱动中。这也促进了性能上的提升。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;dl id="sour117"&gt;  &lt;dd id="sour118"&gt;  &lt;table id="sour119" border="1" bordercolor="#000000" cellpadding="4" cellspacing="0" width="596" height="182"&gt;   &lt;col id="sour120" width="129"&gt;   &lt;col id="sour121" width="106"&gt;   &lt;col id="sour122" width="106"&gt;   &lt;col id="sour123" width="106"&gt;   &lt;col id="sour124" width="106"&gt;   &lt;tbody id="sour125"&gt;&lt;tr id="sour126" valign="top"&gt;    &lt;td id="sour127" rowspan="2" width="129"&gt;     &lt;p id="sour128"&gt;      &lt;/p&gt;   &lt;br /&gt;&lt;/td&gt;    &lt;td id="sour130" colspan="4" width="449"&gt;     &lt;p id="sour131" align="center"&gt;&lt;span id="sour132"  style="font-family:宋体;"&gt;&lt;span id="sour133" lang="zh-CN"&gt;开销（单位：&lt;/span&gt;&lt;/span&gt;CPU&lt;span id="sour134"  style="font-family:宋体;"&gt;&lt;span id="sour135" lang="zh-CN"&gt;周期）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;/td&gt;   &lt;/tr&gt;   &lt;tr id="sour136" valign="top"&gt;    &lt;td id="sour137" width="106"&gt;     &lt;p id="sour138" align="center"&gt;API&lt;span id="sour139"  style="font-family:宋体;"&gt;&lt;span id="sour140" lang="zh-CN"&gt;调用&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour141" width="106"&gt;     &lt;p id="sour142" align="center"&gt;&lt;span id="sour143"  style="font-family:宋体;"&gt;&lt;span id="sour144" lang="zh-CN"&gt;线程产出&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour145" width="106"&gt;     &lt;p id="sour146" align="center"&gt;&lt;span id="sour147"  style="font-family:宋体;"&gt;&lt;span id="sour148" lang="zh-CN"&gt;消息反馈&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour149" width="106"&gt;     &lt;p id="sour150" align="center"&gt;&lt;span id="sour151"  style="font-family:宋体;"&gt;&lt;span id="sour152" lang="zh-CN"&gt;进程创建&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;/td&gt;   &lt;/tr&gt;   &lt;tr id="sour153" valign="top"&gt;    &lt;td id="sour154" width="129"&gt;     &lt;p id="sour155"&gt;Singularity&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour156" width="106"&gt;     &lt;p id="sour157" align="center"&gt;80&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour158" width="106"&gt;     &lt;p id="sour159" align="center"&gt;365&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour160" width="106"&gt;     &lt;p id="sour161" align="center"&gt;1,040&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour162" width="106"&gt;     &lt;p id="sour163" align="center"&gt;388,000&lt;/p&gt;    &lt;/td&gt;   &lt;/tr&gt;   &lt;tr id="sour164" valign="top"&gt;    &lt;td id="sour165" width="129"&gt;     &lt;p id="sour166"&gt;FreeBSD&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour167" width="106"&gt;     &lt;p id="sour168" align="center"&gt;878&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour169" width="106"&gt;     &lt;p id="sour170" align="center"&gt;911&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour171" width="106"&gt;     &lt;p id="sour172" align="center"&gt;13,300&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour173" width="106"&gt;     &lt;p id="sour174" align="center"&gt;1,030,000&lt;/p&gt;    &lt;/td&gt;   &lt;/tr&gt;   &lt;tr id="sour175" valign="top"&gt;    &lt;td id="sour176" width="129"&gt;     &lt;p id="sour177"&gt;Linux&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour178" width="106"&gt;     &lt;p id="sour179" align="center"&gt;437&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour180" width="106"&gt;     &lt;p id="sour181" align="center"&gt;906&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour182" width="106"&gt;     &lt;p id="sour183" align="center"&gt;5,800&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour184" width="106"&gt;     &lt;p id="sour185" align="center"&gt;719,000&lt;/p&gt;    &lt;/td&gt;   &lt;/tr&gt;   &lt;tr id="sour186" valign="top"&gt;    &lt;td id="sour187" width="129"&gt;     &lt;p id="sour188"&gt;Windows&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour189" width="106"&gt;     &lt;p id="sour190" align="center"&gt;627&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour191" width="106"&gt;     &lt;p id="sour192" align="center"&gt;753&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour193" width="106"&gt;     &lt;p id="sour194" align="center"&gt;6,340&lt;/p&gt;    &lt;/td&gt;    &lt;td id="sour195" width="106"&gt;     &lt;p id="sour196" align="center"&gt;5,380,000&lt;/p&gt;    &lt;/td&gt;   &lt;/tr&gt;  &lt;/tbody&gt;&lt;/table&gt; &lt;/dd&gt;&lt;/dl&gt; &lt;p id="sour197"&gt;&lt;span id="sour198"  style="font-family:宋体;"&gt;&lt;span id="sour199" lang="zh-CN"&gt;表&lt;/span&gt;&lt;/span&gt;1&lt;span id="sour200"  style="font-family:宋体;"&gt;&lt;span id="sour201" lang="zh-CN"&gt;：进程基本开销（硬件平台：&lt;/span&gt;&lt;/span&gt;AMD Athlon 64 3000+&lt;span id="sour202"  style="font-family:宋体;"&gt;&lt;span id="sour203" lang="zh-CN"&gt;（&lt;/span&gt;&lt;/span&gt;1.8GHz&lt;span id="sour204"  style="font-family:宋体;"&gt;&lt;span id="sour205" lang="zh-CN"&gt;）&lt;/span&gt;&lt;/span&gt;CPU&lt;span id="sour206"  style="font-family:宋体;"&gt;&lt;span id="sour207" lang="zh-CN"&gt;，&lt;/span&gt;&lt;/span&gt;NVIDIA nForce4 Ultra&lt;span id="sour208"  style="font-family:宋体;"&gt;&lt;span id="sour209" lang="zh-CN"&gt;芯片组。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour210"&gt;&lt;span id="sour211"  style="font-family:宋体;"&gt;&lt;span id="sour212" lang="zh-CN"&gt;表&lt;/span&gt;&lt;/span&gt;1&lt;span id="sour213"  style="font-family:宋体;"&gt;&lt;span id="sour214" lang="zh-CN"&gt;数据来源&lt;/span&gt;&lt;/span&gt;Singularity: Rethinking the Software Stack&lt;a id="sour215" class="sdfootnoteanc" name="sdfootnote1anc" href="#sdfootnote1sym"&gt;&lt;sup id="sour216"&gt;1&lt;/sup&gt;&lt;/a&gt;&lt;span id="sour217"  style="font-family:宋体;"&gt;&lt;span id="sour218" lang="zh-CN"&gt;，并未指明操作系统的版本与配置。在&lt;/span&gt;&lt;/span&gt;An Overview of the Singularity Project&lt;a id="sour219" class="sdfootnoteanc" name="sdfootnote2anc" href="#sdfootnote2sym"&gt;&lt;sup id="sour220"&gt;2&lt;/sup&gt;&lt;/a&gt;&lt;span id="sour221"  style="font-family:宋体;"&gt;&lt;span id="sour222" lang="zh-CN"&gt;类似测试中，指明了操作系统版本与配置，且数据与此表相似，故可能是同一测试平台（硬件：&lt;/span&gt;&lt;/span&gt;AMD Athlon 64 3000+ (1.8 GHz) CPU&lt;span id="sour223"  style="font-family:宋体;"&gt;&lt;span id="sour224" lang="zh-CN"&gt;，&lt;/span&gt;&lt;/span&gt;NVIDIA nForce4 Ultra &lt;span id="sour225"  style="font-family:宋体;"&gt;&lt;span id="sour226" lang="zh-CN"&gt;芯片组，&lt;/span&gt;&lt;/span&gt;1GB&lt;span id="sour227"  style="font-family:宋体;"&gt;&lt;span id="sour228" lang="zh-CN"&gt;内存，&lt;/span&gt;&lt;/span&gt;Western Digital WD2500JD 250GB 7200RPM SATA&lt;span id="sour229"  style="font-family:宋体;"&gt;&lt;span id="sour230" lang="zh-CN"&gt;硬盘（不含指令重排&lt;/span&gt;&lt;/span&gt;(command queuing)&lt;span id="sour231"  style="font-family:宋体;"&gt;&lt;span id="sour232" lang="zh-CN"&gt;），网卡为&lt;/span&gt;&lt;/span&gt;nForce4 Ultra native Gigabit NIC&lt;span id="sour233"  style="font-family:宋体;"&gt;&lt;span id="sour234" lang="zh-CN"&gt;（不含硬件&lt;/span&gt;&lt;/span&gt;TCP&lt;span id="sour235"  style="font-family:宋体;"&gt;&lt;span id="sour236" lang="zh-CN"&gt;加速）。操作系统为&lt;/span&gt;&lt;/span&gt;FreeBSD 5.3&lt;span id="sour237"  style="font-family:宋体;"&gt;&lt;span id="sour238" lang="zh-CN"&gt;，&lt;/span&gt;&lt;/span&gt;Red Hat Fedora Core 4&lt;span id="sour239"  style="font-family:宋体;"&gt;&lt;span id="sour240" lang="zh-CN"&gt;（内核版本&lt;/span&gt;&lt;/span&gt;2.6.11- 1.1369_FC4&lt;span id="sour241"  style="font-family:宋体;"&gt;&lt;span id="sour242" lang="zh-CN"&gt;与&lt;/span&gt;&lt;/span&gt;Windows XP (SP2)&lt;span id="sour243"  style="font-family:宋体;"&gt;&lt;span id="sour244" lang="zh-CN"&gt;）据此，对照的测试&lt;/span&gt;&lt;/span&gt;OS&lt;span id="sour245"  style="font-family:宋体;"&gt;&lt;span id="sour246" lang="zh-CN"&gt;是较老的版本，且存在配置上的问题（比如使用性能低下的&lt;/span&gt;&lt;/span&gt;pthreads&lt;span id="sour247"  style="font-family:宋体;"&gt;&lt;span id="sour248" lang="zh-CN"&gt;），数据未必精确，但&lt;/span&gt;&lt;/span&gt;Singularity&lt;span id="sour249"  style="font-family:宋体;"&gt;&lt;span id="sour250" lang="zh-CN"&gt;的性能优势较明显，具备参考意义。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour251"&gt;&lt;span id="sour252"  style="font-family:宋体;"&gt;&lt;span id="sour253" lang="zh-CN"&gt;软件隔离所带给&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour254"  style="font-family:宋体;"&gt;&lt;span id="sour255" lang="zh-CN"&gt;的低系统开销，也拓广了进程这一传统概念的应用范围。比如，对微内核&lt;/span&gt;&lt;/span&gt;OS&lt;span id="sour256"  style="font-family:宋体;"&gt;&lt;span id="sour257" lang="zh-CN"&gt;最大的批评是其低下的性能，从单一内核中分离出的功能运行在各自进程中，来提高系统的稳定性和安全性。但这样作也造成了核与系统进程，系统进程与系统进程之间紧密的通信，不得不通过穿越硬件保护边界——造成了性能上巨大的开销。因此，实用的微内核操作系统总是在微内核设计上加以妥协，比如&lt;/span&gt;&lt;/span&gt;Windows NT&lt;span id="sour258"  style="font-family:宋体;"&gt;&lt;span id="sour259" lang="zh-CN"&gt;系列系统就把&lt;/span&gt;&lt;/span&gt;NT&lt;span id="sour260"  style="font-family:宋体;"&gt;&lt;span id="sour261" lang="zh-CN"&gt;内核与&lt;/span&gt;&lt;/span&gt;NT&lt;span id="sour262"  style="font-family:宋体;"&gt;&lt;span id="sour263" lang="zh-CN"&gt;执行体就被合并到了单个可执行映像了。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour264"&gt;&lt;span id="sour265"  style="font-family:宋体;"&gt;&lt;span id="sour266" lang="zh-CN"&gt;软件隔离的不同于传统的构筑安全的思维：在传统的思维中，安全隔离应当在底层、外围实施，从而避免引不必要的依赖（这些依赖可能带来新的安全隐患），因此安全应当是专门独立出来。而在&lt;/span&gt;&lt;/span&gt;singularity&lt;span id="sour267"  style="font-family:宋体;"&gt;&lt;span id="sour268" lang="zh-CN"&gt;中，安全并不单一存在，而是各种技术混合的结果。从最小权限原则上来说，只有越贴近应用逻辑（高层），才能实现细粒度的控制，这对开发安全的程序也是有利的——错误发现的越早就越容易排除。（后续章节将解释，&lt;/span&gt;&lt;/span&gt;singularity&lt;span id="sour269"  style="font-family:宋体;"&gt;&lt;span id="sour270" lang="zh-CN"&gt;如何解决实施安全，带来新的依赖的问题）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour271"&gt;&lt;span id="sour272"  style="font-family:宋体;"&gt;&lt;span id="sour273" lang="zh-CN"&gt;在&lt;/span&gt;&lt;/span&gt;SELinux&lt;span id="sour274"  style="font-family:宋体;"&gt;&lt;span id="sour275" lang="zh-CN"&gt;一节中，表达了这样一个观点，即强制访问控制是在操作系统支持粒度下，对程序正确的行为进行断言。而软件隔离则在语言层次上，对语言的正确使用作出断言（由编译器或者解释器负责）。（纯粹的）软件隔离同时也意味着对硬件访问接口的再次封装，即只有通过安全的编程语言才能使用硬件资源。这也是在&lt;/span&gt;&lt;/span&gt;SELinux&lt;span id="sour276"  style="font-family:宋体;"&gt;&lt;span id="sour277" lang="zh-CN"&gt;一节中的得出的结论，明晰合理的接口相当于细化了安全检查的粒度。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour278"&gt;&lt;span id="sour279"  style="font-family:宋体;"&gt;&lt;span id="sour280" lang="zh-CN"&gt;可以依照纵深防御原则，把软件隔离与硬件隔离相结合，比如把单独内核运行在环&lt;/span&gt;&lt;/span&gt;0&lt;span id="sour281"  style="font-family:宋体;"&gt;&lt;span id="sour282" lang="zh-CN"&gt;的地址空间中，其他&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour283"  style="font-family:宋体;"&gt;&lt;span id="sour284" lang="zh-CN"&gt;运行在环&lt;/span&gt;&lt;/span&gt;3&lt;span id="sour285"  style="font-family:宋体;"&gt;&lt;span id="sour286" lang="zh-CN"&gt;的各自的地址空间（类似微内核那样），或者经过数字签名，信任的软件于内核一起运作在环&lt;/span&gt;&lt;/span&gt;0&lt;span id="sour287"  style="font-family:宋体;"&gt;&lt;span id="sour288" lang="zh-CN"&gt;的地址空间中，其他未签名的不受信任的软件运作在环&lt;/span&gt;&lt;/span&gt;3&lt;span id="sour289"  style="font-family:宋体;"&gt;&lt;span id="sour290" lang="zh-CN"&gt;的&lt;i id="sour291"&gt;各自&lt;/i&gt;地址空间中。当然，还可以考虑，如把不安全的语言编写的程序运行在独立的地址空间中，而安全语言编写的程序与内核共处一地址空间，从而兼容以有程序。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p id="sour278"&gt;&lt;span id="sour295"  style="font-family:宋体;"&gt;&lt;span id="sour296" lang="zh-CN"&gt;这些配置也为观察硬件保护的开销带来了机会，下图源自&lt;/span&gt;&lt;/span&gt;Singularity: Rethinking the Software Stack&lt;span id="sour297"  style="font-family:宋体;"&gt;&lt;span id="sour298" lang="zh-CN"&gt;。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour292"&gt;&lt;/p&gt;&lt;div id="c08y" style="text-align: left;"&gt;&lt;div id="zu_o" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img style="width: 537px; height: 307px;" id="sour293" src="http://docs.google.com/File?id=dgs79b8w_394ghph72c6_b" name="图形1" border="0" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;p id="sour292"&gt;&lt;span id="sour295"  style="font-family:宋体;"&gt;&lt;span id="sour296" lang="zh-CN"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-align: center;" id="sour299"&gt;&lt;span id="sour300"  style="font-family:宋体;"&gt;&lt;span id="sour301" lang="zh-CN"&gt;图&lt;/span&gt;&lt;/span&gt;10&lt;span id="sour302"  style="font-family:宋体;"&gt;&lt;span id="sour303" lang="zh-CN"&gt;，各种隔离措施所带来的系统性能上的开销。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: left;" id="sour299"&gt;&lt;span id="sour302"  style="font-family:宋体;"&gt;&lt;span id="sour303" lang="zh-CN"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour304"&gt;&lt;span id="sour305"  style="font-family:宋体;"&gt;&lt;span id="sour306" lang="zh-CN"&gt;图中，采用是&lt;/span&gt;&lt;/span&gt;WebFiles&lt;span id="sour307"  style="font-family:宋体;"&gt;&lt;span id="sour308" lang="zh-CN"&gt;（基于&lt;/span&gt;&lt;/span&gt;SPECweb99&lt;span id="sour309"  style="font-family:宋体;"&gt;&lt;span id="sour310" lang="zh-CN"&gt;的&lt;/span&gt;&lt;/span&gt;I/O&lt;span id="sour311"  style="font-family:宋体;"&gt;&lt;span id="sour312" lang="zh-CN"&gt;密集型测试）在&lt;/span&gt;&lt;/span&gt;6&lt;span id="sour313"  style="font-family:宋体;"&gt;&lt;span id="sour314" lang="zh-CN"&gt;种不同的配置上进行测试，并以第&lt;/span&gt;&lt;/span&gt;2&lt;span id="sour315"  style="font-family:宋体;"&gt;&lt;span id="sour316" lang="zh-CN"&gt;个配置方案为标准进行衡量。测试采用了&lt;/span&gt;&lt;/span&gt;3&lt;span id="sour317"  style="font-family:宋体;"&gt;&lt;span id="sour318" lang="zh-CN"&gt;个&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour319"  style="font-family:宋体;"&gt;&lt;span id="sour320" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul id="sour321"&gt;  &lt;li id="sour322"&gt;&lt;p id="sour323"&gt;&lt;span id="sour324"  style="font-family:宋体;"&gt;&lt;span id="sour325" lang="zh-CN"&gt;客户端（发出对文件随机读请求）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour326"&gt;&lt;p id="sour327"&gt;&lt;span id="sour328"  style="font-family:宋体;"&gt;&lt;span id="sour329" lang="zh-CN"&gt;文件系统&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour330"&gt;&lt;p id="sour331"&gt;&lt;span id="sour332"  style="font-family:宋体;"&gt;&lt;span id="sour333" lang="zh-CN"&gt;驱动&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="sour334"&gt;6&lt;span id="sour335"  style="font-family:宋体;"&gt;&lt;span id="sour336" lang="zh-CN"&gt;个配置方案分别为：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul id="sour337"&gt;  &lt;li id="sour338"&gt;&lt;p id="sour339"&gt;No runtime checks&lt;span id="sour340"  style="font-family:宋体;"&gt;&lt;span id="sour341" lang="zh-CN"&gt;：不进行任何安全隔离，用于对照开启软件隔离的开销（图中，&lt;/span&gt;&lt;/span&gt;4.7%&lt;span id="sour342"  style="font-family:宋体;"&gt;&lt;span id="sour343" lang="zh-CN"&gt;）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour344"&gt;&lt;p id="sour345"&gt;Physical Memory&lt;span id="sour346"  style="font-family:宋体;"&gt;&lt;span id="sour347" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt;3&lt;span id="sour348"  style="font-family:宋体;"&gt;&lt;span id="sour349" lang="zh-CN"&gt;个&lt;/span&gt;&lt;/span&gt;SIPs&lt;span id="sour350"  style="font-family:宋体;"&gt;&lt;span id="sour351" lang="zh-CN"&gt;与内核运行于同一地址空间和同一特权级。禁用分页。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour352"&gt;&lt;p id="sour353"&gt;Add 4KB Pages&lt;span id="sour354"  style="font-family:宋体;"&gt;&lt;span id="sour355" lang="zh-CN"&gt;：在上一配置的基础上，开启分页（页大小：&lt;/span&gt;&lt;/span&gt;4KB&lt;span id="sour356"  style="font-family:宋体;"&gt;&lt;span id="sour357" lang="zh-CN"&gt;）与&lt;/span&gt;&lt;/span&gt;TLB&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour358"&gt;&lt;p id="sour359"&gt;Add Separate Domain&lt;span id="sour360"  style="font-family:宋体;"&gt;&lt;span id="sour361" lang="zh-CN"&gt;：在上一配置的基础上，把客户端&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour362"  style="font-family:宋体;"&gt;&lt;span id="sour363" lang="zh-CN"&gt;单独移到一个地址空间中（特权级维持为环&lt;/span&gt;&lt;/span&gt;0&lt;span id="sour364"  style="font-family:宋体;"&gt;&lt;span id="sour365" lang="zh-CN"&gt;）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour366"&gt;&lt;p id="sour367"&gt;Add Ring3&lt;span id="sour368"  style="font-family:宋体;"&gt;&lt;span id="sour369" lang="zh-CN"&gt;：在上一配置的基础上，客户端&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour370"  style="font-family:宋体;"&gt;&lt;span id="sour371" lang="zh-CN"&gt;的特权级改变为环&lt;/span&gt;&lt;/span&gt;3&lt;span id="sour372"  style="font-family:宋体;"&gt;&lt;span id="sour373" lang="zh-CN"&gt;。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour374"&gt;&lt;p id="sour375"&gt;Full Microkernel&lt;span id="sour376"  style="font-family:宋体;"&gt;&lt;span id="sour377" lang="zh-CN"&gt;：把每个&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour378"  style="font-family:宋体;"&gt;&lt;span id="sour379" lang="zh-CN"&gt;移到各自环&lt;/span&gt;&lt;/span&gt;3&lt;span id="sour380"  style="font-family:宋体;"&gt;&lt;span id="sour381" lang="zh-CN"&gt;的地址空间中。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="sour382"&gt;&lt;span id="sour383"  style="font-family:宋体;"&gt;&lt;span id="sour384" lang="zh-CN"&gt;可见软件隔离所带来的开销非常小（&lt;/span&gt;&lt;/span&gt;&amp;lt;5%&lt;span id="sour385"  style="font-family:宋体;"&gt;&lt;span id="sour386" lang="zh-CN"&gt;），与之相比较，硬件隔离的开销非常大。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour387"&gt;&lt;span id="sour388"  style="font-family:宋体;"&gt;&lt;span id="sour389" lang="zh-CN"&gt;软件隔离的另一个好处是，脱离了对&lt;/span&gt;&lt;/span&gt;MMU&lt;span id="sour390"  style="font-family:宋体;"&gt;&lt;span id="sour391" lang="zh-CN"&gt;的依赖，从而&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour392"  style="font-family:宋体;"&gt;&lt;span id="sour393" lang="zh-CN"&gt;可以运行在一些特殊的处理器上（或者说可编程&lt;/span&gt;&lt;/span&gt;I/O&lt;span id="sour394"  style="font-family:宋体;"&gt;&lt;span id="sour395" lang="zh-CN"&gt;设备），比如&lt;/span&gt;&lt;/span&gt;GPU&lt;span id="sour396"  style="font-family:宋体;"&gt;&lt;span id="sour397" lang="zh-CN"&gt;（&lt;/span&gt;&lt;/span&gt;Graphics Process Unit&lt;span id="sour398"  style="font-family:宋体;"&gt;&lt;span id="sour399" lang="zh-CN"&gt;，时下渐热的流计算的基本硬件），从而支持非均一处理器组成的分布式计算的网络。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h2 id="sour400" class="western"&gt;&lt;span id="sour401"  style="font-family:宋体;"&gt;&lt;span id="sour402" lang="zh-CN"&gt;内存管理——&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour403"  style="font-family:宋体;"&gt;&lt;span id="sour404" lang="zh-CN"&gt;之间不共享数据&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt; &lt;p id="sour405"&gt;&lt;span id="sour406"  style="font-family:宋体;"&gt;&lt;span id="sour407" lang="zh-CN"&gt;在&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour408"  style="font-family:宋体;"&gt;&lt;span id="sour409" lang="zh-CN"&gt;中的指针必须指向自己的内存或者交换堆中所拥有的内存。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour410"&gt;SIP&lt;span id="sour411"  style="font-family:宋体;"&gt;&lt;span id="sour412" lang="zh-CN"&gt;通过&lt;/span&gt;&lt;/span&gt;ABI&lt;span id="sour413"  style="font-family:宋体;"&gt;&lt;span id="sour414" lang="zh-CN"&gt;调用内核页管理器获得新的、独占的页。这些页不定与之前分配的内存页相邻，连续的页可以通过大的对象或者数组获得。&lt;/span&gt;&lt;/span&gt;ABI&lt;span id="sour415"  style="font-family:宋体;"&gt;&lt;span id="sour416" lang="zh-CN"&gt;不传递对象指针。 &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="sour417"&gt;SIP&lt;span id="sour418"  style="font-family:宋体;"&gt;&lt;span id="sour419" lang="zh-CN"&gt;的栈是链式的，调用内核&lt;/span&gt;&lt;/span&gt;ABI&lt;span id="sour420"  style="font-family:宋体;"&gt;&lt;span id="sour421" lang="zh-CN"&gt;时，寄存器等的现场环境被保留到栈中一特殊结构中，区分&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour422"  style="font-family:宋体;"&gt;&lt;span id="sour423" lang="zh-CN"&gt;与内核空间。中断处理使用专用的栈。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour424"&gt;&lt;/p&gt;&lt;div id="w9ev" style="padding: 1em 0pt; text-align: center;"&gt;&lt;img id="pbf8" style="width: 393px; height: 279px;" src="http://docs.google.com/File?id=dgs79b8w_396hc37x4fw_b" /&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p id="sour429"&gt;SIP&lt;span id="sour430"  style="font-family:宋体;"&gt;&lt;span id="sour431" lang="zh-CN"&gt;间传递的数据必须驻留在交换堆中，交换堆中的指针只能指向其自身，对于交换堆，有线性（&lt;/span&gt;&lt;/span&gt;linearity&lt;span id="sour432"  style="font-family:宋体;"&gt;&lt;span id="sour433" lang="zh-CN"&gt;）属性：任何时候，&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour434"  style="font-family:宋体;"&gt;&lt;span id="sour435" lang="zh-CN"&gt;至多只有&lt;i id="sour436"&gt;一个&lt;/i&gt;指向交换堆中&lt;i id="sour437"&gt;一块&lt;/i&gt;的指针（由此可推，交换堆中的块任一时刻至多属于一个线程）。只能通过向另一&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour438"  style="font-family:宋体;"&gt;&lt;span id="sour439" lang="zh-CN"&gt;（通过&lt;/span&gt;&lt;/span&gt;channel&lt;span id="sour440"  style="font-family:宋体;"&gt;&lt;span id="sour441" lang="zh-CN"&gt;）发送消息来转移块的所有权，发送后，原&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour442"  style="font-family:宋体;"&gt;&lt;span id="sour443" lang="zh-CN"&gt;不能在访问该块（&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour444"  style="font-family:宋体;"&gt;&lt;span id="sour445" lang="zh-CN"&gt;可能含有指向交互堆的尾随指针&lt;/span&gt;&lt;/span&gt;(dangling pointer&lt;span id="sour446"  style="font-family:宋体;"&gt;&lt;span id="sour447" lang="zh-CN"&gt;，指向此&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour448"  style="font-family:宋体;"&gt;&lt;span id="sour449" lang="zh-CN"&gt;不再拥有的块&lt;/span&gt;&lt;/span&gt;)&lt;span id="sour450"  style="font-family:宋体;"&gt;&lt;span id="sour451" lang="zh-CN"&gt;，静态的检查确保&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour452"  style="font-family:宋体;"&gt;&lt;span id="sour453" lang="zh-CN"&gt;不通过尾随指针访问内存）。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour454"&gt;&lt;span id="sour455"  style="font-family:宋体;"&gt;&lt;span id="sour456" lang="zh-CN"&gt;每个&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour457"  style="font-family:宋体;"&gt;&lt;span id="sour458" lang="zh-CN"&gt;有其自己的收集器来回收其对象空间中的对象。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h2 id="sour459" class="western"&gt;&lt;span id="sour460"  style="font-family:宋体;"&gt;&lt;span id="sour461" lang="zh-CN"&gt;代码密封&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt; &lt;p id="sour462"&gt;SIPs&lt;span id="sour463"  style="font-family:宋体;"&gt;&lt;span id="sour464" lang="zh-CN"&gt;含有的代码在运行时刻是密封的，不能动态载入和创建代码。动态载入往往用在诸如载入软件插件的环境中。糟糕的插件可能导致程序崩溃。动态创建代码往往用于某些语言的自省&lt;a id="sour465" class="sdfootnoteanc" name="sdfootnote3anc" href="#sdfootnote3sym"&gt;&lt;sup id="sour466"&gt;3&lt;/sup&gt;&lt;/a&gt;（&lt;/span&gt;&lt;/span&gt;reflection&lt;span id="sour467"  style="font-family:宋体;"&gt;&lt;span id="sour468" lang="zh-CN"&gt;）机制。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour469"&gt;&lt;span id="sour470"  style="font-family:宋体;"&gt;&lt;span id="sour471" lang="zh-CN"&gt;原需要动态载入的代码，现需要运行在子&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour472"  style="font-family:宋体;"&gt;&lt;span id="sour473" lang="zh-CN"&gt;，通过&lt;/span&gt;&lt;/span&gt;channel&lt;span id="sour474"  style="font-family:宋体;"&gt;&lt;span id="sour475" lang="zh-CN"&gt;使用父&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour476"  style="font-family:宋体;"&gt;&lt;span id="sour477" lang="zh-CN"&gt;的服务而不是调用函数。&lt;/span&gt;&lt;/span&gt;Singularity&lt;span id="sour478"  style="font-family:宋体;"&gt;&lt;span id="sour479" lang="zh-CN"&gt;中动态创建代码的自省机制被移除，取而代之的是编译时刻的自省（&lt;/span&gt;&lt;/span&gt;Compile-Time Reflection&lt;span id="sour480"  style="font-family:宋体;"&gt;&lt;span id="sour481" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt;CTR&lt;span id="sour482"  style="font-family:宋体;"&gt;&lt;span id="sour483" lang="zh-CN"&gt;）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour484"&gt;&lt;span id="sour485"  style="font-family:宋体;"&gt;&lt;span id="sour486" lang="zh-CN"&gt;密封代码提供了如下好处：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul id="sour487"&gt;  &lt;li id="sour488"&gt;&lt;p id="sour489"&gt;&lt;span id="sour490"  style="font-family:宋体;"&gt;&lt;span id="sour491" lang="zh-CN"&gt;使得程序分析工具能够静态侦测程序的缺陷&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour492"&gt;&lt;p id="sour493"&gt;&lt;span id="sour494"  style="font-family:宋体;"&gt;&lt;span id="sour495" lang="zh-CN"&gt;通过代码内容来标记一个&lt;/span&gt;&lt;/span&gt;SIP&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour496"&gt;&lt;p id="sour497"&gt;&lt;span id="sour498"  style="font-family:宋体;"&gt;&lt;span id="sour499" lang="zh-CN"&gt;在运行时刻执行环境中，不需要复制&lt;/span&gt;&lt;/span&gt;OS&lt;span id="sour500"  style="font-family:宋体;"&gt;&lt;span id="sour501" lang="zh-CN"&gt;风格的访问控制。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;h1 id="sour502" class="western"&gt;&lt;span id="sour503"  style="font-family:黑体;"&gt;&lt;span id="sour504" lang="zh-CN"&gt;基于&lt;/span&gt;&lt;/span&gt;Contract&lt;span id="sour505"  style="font-family:黑体;"&gt;&lt;span id="sour506" lang="zh-CN"&gt;的&lt;/span&gt;&lt;/span&gt;Channel&lt;/h1&gt; &lt;p id="sour507"&gt;&lt;span id="sour508"  style="font-family:宋体;"&gt;&lt;span id="sour509" lang="zh-CN"&gt;在&lt;/span&gt;&lt;/span&gt;singularity&lt;span id="sour510"  style="font-family:宋体;"&gt;&lt;span id="sour511" lang="zh-CN"&gt;中，&lt;/span&gt;&lt;/span&gt;Channel&lt;span id="sour512"  style="font-family:宋体;"&gt;&lt;span id="sour513" lang="zh-CN"&gt;是唯一支持的&lt;/span&gt;&lt;/span&gt;IPC&lt;span id="sour514"  style="font-family:宋体;"&gt;&lt;span id="sour515" lang="zh-CN"&gt;手段。&lt;/span&gt;&lt;/span&gt;Channel&lt;span id="sour516"  style="font-family:宋体;"&gt;&lt;span id="sour517" lang="zh-CN"&gt;提供无损、有序的消息队列。&lt;/span&gt;&lt;/span&gt;Channel&lt;span id="sour518"  style="font-family:宋体;"&gt;&lt;span id="sour519" lang="zh-CN"&gt;是双向的带有两个终点的队列管道。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour520"&gt;&lt;span id="sour521"  style="font-family:宋体;"&gt;&lt;span id="sour522" lang="zh-CN"&gt;终点有权能，比如只有接收了来自另一&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour523"  style="font-family:宋体;"&gt;&lt;span id="sour524" lang="zh-CN"&gt;指向文件系统的终点当前&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour525"  style="font-family:宋体;"&gt;&lt;span id="sour526" lang="zh-CN"&gt;才能访问文件。&lt;/span&gt;&lt;/span&gt;Channel&lt;span id="sour527"  style="font-family:宋体;"&gt;&lt;span id="sour528" lang="zh-CN"&gt;终点或者在程序启动是获得（由基于清单&lt;/span&gt;&lt;/span&gt;(manifest)&lt;span id="sour529"  style="font-family:宋体;"&gt;&lt;span id="sour530" lang="zh-CN"&gt;的配置文件获得），或者通过已有的&lt;/span&gt;&lt;/span&gt;channels&lt;span id="sour531"  style="font-family:宋体;"&gt;&lt;span id="sour532" lang="zh-CN"&gt;中某个消息获得。因为传递的消息必须在交换堆中，故终点驻留在交换堆。这意味着每次终点只明确的属于一个线程（&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour533"  style="font-family:宋体;"&gt;&lt;span id="sour534" lang="zh-CN"&gt;至多只有一个指向交换堆中一块的指针）。每个终点有一个接收队列，向一个终点发送消息，就是把该消息放入该终点的接收队列中。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour535"&gt;Contract&lt;span id="sour536"  style="font-family:宋体;"&gt;&lt;span id="sour537" lang="zh-CN"&gt;是描述&lt;/span&gt;&lt;/span&gt;channel&lt;span id="sour538"  style="font-family:宋体;"&gt;&lt;span id="sour539" lang="zh-CN"&gt;上的通信。其由消息申明（规定参数的数目和类型，及&lt;/span&gt;&lt;/span&gt;(&lt;span id="sour540"  style="font-family:宋体;"&gt;&lt;span id="sour541" lang="zh-CN"&gt;可选的&lt;/span&gt;&lt;/span&gt;)&lt;span id="sour542"  style="font-family:宋体;"&gt;&lt;span id="sour543" lang="zh-CN"&gt;消息的传递方向）和一组命名的协议状态组成。借助&lt;/span&gt;&lt;/span&gt;Contract&lt;span id="sour544"  style="font-family:宋体;"&gt;&lt;span id="sour545" lang="zh-CN"&gt;，&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour546"  style="font-family:宋体;"&gt;&lt;span id="sour547" lang="zh-CN"&gt;之间的通信是有效、可分析的。编译器可以静态地验证发送和接收操作，确保&lt;/span&gt;&lt;/span&gt;channel&lt;span id="sour548"  style="font-family:宋体;"&gt;&lt;span id="sour549" lang="zh-CN"&gt;不进入错误的协议状态。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour550"&gt;Contract&lt;span id="sour551"  style="font-family:宋体;"&gt;&lt;span id="sour552" lang="zh-CN"&gt;可以看成对通信这种工作模式的程序正确性的断言，也可看作基于任务访问控制（&lt;/span&gt;&lt;/span&gt;Task-Based Access Control&lt;span id="sour553"  style="font-family:宋体;"&gt;&lt;span id="sour554" lang="zh-CN"&gt;）中对工作流的限定。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour555"&gt;Channel&lt;span id="sour556"  style="font-family:宋体;"&gt;&lt;span id="sour557" lang="zh-CN"&gt;遵循有限（&lt;/span&gt;&lt;/span&gt;finiteness&lt;span id="sour558"  style="font-family:宋体;"&gt;&lt;span id="sour559" lang="zh-CN"&gt;）属性：&lt;/span&gt;&lt;/span&gt;contract&lt;span id="sour560"  style="font-family:宋体;"&gt;&lt;span id="sour561" lang="zh-CN"&gt;的每个状态中，至少含有一对接收和发送操作——终点不能不等待消息而发送无限量的数据。这样作允许在终点中静态分配接收缓冲队列。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour562"&gt;Channel&lt;span id="sour563"  style="font-family:宋体;"&gt;&lt;span id="sour564" lang="zh-CN"&gt;的另一个好处隔离了消息传递的实现，比如在同一特权级同一地址空间中的两个&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour565"  style="font-family:宋体;"&gt;&lt;span id="sour566" lang="zh-CN"&gt;之间，实现成零拷贝：发送者通过在接收终点中，放入指向消息（交换堆中）的指针，来传递交换堆中的消息的所有者关系。不同硬件保护域之间的通信，可以实现为数据拷贝或者内存页的&lt;/span&gt;&lt;/span&gt;COW&lt;span id="sour567"  style="font-family:宋体;"&gt;&lt;span id="sour568" lang="zh-CN"&gt;映射。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h1 id="sour569" class="western"&gt;&lt;span id="sour570"  style="font-family:黑体;"&gt;&lt;span id="sour571" lang="zh-CN"&gt;基于清单的程序（&lt;/span&gt;&lt;/span&gt;Manifest-Based Programs&lt;span id="sour572"  style="font-family:黑体;"&gt;&lt;span id="sour573" lang="zh-CN"&gt;）&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt; &lt;p id="sour574"&gt;MBP&lt;span id="sour575"  style="font-family:宋体;"&gt;&lt;span id="sour576" lang="zh-CN"&gt;是一个程序：通过静态的清单（&lt;/span&gt;&lt;/span&gt;manifest&lt;span id="sour577"  style="font-family:宋体;"&gt;&lt;span id="sour578" lang="zh-CN"&gt;）定义。在&lt;/span&gt;&lt;/span&gt;Singularity&lt;span id="sour579"  style="font-family:宋体;"&gt;&lt;span id="sour580" lang="zh-CN"&gt;中，执行程序实际上是调用清单而非调用可执行文件。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour581"&gt;&lt;span id="sour582"  style="font-family:宋体;"&gt;&lt;span id="sour583" lang="zh-CN"&gt;清单是对程序的描述，是一个机器可检查的，对&lt;/span&gt;&lt;/span&gt;MBP&lt;span id="sour584"  style="font-family:宋体;"&gt;&lt;span id="sour585" lang="zh-CN"&gt;期望行为的说明（描述了一个&lt;/span&gt;&lt;/span&gt;MBP&lt;span id="sour586"  style="font-family:宋体;"&gt;&lt;span id="sour587" lang="zh-CN"&gt;代码资源，需要的系统资源，期望的行为能力和对其他程序的依赖）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour588"&gt;&lt;span id="sour589"  style="font-family:宋体;"&gt;&lt;span id="sour590" lang="zh-CN"&gt;清单用来进行静态&lt;/span&gt;&lt;/span&gt;/&lt;span id="sour591"  style="font-family:宋体;"&gt;&lt;span id="sour592" lang="zh-CN"&gt;动态验证&lt;/span&gt;&lt;/span&gt;MBP&lt;span id="sour593"  style="font-family:宋体;"&gt;&lt;span id="sour594" lang="zh-CN"&gt;的属性。验证包括类型和内存安全、不含特权模式指令、与&lt;/span&gt;&lt;/span&gt;channel contracts&lt;span id="sour595"  style="font-family:宋体;"&gt;&lt;span id="sour596" lang="zh-CN"&gt;一致（申明&lt;/span&gt;&lt;/span&gt;contracts&lt;span id="sour597"  style="font-family:宋体;"&gt;&lt;span id="sour598" lang="zh-CN"&gt;的用法）、正确的对应版本&lt;/span&gt;&lt;/span&gt;ABI&lt;span id="sour599"  style="font-family:宋体;"&gt;&lt;span id="sour600" lang="zh-CN"&gt;的用法。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour601"&gt;MBP&lt;span id="sour602"  style="font-family:宋体;"&gt;&lt;span id="sour603" lang="zh-CN"&gt;安装到系统后，清单用来标识&lt;/span&gt;&lt;/span&gt;MBP&lt;span id="sour604"  style="font-family:宋体;"&gt;&lt;span id="sour605" lang="zh-CN"&gt;代码、验证其符合系统的安全需求，确保&lt;/span&gt;&lt;/span&gt;MBP&lt;span id="sour606"  style="font-family:宋体;"&gt;&lt;span id="sour607" lang="zh-CN"&gt;对系统的所有依赖得到满足，防止&lt;/span&gt;&lt;/span&gt;MBP&lt;span id="sour608"  style="font-family:宋体;"&gt;&lt;span id="sour609" lang="zh-CN"&gt;的安装干扰先前安装的&lt;/span&gt;&lt;/span&gt;MBP&lt;span id="sour610"  style="font-family:宋体;"&gt;&lt;span id="sour611" lang="zh-CN"&gt;的执行。执行前，清单被用来发现&lt;/span&gt;&lt;/span&gt;MBP&lt;span id="sour612"  style="font-family:宋体;"&gt;&lt;span id="sour613" lang="zh-CN"&gt;相关参数的配置，并对参数进行限制。&lt;/span&gt;&lt;/span&gt;MBP&lt;span id="sour614"  style="font-family:宋体;"&gt;&lt;span id="sour615" lang="zh-CN"&gt;执行时，清单指导代码载入&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour616"  style="font-family:宋体;"&gt;&lt;span id="sour617" lang="zh-CN"&gt;执行、新的&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour618"  style="font-family:宋体;"&gt;&lt;span id="sour619" lang="zh-CN"&gt;与其他&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour620"  style="font-family:宋体;"&gt;&lt;span id="sour621" lang="zh-CN"&gt;之间的&lt;/span&gt;&lt;/span&gt;Channel&lt;span id="sour622"  style="font-family:宋体;"&gt;&lt;span id="sour623" lang="zh-CN"&gt;、对系统资源访问的许可。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour624"&gt;&lt;span id="sour625"  style="font-family:宋体;"&gt;&lt;span id="sour626" lang="zh-CN"&gt;清单可以内联到程序中，也可分离出来（被多个程序所共享）。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour627"&gt;&lt;span id="sour628"  style="font-family:宋体;"&gt;&lt;span id="sour629" lang="zh-CN"&gt;清单（一部分）类似&lt;/span&gt;&lt;/span&gt;SELinux&lt;span id="sour630"  style="font-family:宋体;"&gt;&lt;span id="sour631" lang="zh-CN"&gt;中的规则，在操作系统的粒度下，对程序进行了限制。可以看在是在&lt;/span&gt;&lt;/span&gt;OS&lt;span id="sour632"  style="font-family:宋体;"&gt;&lt;span id="sour633" lang="zh-CN"&gt;粒度下程序正确性的断言。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour634"&gt;&lt;span id="sour635"  style="font-family:宋体;"&gt;&lt;span id="sour636" lang="zh-CN"&gt;清单另外还对&lt;/span&gt;&lt;/span&gt;MBP&lt;span id="sour637"  style="font-family:宋体;"&gt;&lt;span id="sour638" lang="zh-CN"&gt;正常运行所需的依赖关系检查，确保了&lt;/span&gt;&lt;/span&gt;MBP&lt;span id="sour639"  style="font-family:宋体;"&gt;&lt;span id="sour640" lang="zh-CN"&gt;的可靠性。在&lt;/span&gt;&lt;/span&gt;Windows&lt;span id="sour641"  style="font-family:宋体;"&gt;&lt;span id="sour642" lang="zh-CN"&gt;环境中这部分工作由安装程序所完成，在&lt;/span&gt;&lt;/span&gt;Linux&lt;span id="sour643"  style="font-family:宋体;"&gt;&lt;span id="sour644" lang="zh-CN"&gt;中，则由各自发行版的包管理程序负责。清单对程序相关参数的配置的检查，这一般由执行程序负责的。之所以独立出上述两点，可以明确的保证程序设计时考虑到相关的检查，使得程序结构更加清晰。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour645"&gt;&lt;span id="sour646"  style="font-family:宋体;"&gt;&lt;span id="sour647" lang="zh-CN"&gt;如果比较当前普遍的基于杀毒软件构筑的安全体系，杀毒软件负责对将运行的程序进行验证——不含有病毒库中的特征，且没有触发启发式规则报警。为了让杀毒软件更加有效，可以对待验证的程序要求含有“证据”表明其清白。在&lt;/span&gt;&lt;/span&gt;Singularity&lt;span id="sour648"  style="font-family:宋体;"&gt;&lt;span id="sour649" lang="zh-CN"&gt;中，这种“证据”即是包含在高级语言&lt;/span&gt;&lt;/span&gt;Sing#&lt;span id="sour650"  style="font-family:宋体;"&gt;&lt;span id="sour651" lang="zh-CN"&gt;中，而“病毒库”则对应了清单。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h1 id="sour652" class="western"&gt;Singularity&lt;span id="sour653"  style="font-family:黑体;"&gt;&lt;span id="sour654" lang="zh-CN"&gt;内核&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt; &lt;p id="sour655"&gt;Singularity&lt;span id="sour656"  style="font-family:宋体;"&gt;&lt;span id="sour657" lang="zh-CN"&gt;内核是个微内核，提供基本抽象——&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour658"  style="font-family:宋体;"&gt;&lt;span id="sour659" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;Contract&lt;span id="sour660"  style="font-family:宋体;"&gt;&lt;span id="sour661" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;MBP &lt;span id="sour662"  style="font-family:宋体;"&gt;&lt;span id="sour663" lang="zh-CN"&gt;，负责调度、对硬件资源的特权访问&lt;a id="sour664" class="sdfootnoteanc" name="sdfootnote4anc" href="#sdfootnote4sym"&gt;&lt;sup id="sour665"&gt;4&lt;/sup&gt;&lt;/a&gt;、系统内存、线程和线程栈，创建&lt;/span&gt;&lt;/span&gt;/&lt;span id="sour666"  style="font-family:宋体;"&gt;&lt;span id="sour667" lang="zh-CN"&gt;销毁&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour668"  style="font-family:宋体;"&gt;&lt;span id="sour669" lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;Channel&lt;span id="sour670"  style="font-family:宋体;"&gt;&lt;span id="sour671" lang="zh-CN"&gt;。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour672"&gt;&lt;span id="sour673"  style="font-family:宋体;"&gt;&lt;span id="sour674" lang="zh-CN"&gt;内核通过&lt;/span&gt;&lt;/span&gt;ABI&lt;span id="sour675"  style="font-family:宋体;"&gt;&lt;span id="sour676" lang="zh-CN"&gt;向&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour677"  style="font-family:宋体;"&gt;&lt;span id="sour678" lang="zh-CN"&gt;提供内存服务。默认状态下，&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour679"  style="font-family:宋体;"&gt;&lt;span id="sour680" lang="zh-CN"&gt;只能操作其自身的状态、停止&lt;/span&gt;&lt;/span&gt;/&lt;span id="sour681"  style="font-family:宋体;"&gt;&lt;span id="sour682" lang="zh-CN"&gt;开始子&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour683"  style="font-family:宋体;"&gt;&lt;span id="sour684" lang="zh-CN"&gt;（&lt;/span&gt;&lt;/span&gt;ABI&lt;span id="sour685"  style="font-family:宋体;"&gt;&lt;span id="sour686" lang="zh-CN"&gt;调用只影响调用方的状态，如&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour687"  style="font-family:宋体;"&gt;&lt;span id="sour688" lang="zh-CN"&gt;同步对象不能够跨越&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour689"  style="font-family:宋体;"&gt;&lt;span id="sour690" lang="zh-CN"&gt;访问）。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour691"&gt;ABI &lt;span id="sour692"  style="font-family:宋体;"&gt;&lt;span id="sour693" lang="zh-CN"&gt;强制标明版本，语义明确。没有&lt;/span&gt;&lt;/span&gt;ioctl&lt;span id="sour694"  style="font-family:宋体;"&gt;&lt;span id="sour695" lang="zh-CN"&gt;或者&lt;/span&gt;&lt;/span&gt;CreateFile&lt;span id="sour696"  style="font-family:宋体;"&gt;&lt;span id="sour697" lang="zh-CN"&gt;之类的模糊语义的函数。在&lt;/span&gt;&lt;/span&gt;SELinux&lt;span id="sour698"  style="font-family:宋体;"&gt;&lt;span id="sour699" lang="zh-CN"&gt;一节的分析中得到的结论：明晰的接口有益于细化访问控制的粒度。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour700"&gt;SIP&lt;span id="sour701"  style="font-family:宋体;"&gt;&lt;span id="sour702" lang="zh-CN"&gt;通过&lt;/span&gt;&lt;/span&gt;channels&lt;span id="sour703"  style="font-family:宋体;"&gt;&lt;span id="sour704" lang="zh-CN"&gt;而非&lt;/span&gt;&lt;/span&gt;ABI&lt;span id="sour705"  style="font-family:宋体;"&gt;&lt;span id="sour706" lang="zh-CN"&gt;函数来获得高级系统服务（如访问文件、发送和接受网络包）。 &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="sour707"&gt;ABI&lt;span id="sour708"  style="font-family:宋体;"&gt;&lt;span id="sour709" lang="zh-CN"&gt;调用开销比函数调用开销大些：他们必须区分&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour710"  style="font-family:宋体;"&gt;&lt;span id="sour711" lang="zh-CN"&gt;的垃圾收集空间和内核垃圾收集空间。 &lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p id="sour712"&gt;&lt;span id="sour713"  style="font-family:宋体;"&gt;&lt;span id="sour714" lang="zh-CN"&gt;抽象内核对象（如互斥、线程）的导出为强类型化的不透明的的句柄（&lt;/span&gt;&lt;/span&gt;handle&lt;span id="sour715"  style="font-family:宋体;"&gt;&lt;span id="sour716" lang="zh-CN"&gt;表中各槽）。当&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour717"  style="font-family:宋体;"&gt;&lt;span id="sour718" lang="zh-CN"&gt;终结时，相应的&lt;/span&gt;&lt;/span&gt;handle&lt;span id="sour719"  style="font-family:宋体;"&gt;&lt;span id="sour720" lang="zh-CN"&gt;表中的槽被回收。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h1 id="sour721" class="western"&gt;Singularity&lt;span id="sour722"  style="font-family:黑体;"&gt;&lt;span id="sour723" lang="zh-CN"&gt;的安全&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt; &lt;h2 id="sour724" class="western"&gt;&lt;span id="sour725"  style="font-family:宋体;"&gt;&lt;span id="sour726" lang="zh-CN"&gt;安装时刻的安全机制&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt; &lt;p id="sour727"&gt;&lt;span id="sour728"  style="font-family:宋体;"&gt;&lt;span id="sour729" lang="zh-CN"&gt;在&lt;/span&gt;&lt;/span&gt;singularity&lt;span id="sour730"  style="font-family:宋体;"&gt;&lt;span id="sour731" lang="zh-CN"&gt;的安全模型中，核心是程序。&lt;/span&gt;&lt;/span&gt;Singularity&lt;span id="sour732"  style="font-family:宋体;"&gt;&lt;span id="sour733" lang="zh-CN"&gt;为系统中的所有的服务（如设备驱动）、文件系统提供了单一的、树状的名空间。对程序发布者的信任体现在名上。例如，系统策略可以指定，只有由&lt;/span&gt;&lt;/span&gt;Microsoft&lt;span id="sour734"  style="font-family:宋体;"&gt;&lt;span id="sour735" lang="zh-CN"&gt;签发的程序可以占有某个&lt;/span&gt;&lt;/span&gt;Microsoft&lt;span id="sour736"  style="font-family:宋体;"&gt;&lt;span id="sour737" lang="zh-CN"&gt;专用的名空间，例如所有微软签发的程序位于&lt;/span&gt;&lt;/span&gt;/app/microsoft/&lt;span id="sour738"  style="font-family:宋体;"&gt;&lt;span id="sour739" lang="zh-CN"&gt;下&lt;a id="sour740" class="sdfootnoteanc" name="sdfootnote5anc" href="#sdfootnote5sym"&gt;&lt;sup id="sour741"&gt;5&lt;/sup&gt;&lt;/a&gt;。名空间也可按照对程序的信任度（根据系统策略）来使用。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour742"&gt;&lt;span id="sour743"  style="font-family:宋体;"&gt;&lt;span id="sour744" lang="zh-CN"&gt;可以看到，上述的安全策略基于路径。由于有安全策略对名空间进行了必要的保护，故此处的安全的。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour745"&gt;&lt;span id="sour746"  style="font-family:宋体;"&gt;&lt;span id="sour747" lang="zh-CN"&gt;某些安全强制在安装时刻进行。&lt;/span&gt;&lt;/span&gt;Singularity&lt;span id="sour748"  style="font-family:宋体;"&gt;&lt;span id="sour749" lang="zh-CN"&gt;对资源的访问通过&lt;/span&gt;&lt;/span&gt;Channel&lt;span id="sour750"  style="font-family:宋体;"&gt;&lt;span id="sour751" lang="zh-CN"&gt;完成，故系统安装器可以通过静态管理程序的&lt;/span&gt;&lt;/span&gt;Channel&lt;span id="sour752"  style="font-family:宋体;"&gt;&lt;span id="sour753" lang="zh-CN"&gt;来实现对资源的控制。每个程序的需求在静态的清单中指明。系统安装器通过提供给程序的一个配置，从而在运行时刻实例化&lt;/span&gt;&lt;/span&gt;Channel&lt;span id="sour754"  style="font-family:宋体;"&gt;&lt;span id="sour755" lang="zh-CN"&gt;，来解决程序清单中所有未绑定的&lt;/span&gt;&lt;/span&gt;Channel&lt;span id="sour756"  style="font-family:宋体;"&gt;&lt;span id="sour757" lang="zh-CN"&gt;。这种静态的检查有时能用来实现最小特权的安全环境，例如，如果某个程序仅负责在本地处理，安装器将不提供对网络的直接的&lt;/span&gt;&lt;/span&gt;Channel&lt;span id="sour758"  style="font-family:宋体;"&gt;&lt;span id="sour759" lang="zh-CN"&gt;。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h2 id="sour760" class="western"&gt;&lt;span id="sour761"  style="font-family:宋体;"&gt;&lt;span id="sour762" lang="zh-CN"&gt;动态访问控制&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt; &lt;p id="sour763"&gt;Singularity&lt;span id="sour764"  style="font-family:宋体;"&gt;&lt;span id="sour765" lang="zh-CN"&gt;程序在运行时刻以一个或多个进程的形式实例化。每个进程由于调用而拥有一个不可更改的标识。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour766"&gt;&lt;span id="sour767"  style="font-family:宋体;"&gt;&lt;span id="sour768" lang="zh-CN"&gt;进程创建所有&lt;/span&gt;&lt;/span&gt;channel&lt;span id="sour769"  style="font-family:宋体;"&gt;&lt;span id="sour770" lang="zh-CN"&gt;终点对，用其标识来初始化终点对。当&lt;/span&gt;&lt;/span&gt;channel&lt;span id="sour771"  style="font-family:宋体;"&gt;&lt;span id="sour772" lang="zh-CN"&gt;的一个终点传递给另一进程是，接收进程便获得另一方进程的标识。当对共享资源进行动态的访问控制决策时，这个标识与促使该请求进程执行的调用链中的程序的标识，组成访问控制决策中的主体。（在某些情形下，如使用自有认证功能的服务器程序，将忽视调用链）调用历史是以进程为粒度追踪的。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour773"&gt;&lt;span id="sour774"  style="font-family:宋体;"&gt;&lt;span id="sour775" lang="zh-CN"&gt;在这个环境中，用户表现为程序的角色。认证用户的程序（比如通过密码或者证书）参与标识的合成。因此，远程登录的用户登录后的标识与本地通过智能卡认证后的标识不同。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour776"&gt;Singularity&lt;span id="sour777"  style="font-family:宋体;"&gt;&lt;span id="sour778" lang="zh-CN"&gt;的合成标识由文本字符串表示，例如：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour779"&gt;/sys/login@/users/fred + /apps/ms/word  &lt;/p&gt; &lt;p id="sour780"&gt;&lt;span id="sour781"  style="font-family:宋体;"&gt;&lt;span id="sour782" lang="zh-CN"&gt;这个字符串可能代表了系统登录程序（用户“&lt;/span&gt;&lt;/span&gt;fred”&lt;span id="sour783"  style="font-family:宋体;"&gt;&lt;span id="sour784" lang="zh-CN"&gt;通过密码登录）调用&lt;/span&gt;&lt;/span&gt;Microsoft word&lt;span id="sour785"  style="font-family:宋体;"&gt;&lt;span id="sour786" lang="zh-CN"&gt;程序。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour787"&gt;&lt;span id="sour788"  style="font-family:宋体;"&gt;&lt;span id="sour789" lang="zh-CN"&gt;与&lt;/span&gt;&lt;/span&gt;SELinux&lt;span id="sour790"  style="font-family:宋体;"&gt;&lt;span id="sour791" lang="zh-CN"&gt;相比，在&lt;/span&gt;&lt;/span&gt;SELinux&lt;span id="sour792"  style="font-family:宋体;"&gt;&lt;span id="sour793" lang="zh-CN"&gt;中，用户角色对登录程序的类型作出贡献，而之后登录程序类型影响其运行的程序：或继承登录程序的类型（默认情形下）或依据转换规则转换到新的类型下。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour794"&gt;&lt;span id="sour795"  style="font-family:宋体;"&gt;&lt;span id="sour796" lang="zh-CN"&gt;在访问控制列表处，&lt;/span&gt;&lt;/span&gt;Singularity&lt;span id="sour797"  style="font-family:宋体;"&gt;&lt;span id="sour798" lang="zh-CN"&gt;使用访问控制表达式（&lt;/span&gt;&lt;/span&gt;access control expressions&lt;span id="sour799"  style="font-family:宋体;"&gt;&lt;span id="sour800" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt;ACEs&lt;span id="sour801"  style="font-family:宋体;"&gt;&lt;span id="sour802" lang="zh-CN"&gt;）来定义匹配标识的模式。这些表达式可以非常灵活。例如，可以指定只有&lt;/span&gt;&lt;/span&gt;Word&lt;span id="sour803"  style="font-family:宋体;"&gt;&lt;span id="sour804" lang="zh-CN"&gt;能读某个模式保护的文件或者“&lt;/span&gt;&lt;/span&gt;fred”&lt;span id="sour805"  style="font-family:宋体;"&gt;&lt;span id="sour806" lang="zh-CN"&gt;运行的任何&lt;/span&gt;&lt;/span&gt;Microsoft&lt;span id="sour807"  style="font-family:宋体;"&gt;&lt;span id="sour808" lang="zh-CN"&gt;的程序能够访问它。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour809"&gt;&lt;span id="sour810"  style="font-family:宋体;"&gt;&lt;span id="sour811" lang="zh-CN"&gt;可以设想，通过定义可被继承的策略规则，大量的不同的&lt;/span&gt;&lt;/span&gt;ACEs&lt;span id="sour812"  style="font-family:宋体;"&gt;&lt;span id="sour813" lang="zh-CN"&gt;将被一小组规则代替。这特性将在结构化的环境中，如文件系统中极为有效。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h2 id="sour814" class="western"&gt;&lt;span id="sour815"  style="font-family:宋体;"&gt;&lt;span id="sour816" lang="zh-CN"&gt;更多的运行时刻安全机制&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt; &lt;p id="sour817"&gt;Channel contract&lt;span id="sour818"  style="font-family:宋体;"&gt;&lt;span id="sour819" lang="zh-CN"&gt;可以导出子类&lt;a id="sour820" class="sdfootnoteanc" name="sdfootnote6anc" href="#sdfootnote6sym"&gt;&lt;sup id="sour821"&gt;6&lt;/sup&gt;&lt;/a&gt;，来指定终点持有者能发送哪些消息。例如，&lt;/span&gt;&lt;/span&gt;TcpConnectionContract&lt;span id="sour822"  style="font-family:宋体;"&gt;&lt;span id="sour823" lang="zh-CN"&gt;的一个子类可以只描述某个主体许可的方法，来只允许该主体监听而非连接。这样，一个子类对应一组权限。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour824"&gt;&lt;span id="sour825"  style="font-family:宋体;"&gt;&lt;span id="sour826" lang="zh-CN"&gt;如上所描述，在默认的进程调用情形下，新的进程的标识是一个合成的标识，以调用者 &lt;/span&gt;&lt;/span&gt;+ &lt;span id="sour827"  style="font-family:宋体;"&gt;&lt;span id="sour828" lang="zh-CN"&gt;被调用者的形式。进程调用外，至少在两种场景下，进程也许把其部分标识“借给”其他进程：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul id="sour829"&gt;  &lt;li id="sour830"&gt;&lt;p id="sour831"&gt;&lt;span id="sour832"  style="font-family:宋体;"&gt;&lt;span id="sour833" lang="zh-CN"&gt;进程许可其合作进程，给合作进程以联合的标识&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour834"&gt;&lt;p id="sour835"&gt;&lt;span id="sour836"  style="font-family:宋体;"&gt;&lt;span id="sour837" lang="zh-CN"&gt;系统策略许可新的服务来决策对某个已有服务的访问，这个负责访问控制决策的服务需要代理原始客户。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="sour838"&gt;&lt;span id="sour839"  style="font-family:宋体;"&gt;&lt;span id="sour840" lang="zh-CN"&gt;在上述两种情形下，通过专门地“赐予”&lt;/span&gt;&lt;/span&gt;Channel&lt;span id="sour841"  style="font-family:宋体;"&gt;&lt;span id="sour842" lang="zh-CN"&gt;终点，来支持标识继承。一个“被赐予”的终点允许在某些受限的上下文中，接收者继承合作者的标识&lt;/span&gt;&lt;/span&gt;.&lt;/p&gt; &lt;p id="sour843"&gt;&lt;span id="sour844"  style="font-family:宋体;"&gt;&lt;span id="sour845" lang="zh-CN"&gt;持有多个标识的进程可能令人混乱，造成误用。故大多数情形下，进程尽可能只使用一个标识。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h1 id="sour846" class="western"&gt;Singularity&lt;span id="sour847"  style="font-family:黑体;"&gt;&lt;span id="sour848" lang="zh-CN"&gt;的可信基&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt; &lt;p id="sour849"&gt;&lt;span id="sour850"  style="font-family:宋体;"&gt;&lt;span id="sour851" lang="zh-CN"&gt;回来之前的一个问题上来，&lt;/span&gt;&lt;/span&gt;Singularity&lt;span id="sour852"  style="font-family:宋体;"&gt;&lt;span id="sour853" lang="zh-CN"&gt;的安全是多方面技术合作的结果，这样便引入多方面的依赖，是否也随之引入了安全隐患呢？答案是否定的。在&lt;/span&gt;&lt;/span&gt;Singularity&lt;span id="sour854"  style="font-family:宋体;"&gt;&lt;span id="sour855" lang="zh-CN"&gt;中可信基由&lt;/span&gt;&lt;/span&gt;4&lt;span id="sour856"  style="font-family:宋体;"&gt;&lt;span id="sour857" lang="zh-CN"&gt;部分组成：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul id="sour858"&gt;  &lt;li id="sour859"&gt;&lt;p id="sour860"&gt;&lt;span id="sour861"  style="font-family:宋体;"&gt;&lt;span id="sour862" lang="zh-CN"&gt;硬件抽象层&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour863"&gt;&lt;p id="sour864"&gt;&lt;span id="sour865"  style="font-family:宋体;"&gt;&lt;span id="sour866" lang="zh-CN"&gt;内核部分（使用非安全编程语言编写）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour867"&gt;&lt;p id="sour868"&gt;&lt;span id="sour869"  style="font-family:宋体;"&gt;&lt;span id="sour870" lang="zh-CN"&gt;运行时刻系统部分&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour871"&gt;&lt;p id="sour872"&gt;&lt;span id="sour873"  style="font-family:宋体;"&gt;&lt;span id="sour874" lang="zh-CN"&gt;编译器&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="sour875"&gt;&lt;span id="sour876"  style="font-family:宋体;"&gt;&lt;span id="sour877" lang="zh-CN"&gt;其中编译器是个很庞大的部分，将来通过引入类型化的汇编语言（&lt;/span&gt;&lt;/span&gt;typed assembly language&lt;span id="sour878"  style="font-family:宋体;"&gt;&lt;span id="sour879" lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt;TAL&lt;span id="sour880"  style="font-family:宋体;"&gt;&lt;span id="sour881" lang="zh-CN"&gt;），来使用一个相对较小的验证器来验证编译器的输出。从而庞大的编译器部分由较小的验证器部分替代，减小了可信基。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h1 id="sour882" class="western"&gt;&lt;span id="sour883"  style="font-family:黑体;"&gt;&lt;span id="sour884" lang="zh-CN"&gt;总结&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt; &lt;p id="sour885"&gt;&lt;span id="sour886"  style="font-family:宋体;"&gt;&lt;span id="sour887" lang="zh-CN"&gt;通过对硬件接口再次封装（通过安全的编程语言接口），限制了编程语言对内存的访问。这与缓冲溢出防御手段&lt;/span&gt;&lt;/span&gt;2&lt;span id="sour888"  style="font-family:宋体;"&gt;&lt;span id="sour889" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;3&lt;span id="sour890"  style="font-family:宋体;"&gt;&lt;span id="sour891" lang="zh-CN"&gt;类似（限制执行任意地址其的数据），但限制更多。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour892"&gt;&lt;span id="sour893"  style="font-family:宋体;"&gt;&lt;span id="sour894" lang="zh-CN"&gt;得益于这种封装，便于实现软件隔离，在性能上获得收益。开销小的安全手段适应更多的应用场合，从而提升系统平台的安全性能。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour895"&gt;Singularity&lt;span id="sour896"  style="font-family:宋体;"&gt;&lt;span id="sour897" lang="zh-CN"&gt;中强调了程序的可验证性：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul id="sour898"&gt;  &lt;li id="sour899"&gt;&lt;p id="sour900"&gt;&lt;span id="sour901"  style="font-family:宋体;"&gt;&lt;span id="sour902" lang="zh-CN"&gt;通过安全的编程语言确保对内存正确访问的可验证性。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour903"&gt;&lt;p id="sour904"&gt;Contract&lt;span id="sour905"  style="font-family:宋体;"&gt;&lt;span id="sour906" lang="zh-CN"&gt;给予了进程间通信的可验证性。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour907"&gt;&lt;p id="sour908"&gt;&lt;span id="sour909"  style="font-family:宋体;"&gt;&lt;span id="sour910" lang="zh-CN"&gt;清单从系统角度，给予了程序正确行为的可验证性。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="sour911"&gt;&lt;p id="sour912"&gt;SIP&lt;span id="sour913"  style="font-family:宋体;"&gt;&lt;span id="sour914" lang="zh-CN"&gt;代码密封等其他简化手段有助于验证的进行。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="sour915"&gt;&lt;span id="sour916"  style="font-family:宋体;"&gt;&lt;span id="sour917" lang="zh-CN"&gt;这种可验证性源自各种形式的断言。这些断言可能是语言级的，通信级的，系统级的——断言的粒度和时刻（编译时刻、链接时刻、安装时刻及运行时刻）的灵活性使得其最小特权原则得以顺利贯彻。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sour918"&gt;&lt;span id="sour919"  style="font-family:宋体;"&gt;&lt;span id="sour920" lang="zh-CN"&gt;断言在高层的逻辑上进行有助于最小特权，以及友好的开发环境，但也造成安全的实现依赖面太广，使得安全本身的可靠性降低。&lt;/span&gt;&lt;/span&gt;Singularity&lt;span id="sour921"  style="font-family:宋体;"&gt;&lt;span id="sour922" lang="zh-CN"&gt;通过一个小的可信基来验证其他安全的组成部分，从而确保了安全本身的可靠&lt;a id="sour923" class="sdfootnoteanc" name="sdfootnote7anc" href="#sdfootnote7sym"&gt;&lt;sup id="sour924"&gt;7&lt;/sup&gt;&lt;/a&gt;。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;div id="sdfootnote1"&gt;  &lt;p id="sour925" class="sdfootnote"&gt;&lt;a id="sour926" class="sdfootnotesym" name="sdfootnote1sym" href="#sdfootnote1anc"&gt;1&lt;/a&gt;Singularity:  Rethinking the Software Stack&lt;span id="sour927"  style="font-family:宋体;"&gt;&lt;span id="sour928" lang="zh-CN"&gt;，作者：&lt;/span&gt;&lt;/span&gt;Galen  C. Hunt &lt;span id="sour929"  style="font-family:宋体;"&gt;&lt;span id="sour930" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;James  R.  Larus&lt;span id="sour931"  style="font-family:宋体;"&gt;&lt;span id="sour932" lang="zh-CN"&gt;，  &lt;/span&gt;&lt;/span&gt;&lt;a id="sour933" href="http://www.research.microsoft.com/os/singularity/publications/OSR2007_RethinkingSoftwareStack.pdf"&gt;http://www.research.microsoft.com/os/singularity/publications/OSR2007_RethinkingSoftwareStack.pdf&lt;/a&gt;&lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote2"&gt;  &lt;p id="sour934" class="sdfootnote"&gt;&lt;a id="sour935" class="sdfootnotesym" name="sdfootnote2sym" href="#sdfootnote2anc"&gt;2&lt;/a&gt;An  Overview of the Singularity Project&lt;span id="sour936"  style="font-family:宋体;"&gt;&lt;span id="sour937" lang="zh-CN"&gt;，作者：&lt;/span&gt;&lt;/span&gt;Galen  Hunt&lt;span id="sour938"  style="font-family:宋体;"&gt;&lt;span id="sour939" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;James  Larus&lt;span id="sour940"  style="font-family:宋体;"&gt;&lt;span id="sour941" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;Martín  Abadi&lt;span id="sour942"  style="font-family:宋体;"&gt;&lt;span id="sour943" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;Mark  Aiken&lt;span id="sour944"  style="font-family:宋体;"&gt;&lt;span id="sour945" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;Paul  Barham&lt;span id="sour946"  style="font-family:宋体;"&gt;&lt;span id="sour947" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;Manuel  Fähndrich&lt;span id="sour948"  style="font-family:宋体;"&gt;&lt;span id="sour949" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;Chris  Hawblitzel&lt;span id="sour950"  style="font-family:宋体;"&gt;&lt;span id="sour951" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;Orion  Hodson&lt;span id="sour952"  style="font-family:宋体;"&gt;&lt;span id="sour953" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;Steven  Levi&lt;span id="sour954"  style="font-family:宋体;"&gt;&lt;span id="sour955" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;Nick  Murphy&lt;span id="sour956"  style="font-family:宋体;"&gt;&lt;span id="sour957" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;Bjarne  Steensgaard&lt;span id="sour958"  style="font-family:宋体;"&gt;&lt;span id="sour959" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;David  Tarditi&lt;span id="sour960"  style="font-family:宋体;"&gt;&lt;span id="sour961" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;Ted  Wobber&lt;span id="sour962"  style="font-family:宋体;"&gt;&lt;span id="sour963" lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;Brian  Zill&lt;span id="sour964"  style="font-family:宋体;"&gt;&lt;span id="sour965" lang="zh-CN"&gt;，&lt;/span&gt;&lt;/span&gt;&lt;a id="sour966" href="ftp://ftp.research.microsoft.com/pub/tr/TR-2005-135.pdf"&gt;ftp://ftp.research.microsoft.com/pub/tr/TR-2005-135.pdf&lt;/a&gt;&lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote3"&gt;  &lt;p id="sour967" class="sdfootnote"&gt;&lt;a id="sour968" class="sdfootnotesym" name="sdfootnote3sym" href="#sdfootnote3anc"&gt;3&lt;/a&gt;&lt;span id="sour969"  style="font-family:宋体;"&gt;&lt;span id="sour970" lang="zh-CN"&gt;自省（&lt;/span&gt;&lt;/span&gt;reflection&lt;span id="sour971"  style="font-family:宋体;"&gt;&lt;span id="sour972" lang="zh-CN"&gt;），程序根据某些变量，改变自身的代码。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote4"&gt;  &lt;p id="sour973" class="sdfootnote"&gt;&lt;a id="sour974" class="sdfootnotesym" name="sdfootnote4sym" href="#sdfootnote4anc"&gt;4&lt;/a&gt;Singularity&lt;span id="sour975"  style="font-family:宋体;"&gt;&lt;span id="sour976" lang="zh-CN"&gt;中的特权指令的执行：不像一般操作系统中只能放到内核中执行，&lt;/span&gt;&lt;/span&gt;Singularity&lt;span id="sour977"  style="font-family:宋体;"&gt;&lt;span id="sour978" lang="zh-CN"&gt;可以在安检后，放置特权指令到运行在&lt;/span&gt;&lt;/span&gt;SIP&lt;span id="sour979"  style="font-family:宋体;"&gt;&lt;span id="sour980" lang="zh-CN"&gt;中的可信赖的函数中。（通过这种方式来优化&lt;/span&gt;&lt;/span&gt;channel&lt;span id="sour981"  style="font-family:宋体;"&gt;&lt;span id="sour982" lang="zh-CN"&gt;通信、运行时刻性能和垃圾收集）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote5"&gt;  &lt;p id="sour983" class="sdfootnote"&gt;&lt;a id="sour984" class="sdfootnotesym" name="sdfootnote5sym" href="#sdfootnote5anc"&gt;5&lt;/a&gt;&lt;span id="sour985"  style="font-family:宋体;"&gt;&lt;span id="sour986" lang="zh-CN"&gt;这个想法有点类似&lt;/span&gt;&lt;/span&gt;Mac  OS X&lt;span id="sour987"  style="font-family:宋体;"&gt;&lt;span id="sour988" lang="zh-CN"&gt;的&lt;/span&gt;&lt;/span&gt;finder&lt;span id="sour989"  style="font-family:宋体;"&gt;&lt;span id="sour990" lang="zh-CN"&gt;视图&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote6"&gt;  &lt;p id="sour991" class="sdfootnote"&gt;&lt;a id="sour992" class="sdfootnotesym" name="sdfootnote6sym" href="#sdfootnote6anc"&gt;6&lt;/a&gt;&lt;span id="sour993"  style="font-family:宋体;"&gt;&lt;span id="sour994" lang="zh-CN"&gt;在&lt;/span&gt;&lt;/span&gt;SELinux&lt;span id="sour995"  style="font-family:宋体;"&gt;&lt;span id="sour996" lang="zh-CN"&gt;，通过对象类枚举对象的所有方法，然后对不同的主体类型与客体类型（安全上下文）给出此时允许访问的方法（对象类所有方法的一个子集）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt; &lt;div id="sdfootnote7"&gt;  &lt;p id="sour997" class="sdfootnote"&gt;&lt;a id="sour998" class="sdfootnotesym" name="sdfootnote7sym" href="#sdfootnote7anc"&gt;7&lt;/a&gt;&lt;span id="sour999"  style="font-family:宋体;"&gt;&lt;span id="sour1000" lang="zh-CN"&gt;这个思想有点类似&lt;/span&gt;&lt;/span&gt;merkle  tree&lt;span id="sour1001"  style="font-family:宋体;"&gt;&lt;span id="sour1002" lang="zh-CN"&gt;，上一层验证下一层，通过层层验证，验证整个环境&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-8858109268286274149?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/8858109268286274149/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=8858109268286274149' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8858109268286274149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8858109268286274149'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/06/singularity-singularity-singularity.html' title='概念分布式操作系统——Singularity'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-3086739078241060413</id><published>2008-05-26T12:12:00.001+08:00</published><updated>2008-05-26T12:15:15.712+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='章鱼圈'/><title type='text'>残念</title><content type='html'>&lt;p class="western" style="text-indent: 0.32in; margin-bottom: 0in;"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;最是那一低头的温柔，你如丝的长发倾泻在我的手臂边，使我不得不以狼狈的表情掩饰自己期望去亲手感受那种顺滑的冲动。在我眼中，手持一本诗集侧身阅读的你已经超越了整个车厢，超脱出整个世界。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="text-indent: 0.32in; margin-bottom: 0in;"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;我不相信命运，因为我的生活经历告诉我，只有自己能够创造和把握的才是真实可信的存在。可是这次，我真的愿意相信这是命运的安排，才能有幸坐在你的身边。我几乎彻夜未眠，我觉得睡觉是在浪费与你相处与交流的时间。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="text-indent: 0.32in; margin-bottom: 0in;"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;你的眼睛是最吸引我的，如此清澈、明净，看不到一丝世故与杂念。我想起了柳文扬的《闪光的生命》，三十分钟与一百年的思考。幸运的是我能够拥有的时间不止三十分钟而是整整一晚十二小时；不幸的是我绝对没有柳大哥生前面对自己感情的气魄。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="text-indent: 0.32in; margin-bottom: 0in;"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;时间以亘古不变的速率缓缓流逝。你蜷缩在我身旁，安静地睡去，每一次轻微的呼吸都刺激着我紧绷的神经，扰乱着我杂乱的思绪。我假意转头望向窗外。原本还是皎洁的月色被阴霾所遮蔽，只剩下车厢外掠过的一排排路灯仿佛时刻在提醒我：时光飞逝。浮躁与不安盘踞在我心中。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="text-indent: 0.32in; margin-bottom: 0in;"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;晨光熹微，旅程渐尽。我忽然希望自己成为《一日囚》中的犯人，自己的余生永远囚禁在这火车上的旅途中。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="text-indent: 0.32in; margin-bottom: 0in;"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;地铁站挥手道别后的那一刹，我似乎有了解脱的感觉，因为不需要再面对你。然而我很快就明白这不过是逃避痛苦的开端。每天上午，当我在办公桌前坐下，展开电脑，短短的&lt;/span&gt;&lt;/span&gt;LOADING&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;时间，思念就已如潮水般上涌。我拼命寻找一些工作以驱赶脑海中你的浮影，直到傍晚自己身心疲惫地回到学校。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="text-indent: 0.32in; margin-bottom: 0in;"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;你问我，送行一次又怎么样。是的，不会怎么样。生活是如此残酷，而我能够掌握和改变的太少。所以我只能乐观的去感受和体会生活的全部，一切的酸甜苦辣和每一个细节。我并不是想来改变什么，只是来送一个即将远行的朋友，一个曾经在我的生活陷入最黑暗的时候带来了一丝光亮的人，并且想亲口告诉她：我有一点喜欢她……&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="text-indent: 0.32in; margin-bottom: 0in;"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;可惜的是，我在车站外徘徊了一个钟头，始终没有勇气进去见你。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western" style="text-indent: 0.32in; margin-bottom: 0in;"&gt;“&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;もしも願い一つだけ叶うなら、君の側で眠らせて。”——宇多田光《&lt;/span&gt;&lt;/span&gt;Beautiful World&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;》&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-3086739078241060413?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/3086739078241060413/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=3086739078241060413' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/3086739078241060413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/3086739078241060413'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/05/loading-beautiful-world.html' title='残念'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-8167621006311459826</id><published>2008-05-25T16:03:00.000+08:00</published><updated>2008-05-25T16:04:48.213+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='章鱼圈'/><title type='text'>さようなら</title><content type='html'>&lt;div class="Section0" style=""&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-weight: normal; font-size: 12pt; font-family: '宋体';"&gt;我把一切不能诉说的话语镌刻于此，我把一切不能传递的思念流放于此，我把一切不能实现的愿望埋藏于此。任时光摧残，土崩瓦解；纵岁月蹉跎，灰飞烟灭。此地，北京，我经历过的城市，我即将离开的城市。&lt;/span&gt;&lt;span style="font-weight: normal; font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 style="text-align: center;"&gt;&lt;span style="font-weight: normal; font-size: 16pt; font-family: '宋体';"&gt;晨风&lt;/span&gt;&lt;span style="font-weight: normal; font-size: 16pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p class="16" style="text-indent: 21pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;北京的清晨总是以喧嚣开始。虽说已经是初夏，但还是有一丝凉意，出门不得不穿一件外套。天空泛着毫无生气的灰黄色，只有天顶的那一小块还隐约能够发觉些蓝色。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 21pt;"&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman';"&gt;2008&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;年5月19日，对我来说是有些特别的日子。不是因为一周前的汶川地震，也不是因为当天举国哀悼地震中的逝者。那只是对我来说有些特别，因为是与她相识正好满一个月。当然，我不可能跟她见面，原因是1200公里的物理距离，加上5厘米的心理距离。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 21pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;西土城路10号，路边的蔷薇盛情开放，用红色点缀出勃勃生机。花瓣上晶莹的露珠在晨曦的照射下放射出瑰丽的色彩，引得路人频频侧目欣赏。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: 'Times New Roman';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 style="text-align: center;"&gt;&lt;span style="font-weight: normal; font-size: 16pt; font-family: '宋体';"&gt;午阳&lt;/span&gt;&lt;span style="font-weight: normal; font-size: 16pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;就算是正午的阳光依然显得如此慵懒，照得人也感觉昏昏欲睡。空气中到处弥漫着汽油和尘土的味道，干燥从皮肤侵蚀到内心。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 21pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;一个月，三十天，七百二十小时，我也只能堆积出28条短信的交流。我是叔本华所说的“冻得直哆嗦的豪猪”：想要给对方温暖，却又担心伤害对方。结果就是如此可怕的隔阂感以及在旷野中大声呼喊也依然无力的孤独。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;沙尘给整个城市蒙上了一层棕黄色。各色的太阳花和紫色的薰衣草也显得不再艳丽。北京似乎提前进入了秋季。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 style="text-align: center;"&gt;&lt;span style="font-weight: normal; font-size: 16pt; font-family: '宋体';"&gt;晚霞&lt;/span&gt;&lt;span style="font-weight: normal; font-size: 16pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;北京的傍晚是唯一能够让人欣赏的时刻。如果下午正好经历一场新雨，就能够遇见久违的蔚蓝色天空。金色的富有层次感的云彩在斜阳的照耀下变换出迷人的景色。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;好朋友说，连喜欢都说不出口的话就是还不够喜欢啊。我只能报以苦笑。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;在学校论坛曾经看到过这样一个帖子，应该是每一个工科男生都深有感触的吧：&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;或许工科男生表达爱意的方式笨拙、语言苍白、甚至是匪夷所思的冷，&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;但是每一句话，每一件事，甚至是见面时那每一次微笑都是来自于我们心底无数次的求证与推理。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;文科生的爱意是弥撒在空间里彩色迷雾，&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;让人能够立刻感受到那来自于周身的关怀；&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;可工科生的感情却是凝结成霜的深沉，&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;只有在你伸手接过之后才能彻底体会那厚重的美。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;学校里依然还有些残留的槐花，挂在枝头或者落在地上，已经失去了往日的芳香。茂盛的枝叶在晚风吹拂下发出温柔的摩擦声，让人想起海边不息的浪花。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 style="text-align: center;"&gt;&lt;span style="font-weight: normal; font-size: 16pt; font-family: '宋体';"&gt;星空&lt;/span&gt;&lt;span style="font-weight: normal; font-size: 16pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;在大城市里不可能看见群星璀璨的夜空，北京也是一样。但是在冬季寒夜，依然是值得抬头仰望一下，明亮的猎户座可能是这个硕大天穹的孤单点缀吧。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;曾经有一个女生讽刺我是“性别错位的同性恋”，因为我的心理性别测试结果是阴性。或许，我所期盼的一直是柏拉图式的恋情，无论是过去、现在还是将来。缺乏心灵交流是否意味着自我的迷失，我不允许自己的大脑被荷尔蒙所掌控。不是用金钱和时间取悦于她，而是真诚地分享——生活。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;墙角深藏着一株矮小的紫茉莉，安静地独自开放。幽雅的气味四处漂泊，将我如同飞蛾般吸引。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 style="text-align: center;"&gt;&lt;span style="font-weight: normal; font-size: 16pt; font-family: '宋体';"&gt;夜火&lt;/span&gt;&lt;span style="font-weight: normal; font-size: 16pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;夜深人静，窗外却闪过点点星火，是飘忽而过的几只萤火虫。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;一个月之前的心情，我也记录了下来。鸟说文笔不错，不过我也懒得再修改，直接放墨羽规论坛了。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span&gt;&lt;a href="http://groups.google.com/group/MoYuGui/web/%E6%AE%8B%E5%BF%B5.wps?hl=zh-CN"&gt;&lt;span class="15" style="color: rgb(0, 0, 255); text-decoration: underline; font-size: 10pt; font-family: '宋体';"&gt;http://groups.google.com/group/MoYuGui/web/%E6%AE%8B%E5%BF%B5.wps?hl=zh-CN&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;仔细回想，北京这个城市还是有些值得令我留恋的地方，毕竟是曾经的向往。然而，我并不属于这个城市，迟早需要离开。&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-weight: normal; font-size: 12pt; font-family: '宋体';"&gt;さようなら、北京。さようなら……&lt;/span&gt;&lt;span style="font-weight: normal; font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt;"&gt;&lt;span style="font-weight: normal; font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="16" style="text-indent: 18.375pt; text-align: right;"&gt;&lt;span style="font-weight: normal; font-size: 12pt; font-family: '宋体';"&gt;BY CursedOctopus&lt;/span&gt;&lt;span style="font-weight: normal; font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-8167621006311459826?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/8167621006311459826/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=8167621006311459826' title='4 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8167621006311459826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8167621006311459826'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/05/blog-post_25.html' title='さようなら'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-108951642953277732</id><published>2008-05-13T15:07:00.005+08:00</published><updated>2008-05-26T12:47:21.677+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='本站消息'/><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>5.12 四川汶川8.0级大地震</title><content type='html'>一些反思：&lt;br /&gt;&lt;h3 style="font-weight: bold;"&gt;《科学》杂志：中国地震可能是一次大灾难       &lt;/h3&gt;&lt;br /&gt;转自：&lt;a href="http://science.solidot.org/article.pl?sid=08/05/13/0253209&amp;amp;from=rss"&gt;http://science.solidot.org/article.pl?sid=08/05/13/0253209&amp;amp;from=rss&lt;/a&gt;&lt;br /&gt;研究人员担心，在大城市成都附近发生的M7.9级地震，&lt;a href="http://sciencenow.sciencemag.org/cgi/content/full/2008/512/1?rss=1"&gt;极可能酿成自1976年唐山地震以来最大的死亡事件&lt;/a&gt;，唐山地震夺取了25万条生命。美国地震局（USGS）地震学家Lucile Jones表示，“这次地震也将带走无数生命”。她说，有数百万人生活在断层带易受破坏的建筑物中，这一糟糕的结果是无法避免的。&lt;i&gt; &lt;/i&gt;四川东部的大地震裂开了连接西藏高原东部山脉和人口密集的四川盆地之间大约275公里长的断层。成都，生活着1100万人，距离地震中心不到100公里。 Jones在25年前就研究了这个可能成为巨大威胁的断层带，因为运动的板块正推动西部山脉沿着断层带向上和向东前进，越过盆地。她说，“对四川来说这是 一次大地震，就像是在旧金山或洛杉矶发生类似的强震。”根据USGS收集的数据，有数百万人遭受会引起严重伤害的强震。USGS估计有620万人将会经历 最可怕的袭击，地震将会严重破坏脆弱的建筑物。Jones 指出，多数中国的建筑物是易被破坏的。另外有1170万人会经历中等程度的强震，建筑物亦可能受到严重破坏。1976年发生的唐山（150万人口）大地震 中只有两座建筑物屹立不倒。&lt;i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/i&gt;&lt;h3 style="font-weight: bold;"&gt;中国官方地震信息网销声匿迹&lt;/h3&gt;转自：&lt;a href="http://internet.solidot.org/article.pl?sid=08/05/13/0623203"&gt;http://internet.solidot.org/article.pl?sid=08/05/13/0623203&lt;/a&gt;&lt;br /&gt;一场地震能暴露很多问题。对于我们这些网民来讲，最无法容忍的也许是：在这危急关头，本应当作为最可信赖的官方信息来源——&lt;a href="http://www.csi.ac.cn/"&gt;地震信息网&lt;/a&gt;和&lt;a href="http://www.cea.gov.cn/"&gt;中国地震局&lt;/a&gt;网站竟然都无法打开。虽说现在并不是追问其责任的时候，但从&lt;a href="http://www.alexa.com/data/details/traffic_details/cea.gov.cn"&gt;alexa流量查询&lt;/a&gt;、&lt;a href="http://toolbar.netcraft.com/site_report?url=http://www.cea.gov.cn"&gt;web服务器信息&lt;/a&gt;，&lt;a href="http://web.archive.org/web/*/http://cea.gov.cn"&gt;Wayback Machine&lt;/a&gt;上看，对比&lt;a href="http://www.alexa.com/data/details/traffic_details/earthquake.usgs.gov"&gt;美国地震局网站&lt;/a&gt;，根本毫无专业性可言，纯粹就是一个摆设。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-108951642953277732?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/108951642953277732/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=108951642953277732' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/108951642953277732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/108951642953277732'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/05/512-78.html' title='5.12 四川汶川8.0级大地震'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-103643328254942552</id><published>2008-05-10T13:28:00.008+08:00</published><updated>2008-05-10T14:04:29.826+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='章鱼圈'/><category scheme='http://www.blogger.com/atom/ns#' term='生活 旅游'/><title type='text'>杭州——新华坊拾趣</title><content type='html'>你们不是说我腐败么，那这次就干脆把败的情况通通交待算了  &gt;_&lt; 别的也不多说，上图（没有相机，只是正好带了PSP的摄像头而已）&lt;br /&gt;首先是客厅&lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_w_VmU13txZw/SCU0klV9kXI/AAAAAAAAAEM/l5Jyl-WmOc8/s1600-h/DSC00062.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_w_VmU13txZw/SCU0klV9kXI/AAAAAAAAAEM/l5Jyl-WmOc8/s400/DSC00062.JPG" alt="" id="BLOGGER_PHOTO_ID_5198619147973267826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;餐桌&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_w_VmU13txZw/SCU1KlV9kZI/AAAAAAAAAEc/_ZNA7qy5pmM/s1600-h/DSC00064.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_w_VmU13txZw/SCU1KlV9kZI/AAAAAAAAAEc/_ZNA7qy5pmM/s400/DSC00064.JPG" alt="" id="BLOGGER_PHOTO_ID_5198619800808296850" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;厨房&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_w_VmU13txZw/SCU1K1V9kaI/AAAAAAAAAEk/9vDBjmw4Txk/s1600-h/DSC00065.JPG"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_w_VmU13txZw/SCU1K1V9kaI/AAAAAAAAAEk/9vDBjmw4Txk/s400/DSC00065.JPG" alt="" id="BLOGGER_PHOTO_ID_5198619805103264162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;WC（浴布拉着的原因是遮挡一下窗口的强光）&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_w_VmU13txZw/SCU1LFV9kcI/AAAAAAAAAE0/-FtSxIk-kV4/s1600-h/DSC00068.JPG"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_w_VmU13txZw/SCU1LFV9kcI/AAAAAAAAAE0/-FtSxIk-kV4/s400/DSC00068.JPG" alt="" id="BLOGGER_PHOTO_ID_5198619809398231490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;电视、DVD、数字电视机顶盒，还有古董PS2&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_w_VmU13txZw/SCU1KlV9kYI/AAAAAAAAAEU/GfwafgvyPwc/s1600-h/DSC00063.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_w_VmU13txZw/SCU1KlV9kYI/AAAAAAAAAEU/GfwafgvyPwc/s400/DSC00063.JPG" alt="" id="BLOGGER_PHOTO_ID_5198619800808296834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;貌似布置得还是有些情趣的&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_w_VmU13txZw/SCU1ulV9kfI/AAAAAAAAAFM/tIO7qxrfI4A/s1600-h/DSC00071.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_w_VmU13txZw/SCU1ulV9kfI/AAAAAAAAAFM/tIO7qxrfI4A/s400/DSC00071.JPG" alt="" id="BLOGGER_PHOTO_ID_5198620419283587570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;主人的房间（偷窥？），貌似很乱&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_w_VmU13txZw/SCU1K1V9kbI/AAAAAAAAAEs/6O2T5-um19w/s1600-h/DSC00067.JPG"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_w_VmU13txZw/SCU1K1V9kbI/AAAAAAAAAEs/6O2T5-um19w/s400/DSC00067.JPG" alt="" id="BLOGGER_PHOTO_ID_5198619805103264178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;阳台上的一盆假花&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_w_VmU13txZw/SCU2LFV9kjI/AAAAAAAAAFs/vJAgkeBMdnM/s1600-h/DSC00075.JPG"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_w_VmU13txZw/SCU2LFV9kjI/AAAAAAAAAFs/vJAgkeBMdnM/s400/DSC00075.JPG" alt="" id="BLOGGER_PHOTO_ID_5198620908909859378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;我寄居的房间（将来在杭州工作的话也会长期居住吧）&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_w_VmU13txZw/SCU1uVV9kdI/AAAAAAAAAE8/jZoYf8CJ6Gg/s1600-h/DSC00069.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_w_VmU13txZw/SCU1uVV9kdI/AAAAAAAAAE8/jZoYf8CJ6Gg/s400/DSC00069.JPG" alt="" id="BLOGGER_PHOTO_ID_5198620414988620242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;床旁边的现状是……&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_w_VmU13txZw/SCU1ulV9keI/AAAAAAAAAFE/m7p2KXOK3ok/s1600-h/DSC00070.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_w_VmU13txZw/SCU1ulV9keI/AAAAAAAAAFE/m7p2KXOK3ok/s400/DSC00070.JPG" alt="" id="BLOGGER_PHOTO_ID_5198620419283587554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;阳台外景（这个是雨天，原来还在天晴的时候拍了两张，发现居然差不多的样子）&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_w_VmU13txZw/SCU0kVV9kUI/AAAAAAAAAD0/CRX3KBOFl0c/s1600-h/DSC00051.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_w_VmU13txZw/SCU0kVV9kUI/AAAAAAAAAD0/CRX3KBOFl0c/s400/DSC00051.JPG" alt="" id="BLOGGER_PHOTO_ID_5198619143678300482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_w_VmU13txZw/SCU0kVV9kVI/AAAAAAAAAD8/3OT6rTsIo1U/s1600-h/DSC00052.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_w_VmU13txZw/SCU0kVV9kVI/AAAAAAAAAD8/3OT6rTsIo1U/s400/DSC00052.JPG" alt="" id="BLOGGER_PHOTO_ID_5198619143678300498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;猥琐的男主人&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_w_VmU13txZw/SCU0BVV9kSI/AAAAAAAAADk/HStsZo-V8nA/s1600-h/DSC00049.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_w_VmU13txZw/SCU0BVV9kSI/AAAAAAAAADk/HStsZo-V8nA/s400/DSC00049.JPG" alt="" id="BLOGGER_PHOTO_ID_5198618542382879010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;慵懒的男主人&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_w_VmU13txZw/SCU2K1V9kiI/AAAAAAAAAFk/pFSv8nt4JtQ/s1600-h/DSC00074.JPG"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_w_VmU13txZw/SCU2K1V9kiI/AAAAAAAAAFk/pFSv8nt4JtQ/s400/DSC00074.JPG" alt="" id="BLOGGER_PHOTO_ID_5198620904614892066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;美女们在看电视（又是偷拍？）&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_w_VmU13txZw/SCU0kFV9kTI/AAAAAAAAADs/T4JA4rxT2N8/s1600-h/DSC00050.JPG"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_w_VmU13txZw/SCU0kFV9kTI/AAAAAAAAADs/T4JA4rxT2N8/s400/DSC00050.JPG" alt="" id="BLOGGER_PHOTO_ID_5198619139383333170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;本鱼的近况的镜像&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_w_VmU13txZw/SCU0kVV9kWI/AAAAAAAAAEE/mWp2THnvJCw/s1600-h/DSC00061.JPG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_w_VmU13txZw/SCU0kVV9kWI/AAAAAAAAAEE/mWp2THnvJCw/s400/DSC00061.JPG" alt="" id="BLOGGER_PHOTO_ID_5198619143678300514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;此次杭州之行一直状态不好，因为在北京的干燥天气下嘴唇干裂脱皮并附加上火等症状。然而，引一句诗“衣带渐宽终不悔，为伊消得人憔悴”，完满诠释了个人的心态。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-103643328254942552?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/103643328254942552/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=103643328254942552' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/103643328254942552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/103643328254942552'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/05/blog-post.html' title='杭州——新华坊拾趣'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_w_VmU13txZw/SCU0klV9kXI/AAAAAAAAAEM/l5Jyl-WmOc8/s72-c/DSC00062.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-6250407272820530020</id><published>2008-04-30T11:02:00.009+08:00</published><updated>2008-04-30T14:47:57.144+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='章鱼圈'/><category scheme='http://www.blogger.com/atom/ns#' term='技术wawa'/><title type='text'>PSP自制程序开发简介</title><content type='html'>&lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'宋体';font-size:100%;"  &gt;&lt;span style="font-family:宋体;"&gt;只是一个偶然的机会，我在网上闲逛时看到了Miro LUA v2.4发布的消息。接着我就点点点地下载并安装了这个PSP自制程序开发包（只有2.5M哦）。开发界面很简洁，如下图：&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="0" style="text-indent: 21pt;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_w_VmU13txZw/SBfh8a_QaVI/AAAAAAAAADc/xlNgbJCMj_0/s1600-h/interface.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_w_VmU13txZw/SBfh8a_QaVI/AAAAAAAAADc/xlNgbJCMj_0/s400/interface.png" alt="" id="BLOGGER_PHOTO_ID_5194869123348195666" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="Section0"&gt;&lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'宋体';font-size:100%;"  &gt;&lt;span style="font-family:宋体;"&gt;唯一让我感觉有些不习惯的是文档结构图是在代码界面的右边的，更像是做设计的。&lt;/span&gt; &lt;/span&gt; &lt;span style=";font-family:'宋体';font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'宋体';font-size:100%;"  &gt;&lt;span style="font-family:宋体;"&gt;如同这个开发包的名字，使用的开发语言是LUA。在网上继续闲逛的结果也就是得到了维基网上一个简短的教程，链接为http://wiki.ps2dev.org/psp:lua_player:tutorial。好吧，我承认自己对各大搜索网络搜索引擎的使用还有些障碍……&lt;/span&gt; &lt;/span&gt; &lt;span style=";font-family:'宋体';font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'宋体';font-size:100%;"  &gt;&lt;span style="font-family:宋体;"&gt;言归正传，这里稍微介绍一下LUA语言的特点。历史？这种东西就不用浪费时间去考究了，据龟说这个语言是巴西的某教授发明的（汗）。LUA号称是面向对象的程序语言，但是跟C++和Java还是有相当大的区别的。首先是语句结束不需要使用分号，直接换行就可以了。似乎Basic也是这样的吧，看来LUA也是面向初级开发者的语言。其次，我一直没有发现类（class）这个概念，连结构体（struct）都没有，通常都只有function（函数）。如果硬要说面向对象的话：“white =&lt;span style="color: rgb(255, 204, 0);"&gt; Color&lt;/span&gt;.new(255, 255, 255)”这样的定义方式倒是跟C++类似。If语句作为程序中最常用的语句之一，需要在末尾加上end才算结束，这个有点像VHDL（&lt;/span&gt;&lt;span style=";font-family:'Times New Roman';font-size:100%;"  &gt;&lt;span style="font-family:宋体;"&gt;超高速集成电路硬件描述语言）。难道是因为PSP自身不需要复杂庞大的操作系统所以直接操作逻辑电路比较方便吗？这个只是我瞎猜，毕竟学得还太少。&lt;/span&gt; &lt;/span&gt; &lt;span style=";font-family:'Times New Roman';font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'Times New Roman';font-size:100%;"  &gt;&lt;span style="font-family:宋体;"&gt;总体来说，LUA语言还是比较简单的。不需要各类繁琐的头文件，不需要定义指针和控制内存（至少我看到的还没有出现这些），不需要自己编写很多基础功能（因为很多LUA程序都是开源的）。&lt;/span&gt; &lt;/span&gt; &lt;span style=";font-family:'Times New Roman';font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'Times New Roman';font-size:100%;"  &gt;&lt;span style="font-family:宋体;"&gt;这里附上我的第一个LUA程序。因为是第一个程序么，所以就按照老规矩：Hello World!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="0" style="text-indent: 21pt;"&gt;&lt;a href="http://groups.google.com/group/MoYuGui/web/test003.rar?hl=zh-CN"&gt;&lt;span style="color: rgb(51, 255, 51);"&gt;点这里下载&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=";font-family:'Times New Roman';font-size:100%;"  &gt; &lt;/span&gt; &lt;span style=";font-family:'Times New Roman';font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'Times New Roman';font-size:100%;"  &gt;&lt;span style="font-family:宋体;"&gt;解压后直接放在记忆棒的GAME目录下运行就可以了。"test3.lua"就是源文件。&lt;/span&gt; &lt;/span&gt; &lt;span style=";font-family:'Times New Roman';font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'Times New Roman';font-size:12;"  &gt;&lt;span style="font-family:宋体;"&gt;&lt;span style="font-size:100%;"&gt;现在国内做开发的人还是相当少，但做出来的东西确实都是不错的。比如最近的一个MP3播放程序，是可以边播放边显示歌词的，支持中文的哦。希望以后可以有更多的国人参与到开发的行列中来（好像说的自己也是开发人员似的，其实连入门都算不上 &gt;_&lt;）。&lt;/span&gt;&lt;/span&gt; &lt;/span&gt; &lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-6250407272820530020?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/6250407272820530020/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=6250407272820530020' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6250407272820530020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6250407272820530020'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/04/psp.html' title='PSP自制程序开发简介'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_w_VmU13txZw/SBfh8a_QaVI/AAAAAAAAADc/xlNgbJCMj_0/s72-c/interface.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-6641991665475847139</id><published>2008-04-27T19:59:00.009+08:00</published><updated>2008-04-28T08:38:10.833+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>水乡古镇——南浔</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/fykcee1/SBRnJbrY7TI/AAAAAAAAAmI/NYufP4-ccpw/s800/DSC00437.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://lh6.ggpht.com/fykcee1/SBRnJbrY7TI/AAAAAAAAAmI/NYufP4-ccpw/s800/DSC00437.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh5.ggpht.com/fykcee1/SBRtyLrY7XI/AAAAAAAAAmo/1Iv_hhIFcMg/s800/DSC00418.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://lh5.ggpht.com/fykcee1/SBRtyLrY7XI/AAAAAAAAAmo/1Iv_hhIFcMg/s800/DSC00418.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/fykcee1/SBRjB7rY7QI/AAAAAAAAAlQ/zjZr2D8NbsQ/s800/DSC00341.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://lh4.ggpht.com/fykcee1/SBRjB7rY7QI/AAAAAAAAAlQ/zjZr2D8NbsQ/s800/DSC00341.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;a href="http://picasaweb.google.com/fykcee1/SccmwF"&gt;更多&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/fykcee1/SBRqs7rY7WI/AAAAAAAAAmg/iHlaIYQn28E/s144/DSC00403.JPG"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-6641991665475847139?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/6641991665475847139/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=6641991665475847139' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6641991665475847139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6641991665475847139'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/04/blog-post_27.html' title='水乡古镇——南浔'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/fykcee1/SBRnJbrY7TI/AAAAAAAAAmI/NYufP4-ccpw/s72-c/DSC00437.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-4897360945542790414</id><published>2008-04-23T10:15:00.001+08:00</published><updated>2008-04-23T10:15:52.675+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='章鱼圈'/><title type='text'>杭城春花烂漫</title><content type='html'>&lt;div class="Section0"&gt;&lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;杭州是一座极富个性的城市，因为它坐落在个性化的浙江，是浙江省的省会。个性化并不意味着过度的张扬与浮华。站在延安路上微微颤动着的过街天桥上，桥上桥下肆意流动着的人与车，街边巷尾溢满的笑语跟闲话，处处诠释着个性的含义。&lt;/span&gt; &lt;/span&gt; &lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;我已记不清这是第几次到杭州了。如果可以的话我希望可以把这里作为自己的第二故乡。&lt;/span&gt; &lt;/span&gt; &lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;第一次到达杭州之后就直接前往了浙大紫金港。那是一个有些荒芜的校园，在炎热的夏日骄阳下就更显得缺乏名校应有的气氛。而且大叔以真正大叔的形象迎接我了场景实在是……好在饭菜还是不错的，亚洲最大学生食堂的气派足够把这座边郊学校的形象缺陷补完。虽然我在浙大紫金港停留的时间不过半天，但是我敢肯定，以后绝对不想再去那里（&gt;_&lt;），因为我不喜欢空旷缺乏生机的地方，以及那诡异的冒着白色蒸汽的窨井盖……&lt;/span&gt; &lt;/span&gt; &lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;去年夏天，大叔这届本科生终于搬回了玉泉古校区。我也有幸在他们入住不久后就第一时间前往庆贺（其实也算蹭饭）。玉泉沉淀的历史使其显得古朴和低调。整个校园被随处可见的榆树所包裹，使得原本陈旧的道路看上去愈发具有沧桑感。&lt;/span&gt; &lt;/span&gt; &lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;西湖是我为之停留时间最长的地方。07年暑假的大半时间我都躲藏在西湖边的一个出租屋内，白天躲避酷热的日晒，傍晚则沿着西湖岸边散布。玉皇山是个比较偏僻的地方，但也全依靠这种偏僻，我可以抬头便望见雷峰夕照，出门即到柳浪闻莺，有时晚上还可以在一公园跟着游人一起欣赏音乐喷泉。诶，可惜腐败的日子总是不能长久的……&lt;/span&gt; &lt;/span&gt; &lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;此次去杭州的主要任务貌似已经可耻地失败，所以最后两天的生活已经彻底腐化了（龟：我就知道！鸟：……）。这次寄宿在一个好朋友租的房子里，好像是叫新华坊的社区。由于出门就是凤起路，再不远处就可以到延安路，所以某日干脆就早起独自出去溜达了趟。天气并不怎么好，阴阴的，还有些凉。我趁着早起的饥饿感放纵自己依靠嗅觉找路。我放弃了沿途经过的早餐铺、超市和快餐店，满无目的地继续追寻心目中的美味。直到我登上了一座人行天桥，面对着几个叫卖着长江七号的小贩，还有选择了一个舒服的姿势躺下的行乞者，以及在街边亲密地打了一个响亮的kiss的两个女孩。我发觉自己的饥饿感有些越界了，所以选择回头。在路上一家装修不错的蛋糕店选了三个价格不菲的蛋糕后，我放弃了继续漂流的打算。&lt;/span&gt; &lt;/span&gt; &lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;在回北京的路上认识了一位浙大的学姐。我问她对杭州的感觉，她说杭州就像是一个巨大的植物园，处处都洋溢着生命的韵律。不错，西湖旁、吴山脚，几乎每个地方都是郁郁葱葱的古树。那些环腰粗的古老生命，在其他地方也许都该贴上保护文物的标签慎重保护起来吧。但是在个性的杭州，百年古树们只是默默地矗立在道路两边，与这里的人一起享受着生活。&lt;/span&gt; &lt;/span&gt; &lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;span style="font-family:宋体;"&gt;四月中旬，正好是杭城的杜鹃开放最艳丽的时节。精致的紫色花朵到处可见，盛开在社区里的坛苑中，盛开在玉泉古校的厅径边，盛开在我干涸已久的心田里。&lt;/span&gt; &lt;/span&gt; &lt;span style="font-size: 12pt; font-family: '宋体';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-4897360945542790414?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/4897360945542790414/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=4897360945542790414' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/4897360945542790414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/4897360945542790414'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/04/blog-post_23.html' title='杭城春花烂漫'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-1520565072865169407</id><published>2008-04-09T09:25:00.005+08:00</published><updated>2008-04-10T19:08:02.242+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='动漫空间'/><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>黑之契约者——又一部讲述异化的作品</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_nInZ8ZXtrrE/R_30_62DWhI/AAAAAAAAAkY/NzMFp-DVcUM/s1600-h/Darker-than-Black.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_nInZ8ZXtrrE/R_30_62DWhI/AAAAAAAAAkY/NzMFp-DVcUM/s400/Darker-than-Black.jpg" alt="" id="BLOGGER_PHOTO_ID_5187571724765583890" border="0" /&gt;&lt;/a&gt;&lt;span id="a6ga"  style="font-family:宋体;"&gt;&lt;span id="b5tv" lang="zh-CN"&gt;某日前网上看到某版主推荐动漫精品，《黑》与&lt;/span&gt;&lt;/span&gt;Noein&lt;span id="pcvx"  style="font-family:宋体;"&gt;&lt;span id="zs6b" lang="zh-CN"&gt;、《永生之酒》被给出七星最高分。正巧对最近要做的事懒惰（主要是没兴趣），就颓废一下。&lt;/span&gt;&lt;/span&gt; &lt;p id="lzgn" class="western"&gt;&lt;span id="wo24"  style="font-family:宋体;"&gt;&lt;span id="f1n9" lang="zh-CN"&gt;首先是设定，只能用诡异形容（顺便看了&lt;/span&gt;&lt;/span&gt;Noein&lt;span id="s2b:"  style="font-family:宋体;"&gt;&lt;span id="alj2" lang="zh-CN"&gt;的介绍，居然还有诡异，看来是版主的兴趣）。虽然是&lt;/span&gt;&lt;/span&gt;SF&lt;span id="dzfz"  style="font-family:宋体;"&gt;&lt;span id="hzf2" lang="zh-CN"&gt;，设定可真像程序&lt;/span&gt;&lt;/span&gt;API&lt;span id="qok:"  style="font-family:宋体;"&gt;&lt;span id="f-9i" lang="zh-CN"&gt;手册上来就出现的类一样突兀，让人想起鸟以前伪荐的《特公》。大体是某日出现了某特殊区域（就像《特公》里某日出现的地底黑洞），围绕该区域筑高墙，并构建了出入的大门。伴随着上述现象，夜空被虚假的夜空随替代，并出现了一些有超能力的人，他们的存在和虚假夜空中的星星相对应（就像《三国演义》里所描述的人与星星的对应关系）。接下来概念介绍：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="j07d" class="western"&gt;class &lt;span id="uq94"  style="font-family:宋体;"&gt;&lt;span id="h4zy" lang="zh-CN"&gt;契约者&lt;/span&gt;&lt;/span&gt;:&lt;/p&gt; &lt;ul id="vbrl"&gt;  &lt;li id="iean"&gt;&lt;p id="a_so" class="western"&gt;&lt;span id="c5kq"  style="font-family:宋体;"&gt;&lt;span id="nd97" lang="zh-CN"&gt;超能力&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="ugx2"&gt;&lt;p id="l2xv" class="western"&gt;&lt;span id="zm2e"  style="font-family:宋体;"&gt;&lt;span id="paq_" lang="zh-CN"&gt;每使用超能力就需付出某个代价（简单的是习惯，复杂的和性命相关）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="uc73"&gt;&lt;p id="ud4c" class="western"&gt;&lt;span id="n0m6"  style="font-family:宋体;"&gt;&lt;span id="lk5c" lang="zh-CN"&gt;每使用超能力时，（虚假）夜空中对应的星星闪烁（虚假星空就是其导出的名空间？&lt;/span&gt;&lt;/span&gt;proc&lt;span id="wx38"  style="font-family:宋体;"&gt;&lt;span id="dm1s" lang="zh-CN"&gt;文件系统？）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="w:of"&gt;&lt;p id="zufp" class="western"&gt;&lt;span id="w4qa"  style="font-family:宋体;"&gt;&lt;span id="hrup" lang="zh-CN"&gt;死去时夜空中的星星消失&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="tr:y"&gt;&lt;p id="ozcg" class="western"&gt;&lt;span id="ijz_"  style="font-family:宋体;"&gt;&lt;span id="v058" lang="zh-CN"&gt;被权力机关惧憎和利用&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="vt72"&gt;&lt;p id="i3jx" class="western"&gt;&lt;span id="x64u"  style="font-family:宋体;"&gt;&lt;span id="ji2y" lang="zh-CN"&gt;其存在普通人不知（权力机关居然有记忆消除器&lt;/span&gt;&lt;/span&gt;...&lt;span id="s30a"  style="font-family:宋体;"&gt;&lt;span id="n9wg" lang="zh-CN"&gt;）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="aisu" class="western"&gt;   &lt;/p&gt; &lt;p id="tkun" class="western"&gt;class &lt;span id="btyj"  style="font-family:宋体;"&gt;&lt;span id="cfyu" lang="zh-CN"&gt;延期偿付者 &lt;/span&gt;&lt;/span&gt;(&lt;span id="ewtd"  style="font-family:宋体;"&gt;&lt;span id="gnp7" lang="zh-CN"&gt;契约者&lt;/span&gt;&lt;/span&gt;):&lt;/p&gt; &lt;ul id="m.o9"&gt;  &lt;li id="oiw3"&gt;&lt;p id="iso5" class="western"&gt;&lt;span id="lx3d"  style="font-family:宋体;"&gt;&lt;span id="q7hb" lang="zh-CN"&gt;特殊能力&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="au_i"&gt;&lt;p id="iq0h" class="western"&gt;&lt;span id="xed5"  style="font-family:宋体;"&gt;&lt;span id="n885" lang="zh-CN"&gt;每次释放能力时夜空中对应的星星闪烁&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="lmf2"&gt;&lt;p id="h_lo" class="western"&gt;&lt;span id="fka0"  style="font-family:宋体;"&gt;&lt;span id="eoc0" lang="zh-CN"&gt;死去时夜空中的星星消失&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="y7po" class="western"&gt;###########################################&lt;/p&gt; &lt;ul id="eo6y"&gt;  &lt;li id="keuj"&gt;&lt;p id="j6t5" class="western"&gt;&lt;span id="e8mz"  style="font-family:宋体;"&gt;&lt;span id="a4ri" lang="zh-CN"&gt;超能力的释放无法控制，易暴走（故地位还不如契约者）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="ajl6"&gt;&lt;p id="b4_i" class="western"&gt;&lt;span id="pqwl"  style="font-family:宋体;"&gt;&lt;span id="whx3" lang="zh-CN"&gt;多次释放超能力后才需要付出某个代价&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="lamp"&gt;&lt;p id="h.v3" class="western"&gt;&lt;span id="s8.j"  style="font-family:宋体;"&gt;&lt;span id="ent5" lang="zh-CN"&gt;在很小的可能性下转换为契约者&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="lkkm" class="western"&gt;   &lt;/p&gt; &lt;p id="e0.n" class="western"&gt;class DOLL:&lt;/p&gt; &lt;ul id="a.-0"&gt;  &lt;li id="g3.-"&gt;&lt;p id="d2ci" class="western"&gt;&lt;span id="uvnq"  style="font-family:宋体;"&gt;&lt;span id="ivu7" lang="zh-CN"&gt;没有精神的肉体（个别例外）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="b:kh"&gt;&lt;p id="gves" class="western"&gt;&lt;span id="cnst"  style="font-family:宋体;"&gt;&lt;span id="v7__" lang="zh-CN"&gt;行为受输入程序控制&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="p631"&gt;&lt;p id="c2dk" class="western"&gt;&lt;span id="q:sw"  style="font-family:宋体;"&gt;&lt;span id="ogso" lang="zh-CN"&gt;能够分裂出观测灵&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="wq0h" class="western"&gt;   &lt;/p&gt; &lt;p id="ox4l" class="western"&gt;class &lt;span id="pmnk"  style="font-family:宋体;"&gt;&lt;span id="x6wp" lang="zh-CN"&gt;观测灵&lt;/span&gt;&lt;/span&gt;:&lt;/p&gt; &lt;ul id="rjjd"&gt;  &lt;li id="z0rt"&gt;&lt;p id="szyc" class="western"&gt;&lt;span id="g2e4"  style="font-family:宋体;"&gt;&lt;span id="u0qh" lang="zh-CN"&gt;有电或水的地方才能工作&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="y990"&gt;&lt;p id="mmnw" class="western"&gt;&lt;span id="c267"  style="font-family:宋体;"&gt;&lt;span id="b0ld" lang="zh-CN"&gt;类似装有摄像头的探测机器人，用于侦察&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li id="oea8"&gt;&lt;p id="kr5l" class="western"&gt;&lt;span id="xe7."  style="font-family:宋体;"&gt;&lt;span id="dxsc" lang="zh-CN"&gt;以水和电线为介质潜行&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p id="o0gy" class="western"&gt;   &lt;/p&gt; &lt;p id="iu-l" class="western"&gt;&lt;span id="gm_d"  style="font-family:宋体;"&gt;&lt;span id="xli3" lang="zh-CN"&gt;与《特公》中一样，《黑》的世界中也成立处理超自然案件、对公众隐瞒超自然存在的公安部门。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="ueal" class="western" style="text-indent: 0in;"&gt;&lt;span id="ai0o"  style="font-family:宋体;"&gt;&lt;span id="t9i5" lang="zh-CN"&gt;主角设定为一名叫李舜生的中国人——代号为黑的契约者，虽外表老实，其实非常可靠，受雇某组织和一只名叫“猫”的黑猫（契约者）、“黄”的辞职警察和“银”的女孩（&lt;/span&gt;&lt;/span&gt;DOLL)&lt;span id="n0sd"  style="font-family:宋体;"&gt;&lt;span id="e_38" lang="zh-CN"&gt;组队执行任务。其大部分任务是消灭其他威胁组织的契约者，再加上“黄”这个人物有点像鸟进贡的《巷说百物语》中那个宽屏脸矮胖，故又有《巷》的感觉。根据《巷》的结局，推测最终&lt;/span&gt;&lt;/span&gt;BOSS——&lt;span id="fnfd"  style="font-family:宋体;"&gt;&lt;span id="oc0q" lang="zh-CN"&gt;果然是组织，并且也是公安部门的幕后，目的是消灭所有契约者，恢复过去的地球。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="pwm5" class="western"&gt;&lt;span id="igl5"  style="font-family:宋体;"&gt;&lt;span id="r.v3" lang="zh-CN"&gt;又是异化的主题，人物塑造还不错，表现手法比较常见，有点让人疲倦。情节基本几集一个小故事，描述各个异化者&lt;/span&gt;&lt;/span&gt;(&lt;span id="bngx"  style="font-family:宋体;"&gt;&lt;span id="hul9" lang="zh-CN"&gt;契约者&lt;/span&gt;&lt;/span&gt;)&lt;span id="grpw"  style="font-family:宋体;"&gt;&lt;span id="ehp_" lang="zh-CN"&gt;的故事以及主角和其团队成员的过去，到结尾清洗主角以外的配角。差点成了人类补完的结局，最后主角意志决定让双方逐步接受现状。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="f1cm" class="western"&gt;&lt;span id="uq1-"  style="font-family:宋体;"&gt;&lt;span id="aegp" lang="zh-CN"&gt;《黑》中出现了很多不同国家的人，并且主角是个中国人。可能是为了更好的表现异化的主题（比如民族主义、种族歧视都是异化主题的现实背景）——人不应对与己不同的存在感到惧憎，而需宽容。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="z6mo" class="western"&gt;&lt;span id="c:hx"  style="font-family:宋体;"&gt;&lt;span id="a:fk" lang="zh-CN"&gt;《黑》的镜头处理和它表现的主题呼应，人物画风也顺眼，并且几集中会冒出了美女来&lt;/span&gt;&lt;/span&gt;^_^&lt;span id="xhgs"  style="font-family:宋体;"&gt;&lt;span id="hylu" lang="zh-CN"&gt;。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p id="sh7n" class="western"&gt;&lt;span id="mr_u"  style="font-family:宋体;"&gt;&lt;span id="kvp2" lang="zh-CN"&gt;最后说下《黑》的声优阵容，主角声优几乎我无知。客串阵容到有不少“熟人”，比如池水通洋（《机动警察》太田功）、井上和彦（《火影》的卡卡西）、三木真一郎（《死神》的浦原店长）、三瓶布由子（《&lt;/span&gt;&lt;/span&gt;Eureka&lt;span id="ym1s"  style="font-family:宋体;"&gt;&lt;span id="nakl" lang="zh-CN"&gt;》兰顿）、名塚佳织（《&lt;/span&gt;&lt;/span&gt;Eureka&lt;span id="e7-j"  style="font-family:宋体;"&gt;&lt;span id="zzk7" lang="zh-CN"&gt;》优莱卡）、小林沙苗（《棋魂》的塔矢亮）、川上とも子（《棋魂》进藤光，《&lt;/span&gt;&lt;/span&gt;AIR&lt;span id="u1sc"  style="font-family:宋体;"&gt;&lt;span id="wy40" lang="zh-CN"&gt;》神尾观铃）&lt;/span&gt;&lt;/span&gt;...&lt;span id="by6j"  style="font-family:宋体;"&gt;&lt;span id="qr.l" lang="zh-CN"&gt;不过大部分居然没听出来&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-1520565072865169407?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/1520565072865169407/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=1520565072865169407' title='3 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/1520565072865169407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/1520565072865169407'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/04/noein-noein-sf-api-class-proc.html' title='黑之契约者——又一部讲述异化的作品'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_nInZ8ZXtrrE/R_30_62DWhI/AAAAAAAAAkY/NzMFp-DVcUM/s72-c/Darker-than-Black.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-8970813047541602669</id><published>2008-04-06T09:50:00.004+08:00</published><updated>2008-04-06T09:55:12.122+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='动漫空间'/><title type='text'>《电脑报》新海诚专访</title><content type='html'>原刊载于《电脑报》2005年6月27日G9版[动漫天地]&lt;br /&gt;&lt;br /&gt;电脑报(以下简称"&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;电&lt;/span&gt;")：你独立制作了这么多部优秀动画，实在是很了不起，中国国内你的Fans也日益增多。当初你在大学里学习的是文学，能谈谈为什么毕业后去了Falcom游戏公司工作吗？&lt;br /&gt;新海诚(以下简称"&lt;span style="color: rgb(51, 255, 255); font-weight: bold;"&gt;新&lt;/span&gt;")：十分感谢中国朋友的支持。去 Falcom应该说是圆小时候的一个梦。我在十岁的时候就迷上了CG，当时还在读小学，也就是那时候开始用BASIC语言画一些简单的插画。说起来干这行的历史比学文学还旧远得多。后来我进Falcom公司负责程序、美工、动画与宣传片制作，我记得那时候简直为电脑的“16位真色”疯狂了，那些美妙的颜色运用在电脑绘画中确实让人感动。在Falcom五年期间我更全面地学习了CG动画制作，觉得我幼时的梦想圆了一半。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;电&lt;/span&gt;：你一个人、一台电脑、一块手写板……在一部动画作品担任原作、脚本、监督、美术、色彩设计、机械设定、摄影、CG制作等多项工作，实在是太了不起了。还记得在制作这些动画过程中，最苦的经历是什么？当时是怎么克服这些困难的？&lt;br /&gt;&lt;span style="color: rgb(51, 255, 255); font-weight: bold;"&gt;新&lt;/span&gt;：在制作《星之声》的时候，主角的人物形象让我伤透了脑筋，然后拍了数以千计的真人动作片断，记录在电脑里，又配合3DCG指导完成了主要人物的设计。后来做《云》的时候就有了一定的经验，和动画设计专家分工合作，做出的人物形象也比以前更加逼真。&lt;br /&gt;目前，困扰我的就是怎样创作一个好脚本来。另外就是题材方面写什么，技术方面怎么写这两方面的烦恼。尤其是作品中的情节、主题，真真切切地需要一个作者在生活中点点滴滴地积累，去感悟。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;电&lt;/span&gt;：你的这几部动画配乐大气又不乏温馨，能谈谈为什么音乐部分都选择和天门合作吗？&lt;br /&gt;&lt;span style="color: rgb(51, 255, 255); font-weight: bold;"&gt;新&lt;/span&gt;：天门的音乐对我而言，是比任何人都能准确地吸取并表现作品的主题的。天门的音乐，不是“为了音乐的音乐”，而是成为了“讲述主题的音乐”。我的作品也不是“为了影片的影片”，而是想要成为“讲述主题的影片”。我们对于作品的态度的想法是一致的。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;电&lt;/span&gt;：简单说说当时做《星之声》的制作流程如何？&lt;br /&gt;&lt;span style="color: rgb(51, 255, 255); font-weight: bold;"&gt;新&lt;/span&gt;：就我个人来说，主要使用了如Adobe Photoshop CS、Lightwave 3D 8.2、Adobe After Effects 6.5等软件来制作动画。做一部动画，首先要心中有数，要给观众呈现一个什么故事，什么主题，然后编写脚本等等。以下我认为最一般的做法，以此来说明。但是，具体做法根据作品和人员构成会有所改变，不一定必须如此。&lt;br /&gt;&lt;ol&gt;&lt;li&gt;考虑要表达的题材。&lt;/li&gt;&lt;li&gt;将剧情写成文章。&lt;/li&gt;&lt;li&gt;以剧情为基础绘制连续图片。&lt;/li&gt;&lt;li&gt;将连续图片在计算机上剪贴，制作成连续影像。&lt;/li&gt;&lt;li&gt;在连续影像的基础上，进行人物和背景画面的作画.。&lt;/li&gt;&lt;li&gt;用综合软件将背景和人物合成。&lt;/li&gt;&lt;li&gt;加上效果音和配音。&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;电&lt;/span&gt;：CG除了人物和形象设计，还可以运用于MC（动画）的其他方面么？&lt;br /&gt;&lt;span style="color: rgb(51, 255, 255); font-weight: bold;"&gt;新&lt;/span&gt;：这需要视CG和MC所涉及的对象而定。如果将CG看作Pixar's Work一类的平面作品，那么MC就指3DCG制作的动画。在日本商业动画中，用传统方式手绘人物形象，用3DCG做细节处理，这就是CG在MC方面的运用。我的作品《星之声》和《云》都运用了相同的CG风格（手绘人物形象，3DCG更多绘出背景）。为使2D和3D协调，我使用了一些技巧，比如有意处理一些3D的画面。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;电&lt;/span&gt;：你开始想过让动画商业化的问题没有？&lt;br /&gt;&lt;span style="color: rgb(51, 255, 255); font-weight: bold;"&gt;新&lt;/span&gt;：能达到今天的规模，是当初没有想到的。开始我只是想通过在网上卖自己的作品这种小规模的形式来维持生计。幸运的是遇到了Comic Wave公司，这是我所遇到过的工作上最棒的合作伙伴。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;电&lt;/span&gt;：你怎样看待CG动画的未来？&lt;br /&gt;&lt;span style="color: rgb(51, 255, 255); font-weight: bold;"&gt;新&lt;/span&gt;：谈到CG动画的未来，我个人认为会像网络游戏一样前景可观。相比传统动画费时费力的缺点，CG动画随着电脑技术的发展可以节省更多创作时间，而且它的艺术表现形式也非常丰富，只要我们有想法又技术，要做出一部优秀的动画就简单容易很多。以日本主流动画来说，现代CG会逐步完全代替传统的手绘，这种趋势是显而易见的。从中国目前的CG技术运用日渐成熟的现状看，也将逐步走向这个趋势。&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;电&lt;/span&gt;：现在，中国国内的CG爱好者越来越多，可最终像你一样能做出出色的完整作品的个人和团队却不多，借此，你能鼓励一下他们么？&lt;br /&gt;&lt;span style="color: rgb(51, 255, 255); font-weight: bold;"&gt;新&lt;/span&gt;：我的大部分作品都是讲述一个人在成长过程中必须面对的困难，并通过努力渡过难关的故事。相信这种精神是无国界的。中国的CG爱好者们，你们能行！&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 255, 51);"&gt;电&lt;/span&gt;：你的下一部动动画有什么动向吗？真是很期待啊。&lt;br /&gt;&lt;span style="color: rgb(51, 255, 255); font-weight: bold;"&gt;新&lt;/span&gt;：下一部动画还说不好，不过我正准备一些短片。我还要继续用我的DV捕捉人物的形态、表情、动作，更合理地运用在动画人物的塑造中去。虽然使用的都是一些冷冰冰的机器数码产品，但是希望能尽我所能，让动画更贴近人们的表现、情感以及思想，更加“传神”。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-8970813047541602669?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/8970813047541602669/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=8970813047541602669' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8970813047541602669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8970813047541602669'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/04/blog-post_06.html' title='《电脑报》新海诚专访'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-1525782796580315609</id><published>2008-04-06T09:47:00.001+08:00</published><updated>2008-04-06T09:48:58.381+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='多媒体'/><title type='text'>[MV]超强悍，117个动画镜头,你能认出多少?</title><content type='html'>转自新海诚中文网：http://www.shinkai.cn/viewthread.php?tid=591&lt;br /&gt;&lt;object width="400" height="300"&gt;&lt;param name="movie" value="http://www.tudou.com/v/cxdapN1Bzpk"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.tudou.com/v/cxdapN1Bzpk" type="application/x-shockwave-flash" width="400" height="300" allowFullScreen="true" wmode="transparent" allowScriptAccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-1525782796580315609?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/1525782796580315609/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=1525782796580315609' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/1525782796580315609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/1525782796580315609'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/04/mv117.html' title='[MV]超强悍，117个动画镜头,你能认出多少?'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-2740794320819746985</id><published>2008-04-02T14:04:00.001+08:00</published><updated>2008-04-02T16:36:36.046+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='章鱼圈'/><title type='text'>在无尽的生活中寻找工作的意义</title><content type='html'>&lt;div class="Section0"&gt; &lt;h3 style="text-align: right;"&gt;&lt;span style="font-weight: bold;font-family:'宋体';font-size:16;"  &gt;——&lt;/span&gt; &lt;span style="font-weight: normal;font-family:'宋体';font-size:16;"  &gt;&lt;span style="font-family:宋体;"&gt;致我的好兄弟们&lt;/span&gt; &lt;/span&gt; &lt;span style="font-weight: bold;font-family:'宋体';font-size:16;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/h3&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;span style="font-family:宋体;"&gt;看了鸟发的一篇鸟文（真的是鸟文，就一张图），似乎感受了一些颓废的气息。所以就利用中午休息时间拼凑了以下的东西，希望可以给两个兄弟一些鼓励。&lt;/span&gt; &lt;/span&gt; &lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;span style="font-family:宋体;"&gt;首先感谢一下鸟给我的许多帮助，多次指导我修改简历，最后终于升级出了ultimate版的本鱼简历。虽然最后还是被网易秒杀了，但也得到了让人感觉能力不错的评价，并让我重新认识了找工作这件事。&lt;/span&gt; &lt;/span&gt; &lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;span style="font-family:宋体;"&gt;简要说下自己的近况吧。现在中国网通研究院做毕业设计。网通研究院到底有多大？我也不清楚。但是我所在的一个NGN项目组的正式员工只有4人，上面两个项目经理，一个外聘程序员，其他清一色的北邮实习生。NGN就是下一代网络，项目组的主要工作就是制定下一代网络的各种规范，当然只是网通的企业规范。所以按照这里的王小华师兄（平常都叫他小华哥）的说法，这里做的都是超越时代的东西，也许你一不小心就变成了××技术之父或者××规范之母了。听上去很牛叉吧？早在20世纪初，有个德国人说计算机应该用二进制计算，然后就成了现代计算机之父，这个人叫冯·诺伊曼。我不是在这里诋毁伟人的巨大功绩，只是举个例子说明所谓的技术规范制定并非多么了不得的工作。具体的实现并不是由规范层面所决定的，就如同诺伊曼老人家也不用知道如何用C++写程序。我在网通研究院只是临时性的，所以重要的工作不会放手交给我（我也干不了），每天的日常工作就是看各类文档，学习积累。&lt;/span&gt; &lt;/span&gt; &lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;span style="font-family:宋体;"&gt;工作久了（姑且把这叫做工作吧，虽然不给钱），免不了会有点厌烦，各个企业的规范看得多了也是大同小异。可这就是生活，工作也是生活的一部分，而且往往是重要的一部分（绝对不是最重要的）。&lt;/span&gt; &lt;/span&gt; &lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;span style="font-family:宋体;"&gt;鸟在网易过得有多不爽我不能体会到，毕竟没有经历过类似的环境，只是希望不会无聊就好。舒适、有趣而且薪水高的工作谁都希望得到，但现在还不是我们做在真皮沙发椅上扔飞镖的时候。个人的工作梦想是能够进入一个团队做出一些（甚至只有一个也足够）让自己感觉一辈子都能够为此骄傲的东西。这也可能是我一直没有找到心仪的工作的原因吧。貌似龟是有这样的机会的，因为他一直是这么跟我吹嘘的。龙芯4之父？呀，还是算了吧……龙的父亲怎么可以是海龟呢 &gt;_&lt;&lt;/span&gt; &lt;/span&gt; &lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;span style="font-family:宋体;"&gt;上面说了工作不是生活中最重要的部分，所以希望鸟可以把注意力转移到生活的其他。家人、爱情、朋友，不是日常生活的调剂品，而是每个人生活中永恒的元素，鸟一定要好好把握。&lt;/span&gt; &lt;/span&gt; &lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;span style="font-family:宋体;"&gt;其他的也不多说了，小BOSS的目光让我的脊梁发凉，北京的温度还比较低呢。&lt;/span&gt; &lt;/span&gt; &lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;p class="0" style="text-indent: 21pt;"&gt;&lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;span style="font-family:宋体;"&gt;最后晒一下：MHP2ndG的UMD前天到了，虽然每天要晚上7点才能回到学校，但是跟众人一切狩猎的感觉真是棒极了！啊哈哈哈……&lt;/span&gt; &lt;/span&gt; &lt;span style=";font-family:'宋体';font-size:12;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-2740794320819746985?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/2740794320819746985/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=2740794320819746985' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/2740794320819746985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/2740794320819746985'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/04/blog-post_02.html' title='在无尽的生活中寻找工作的意义'/><author><name>CursedOctopus</name><uri>http://www.blogger.com/profile/02704636757216288421</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-1586016313039771875</id><published>2008-04-01T22:28:00.003+08:00</published><updated>2008-04-02T16:36:03.898+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='产品＆生活'/><category scheme='http://www.blogger.com/atom/ns#' term='千鸟窝'/><title type='text'>在无尽的加班中寻找人生的意义</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-1VjsI0JKhI/R_JG70fp5cI/AAAAAAAAAHw/K0jBZItsGxs/s1600-h/img200609271625142.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_-1VjsI0JKhI/R_JG70fp5cI/AAAAAAAAAHw/K0jBZItsGxs/s400/img200609271625142.jpg" alt="" id="BLOGGER_PHOTO_ID_5184284114574501314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;如题&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-1586016313039771875?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/1586016313039771875/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=1586016313039771875' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/1586016313039771875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/1586016313039771875'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/04/blog-post.html' title='在无尽的加班中寻找人生的意义'/><author><name>NiAo</name><uri>http://www.blogger.com/profile/10080612613110075298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-1VjsI0JKhI/R_JG70fp5cI/AAAAAAAAAHw/K0jBZItsGxs/s72-c/img200609271625142.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-3168648325619704595</id><published>2008-03-31T14:51:00.001+08:00</published><updated>2008-03-31T14:56:42.796+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>cee1的梦、想</title><content type='html'>&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;鸟老说我的文章大部分像在说天书。那么，好吧。这次就写点半天书的东西。&lt;/span&gt;&lt;/span&gt; &lt;h1 class="western"&gt;&lt;span style="font-family:黑体;"&gt;&lt;span lang="zh-CN"&gt;梦&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt; &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;不得不说，我有时候是理想主义者。所谓理想主义有时候是很残酷的，轻者类似洁癖，重者类似人类补完计划。不过，引用&lt;/span&gt;&lt;/span&gt;NERV&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;副司令冬月的一句话——“我宁可生活在有人的地狱”（背景是与碇原堂在发生第二次冲击的南极，碇说这里连微生物也没有，是没有罪恶的世界了），即理想应与现实的交叉——所以我在理想主义者前加了“有时候”，所以这个部分的标题是“梦”——那朦朦胧胧地贯穿了人愿望的，而又会醒来的现象。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;以下占位，等有心情了再写&lt;/span&gt;&lt;/span&gt;...&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;哈哈&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;h1 class="western"&gt;&lt;span style="font-family:黑体;"&gt;&lt;span lang="zh-CN"&gt;想&lt;/span&gt;&lt;/span&gt;&lt;/h1&gt; &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;开源的运动，如同文艺复兴一般，其把那些“高深”的“技”、“术”变得透明，移除高科技的光环，从神坛上拉下，普遍地&lt;/span&gt;&lt;/span&gt;available&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。开源运动的意义不仅仅在聚集了“草根”开发软件，更重要的是展现了网络的力量，对传统教育进行了冲击，展现了教育的本质在于环境&lt;/span&gt;&lt;/span&gt;(context)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。对于数字产品（网页、软件、文档、图片、音乐、游戏、电影&lt;/span&gt;&lt;/span&gt;...&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）的“绿色制造”（完全使用开源技术而非大众很难获得（包括经济上&lt;/span&gt;&lt;/span&gt;...&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）的闭源技术制造）也是有重要意义。值得注意的是，开源虽然始于软件，但是其波及范围已经远远超出了软件的范畴。举个例子说明如何其是从软件向其他领域扩充：硬件方面，受软件开源影响有开源的&lt;/span&gt;&lt;/span&gt;CPU&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;（&lt;/span&gt;&lt;/span&gt;CPU&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;设计电路开源），还有开放的计算资源（&lt;/span&gt;&lt;/span&gt;google&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;IBM&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的“云”项目），利用这些计算资源可以进行&lt;/span&gt;&lt;/span&gt;CPU&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;非常繁重任务。以此为基础开源的思想的广泛在各个领域的传播。（&lt;/span&gt;&lt;/span&gt;PS&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;：希望某鸟和某鱼将来工作上能用上我组装过的“工具”，实现绿色制造）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;现代的&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;艺术般&lt;/span&gt;&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;制造，是一群人聚集在一起交流与表现其共同的理念与创意。开源运动降低了非相关因素的成本（现代制造离不开网络和计算机吧），使得人与人交流更加自由。（&lt;/span&gt;&lt;/span&gt;PPS&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;：这个过程中，电脑和网络的功能越发被利用，人与人的交流完全通过虚拟电子电路来完成，这样黑客帝国中的虚拟现实情节就显的可行&lt;/span&gt;&lt;/span&gt;...&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;为了避免这种情况（出于比如存在感&lt;/span&gt;&lt;/span&gt;,“&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;存在”这个词貌似很多作品探讨，哪天有感觉了再展开），人与人也需要更多的现实（地理上）中交流，这就是上次和鸟交流的那个创意点子——围绕地理上人聚合来提供相关服务，弥补现代人心灵上的需要。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-3168648325619704595?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/3168648325619704595/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=3168648325619704595' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/3168648325619704595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/3168648325619704595'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/03/cee1-nerv.html' title='cee1的梦、想'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-6868488677184391494</id><published>2008-03-27T15:05:00.001+08:00</published><updated>2008-03-27T16:36:41.998+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='本站消息'/><title type='text'>留言板</title><content type='html'>留言后可能不会立即显现，请耐心等待...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-6868488677184391494?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/6868488677184391494/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=6868488677184391494' title='17 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6868488677184391494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6868488677184391494'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/03/blog-post_707.html' title='留言板'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-8311946965368870228</id><published>2008-03-25T09:50:00.002+08:00</published><updated>2008-03-25T09:53:51.628+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>双屏电脑</title><content type='html'>&lt;p class="western" style="text-indent: 0in; margin-bottom: 0in;" align="center"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;img style="margin: 1em 1em 0pt 0pt; width: 186px; height: 278px; float: left;" src="http://docs.google.com/File?id=dgs79b8w_387hc5v4bhr" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;特点：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;  &lt;li&gt;&lt;p class="western"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;正反两面双屏，触摸屏&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;  &lt;li&gt;&lt;p class="western"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;屏幕大小如本本屏幕大小，比如&lt;/span&gt;&lt;/span&gt;14.1&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;寸&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;两人面对面交谈（屏幕不是很大，不隔离两人）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p class="western"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;用例：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="western"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;当两人面对面讨论、协作时&lt;/span&gt;&lt;/span&gt;:&lt;/p&gt; &lt;ul&gt;  &lt;li&gt;&lt;p class="western"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;每人拥有各自屏幕及操作空间。相比两人并坐，两人不会互相影响&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;两人面对面直接对话交流&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;两人的视角相同&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p class="western"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;一方在屏幕指点画圈，另一方屏幕可显示出（多种显示模式）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-8311946965368870228?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/8311946965368870228/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=8311946965368870228' title='1 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8311946965368870228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8311946965368870228'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/03/14.html' title='双屏电脑'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-1475285687423380047</id><published>2008-03-21T10:37:00.001+08:00</published><updated>2008-03-21T10:43:40.571+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='动漫空间'/><category scheme='http://www.blogger.com/atom/ns#' term='多媒体'/><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>鳥の詩</title><content type='html'>&lt;p style="text-indent: 0in; margin-top: 0.17in; page-break-after: avoid; text-align: center;"&gt; &lt;span style="font-family:Arial, sans-serif;font-size:130%;"&gt;&lt;span lang="zh-CN"&gt;&lt;span style="font-family:宋体;"&gt;鸟の诗&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 16pt;font-size:130%;" &gt;(tori no uta)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto; text-align: left;"&gt; &lt;img style="margin: 1em 0pt 0pt 1em; width: 223px; height: 98px; float: right;" src="http://docs.google.com/File?id=dgs79b8w_372fk9hznhf" name="graphics1" border="0" /&gt; &lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto; text-align: left;"&gt;  &lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto; text-align: left;"&gt;  &lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto; text-align: left;"&gt;  &lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto; text-align: left;"&gt;  &lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto; text-align: left;"&gt;  &lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto; text-align: right;"&gt;  &lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto; text-align: right;"&gt;  &lt;/p&gt;  &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;词：&lt;/span&gt;&lt;/span&gt;key&lt;/p&gt;&lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto; text-align: left;"&gt;  &lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt;  &lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt;  &lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt;  &lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt;  &lt;/p&gt;&lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt;&lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;曲：折户伸治&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto; text-align: left;"&gt;  &lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt;&lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;编：高濑一矢&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt;  &lt;/p&gt;  &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;歌：&lt;/span&gt;&lt;/span&gt;Lia &lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt;  &lt;/p&gt;&lt;br /&gt;&lt;object type="application/x-shockwave-flash" data="http://moyugui.googlepages.com/audiouq4.swf?audioUrl=http://patl080r.googlepages.com/bird_poem.mp3" width="400" height="27"&gt;&lt;param name="movie" value="http://moyugui.googlepages.com/audiouq4.swf?audioUrl=http://patl080r.googlepages.com/bird_poem.mp3" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;  &lt;col width="154*"&gt;  &lt;col width="102*"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;kieru hikoukigumo bokutachi wa miokutta&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;消（き）える飞行机云（ひこうきぐも）　仆（ぼく）たちは见送（みお）った&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;目送消逝飞机云的我们&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;mabushikute nigeta itsu datte yowakute&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;眩（まぶ）しくて逃（み）げた　いつだって弱（よわ）くて&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;刺眼的云就这么逸出视线　渐行渐远（总是如此软弱）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;ano hi kara kawarazu&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;あの日（ひ）から変（か）わらず&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;从那日起不变的&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;itsu made mo kawarazuni irarenakatta koto&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;いつまでも変（か）わらずにいられなかったこと　&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;永远不变的　对逝去    的过去&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;kuyashikute yubi o hanasu&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;悔（くや）しくて指（ゆび）を离（はな）す&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;痛苦悔恨的放开手&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;ano tori wa mada umaku tobenai kedo&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;あの鸟（とり）はまだうまく飞（と）べないけど&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;那只鸟虽    还不能飞得很好&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;itsu ka wa kaze o kitte shiru&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;いつかは风（かぜ）を切（き）って知（し）る&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;但总有乘风而去的一天&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;todokanai basho ga mada tooku ni aru&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;届（とど）かない场所（ばしょ）がまだ远（とお）くにある&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;到不了的地方尚如此遥远&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;negai dake himete mitsumeteru&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;愿（ねが）いだけ秘（ひ）めて见（み）つめてる&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;便将愿望深藏　直视前方&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;kodomotachi wa natsu no senro aruku&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;子供（こども）たちは夏（なつ）の线路（せんろ）　歩（ある）く&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;孩子们　循着夏天的行迹&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;fuku kaze ni suashi o sarashite&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;吹（ふ）く风（かぜ）に素足（すあし）をさらして&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;在    风中　打&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;露&lt;/span&gt;&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;着赤脚&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;tooku ni wa osanakatta hibi o&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;远（とお）くには幼（おさな）かった日（ひ）びを&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;远处是　幼时的日子&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;ryoute ni wa tobidatsu kibou o&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;両手（りょうて）には飞（と）び立（だ）つ希望（きぼう）を&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;两手中　希望飞散&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;kieru hikoukigumo oikakete oikakete&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;消（き）える飞行机云（ひこうきぐも）　追（お）いかけて追（お）いかけて&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;不停追逐消失的飞机云&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;kono oka o koeta ano hi kara kawarazu itsu made mo     &lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;この丘（おか）を越（こ）えたあの日（ひ）から変（か）わらず　いつまでも    &lt;/span&gt;&lt;/span&gt;    &lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;从那时越过这小丘起　就从未变过&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;massugu ni bokutachi wa aru you ni&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;真（ま）っ直（す）ぐに仆（ぼく）たちはあるように&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;但很快的　我们终将同在　而能达到&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;watatsumi no you na tsuyosa o mamoreru yo kitto&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;海神（わたつみ）のような强（つよ）さを守（まも）れるよ　きっと&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;即使如海神般的坚强吧　一定的&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;ano sora o mawaru fuusha no hanetachi wa&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;あの空（そら）を回（まわ）る风车（ふうしゃ）の羽根（はね）たちは&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;那空中回转的风车扇叶&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;itsu made mo onaji yume miru&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;いつまでも同（おな）じ梦见（ゆめみ）る&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;总作着相同的梦&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;todokanai basho o zutto mitsumeteru&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;届（とど）かない场所（ばしょ）をずっと见（み）つめてる&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;望着到达不了的地方&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;negai o himeta tori no yume o&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;愿（ねが）いを秘（ひ）めた鸟（とり）の梦（ゆめ）を&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;只好将愿望深藏作著鸟之梦&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;furikaeru yaketa senro oou&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;振（ふ）り返（かえ）る灼（や）けた线路（せんろ）　覆（おお）う&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;回首是灼热的线路&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;nyuudougumo katachi o kaete mo&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;入道云（にゅうどうぐも）　形（かたち）を変（か）えても&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;即使笼罩的云　改变了形体&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;bokura wa oboete ite dou ka&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;仆（ぼく）らは覚（おぼ）えていて　どうか&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;我们总还记得&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;kisetsu ga nokoshita kinou o&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;季节（きせつ）が残（のこ）した昨日（きのう）を&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;残留季节的昨日&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;kieru hikoukigumo oikakete oikakete&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;消（き）える飞行机云（ひこうきぐも）　追（お）いかけて追（お）いかけて&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;不停追逐消失的飞机云&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;hayasugiru aizu futari waraidashiteru itsu made mo&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;早（はや）すぎる合図（あいず）　ふたり笑（わら）い出（だ）してるいつまでも&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;对过早的信号　两个人笑了出来&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;massugu ni manazashi wa aru you ni&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;真（ま）っ直（す）ぐに眼差（まなざ）しはあるように&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;很快的眼神交会&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;ase ga nijinde mo te o hanasanai yo zutto&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;汗（あせ）が渗（にじ）んでも手（て）を离（はな）さないよ　ずっと&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;即使渗出了汗也永远别离手啊&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;br /&gt;   &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;kieru hikoukigumo bokutachi wa miokutta&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;消（き）える飞行机云（ひこうきぐも）　仆（ぼく）たちは见送（みおく）った&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;目送消逝飞机云的我们&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;mabushikute nigeta itsu datte yowakute&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;眩（まぶ）しくて逃（に）げた　いつだって弱（よわ）くて&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;刺眼的云就这么逸出视线　渐行渐远（总是如此软弱）&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;ano hi kara kawarazu&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;あの日（ひ）から変（か）わらず　&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;从那日起不变的&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;itsu made mo kawarazuni irarenakatta koto&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;いつまでも変（か）わらずにいられなかったこと&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;永远不变的　对逝去    的过去&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="60%"&gt;    &lt;p align="left"&gt;kuyashikute yubi o hanasu&lt;/p&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;悔（くや）しくて指（ゆび）を离（はな）す&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="40%"&gt;    &lt;p align="left"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;痛苦悔恨地放开手&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-1475285687423380047?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/1475285687423380047/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=1475285687423380047' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/1475285687423380047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/1475285687423380047'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/03/tori-no-uta-key-lia-kieru-hikoukigumo.html' title='鳥の詩'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-8078892308245592616</id><published>2008-03-21T10:29:00.007+08:00</published><updated>2008-03-26T11:07:15.232+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='动漫空间'/><category scheme='http://www.blogger.com/atom/ns#' term='多媒体'/><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>青空AIR</title><content type='html'>&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;b&gt;青空 &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;AIR&lt;/b&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_nInZ8ZXtrrE/R-MeNqkmNEI/AAAAAAAAAik/bo1J8PCt3Hs/s1600-h/air.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_nInZ8ZXtrrE/R-MeNqkmNEI/AAAAAAAAAik/bo1J8PCt3Hs/s320/air.png" alt="" id="BLOGGER_PHOTO_ID_5180017216521122882" border="0" /&gt;&lt;/a&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;作词：&lt;/span&gt;&lt;/span&gt;Key&lt;/p&gt;   &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;作曲：&lt;/span&gt;&lt;/span&gt;Key&lt;/p&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;编曲：折戸伸治&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt; Vocal&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt;Lia&lt;/p&gt;  &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;object type="application/x-shockwave-flash" data="http://moyugui.googlepages.com/audiouq4.swf?audioUrl=http://patl080r.googlepages.com/air.mp3" width="400" height="27"&gt;&lt;param name="movie" value="http://moyugui.googlepages.com/audiouq4.swf?audioUrl=http://patl080r.googlepages.com/air.mp3" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="668"&gt;  &lt;col width="333"&gt;  &lt;col width="335"&gt;  &lt;tbody&gt;&lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Ano umi dokomademo aokatta tokumade&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;あの海どこまでも青かった远くまで&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;那片海洋    蔚蓝的一片 直到远方&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Ano michi dokomademo tsuzuiteta massuguni&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;あの道どこまでも続いてたまっすぐに&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;那条小路    笔直地延续 没有尽头&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Ichiban hayaku sunaoni warattamono gachi&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;一番早く素直に笑った者胜ち&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;还记得那次游戏    看谁会最先笑出声来&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Ichiban sukina anohito waratteru&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;一番好きなあの人笑ってる&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;还记得最喜欢的那个人    开心的笑容&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Dare yorimo toku e ittemo koko kara mata waratte kureru?&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;谁よりも远くにいってもここからまた笑ってくれる？&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;就算走得比谁都要遥远    他仍会在这里对我微笑吧？&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Hitomi wo tojireba futto natsu no nioi&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;瞳を闭じればふっと夏の日の匂い&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;只要轻轻地闭上双眼    便会感到夏日阳光的气息&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Ano kawa asonderu futari kiri doro darake&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;あの川    游んでる ふたりきり泥だらけ&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;那条小河    嬉戏的两人 满身是泥&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Ano kumo otteiru todoitara shiawase to&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;あの云    追っている 届いたら幸せと&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;那朵云彩    只要能追上 就会幸福&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Ichiban hayaku kono saka nobotta mono gachi&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;一番早くこの坂のぼった者胜ち&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;还记得那次游戏    看谁能最先跑到坡顶&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Ichiban sukina ano basho mezashite&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;一番好きなあの场所目指して&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;还记得最喜欢的那处地方    我们一直向往&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Takusan no omoide ga aru hoka niha nani mo iranai kurai&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;たくさんの思い出がある    他にはなにもいらないぐらい&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;有着太多太多的回忆    不需要其它的任何东西&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Hitomi wo tojireba sugu ano umi no nioi&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;瞳を闭じればすぐあの海の匂い&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;只要轻轻闭上双眼    就能够感到那片海洋的气息&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Mata natsu ga kuru giniro ni hikaru&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;また夏がくる    银色に光る&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;夏天还会再来    映照在银光闪闪的水面&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Minamo ni utsusu futaribun no kage&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;水面に移すふたりぶんの影&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;两人的倒影&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;br /&gt; &lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Dare yorimo toku he ittemo kokokara mata waratte kureru?&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;谁よりも远くにいってもここからまた笑ってくれる？&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;就算走得比谁都要遥远    他仍会在这里对我微笑吧？&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt;  &lt;tr valign="top"&gt;   &lt;td width="333"&gt;    &lt;p&gt;Hitomi wo tojireba futto ano hi no aozora&lt;/p&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;瞳を闭じればふっとあの日の青空&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;   &lt;td width="335"&gt;    &lt;p&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;只要轻轻地闭上双眼    便会感到那日蓝天的气息&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/td&gt;  &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt; &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-8078892308245592616?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/8078892308245592616/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=8078892308245592616' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8078892308245592616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/8078892308245592616'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/03/air-key-key-vocal-lia-ano-umi.html' title='青空AIR'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_nInZ8ZXtrrE/R-MeNqkmNEI/AAAAAAAAAik/bo1J8PCt3Hs/s72-c/air.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-6524810030044507810</id><published>2008-03-20T13:25:00.002+08:00</published><updated>2008-03-20T13:28:18.621+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='动漫空间'/><category scheme='http://www.blogger.com/atom/ns#' term='多媒体'/><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>最终兵器彼女Op &amp; Ed</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;object width="400" height="300"&gt;&lt;param name="movie" value="http://www.tudou.com/v/5Rb2c4k0GLg"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.tudou.com/v/5Rb2c4k0GLg" type="application/x-shockwave-flash" width="400" height="300" allowfullscreen="true" wmode="transparent" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="400" height="300"&gt;&lt;param name="movie" value="http://www.tudou.com/v/PqBDaxmmNIU"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.tudou.com/v/PqBDaxmmNIU" type="application/x-shockwave-flash" width="400" height="300" allowfullscreen="true" wmode="transparent" allowscriptaccess="always"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-6524810030044507810?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/6524810030044507810/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=6524810030044507810' title='2 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6524810030044507810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/6524810030044507810'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/03/op-ed.html' title='最终兵器彼女Op &amp; Ed'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-9051515516698749874</id><published>2008-03-20T09:14:00.003+08:00</published><updated>2008-03-20T09:25:10.682+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='用户界面'/><category scheme='http://www.blogger.com/atom/ns#' term='人机界面'/><category scheme='http://www.blogger.com/atom/ns#' term='HI'/><category scheme='http://www.blogger.com/atom/ns#' term='技术wawa'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>ASL (Adobe Source Libraries)总览</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a href="http://stlab.adobe.com/"&gt;stlab.adobe.com&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style="text-indent: 0in;" align="left"&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;作者：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;ul&gt;   &lt;p align="left"&gt;     Sean Parent, Adobe Systems Incorporated   &lt;/p&gt;   &lt;p align="left"&gt;     Mat Marcus, Adobe Systems Incorporated   &lt;/p&gt;   &lt;p align="left"&gt;     Foster Brereton, Adobe Systems Incorporated   &lt;/p&gt; &lt;/ul&gt; &lt;p style="text-indent: 0in;" align="left"&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;更新日期&lt;/span&gt;&lt;/span&gt;: &lt;/p&gt; &lt;ul&gt;   &lt;p style="text-indent: 0in;" align="left"&gt;     2004-12-6   &lt;/p&gt;   &lt;p style="text-indent: 0in;" align="left"&gt;     2007-4-3   &lt;/p&gt; &lt;/ul&gt; &lt;p style="text-indent: 0in;" align="left"&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;翻译：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;ul&gt;   &lt;p style="text-indent: 0in;" align="left"&gt;     cee1 (&lt;a href="mailto:fykcee1@gmail.com"&gt;fykcee1@gmail.com&lt;/a&gt;) 2008-3-19   &lt;/p&gt; &lt;/ul&gt; &lt;div dir="ltr" id="Table of Contents1" style="background: transparent none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;   &lt;p style="text-indent: 0in; margin-bottom: 0in; page-break-before: auto;"&gt;&lt;span class="Apple-style-span"   style="font-weight: bold;font-family:黑体;font-size:32;"&gt;摘要&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;本文档总览 &lt;/span&gt;&lt;/span&gt;ASL (Adobe Source Libraries)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。&lt;/span&gt;&lt;/span&gt;ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的目标是开发通过用说明性的描述&lt;/span&gt;&lt;/span&gt;(declarative descriptions )&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，组合一般算法来构筑高级程序的技术。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;最开始的两个重要的库：属性模型库&lt;/span&gt;&lt;/span&gt;(Adam)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和布局库&lt;/span&gt;&lt;/span&gt;(Eve)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。它们负责在软件程序中模型化人机界面的外观和行为。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;是&lt;/span&gt;&lt;/span&gt;Adobe&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;软件技术实验室&lt;/span&gt;&lt;/span&gt;(Adobe Software Technology Lab &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt;STLab)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;一个项目；一个通过提供更好的技术和教育来增加开发者的创作力和软件质量的研究小组。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   Adobe Begin&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;是一个用来表现这里提到的观点的简单程序。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h1 class="western"&gt;   &lt;a name="1.个人前言（选译）|outline"&gt;&lt;/a&gt; &lt;span style="font-family:黑体;"&gt;&lt;span lang="zh-CN"&gt;个人前言（选译）&lt;/span&gt;&lt;/span&gt; &lt;/h1&gt; &lt;p style="text-indent: 0in;"&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;这是个开始&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;...&lt;/i&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;这里是我准备发布&lt;/span&gt;&lt;/span&gt;Adobe Source Libraries&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;时的想法。这里有些精妙的代码，我希望那些会擦出未来研究和开发的火花。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;如果看软件产品的界面，很可能感觉是机械化的。给你的幻觉的是在直接操作底层模型：如果你按这里，你知道什么将会发生（或者什么应该发生）。如果你按那里，会发生另外的。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;界面之下是一个非机械的系统。大部分的实现可以用“有机”来更好形容：乱糟糟一堆对象通过信使系统松散地互联。这个系统不是随机的，可以通过使用任意数量的、已很好建立的方法学来仔细设计它。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;然而，这个系统的真实构架，是一个由个别数据和互联逻辑形成结构。软件由代数结构所定义。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;这个主题在&lt;/span&gt;&lt;/span&gt;ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;中不断地在很多方面重现，包括：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;值依赖的语义，而不是引用或者指针语义，作为控制联系的机制。&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;陈述算法的需求，通过语义概念而不是接口。&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;清晰化联系，使用明了的数据结构，在缺少继承的联系机制中引人注目。&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;p style="text-indent: 0in;"&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;这是个好的开始&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;...&lt;/i&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;这些库被结合到&lt;/span&gt;&lt;/span&gt;Adobe&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的产品中，用简洁和简短陈述代替了成千上万行代码。&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;布局引擎节省了 &lt;/span&gt;&lt;/span&gt;Adobe&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;地方化方面重要的人力资源。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;最有“抱负”的库，&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，源自一个直觉——简单人机界面背后的逻辑可以用一个函数精炼描述：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;pre class="western"&gt;f (x) -&amp;gt; x'&lt;/pre&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;提供这些功能的代码，占到&lt;/span&gt;&lt;/span&gt;Adobe&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;代码基的&lt;/span&gt;&lt;/span&gt;1/3,&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;并且是开发中几乎半数&lt;/span&gt;&lt;/span&gt;bugs&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的来源。显然，这些函数不是如此简单，至少不想上述表现的那样简单。其复杂度大约源自高度的互联变量。单靠事件处理代码，其没有足够的上下文来解决上述系统中的复杂问题。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   ... &lt;/p&gt; &lt;h1 class="western"&gt;   &lt;a name="2.属性模型库和布局库简介|outline"&gt;&lt;/a&gt; &lt;span style="font-family:黑体;"&gt;&lt;span lang="zh-CN"&gt;属性模型库和布局库简介&lt;/span&gt;&lt;/span&gt; &lt;/h1&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;属性名模型库包括求解器和用来描述一集合中值间的约束和关系的陈述语言，典型的，传给程序命令&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;一个函数&lt;/span&gt;&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的参数。当用在人机界面时&lt;/span&gt;&lt;/span&gt;(human interfaces&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt;HI)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;时，属性模型库提供了控制&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;行为的逻辑。属性模型库在概念上和一个电子表格&lt;/span&gt;&lt;/span&gt;(spreadsheet)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;或者表单管理器&lt;/span&gt;&lt;/span&gt;(forms manager)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;类似。值被设置时依赖之的值被重新计算。属性模型库提供了解析互相联系的值的工具，但不是一个一般的约束系统。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;布局库由求解器和用于构筑&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的陈述语言组成。布局求解器读取&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;元素的丰富描述，来形成一个与手工布局相媲美的高质量的布局。对于跨多个操作系统平台和语言而言，单一&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;描述就足够了。布局库被开发出来和属性模型库合用，但是也可单独使用。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;这些库不构成一个传统的应用程序框架。它们是可以被融合到多个环境中的组件库。它们也可一起使用，或者独立使用，但必须和其他工具一起来构建一个应用程序。几乎所有构成属性模型和布局库的组件也可以独立被使用，并且作为&lt;/span&gt;&lt;/span&gt;ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的一部分被文档化。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;用&lt;/span&gt;&lt;/span&gt;C++&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;开发，并且大量的使用了&lt;/span&gt;&lt;/span&gt;Boost&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;库&lt;/span&gt;&lt;/span&gt;&amp;lt;http://www.boost.org&amp;gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，所以编译&lt;/span&gt;&lt;/span&gt;ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;需要&lt;/span&gt;&lt;/span&gt;boost&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;布局库开发有三个目标和两个需求：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;目标：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;ol&gt;   &lt;li&gt;     &lt;p style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;更加容易地指定和修改&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;布局。&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;所有平台单一定义（跨平台）&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;所有语言单一定义（国际化）&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ol&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;需求：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;ol&gt;   &lt;li&gt;     &lt;p style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;必须满足片段能结合到应用程序中去。&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;创建布局和手工布局的一样好或者更好。&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ol&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;实现目标三依赖于一个记号字符串系统。&lt;/span&gt;&lt;/span&gt;ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;提供了&lt;/span&gt;&lt;/span&gt;xstring&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;库作为类似系统的一个例子，但是布局库不直接依赖任何字符串系统。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;以下例子在本文档中通篇使用。这里用来给个第一印象。一个简单的对话框的布局描述如下&lt;/span&gt;&lt;/span&gt;: &lt;/p&gt; &lt;pre class="western"&gt;layout clipping_path&lt;br /&gt;{&lt;br /&gt;view dialog(name: "Clipping Path")&lt;br /&gt;{&lt;br /&gt;   column(child_horizontal: align_fill)&lt;br /&gt;   {&lt;br /&gt;       popup(name: "Path:", bind: @path, items:&lt;br /&gt;       [&lt;br /&gt;           { name: "None", value: empty },&lt;br /&gt;           { name: "Path 1", value: 1 },&lt;br /&gt;           { name: "Path 2", value: 2 }&lt;br /&gt;       ]);&lt;br /&gt;       edit_number(name: "Flatness:", digits: 9, bind: @flatness);&lt;br /&gt;   }&lt;br /&gt;   button(name: "OK", default: true, bind: @result);&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;注意为了简洁，字符串以简化的方式显示。一般，一个记号字符串系统将被使用。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p align="center"&gt;   &lt;/p&gt;&lt;div style="padding: 1em 0pt; text-align: center;"&gt;     &lt;a href="http://www.blogger.com/File?id=dgs79b8w_374znbrz3gq" target="_blank"&gt;&lt;img name="graphics1" src="http://docs.google.com/File?id=dgs79b8w_374znbrz3gq" style="width: 279px; height: 95px;" border="0" /&gt;&lt;/a&gt;   &lt;/div&gt;    &lt;p align="center"&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;图一： 上面描述的&lt;/span&gt;&lt;/span&gt;Clipping Path&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;对话框（在&lt;/span&gt;&lt;/span&gt;Mac OS X&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;中）&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;虽然这个例子创建了一个静态的布局，布局库能也能在&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;元素隐藏或显示时控制的元素放置，比如当窗口改变尺寸或者内容改变时。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;在布局表述中的绑定属性（&lt;/span&gt;&lt;/span&gt;bind attributes&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;），代表&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;元素联接的对象——一个下层的模型。在此例中，模型是是一个传给函数的参数模型（推测起来，一个改变文档&lt;/span&gt;&lt;/span&gt;"clipping path"&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的函数）。属性模型库管理&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;事件输入的参数间的约束和关系，并且把信息回填给控件来显示。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;绑定属性的值引用属性模型中的一个单元。此例的属性模型被陈述为：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;pre class="western"&gt;sheet clipping_path&lt;br /&gt;{&lt;br /&gt;output:&lt;br /&gt;result                  &amp;lt;== { path: path, flatness: flatness };&lt;br /&gt;&lt;br /&gt;interface:&lt;br /&gt;unlink flatness : 0.0   &amp;lt;== (path == empty) ? 0.0 : flatness;&lt;br /&gt;path            : 1;&lt;br /&gt;}&lt;/pre&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;绑定数字文字域到属性模型中的&lt;/span&gt;&lt;/span&gt;flatness&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;单元，从而&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;显示此单元中的值并且使得&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;状态影响单元状态。字符域在”&lt;/span&gt;&lt;/span&gt;0.0”&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和上次用户输入值之间切换，而弹出菜单则在”&lt;/span&gt;&lt;/span&gt;None”&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和文档中可用路径之一切换。当”&lt;/span&gt;&lt;/span&gt;None”&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;被选择，则文字域灰色不可用，因为&lt;/span&gt;&lt;/span&gt;flatness&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;单元不能直接对结果产生影响；若此时文字域中输入数字（导致设置了绑定的&lt;/span&gt;&lt;/span&gt;flatness &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;单元的值）将对&lt;/span&gt;&lt;/span&gt;reslut&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;无效故控制被禁用。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;虽然模型中的改变在绑定的&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;中反应，模型并不引用&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，是完全独立的。它能绑定到任意数量的可选界面，同一模型被用作脚本验证。模型也被用来脚本产生（记录）。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;虽然这些库被开发出来解决&lt;/span&gt;&lt;/span&gt;Adobe&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;产品的应用程序&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;开发问题，也存在其他可用的技术。它们可被用于形成布局和逻辑，网页应用程序前端的开发，网页布局和逻辑，或者文档样式表布局。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;我们也在努力应用文档模型来扩展这些库中的概念。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h1 class="western"&gt;   &lt;a name="3.属性模型库的目标|outline"&gt;&lt;/a&gt; &lt;span style="font-family:黑体;"&gt;&lt;span lang="zh-CN"&gt;属性模型库的目标&lt;/span&gt;&lt;/span&gt; &lt;/h1&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;属性模型库的目标是高尚的——部分是为了这个库能成功成为一个明显优异的应用程序构筑&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;组件的方式。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h2 class="western"&gt;   &lt;a name="3.1.减少构筑界面的劳力|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;减少构筑界面的劳力&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;询问几乎所有软件工程师，什么是他们最痛恨作的，答案将会是“构筑人机界面”。甚至引入布局库，工程师从大部分繁冗的工作中解放出来，构筑人机界面的工作量仍旧繁重。实际上，&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;相关代码占了&lt;/span&gt;&lt;/span&gt;Adobe&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;应用程序中实现某个特性总代码的近&lt;/span&gt;&lt;/span&gt;1/3&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。与框架代码形成鲜明对照，框架代码占了我们的应用程序大约&lt;/span&gt;&lt;/span&gt;1/10&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，故此项目潜在影响力非常明显。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;属性模型库立意通过一种清晰格式，来模型化当前由复杂事件处理代码管理的部分。它同时也减少了冗余逻辑，合并通用逻辑来重用和共享。通过使用属性模型库，用描述来替代当前实现界面的一些必要代码，从而体积减少&lt;/span&gt;&lt;/span&gt;10&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;倍，复杂度减少大约&lt;/span&gt;&lt;/span&gt;600&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;倍。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h2 class="western"&gt;   &lt;a name="3.2.增加界面实现的质量|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;增加界面实现的质量&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;正如上述，&lt;/span&gt;&lt;/span&gt;Adobe&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;产品中的大部分代码用来管理&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，预计相应数量的&lt;/span&gt;&lt;/span&gt;bugs&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。但在现实中，&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;相关的&lt;/span&gt;&lt;/span&gt;Bug&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;不成比例地高。在&lt;/span&gt;&lt;/span&gt;Photoshop&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的&lt;/span&gt;&lt;/span&gt;20,000-bugs&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;数据库中，抽样显示每&lt;/span&gt;&lt;/span&gt;500&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;处&lt;/span&gt;&lt;/span&gt;bugs&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;中一半和界面层相关，这也是属性模型库立足处。这些&lt;/span&gt;&lt;/span&gt;bug&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;相对不严重，但仍对资源产生中重要影响。横向比较&lt;/span&gt;&lt;/span&gt;Adobe&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;产品大约&lt;/span&gt;&lt;/span&gt;40%&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的&lt;/span&gt;&lt;/span&gt;bug&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;本质上是“行为上的”。使用属性模型库以后，这些&lt;/span&gt;&lt;/span&gt;bug&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;中的多数&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;在 &lt;/span&gt;&lt;/span&gt;Photoshop&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;抽样中，&lt;/span&gt;&lt;/span&gt;20&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;个有&lt;/span&gt;&lt;/span&gt;4&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;个&lt;/span&gt;&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;不会发生。其他&lt;/span&gt;&lt;/span&gt;bugs&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，虽然他们仍旧发生，但可很简单地找出和修复或是通过设计更加贴近实现来完全剔除。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h2 class="western"&gt;   &lt;a name="3.3.允许界面在产品间共享|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;允许界面在产品间共享&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p&gt;   Adobe&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;应用程序从其他公司获得并且内部开发超过&lt;/span&gt;&lt;/span&gt;10&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;年。随着时间流逝，平台改变，产品必须移植。结果造成了没有两个主要的应用程序基于同一应用程序框架开发。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;我们的应用程序在套件合成和角色转变（从孤立的域到一个大工作流中的组件）过程中，对重要&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;元素共享的需求不断增加。在某些领域中，诸如文件和财产（&lt;/span&gt;&lt;/span&gt;asset &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）管理，文本，颜色，元数据，&lt;/span&gt;&lt;/span&gt;web&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;优化和透明度，都期望与每个应用程序很好整合，并对应用程序通用。布局库已可从某种程度上实现界面布局共享。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;由于应用程序的框架、对象模型不同，整合与代码共享显得困难。即使布局被共享，其后的实现不能被共享，但仍旧要满足良好整合。其结果是构成&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;背后逻辑的代码在每个程序中用其各自控件和事件处理的模型来重复。造成代码和劳力大量重复。属性模型库试图合并那些逻辑，允许其在我们应用程序间与底层框架无关地轻松移动和定制。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h2 class="western"&gt;   &lt;a name="3.4.把HI开发工作交给设计师|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;把&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;开发工作交给设计师&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;当前，用户界面设计师负责设计视觉预览，同时可能加些文字来对行为描述。这个工作是使用图形工具比如 &lt;/span&gt;&lt;/span&gt;Photoshop&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;来绘制界面，添加注释来描述行为。然后设计交由工程师来编写布局和行为的代码。某些时候，设计的行为违背了底层命令的需求，工程师不得不再找设计师来解决之。只有设计由工程师完全实现后，重要的用户测试才能进行，通常需要工程师和设计师再来修正，再测试&lt;/span&gt;&lt;/span&gt;...&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;这个过程重复多轮。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;构筑在布局库上的可视化设计工具将使设计师来布局界面，保存为一种能直接被应用程序开发者使用的格式。这个工具再结合属性模型的支持，通过显露约束与保证设计师实验正确功能的界面，就能增进开发工程师和界面设计师的沟通。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h1 class="western"&gt;   &lt;a name="4.了解属性模型库|outline"&gt;&lt;/a&gt; &lt;span style="font-family:黑体;"&gt;&lt;span lang="zh-CN"&gt;了解属性模型库&lt;/span&gt;&lt;/span&gt; &lt;/h1&gt; &lt;p&gt;   Adobe&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;专业应用程序设计遵循模型、视图、控制器&lt;/span&gt;&lt;/span&gt;(Model&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;view&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;controller&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt;MVC)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;模式。模型代表正在被编辑的文档，视图代表了文档在窗口中的显示。控制器是用来修改文档命令的集合。这些命令遵照一种命令模式&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;参见&lt;/span&gt;&lt;/span&gt;Gamma, et. al. p. 233)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，每个作用于文档的命令都是一个事务。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h1 class="western"&gt;   &lt;div id="qm.i" style="padding: 1em 0pt; text-align: center;"&gt;&lt;a href="http://www.blogger.com/File?id=dgs79b8w_381dth59rgc" target="_blank"&gt;&lt;img style="width: 468px; height: 457px;" src="http://docs.google.com/File?id=dgs79b8w_381dth59rgc" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/h1&gt;&lt;p style="text-align: center;"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;图二：应用程序中典型命令参数流动&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="center"&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;我们大部分的应用程序遵循此图或者此模式的变种。这种模式下，来自预设或用户配置（&lt;/span&gt;&lt;/span&gt;preferences&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）或可能的脚本的信息，与目标文档的状态信息相结合。然后这些信息（部分可能由用户直接提供）被用来构筑传递给命令的参数。这个命令之后在文档上执行，如果此事务成功完成（可能由于资源不足或者用户取消操作而失败），命令的设置被送往脚本系统来记录和记录在用户配置（&lt;/span&gt;&lt;/span&gt;preferences&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）中。 灰色框是命令参数输入处（由用户输入并&lt;/span&gt;&lt;/span&gt;/&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;或在处理前验证），同时也是属性模型库关注之处。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p align="center"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_nInZ8ZXtrrE/R-G73KkmNCI/AAAAAAAAAiU/1ikWV_YzHHM/s1600-h/3.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_nInZ8ZXtrrE/R-G73KkmNCI/AAAAAAAAAiU/1ikWV_YzHHM/s400/3.jpg" alt="" id="BLOGGER_PHOTO_ID_5179627602857833506" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p align="center"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;图三：&lt;/span&gt;&lt;/span&gt;Edit Text&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;域依赖&lt;/span&gt;&lt;/span&gt;Popup&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的状态&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;上图展示了命令参数处理的部分过程。这是上面用过的&lt;/span&gt;&lt;/span&gt;clipping path&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;例子的一个描述。信息从一组预设（通常是用户上次选择的）或者脚本读入到系统，并和来自当前文档状态的信息合并。这个信息被传给对话框建立代码（用来建立对话框的域和控制。控制通过某个恰当资源描述或用布局库格式化。）&lt;/span&gt;&lt;/span&gt;[****STOPPED HERE****]&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;当界面中的控制被操作，事件产生，其他控制随之更新反应验证过的参数。最后，通常是在响应用户选择”&lt;/span&gt;&lt;/span&gt;OK”&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，来自&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;域的信息被收集，进行最终验证，对话框拆除，参数送出指示处理。当没有对话框中的项没有“相互交谈”，行为可以被编码成附加到每个项上简单验证过滤器（比如，一个&lt;/span&gt;&lt;/span&gt;Text edit&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;域上的过滤器只接受数字）。更加复杂的过滤器能处理简单区间内的值&lt;/span&gt;&lt;/span&gt;-&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;或者组合一群&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;元素为一标准簇（就像&lt;/span&gt;&lt;/span&gt;edit text&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;域绑定导一个滑动条）。然而，即使有这些简化，脚本验证代码和散落于&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;元素验证代码间仍有重复。需要定制的代码来设置，拆除和管理对话框的交互（在非常简单的情形下，交互可能完全由过滤器处理）&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;命令接口并不局限于模型化对话框。调色板&lt;/span&gt;&lt;/span&gt;( Palette&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）界面和直接操作也创建命令参数。属性模型库也能应用于这些情形中。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;虽然这个”简单”的例子不足以说明，互联关系会迅速超过项的数目&lt;/span&gt;&lt;/span&gt;N&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，全相联时，有&lt;/span&gt;&lt;/span&gt;(N&lt;span style="font-family:宋体;"&gt;²&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;-N)&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;直接联系。一个对话框带来吓人的复杂度。例如，&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;Photoshop6&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;中的层特效对话框有超过&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;250&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;个元素。虽然元素间的互联会在某种程度上受限，最终的复杂度仍旧显著。一个图像尺寸的对话框只有一些元素但却是全相联的。带来几页的逻辑，尽管数次&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;Photoshop&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;发布中持续努力，仍旧成为一个不断的&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;bug&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;bug&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;修正的源泉。即使最仔细地编写，这些修正不断地创建其他缺陷。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;所有基于事件系统的代码紧密和应用程序框架及应用程序文档模型绑定。这种紧耦合禁止代码在其他应用程序中重用。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h2 class="western"&gt;   &lt;a name="5.1.模型化控制器|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;模型化控制器&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;在更复杂的情形下（比如滑动条和&lt;/span&gt;&lt;/span&gt;Edit text&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;域联系），导致三角循环依赖。进一步分析显示循环由于&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;控制提供了两个功能——既输出显示又输入。通过逻辑上分离这两个功能，循环依赖被破坏。大部分事件句柄，脚本验证，设置和拆除中的逻辑现在压缩成单个”模型”。剩下就是一个&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;控制扮演视图和控制器角色的传统的&lt;/span&gt;&lt;/span&gt;MVC&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;模式。这在图四中描述。被模型化的是传给命令的参数。这个模型和绑定到它的&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;独立，给予设计师改变布局和选择&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;元素的巨大灵活性（而不需触动底层模型）&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;            &lt;p align="center"&gt;   &lt;/p&gt;&lt;div id="plsu" style="padding: 1em 0pt; text-align: center;"&gt;&lt;a href="http://www.blogger.com/File?id=dgs79b8w_383cpn8ccst" target="_blank"&gt;&lt;img style="width: 552px; height: 334px;" src="http://docs.google.com/File?id=dgs79b8w_383cpn8ccst" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;图四：&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;分隔了&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;控件同时扮演的视图和控制器角色。&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;合并成单一逻辑减少了系统的复杂性（从 &lt;/span&gt;&lt;/span&gt;N&lt;span style="font-family:宋体;"&gt;²&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;-N&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;到&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;N&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）。更多的，脚本验证和对话框验证的逻辑可以共享，因为只存在单一含系统状态的模型——之前单独的被编写现在可以被封装成应用在整个系统上的简单“规则”。比如，任一&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;HI&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;设计师告诉你，给出界面项当前状态时不产生影响，该界面元素视觉上应该禁用。在一个典型事件处理系统中，没有一种方式测定什么是有影响的，什么是无影响。借助&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;Adam&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，这个规则可以在应用程序中一次表达而非在每个对其他元素启用状态有影响的元素中表达。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:Times New Roman,serif;"&gt;Adam&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;模型系统在概念上类似一个传统的电子表格。单元格用文本标识符命名，而非组织成行&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;/&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;列布局，构成一个“电子表格”。一个“电子表格”类似&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;C&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;语言的结构体，不同的是数据成员（对应单元格）可以有表达式附加之（这样，当依赖成员被修改时，数据成员被再次计算）。依赖关系引擎是双向的，允许查询一个给定的状态如“哪些输入单元影响输出单元”。这类查询用来驱动控制器内的开启状态&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;(&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;如输入不能影响任何输出，附加在那个输入单元的控制器被禁用&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Times New Roman,serif;"&gt;)&lt;/span&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。反向的依赖关系查询也被用来作不变量测试，使得引擎能报告哪个输入单元造成不变量违例，而不是报告发生了一次不变量违例。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h1 class="western"&gt;   &lt;a name="6.Adam &amp;amp; Eve 构架|outline"&gt;&lt;/a&gt; Adam &amp;amp; Eve &lt;span style="font-family:黑体;"&gt;&lt;span lang="zh-CN"&gt;构架&lt;/span&gt;&lt;/span&gt; &lt;/h1&gt; &lt;h2 class="western"&gt;   &lt;a name="6.1.总览|outline"&gt;&lt;/a&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;总览&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p&gt;   &lt;/p&gt;&lt;div id="fthx" style="padding: 1em 0pt; text-align: center;"&gt;&lt;a href="http://www.blogger.com/File?id=dgs79b8w_384ckkdkrz4" target="_blank"&gt;&lt;img style="width: 599px; height: 508px;" src="http://docs.google.com/File?id=dgs79b8w_384ckkdkrz4" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p align="center"&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;图五：&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的基本组件，以及它们的互联方式&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;两个主要的组件：解析器和引擎。&lt;/span&gt;&lt;/span&gt;Eve1&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;有其（松散的）基于&lt;/span&gt;&lt;/span&gt;C&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的语法。&lt;/span&gt;&lt;/span&gt;Eve1&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的解析器和引擎合一，使得很难提供其他可选语法。对于&lt;/span&gt;&lt;/span&gt;Eve2&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，引擎彻底与解析器分开，通过提供解析器来支持其他语法。可选地提供一个格式化器来从&lt;/span&gt;&lt;/span&gt;Eve2 DOM&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;表格直接创建。最明显的“其他语法”是&lt;/span&gt;&lt;/span&gt;XML&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，许多其他形式也可（&lt;/span&gt;&lt;/span&gt;HTML&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，经典&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，&lt;/span&gt;&lt;/span&gt;CSS&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，&lt;/span&gt;&lt;/span&gt;JavaScript&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，&lt;/span&gt;&lt;/span&gt;Java Swing&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;及平台资源）。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h2 class="western"&gt;   &lt;a name="6.2.Adam表达语言(The Adam Expression Language：AEL)|outline"&gt;&lt;/a&gt; Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;表达语言&lt;/span&gt;&lt;/span&gt;(The Adam Expression Language&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt;AEL) &lt;/h2&gt; &lt;p&gt;   AEL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;开发出来作为&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;Eve2&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;基本表达语言。其语法大量地从&lt;/span&gt;&lt;/span&gt;Eve1&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;中借鉴（继续“&lt;/span&gt;&lt;/span&gt;C&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;风格”）。基于&lt;/span&gt;&lt;/span&gt;XML&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的语言被考虑过，但由于其太冗长、不便阅读而最终被抛弃（即使依赖一个好的可视化编辑器，基于文本编辑仍是某些用户的偏爱）。然而，基于&lt;/span&gt;&lt;/span&gt;XML&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;语言作为一种选择没有被完全抛弃。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   AEL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;开始被设计为支持来回编辑&lt;/span&gt;&lt;/span&gt;(round-trip editing)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和良好错误报告。新解析器是&lt;/span&gt;&lt;/span&gt;LL2&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的并有一个简单的词法分析器。注释被组织到语法中（而不是被词法分析器作为空格无视掉），从而支持可视化编辑器的来回编辑（&lt;/span&gt;&lt;/span&gt;round-trip editing&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h2 class="western"&gt;   &lt;a name="6.3.Adam|outline"&gt;&lt;/a&gt;Adam &lt;/h2&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;前面提过，&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;表格&lt;/span&gt;&lt;/span&gt;(sheet)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;类似&lt;/span&gt;&lt;/span&gt;C&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;结构体。一个表格由单元格成员组成。单元格成员可以是这些类型： &lt;/span&gt;&lt;/span&gt;input, output, interface, logic, constant&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;或 &lt;/span&gt;&lt;/span&gt;invariant &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;开头例子是一个表格指定&lt;/span&gt;&lt;/span&gt;(specification)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;pre class="western"&gt;sheet clipping_path&lt;br /&gt;{&lt;br /&gt;output:&lt;br /&gt;result          &amp;lt;== { path: path, flatness: flatness };&lt;br /&gt;&lt;br /&gt;interface:&lt;br /&gt;unlink flatness : 0.0 &amp;lt;== (path == empty) ? 0.0 : flatness;&lt;br /&gt;path            : 1;&lt;br /&gt;}&lt;/pre&gt; &lt;p&gt;   [&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;开放问题 &lt;/span&gt;&lt;/span&gt;1] invariant(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;不变量&lt;/span&gt;&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;是一个类型为布尔型的输出单元格。附加到一个&lt;/span&gt;&lt;/span&gt;invariant&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的句柄在&lt;/span&gt;&lt;/span&gt;invariant&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;计算值为假时调用。句柄被提供给&lt;/span&gt;&lt;/span&gt;invariant&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的名字、&lt;/span&gt;&lt;/span&gt;invariant&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;依赖的一些输入单元格。默认句柄抛出一个类型为&lt;/span&gt;&lt;/span&gt;adam::invariant_violation()&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的异常（不变量违例异常）。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;为了理解&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;做到的，考虑以下语句：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;pre class="western"&gt;unlink flatness : 0.0 &amp;lt;== (path == empty) ? 0.0 : flatness;&lt;/pre&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;作为&lt;/span&gt;&lt;/span&gt;C++&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;语句，上述语句意味着：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;ul&gt;   &lt;li&gt;     &lt;p style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;当执行时，计算&lt;/span&gt;&lt;/span&gt;&lt;i&gt;path&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的输出，&lt;/span&gt;&lt;/span&gt;&lt;i&gt;flatness&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;输出赋值为&lt;/span&gt;&lt;/span&gt;&lt;i&gt;0.0&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;或&lt;/span&gt;&lt;/span&gt;&lt;i&gt;flatness&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的输入&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;作为&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;语句，意味着：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;一旦&lt;/span&gt;&lt;/span&gt;&lt;i&gt;path&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的输出被修改，&lt;/span&gt;&lt;/span&gt;&lt;i&gt;flatness&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;输出赋值为&lt;/span&gt;&lt;/span&gt;&lt;i&gt;0.0&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;或&lt;/span&gt;&lt;/span&gt;&lt;i&gt;flatness&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的&lt;/span&gt;输入&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;当&lt;/span&gt;&lt;/span&gt;&lt;i&gt;path&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的输出不等&lt;/span&gt;&lt;/span&gt;&lt;i&gt;empty&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，同时&lt;/span&gt;&lt;/span&gt;&lt;i&gt;flatness&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的输入被修改，更新&lt;/span&gt;&lt;/span&gt;&lt;i&gt;flatness&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的输出&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;更多的，进行了以下查询：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;给出一个当前状态，哪些输入单元格对输出单元有效？&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;给出一个当前状态，&lt;/span&gt;&lt;/span&gt;&lt;i&gt;flatness &lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;输出依赖那些输入值？&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p&gt;       &lt;i&gt;flatness&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的输出当前依赖哪些值？其中哪些最近更新？&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;与上述语句相关的行为：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;ul&gt;   &lt;li&gt;     &lt;p style="text-indent: 0in;"&gt;       &lt;i&gt;flatness&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的输出被修改，升级显示&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;设置和&lt;/span&gt;&lt;/span&gt;&lt;i&gt;flatness&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的输入相联的&lt;/span&gt;&lt;/span&gt;&lt;i&gt;edit text&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;域的启用状态（根据&lt;/span&gt;&lt;/span&gt;&lt;i&gt;flatness&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的输入是否影响任何输出值，当状态改变时更新）&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;表格中的语句相关度越高，&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;表达相对于传统事件模型更加有效。上面的语句代替了&lt;/span&gt;&lt;/span&gt;Photoshop &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;中一个&lt;/span&gt;&lt;/span&gt;57&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;行（&lt;/span&gt;&lt;/span&gt;15&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;个语句）函数。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;表格的实例是一个写时复制（&lt;/span&gt;&lt;/span&gt;copy-on-write&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt;COW&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）对象，从而支持事务操作。易于实现撤销，当出现不变量违例时重置或者返回。&lt;/span&gt;&lt;/span&gt;[&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;注意：认真考虑下，&lt;/span&gt;&lt;/span&gt;COW&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;也能在对话框内实现多次撤销&lt;/span&gt;&lt;/span&gt;] &lt;/p&gt; &lt;p&gt;   [&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;开放问题&lt;/span&gt;&lt;/span&gt;2]&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;表格中的输入单元格可从字典类型载入，输出单元格可被提取为字典类型。这个功能可用来实现载入，保存，“收藏夹”和预设，也是绑定表格到应用程序的一种可行方式。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;修改表格的输入单元格触发一次再计算过程（可通过设置一个复杂的状态来避免）。依赖此改变值的任何单元格被再次计算。如果此过程中一个不可变单元格计算后返假&lt;/span&gt;&lt;/span&gt;(false)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，则抛出异常（含违例的&lt;/span&gt;&lt;/span&gt;invariant&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;名，及其他触发此违例的单元格）。&lt;/span&gt;&lt;/span&gt;[&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;注意：提供不变量依赖的所有输入单元格是有用的。提出“弱不变量”&lt;/span&gt;&lt;/span&gt;(“weak invariant”)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的概念也是有意义的——停止传播并导致任何更多的依赖输出单元格到无效状态。需更多经验来看到底需要什么。&lt;/span&gt;&lt;/span&gt;] &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;逻辑单元格&lt;/span&gt;&lt;/span&gt;(Logic cells)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;用来作中间计算，其状态既不可被读也不可由表格之外设置。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;接口单元格&lt;/span&gt;&lt;/span&gt;(Interface cells)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;用作输入和输出。通常，接口单元的输入和输出值相互同步。可以在接口单元格前加&lt;/span&gt;&lt;/span&gt;"unlink"&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;关键字，来阻止输出值不向后传播给输入值。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   [&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;开放问题&lt;/span&gt;&lt;/span&gt;3][&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;开放问题&lt;/span&gt;&lt;/span&gt;4]&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;界面有时依赖”最近发生的”这个概念。例如尺寸可变对话框中的一个显示“宽度”&lt;/span&gt;&lt;/span&gt;Edit text&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;域，可能要么显示用户输入的宽度值，要么显示用户改变高度时（译者：锁定宽高比改变尺寸？）计算的值。为了支持这个概念，&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;维持一个随着每次再计算而不断增加的创建计数&lt;/span&gt;&lt;/span&gt;(generation count)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。在再计算时，修改单元格同时打上创建计数戳。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h2 class="western"&gt;   &lt;a name="6.4.虚拟机|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;虚拟机&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;虚拟机是一个用来计算表达式的简单的栈机器。一个表达式归约成一个代码序列（每个代码代表一个值或操作数）。值被压入，操作数应用到栈顶的值上，压入结果。一个中缀表达式能通过重载操作符从序列中再构成。这对来回编辑（&lt;/span&gt;&lt;/span&gt;roundtrip editing&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）有用。概念上，&lt;/span&gt;&lt;/span&gt;AVM&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;（&lt;/span&gt;&lt;/span&gt;Adam &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;虚拟机）类似&lt;/span&gt;&lt;/span&gt;FORTH&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;或者&lt;/span&gt;&lt;/span&gt;PostScript&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;语言并支持压入一串代码序列为一个值。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;在&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;中，依赖关系通过执行语句时监视单元格查找来追踪。查找在实际执行时被延后。简化的布尔量和条件操作符把表达式作为参数，故被标记为依赖某个表达式的单元格实际上依赖表格的当前状态。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   [&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;开放问题&lt;/span&gt;&lt;/span&gt;5]&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;也许需要延后计算（知道函数请求计算）传给函数的参数。虽然可能让作用域规则更加复杂，但允许函数编写时，有条件地使用其参数，从而便于跟踪依赖关系。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h2 class="western"&gt;   &lt;a name="6.5.绑定|outline"&gt;&lt;/a&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;绑定&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p&gt;   Eve2&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的关键特性之一就是绑定&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;元素到&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;表格的某单元。绑定通过各种绑定属性&lt;/span&gt;&lt;/span&gt;(bind attribute)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;来实现。绑定属性的值是&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;单元格的名字&lt;/span&gt;&lt;/span&gt;(name&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，译者是一种&lt;/span&gt;&lt;/span&gt;AEL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的类型&lt;/span&gt;&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;例如：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;pre class="western"&gt;check_box(name: "Check this", bind: @check_this);&lt;/pre&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;名字也可用来绑定其他属性（译者：而非绑定属性）到表格。例如：如上例&lt;/span&gt;&lt;/span&gt;check box&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的名字可由用户设置，如下编写：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;pre class="western"&gt;check_box(name: @user_name, bind: @check_this);&lt;/pre&gt; &lt;h2 class="western"&gt;   &lt;a name="6.6.指导(Guides)|outline"&gt;&lt;/a&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;指导&lt;/span&gt;&lt;/span&gt;(Guides) &lt;/h2&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;指导（&lt;/span&gt;&lt;/span&gt;Guides&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）是&lt;/span&gt;&lt;/span&gt;Eve1&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;中&lt;/span&gt;&lt;/span&gt;label_width&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和 &lt;/span&gt;&lt;/span&gt;top_inset&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;属性概称。在&lt;/span&gt;&lt;/span&gt;Eve2&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，指导能处理跨层次的联系，允许&lt;/span&gt;&lt;/span&gt;n&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;列对齐和基线（&lt;/span&gt;&lt;/span&gt;baseline&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）对齐。很多地方，指导是自动的，对用户不可见（由客户端代码设置，由引擎计算）。&lt;/span&gt;&lt;/span&gt;[&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;注意：当前存在一个找到和谐的指导的好算法。该算法对位置计算不成熟，但初步实现应该能达到“比&lt;/span&gt;&lt;/span&gt;Eve1&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;更好”的目标&lt;/span&gt;&lt;/span&gt;] &lt;/p&gt; &lt;h2 class="western"&gt;   &lt;a name="6.7.动态计算|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;动态计算&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;改变视图尺寸（或由于用户拖动边界，或响应内容&lt;/span&gt;&lt;/span&gt;/&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;状态改变）&lt;/span&gt;&lt;/span&gt;,&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;极为类似带有附加约束条件（比如视图的最小尺寸）地布局视图中的内容。&lt;/span&gt;&lt;/span&gt;Eve1&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;开发后，认识到它也能用来控制改变尺寸逻辑。唯一的问题是&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;引擎和解析器混杂在一起，故不能某次程序改变后不能调整布局。&lt;/span&gt;&lt;/span&gt;Eve2&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;分清了结构，提供了调整属性和强制布局再计算&lt;/span&gt;&lt;/span&gt;API&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h2 class="western"&gt;   &lt;a name="6.8.外边区(Outsets)和容器几何|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;外边区&lt;/span&gt;&lt;/span&gt;(Outsets)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和容器几何&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;在&lt;/span&gt;&lt;/span&gt;Eve1 &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;外边区&lt;/span&gt;&lt;/span&gt;(Outsets)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;被用来保证有足够的空间来绘制阴影、默认高亮、和操作系统控制的“溢出”。一些工作成果：根据外边区来调整尺寸和项的位置。然而这个逻辑当前是有缺陷，会导致不合适的外边区以及项不合适放置和尺寸。修正这个缺陷，尤其是还要配合指导，将会给引擎带来巨大的复杂性。然而恰当地使用，外边区应该不会影响项的位置和尺寸，但给对话框外观带来视觉上的瑕疵。更多的，&lt;/span&gt;&lt;/span&gt;outsets&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;被用来让空白（如留白&lt;/span&gt;&lt;/span&gt;(margin)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;或项之间的控件）“吸收”。&lt;/span&gt;&lt;/span&gt;Eve2&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;正确地在布局之后的后处理（&lt;/span&gt;&lt;/span&gt;post-pass &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）中应用外边区。如果尺寸和位置的调整是必要的，一个诊断信息会被输出，但布局不被改变。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   Eve1&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;也没有容器边框的视觉几何的概念；边框的留白调整为包含边框。&lt;/span&gt;&lt;/span&gt;Eve2&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;增加了边框和内边区&lt;/span&gt;&lt;/span&gt;(inset)(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;与&lt;/span&gt;&lt;/span&gt;Eve1&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的&lt;/span&gt;&lt;/span&gt;inset&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的概念不同，&lt;/span&gt;&lt;/span&gt;Eve1&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的&lt;/span&gt;&lt;/span&gt;inset&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;成为缩进&lt;/span&gt;&lt;/span&gt;(indent)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;更合适&lt;/span&gt;&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的概念。客户端代码得益于此，能够容易地指定容器的几何（代码设置一个固定的边框宽度而不再是添加边框到留白中），并能在后处理中更好的侦测不合适的重叠。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h1 class="western"&gt;   &lt;a name="7.库的整合|outline"&gt;&lt;/a&gt; &lt;span style="font-family:黑体;"&gt;&lt;span lang="zh-CN"&gt;库的整合&lt;/span&gt;&lt;/span&gt; &lt;/h1&gt; &lt;p&gt;   ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的与客户端代码整合相当直观。因为&lt;/span&gt;&lt;/span&gt;ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;不依赖继承整合到客户端代码中，整合过程不过是添加支持代码而非转换已有代码。图&lt;/span&gt;&lt;/span&gt;6&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;绘制了一种可能的整合&lt;/span&gt;&lt;/span&gt;ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;到客户端代码的方式。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt;           &lt;p align="center"&gt;   &lt;/p&gt;&lt;div id="qdl0" style="padding: 1em 0pt; text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_nInZ8ZXtrrE/R-G8UKkmNDI/AAAAAAAAAic/jZ9VsX8MhlM/s1600-h/6.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_nInZ8ZXtrrE/R-G8UKkmNDI/AAAAAAAAAic/jZ9VsX8MhlM/s400/6.jpg" alt="" id="BLOGGER_PHOTO_ID_5179628101074039858" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;图&lt;/span&gt;&lt;/span&gt;6&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt;ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;代码整合和客户端支持代码&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;   ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;代码与客户端代码存在清晰的边界，支持代码用来绑定&lt;/span&gt;&lt;/span&gt;ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和客户端。橙色框部分是客户端需要实现的。绿色框由&lt;/span&gt;&lt;/span&gt;ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;提供，蓝色框由代表操作系统例程。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;这个处理过程起始于&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;界面&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;比如对话框&lt;/span&gt;&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;描述定义。客户端提供读取这些定义的代码，把它们送给&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的解析器。解析器应该和其他一套另一边外的支持代码互动，发出合适的信息给&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。也要注意到，解析器到引擎支持代码可能与控件集支持，代码互动（在初始控制、窗口和类似的）。&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;在它们提供的数据上执行，把结果输出给控件集支持代码。代码将转换来自两个引擎数据和参数为操作系统可用的信息。与操作系统相关的部分应该在客户端支持代码中实现。当&lt;/span&gt;&lt;/span&gt;OS&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;调用带着通过事件和数据返回到客户端，客户端支持代码将会把合适的信息发回给&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;将升级必要的参数，并向客户端支持代码发送通知（回送重要的信息给&lt;/span&gt;&lt;/span&gt;OS&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，比如新的控件值）。这个&lt;/span&gt;&lt;/span&gt;OS/&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;客户端&lt;/span&gt;&lt;/span&gt;/ASL/&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;客户端&lt;/span&gt;&lt;/span&gt;/OS&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;周期随着用户与界面互动不断重复，也是整合了&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;与&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的“事件循环”&lt;/span&gt;&lt;/span&gt;(“event loop”)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;模型。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;大部分客户端整合代码非常简单。最复杂的代码片段是控件支持代码集（作为&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，他们相应的解析器以及&lt;/span&gt;&lt;/span&gt;OS&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;一起的回调函数&lt;/span&gt;&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。某个给定例程的代码通常只做过滤和翻译数据，再把数据路由到合适的目的地。客户端代码最复杂的处理过程应该在此模型之外。毕竟，这个代码是处理过程中构建参数的方式；这个处理过程应该与此代码无关。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h1 class="western"&gt;   &lt;a name="8.附录——其他开放问题|outline"&gt;&lt;/a&gt; &lt;span style="font-family:黑体;"&gt;&lt;span lang="zh-CN"&gt;附录——其他开放问题&lt;/span&gt;&lt;/span&gt; &lt;/h1&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;当前&lt;/span&gt;&lt;/span&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;类型不严格。可能需要申明单元格强制为某类型。如果这样做，一个限定词“&lt;/span&gt;&lt;/span&gt;optional”&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;将被添加来指示域也可以含”&lt;/span&gt;&lt;/span&gt;empty”&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;研究&lt;/span&gt;&lt;/span&gt;XForms&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。结构化表格和表格融合。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h1 class="western"&gt;   &lt;a name="9.附录——语法|outline"&gt;&lt;/a&gt; &lt;span style="font-family:黑体;"&gt;&lt;span lang="zh-CN"&gt;附录——语法&lt;/span&gt;&lt;/span&gt; &lt;/h1&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;此文档的语法用&lt;/span&gt;&lt;/span&gt;EBNF&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;（扩展巴克斯范式表达 &lt;/span&gt;&lt;/span&gt;Extended Backus-Naur Form&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）记号。&lt;/span&gt;&lt;/span&gt;EBNF&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;在&lt;/span&gt;&lt;/span&gt;ISO-14977&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;标准中定义。可从&lt;/span&gt;&lt;/span&gt;ANSI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;网站花&lt;/span&gt;&lt;/span&gt;$38.00&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;a href="http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO/IEC+14977:1996"&gt;获取（&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;a href="http://webstore.ansi.org/ansidocstore/product.asp?sku=ISO/IEC+14977:1996"&gt;PDF&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）。最终文档草案免费&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:宋体;"&gt;&lt;a href="http://www.cl.cam.ac.uk/%7Emgk25/iso-14977.pdf"&gt;在线获取&lt;/a&gt;。&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;目前前有四个语法。在下文件中可获得：&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;       &lt;a href="http://stlab.adobe.com/group__adam__reference.html"&gt;Adam&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;语言参考&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;     &lt;/p&gt;     &lt;a href="http://stlab.adobe.com/group__adam__reference.html"&gt; &lt;/a&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p&gt;       &lt;a href="http://stlab.adobe.com/group__eve__reference.html"&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;span lang="zh-CN"&gt;语言参考&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;     &lt;/p&gt;     &lt;a href="http://stlab.adobe.com/group__eve__reference.html"&gt; &lt;/a&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p&gt;       &lt;a href="http://stlab.adobe.com/group__eve__reference.html"&gt;&lt;/a&gt;&lt;span style="font-family:宋体;"&gt;&lt;a href="http://stlab.adobe.com/group__expression__reference.html"&gt;&lt;span lang="zh-CN"&gt;表达式参考&lt;/span&gt;&lt;/a&gt;（描述词法和表达式语法）&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;h1 class="western"&gt;   &lt;a name="10.附录——未来的点子|outline"&gt;&lt;/a&gt; &lt;span style="font-family:黑体;"&gt;&lt;span lang="zh-CN"&gt;附录——未来的点子&lt;/span&gt;&lt;/span&gt; &lt;/h1&gt; &lt;h2 class="western"&gt;   &lt;a name="10.1.可视化编辑器|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;可视化编辑器&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;布局库和属性模型库的可视化编辑器将成为&lt;/span&gt;&lt;/span&gt;ASL&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的巨大补充（&lt;/span&gt;&lt;/span&gt;Begin&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;例子程序正在这个方向上进化）。最终，它将有两个编辑视图（大纲和预览），但预览窗口也支持直接操作。也许提供源代码视图（&lt;/span&gt;&lt;/span&gt;ala GoLive&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;）。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;一些简化跨平台预览的支持将被提供。组合入的属性模型库将提供活跃仿真。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;记号字符串系统能分离应用程序中需要地区化的（译者：比如为中文用户显示中文字符串记号）。然而，剩下的一个主要问题是测定字符串的上下文来作合适的翻译。提供这个上下文信息是编辑器的目标（以“查找字符串&lt;/span&gt;&lt;/span&gt;...”&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;命令形式）。从而能够在&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;中放入合适的字符串。在验证信息情形下，&lt;/span&gt;&lt;/span&gt;HI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;在带有触发信息的属性模型规则的上下文中显示。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;h2 class="western"&gt;   &lt;a name="10.2.Eve2考虑中的特性|outline"&gt;&lt;/a&gt; Eve2&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;考虑中的特性&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;一个直接操作&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;层次结构的&lt;/span&gt;&lt;/span&gt;API&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;对于动态视图有用。绑定某值到视图中节点允许某些简单地直接设置值——但不允许对结构操作。&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;层次结构的&lt;/span&gt;&lt;/span&gt;Xpath&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;接口应该是一个待添加的有用特性。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;布局的最大尺寸限制将对调色板非常有用。当前可以设置一个有些用的最小尺寸但需要为地区化进行手动检查和调整。一个最小的解决方案是：当尺寸约束违反时，允许一个可选的视图定义。其他选择是优雅退化布局（打破指导链接，格式化选项）来强制一个对话框来适合。组合这两者很可能移除大部地区化的工作量。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;前一实验版可以为单词绕回文本调整布局。这个实现起来相当直观，很可能会包含在&lt;/span&gt;&lt;/span&gt;Eve2&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的发布中。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;直接指定菜单项在&lt;/span&gt;&lt;/span&gt;Eve1&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;中办不到（数据集不够丰富，不允许定制容器布局）。在&lt;/span&gt;&lt;/span&gt;Eve2&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;中，客户端有多种方式支持此特性。&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;p&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;当前&lt;/span&gt;&lt;/span&gt;Adobe&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;应用程序，正在允许应用程序层上自定义热键。如此特性扩展到对话框，也许需要&lt;/span&gt;&lt;/span&gt;Eve&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;或记号字符串系统支持之。然而此时，没有如何实现这样特性的建议。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1571745939204173805-9051515516698749874?l=3gai.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://3gai.blogspot.com/feeds/9051515516698749874/comments/default' title='帖子评论'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1571745939204173805&amp;postID=9051515516698749874' title='0 条评论'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/9051515516698749874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1571745939204173805/posts/default/9051515516698749874'/><link rel='alternate' type='text/html' href='http://3gai.blogspot.com/2008/03/asl-adobe-source-libraries-stlab.html' title='ASL (Adobe Source Libraries)总览'/><author><name>cee1</name><uri>http://www.blogger.com/profile/04652077652612078096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_nInZ8ZXtrrE/R-G73KkmNCI/AAAAAAAAAiU/1ikWV_YzHHM/s72-c/3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1571745939204173805.post-2335641844089146542</id><published>2008-03-20T08:36:00.009+08:00</published><updated>2008-03-25T22:17:18.660+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux空间'/><category scheme='http://www.blogger.com/atom/ns#' term='用户界面'/><category scheme='http://www.blogger.com/atom/ns#' term='人机界面'/><category scheme='http://www.blogger.com/atom/ns#' term='HI'/><category scheme='http://www.blogger.com/atom/ns#' term='技术wawa'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><category scheme='http://www.blogger.com/atom/ns#' term='cee一'/><title type='text'>X windows图形系统——现在和将来</title><content type='html'>&lt;p style="text-align: left; text-indent: 0in; margin-top: 0.17in; page-break-after: avoid;" align="center"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;font-size:32;" &gt;X&lt;span style="font-family:黑体;"&gt;&lt;span lang="zh-CN"&gt;导航&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:黑体;"&gt;&lt;span lang="zh-CN"&gt;一些笔记&lt;/span&gt;&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p class="western"&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;这些笔记来自&lt;/span&gt;&lt;/span&gt;O'Reilly&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;出版的《&lt;/span&gt;&lt;/span&gt;The Definitive Guides to the X Window Systems, Vol 1 - Xlib Programming Manual&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;》&lt;/span&gt;&lt;/span&gt;, 1992&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;年第三版 &lt;/span&gt;&lt;/span&gt;(By Laxxuss) &lt;/p&gt; &lt;h2 class="western"&gt;   &lt;a name="1.1.Xserver的职责|outline"&gt;&lt;/a&gt; Xserver&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;的职责&lt;/i&gt;&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;ul&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;允许多个客户端访问显示资源&lt;/span&gt;&lt;/span&gt;(display = screen + mouse + keyboard)     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;解释来自客户端的网络消息 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;把用户的输入通过网络消息传给客户端 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;二维绘制 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;维护一些数据结构 &lt;/span&gt;&lt;/span&gt;(windows, cursors, fonts, &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;图形相关上下文&lt;/span&gt;&lt;/span&gt;Graphics Context——&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;客户端通过资源&lt;/span&gt;&lt;/span&gt;ID&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;来共享前述资源&lt;/span&gt;&lt;/span&gt;)     &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;h2 class="western"&gt;   &lt;a name="1.2.一般客户端的职责|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;一般客户端的职责&lt;/i&gt;&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p class="western"&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;响应相应的事件&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;输入事件、与其他程序的交互事件&lt;/span&gt;&lt;/span&gt;) &lt;/p&gt; &lt;h2 class="western"&gt;   &lt;a name="1.3.特殊客户端——窗口管理器的职责|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;特殊客户端——窗口管理器的职责&lt;/i&gt;&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p class="western"&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;管理有限的&lt;/span&gt;&lt;/span&gt;UI&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;资源&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;显示&lt;/span&gt;&lt;/span&gt;(display)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;、屏幕空间、颜色表&lt;/span&gt;&lt;/span&gt;) &lt;/p&gt; &lt;ul&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;屏幕上窗口的布局（用户请求&lt;/span&gt;&lt;/span&gt;(hint) + &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口布局政策） &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;移动窗口和改变窗口的大小 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;控制屏幕上的窗口栈&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;h2 class="western"&gt;   &lt;a name="1.4.X协议分类|outline"&gt;&lt;/a&gt; X&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;协议分类&lt;/i&gt;&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;ul&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;请求&lt;/i&gt;：&lt;/span&gt;&lt;/span&gt;xlib-&amp;gt;server (e.g.&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;绘制线、查询窗口大小、改变颜色表中的某个单元的颜色&lt;/span&gt;&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;。大多数&lt;/span&gt;&lt;/span&gt;Xlib&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;例程产生请求（除了如&lt;/span&gt;&lt;/span&gt;Regions&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和资源管理）。 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;响应&lt;/i&gt;：&lt;/span&gt;&lt;/span&gt;server-&amp;gt;xlib&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，响应相关请求。需要获得响应的&lt;/span&gt;&lt;/span&gt;xlib&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;例程发出的请求被称为&lt;/span&gt;&lt;/span&gt;round−trip(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;往返&lt;/span&gt;&lt;/span&gt;) request&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;（对性能造成影响）。 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;事件&lt;/i&gt;：&lt;/span&gt;&lt;/span&gt;server-&amp;gt;xlib&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，在&lt;/span&gt;&lt;/span&gt;xlib&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;中事件保存为队列。客户指定服务器送来事件的范围。 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;错误&lt;/i&gt;：&lt;/span&gt;&lt;/span&gt;server-&amp;gt;xlib&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，通知客户端前一请求是无效，类似事件，但是由&lt;/span&gt;&lt;/span&gt;Xlib&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;指定的句柄处理（默认是打印错误消息）。&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;h2 class="western"&gt;   &lt;a name="1.5.Xlib的覆盖面|outline"&gt;&lt;/a&gt; Xlib&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;的覆盖面&lt;/i&gt;&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;ul&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;颜色管理：绘制用的颜色模式&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;解释&lt;/span&gt;&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;之间的切换 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;指针管理&lt;/span&gt;&lt;/span&gt;(Cursors)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;：鼠标图样的改变 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;数据管理：数据和窗口或者数字联系的机制 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;显示&lt;/span&gt;&lt;/span&gt;(Display)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的连接：（通过网络）程序连接&lt;/span&gt;&lt;/span&gt;/&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;断开一个显示&lt;/span&gt;&lt;/span&gt;(Display)     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;获取显示&lt;/span&gt;&lt;/span&gt;(Display)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和服务端相关信息：提供服务端的实现和其相连的显示&lt;/span&gt;&lt;/span&gt;(Display) &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的信息 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;绘图：绘制&lt;/span&gt;&lt;/span&gt;/&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;填充点、线、矩形、多边形和弧的函数 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;错误处理只有&lt;/span&gt;&lt;/span&gt;keyboard&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;mouse&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;事件传播。事件掩码是每个客户端独有：一些挂接错误处理句柄的函数 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;事件处理：获取来自用户、其他程序、服务端的事件 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;扩展：获知服务端的扩展以及这些扩展的用法 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;字体：列出可用的字体、载入字体以及找出其相应的字符 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;几何：操作和转换几何相关的 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;图形上下文：设置对绘制请求的解释&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;绘制的方式，如填充还是勾画、线的形状&lt;/span&gt;&lt;/span&gt;...)     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;对主机访问的控制：控制来自网络其他机器对服务端的访问 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;图像：获取&lt;/span&gt;&lt;/span&gt;/&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;显示&lt;/span&gt;&lt;/span&gt;/&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;操纵屏幕图像 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;客户端之间的通信： &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;国际化：独立于语言的输入和文本渲染处理函数 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;键盘：改变键盘输入处理方式（包括键盘映射） &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;指针设备（鼠标）&lt;/span&gt;&lt;/span&gt;:&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;改变指针输入处理方式 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;区域&lt;/span&gt;&lt;/span&gt;(Regions)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;操作：对多边形区域&lt;/span&gt;&lt;/span&gt;(Region)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;作数学操作 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;资源管理：方便管理用户设置和命令行参数 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;屏幕保护：设置屏幕保护期间显示的内容 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;文本：渲染文本和相关文本渲染的几何信息（大小&lt;/span&gt;&lt;/span&gt;...)     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;用户设置：设置&lt;/span&gt;&lt;/span&gt;/&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;获取键盘连击相关设置 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口属性&lt;/span&gt;&lt;/span&gt;(Attribute)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;：获取&lt;/span&gt;&lt;/span&gt;/&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;设置窗口的当前特质（属性&lt;/span&gt;&lt;/span&gt;)     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口生命周期：窗口创建和消亡的函数 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口管理：在屏幕上操作窗口——改变大小、可见性、窗口栈&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;h2 class="western"&gt;   &lt;a name="1.6.Xlib清空请求队列（到server端）的时机|outline"&gt;&lt;/a&gt; Xlib&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;清空请求队列（到&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;server&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;端）的时机&lt;/i&gt;&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;ol&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;调用需要立即响应的函数（名中含&lt;/span&gt;&lt;/span&gt;Query&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;Fetch&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;Get&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的例程） &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;调用读取某个事件的例程，而此时队列中没有匹配事件 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;调用&lt;/span&gt;&lt;/span&gt;XFlush&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;、&lt;/span&gt;&lt;/span&gt;XSync ()     &lt;/p&gt;   &lt;/li&gt; &lt;/ol&gt; &lt;h2 class="western"&gt;   &lt;a name="1.7.属性(property)|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;属性&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;(property) &lt;/h2&gt; &lt;ul&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;一个和窗口相联的信息包（用于客户端之间的交流），含有一个字符串名和数字&lt;/span&gt;&lt;/span&gt;ID(atom)     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口管理器&lt;/span&gt;&lt;/span&gt;(windows manager)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和客户端的大部分通信通过窗口属性（其余通过事件）&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;h2 class="western"&gt;   &lt;a name="1.8.窗口的特性 |outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;窗口的特性 &lt;/i&gt;&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;ul&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;父窗口——每个窗口在创建时就指定了父窗口&lt;/span&gt;&lt;/span&gt;(root&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口——无父窗口，&lt;/span&gt;&lt;/span&gt;Xserver&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;启动时创建，覆盖整个屏幕&lt;/span&gt;&lt;/span&gt;)     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口配置&lt;/span&gt;&lt;/span&gt;(configure)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;包括：&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;ol&gt;     &lt;li&gt;       &lt;p class="western" style="text-indent: 0in;"&gt;         &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;不计边框的窗口高度和宽度&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;以像素计&lt;/span&gt;&lt;/span&gt;)       &lt;/p&gt;     &lt;/li&gt;   &lt;/ol&gt; &lt;/ul&gt; &lt;ul&gt;   &lt;ol&gt;     &lt;li&gt;       &lt;p class="western" style="text-indent: 0in;"&gt;         &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口的边框&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;宽度可变，&lt;/span&gt;&lt;/span&gt;0&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;代表边框不可见&lt;/span&gt;&lt;/span&gt;)       &lt;/p&gt;     &lt;/li&gt;     &lt;li&gt;       &lt;p class="western" style="text-indent: 0in;"&gt;         &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口相对的位置&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;不计边框&lt;/span&gt;&lt;/span&gt;)       &lt;/p&gt;     &lt;/li&gt;     &lt;li&gt;       &lt;p class="western" style="text-indent: 0in;"&gt;         &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;同一父窗口的窗口间，栈中的顺序 &lt;/span&gt;&lt;/span&gt;       &lt;/p&gt;     &lt;/li&gt;   &lt;/ol&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口的几何特性——窗口配置的中窗口的高度、宽度和窗口的位置 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       depth &amp;amp; visual&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;：&lt;/span&gt;&lt;/span&gt;depth——&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;像素值的位数，&lt;/span&gt;&lt;/span&gt;visual——&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;像素值如何转换成输出颜色 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口的类别：&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;     &lt;ol&gt;       &lt;li&gt;         &lt;p class="western" style="text-indent: 0in;"&gt;           &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;输入输出&lt;/span&gt;&lt;/span&gt;         &lt;/p&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;p class="western" style="text-indent: 0in;"&gt;           &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;仅输入&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;透明无边界，不能有输入输出类别的窗口作为子窗口&lt;/span&gt;&lt;/span&gt;,&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;常用来改变鼠标外形&lt;/span&gt;&lt;/span&gt;)         &lt;/p&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口的一组属性&lt;/span&gt;&lt;/span&gt;(Attributes)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;： &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;     &lt;ol&gt;       &lt;li&gt;         &lt;p class="western" style="text-indent: 0in;"&gt;           &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口边界和背景使用的颜色或者模式&lt;/span&gt;&lt;/span&gt;(Pattern)         &lt;/p&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;p class="western" style="text-indent: 0in;"&gt;           &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;改变窗口大小时窗口内其他内容的重定位 &lt;/span&gt;&lt;/span&gt;         &lt;/p&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;p class="western" style="text-indent: 0in;"&gt;           &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口内容何时自动保存？&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;当窗口被覆盖之后又“曝光”&lt;/span&gt;&lt;/span&gt;(exposure))         &lt;/p&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;p class="western" style="text-indent: 0in;"&gt;           &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;接收哪些事件，哪些事件不向祖先窗口提交？ &lt;/span&gt;&lt;/span&gt;         &lt;/p&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;p class="western" style="text-indent: 0in;"&gt;           &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;是否允许不通知窗口管理器来显示、移动、改变本窗口大小 &lt;/span&gt;&lt;/span&gt;         &lt;/p&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;p class="western" style="text-indent: 0in;"&gt;           &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;使用哪种颜色表来解释像素值 &lt;/span&gt;&lt;/span&gt;         &lt;/p&gt;       &lt;/li&gt;       &lt;li&gt;         &lt;p class="western" style="text-indent: 0in;"&gt;           &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;鼠标在此窗口中时应该如何显示&lt;/span&gt;&lt;/span&gt;         &lt;/p&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;h2 class="western"&gt;   &lt;a name="1.9.窗口的层次 |outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;窗口的层次 &lt;/i&gt;&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;ul&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;每个屏幕&lt;/span&gt;&lt;/span&gt;(screen)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;对应一个&lt;/span&gt;&lt;/span&gt;root window(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;撑满整个屏幕&lt;/span&gt;&lt;/span&gt;)     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       root window&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;的直接子&lt;/span&gt;&lt;/span&gt;window&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;成为顶级&lt;/span&gt;&lt;/span&gt;(toplevel)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口，由窗口管理器所管理 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       toplevel&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口的子窗口可用作实现比如按钮，滚动条之类&lt;a class="sdfootnoteanc" href="http://www.blogger.com/post-edit.g?blogID=1571745939204173805&amp;amp;postID=2335641844089146542#sdfootnote1sym" name="sdfootnote1anc"&gt;&lt;sup&gt;1&lt;/sup&gt;&lt;/a&gt; &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;子窗口可以部分或全部置于父窗口之外，但是子窗口只能向其和父窗口交集区域输出&lt;/span&gt;&lt;/span&gt;/&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;获取输入 &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;子窗口总是在父窗口的上面&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt; &lt;h2 class="western"&gt;   &lt;a name="1.10.窗口的映射|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;窗口的映射&lt;/i&gt;&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;p class="western"&gt;   &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;窗口必须被映射——通过 &lt;/span&gt;&lt;/span&gt;XmapWindow()&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;（或其他相关例程：&lt;/span&gt;&lt;/span&gt;XMapSubwindows()&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;），窗口符合以下几点才可见：只有&lt;/span&gt;&lt;/span&gt;keyboard&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和&lt;/span&gt;&lt;/span&gt;mouse&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;事件传播。事件掩码是每个客户端独有&lt;/span&gt;&lt;/span&gt; &lt;/p&gt; &lt;ol&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;该窗口的所有祖先窗口被映射&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;不能被其他可见的兄弟窗口或者祖先的兄弟窗口覆盖&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;通过&lt;/span&gt;&lt;/span&gt;XCirculateSubwindows(), XConfigureWindow(), &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;和 &lt;/span&gt;&lt;/span&gt;XrestackWindows()&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;调整栈中的顺序&lt;/span&gt;&lt;/span&gt;)     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;相应的请求缓冲被清空（到&lt;/span&gt;&lt;/span&gt;server&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;） &lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;顶级窗口的初次映射是个特例——因为需要窗口管理器“领养&lt;/span&gt;&lt;/span&gt;"&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;之。更复杂的情形：客户必须等待一个“曝光”事件窗口才可见&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ol&gt; &lt;h2 class="western"&gt;   &lt;a name="1.11.图形上下文的三个方面|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;图形上下文的三个方面&lt;/i&gt;&lt;/span&gt;&lt;/span&gt; &lt;/h2&gt; &lt;ol&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;位掩码&lt;/span&gt;&lt;/span&gt;(plane mask)     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;剪切掩码&lt;/span&gt;&lt;/span&gt;(clip mask)     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western" style="text-indent: 0in;"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;逻辑函数&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt; &lt;/ol&gt; &lt;h2 class="western"&gt;   &lt;a name="1.12.可绘对象(drawable: window &amp;amp; pixmap)|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;可绘对象&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;(drawable: window &amp;amp; pixmap) &lt;/h2&gt; &lt;h2 class="western"&gt;   &lt;a name="1.13.三类错误事件(Error Event)|outline"&gt;&lt;/a&gt; &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;i&gt;三类错误事件&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;(Error Event) &lt;/h2&gt; &lt;ol&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;检查返回值来侦测错误和进行相应处理&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;修改请求的参数再试&lt;/span&gt;&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，比如检测&lt;/span&gt;&lt;/span&gt;XOpenDisplay()&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;成功否&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;协议错误——编程失误引起，由&lt;/span&gt;&lt;/span&gt;XErrorHandler&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;处理&lt;/span&gt;&lt;/span&gt;(&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;&lt;b&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;例外&lt;/span&gt;&lt;/b&gt;：&lt;span style="color: rgb(255, 0, 0);"&gt;对于返回状态代码过程的则通过检测状态代码来处理&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;)&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;，通过&lt;/span&gt;&lt;/span&gt;&lt;i&gt;XSetErrorHandler ()&lt;/i&gt;&lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;添加&lt;i&gt;一个&lt;/i&gt;自定义的句柄&lt;/span&gt;&lt;/span&gt;     &lt;/p&gt;   &lt;/li&gt;   &lt;li&gt;     &lt;p class="western"&gt;       &lt;span style="font-family:宋体;"&gt;&lt;span lang="zh-CN"&gt;致命系统错误——&lt;/span&gt;&lt;/span&gt;(X&lt;span style="font-fa
