﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-朝着自己微笑的小胖-随笔分类-资料收集</title><link>http://www.blogjava.net/shijian/category/50882.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 19 Apr 2012 12:25:26 GMT</lastBuildDate><pubDate>Thu, 19 Apr 2012 12:25:26 GMT</pubDate><ttl>60</ttl><item><title>[转] Linux 句柄是什么 ？</title><link>http://www.blogjava.net/shijian/archive/2012/04/06/373463.html</link><dc:creator>石建同学</dc:creator><author>石建同学</author><pubDate>Fri, 06 Apr 2012 06:02:00 GMT</pubDate><guid>http://www.blogjava.net/shijian/archive/2012/04/06/373463.html</guid><wfw:comment>http://www.blogjava.net/shijian/comments/373463.html</wfw:comment><comments>http://www.blogjava.net/shijian/archive/2012/04/06/373463.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shijian/comments/commentRss/373463.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shijian/services/trackbacks/373463.html</trackback:ping><description><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 30px; "></p><p><br /></p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt"><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">1.</span><span style="font-size:10.5pt;Times New Roman&quot;;">句柄就是一个标识符，只要获得对象的句柄，我们就可以对对象进行任意的操作。<br /><br /></span></p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt"><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">2.</span><span style="font-size:10.5pt;Times New Roman&quot;;">句柄不是指针，操作系统用句柄可以找到一块内存，这个句柄可能是标识符，</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">map</span><span style="font-size:10.5pt;Times New Roman&quot;;">的</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">key</span><span style="font-size:10.5pt;Times New Roman&quot;;">，也可能是指针，看操作系统怎么处理的了。</span></p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt"><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">fd</span><span style="font-size:10.5pt;Times New Roman&quot;;">算是在某种程度上替代句柄吧；</span></p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt"><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">Linux </span><span style="font-size:10.5pt;Times New Roman&quot;;">有相应机制，但没有统一的句柄类型，各种类型的系统资源由各自的类型来标识，由各自的接口操作。<br /><br /></span></p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt"><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">3.http://tech.ddvip.com/2009-06/1244006580122204_11.html</span></p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt"><span style="font-size:10.5pt;Times New Roman&quot;;">在操作系统层面上，文件操作也有类似于</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">FILE</span><span style="font-size:10.5pt;Times New Roman&quot;;">的一个概念，在</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">Linux</span><span style="font-size:10.5pt;Times New Roman&quot;;">里，这叫做文件描述符</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">(File Descriptor)</span><span style="font-size: 10.5pt;Times New Roman&quot;;">，而在</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">Windows</span><span style="font-size:10.5pt;Times New Roman&quot;;">里，叫做句柄</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">(Handle)(</span><span style="font-size:10.5pt;Times New Roman&quot;;">以下在没有歧义的时候统称为句柄</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">)</span><span style="font-size:10.5pt;Times New Roman&quot;;">。用户通过某个函数打开文件以获得句柄，此</span> <span style="font-size:10.5pt;Times New Roman&quot;;">后用户操纵文件皆通过该句柄进行。</span></p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt">&nbsp;</p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt"><span style="font-size:10.5pt;Times New Roman&quot;;">设计这么一个句柄的原因在于句柄可以防止用户随意读写操作系统内核的文件对象。无论是</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">Linux</span><span style="font-size:10.5pt;Times New Roman&quot;;">还是</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">Windows</span><span style="font-size:10.5pt;Times New Roman&quot;;">，文件句柄总是和内核的文件对象相关联的，但如何关联细节用户并不可见。内核可以通过句柄来计算出内核里文件对象的地址，但此能力并不对用户开放。</span></p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt">&nbsp;</p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt"><span style="font-size:10.5pt;Times New Roman&quot;;">下面举一个实际的例子，在</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">Linux</span><span style="font-size:10.5pt;Times New Roman&quot;;">中，值为</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">0</span><span style="font-size:10.5pt;Times New Roman&quot;;">、</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">1</span><span style="font-size:10.5pt;Times New Roman&quot;;">、</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">2</span><span style="font-size:10.5pt;Times New Roman&quot;;">的</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">fd</span><span style="font-size:10.5pt;Times New Roman&quot;;">分别代表标准输入、标准输出和标准错误输出。在程序中打开文件得到的</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">fd</span><span style="font-size:10.5pt;Times New Roman&quot;;">从</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">3</span><span style="font-size:10.5pt;Times New Roman&quot;;">开始增长。</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"> fd</span><span style="font-size:10.5pt;Times New Roman&quot;;">具体是什么呢</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">?</span><span style="font-size:10.5pt;Times New Roman&quot;;">在内核中，每一个进程都有一个私有的</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">&#8220;</span><span style="font-size:10.5pt;Times New Roman&quot;;">打开文件表</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">&#8221;</span><span style="font-size:10.5pt;Times New Roman&quot;;">，这个表是一个指针数组，每一个元素都指向一个内核的打开文件对象。而</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">fd</span><span style="font-size:10.5pt;Times New Roman&quot;;">，就是这</span> <span style="font-size:10.5pt;Times New Roman&quot;;">个表的下标。当用户打开一个文件时，内核会在内部生成一个打开文件对象，并在这个表里找到一个空项，让这一项指向生成的打开文件对象，并返回这一项的下标</span> <span style="font-size:10.5pt;Times New Roman&quot;;">作为</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">fd</span><span style="font-size:10.5pt;Times New Roman&quot;;">。由于这个表处于内核，并且用户无法访问到，因此用户即使拥有</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">fd</span><span style="font-size:10.5pt;Times New Roman&quot;;">，也无法得到打开文件对象的地址，只能够通过系统提供的函数来操作。</span></p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt">&nbsp;</p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt"><span style="font-size:10.5pt;Times New Roman&quot;;">在</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">C</span><span style="font-size:10.5pt;Times New Roman&quot;;">语言里，操纵文件的渠道则是</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">FILE</span><span style="font-size:10.5pt;Times New Roman&quot;;">结构，不难想象，</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">C</span><span style="font-size:10.5pt;Times New Roman&quot;;">语言中的</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">FILE</span><span style="font-size:10.5pt;Times New Roman&quot;;">结构必定和</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">fd</span><span style="font-size:10.5pt;Times New Roman&quot;;">有一对一的关系，每个</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">FILE</span><span style="font-size:10.5pt;Times New Roman&quot;;">结构都会记录自己唯一对应的</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">fd</span><span style="font-size:10.5pt;Times New Roman&quot;;">。</span></p>  <span style="font-size: 10.5pt; line-height: 240%; font-family: 宋体; "><br /><strong>句柄</strong>&nbsp;</span><span class="Apple-style-span" style="font-size: 14px; font-weight: normal; "><a href="http://zh.wikipedia.org/wiki/%E5%8F%A5%E6%9F%84">http://zh.wikipedia.org/wiki/%E5%8F%A5%E6%9F%84</a><br /><br /></span>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt"><span style="font-size:10.5pt;Times New Roman&quot;;">在</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1" title="程序设计"><span style="font-family: 宋体; text-decoration: none; ">程序设计</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">中</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">,</span><span style="font-size:10.5pt;Times New Roman&quot;;">句柄</span><span style="font-size:10.5pt;Times New Roman&quot;;">是一种特殊的</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/w/index.php?title=%E6%99%BA%E8%83%BD%E6%8C%87%E9%92%88&amp;action=edit&amp;redlink=1" title="智能指针（尚未撰写）"><span style="font-family: 宋体; text-decoration: none; ">智能指针</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">。当一个</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F" title="应用程序"><span style="font-family: 宋体; text-decoration: none; ">应用程序</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">要引用其他系统</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">(</span><span style="font-size:10.5pt;Times New Roman&quot;;">如</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E6%95%B0%E6%8D%AE%E5%BA%93" title="数据库"><span style="font-family: 宋体; text-decoration: none; ">数据库</span></a></span><span style="font-size:10.5pt;Times New Roman&quot;;">、</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F" title="操作系统"><span style="font-family: 宋体; text-decoration: none; ">操作系统</span></a>&nbsp;)</span><span style="font-size:10.5pt;Times New Roman&quot;;">所管理的</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E5%86%85%E5%AD%98" title="内存"><span style="font-family: 宋体; text-decoration: none; ">内存</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">块或</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E5%AF%B9%E8%B1%A1_%28%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6%29" title="对象 (计算机科学)"><span style="font-family: 宋体; text-decoration: none; ">对象</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">时，就要使用句柄。</span></p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt"><span style="font-size:10.5pt;Times New Roman&quot;;">句柄与普通</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E6%8C%87%E9%92%88_%28%E4%BF%A1%E6%81%AF%E5%AD%A6%29" title="指针 (信息学)"><span style="font-family: 宋体; text-decoration: none; ">指针</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">的区别在于，指针包含的是引用</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E5%AF%B9%E8%B1%A1_%28%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6%29" title="对象 (计算机科学)"><span style="font-family: 宋体; text-decoration: none; ">对象</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">的</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E7%89%A9%E7%90%86%E5%9C%B0%E5%9D%80" title="物理地址"><span style="font-family: 宋体; text-decoration: none; ">内存地址</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">，而句柄则是由系统所管理的引用标识，该标识可以被系统重新定位到一个</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E7%89%A9%E7%90%86%E5%9C%B0%E5%9D%80" title="物理地址"><span style="font-family: 宋体; text-decoration: none; ">内存地址</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">上。这种间接访问</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E5%AF%B9%E8%B1%A1_%28%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6%29" title="对象 (计算机科学)"><span style="font-family: 宋体; text-decoration: none; ">对象</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">的模式增强了系统对引用</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E5%AF%B9%E8%B1%A1_%28%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6%29" title="对象 (计算机科学)"><span style="font-family: 宋体; text-decoration: none; ">对象</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">的控制。（参见</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/w/index.php?title=%E5%B0%81%E8%A3%85&amp;action=edit&amp;redlink=1" title="封装（尚未撰写）"><span style="font-family: 宋体; text-decoration: none; ">封装</span></a>&nbsp;)</span><span style="font-size:10.5pt;Times New Roman&quot;;">。</span></p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt"><span style="font-size:10.5pt;Times New Roman&quot;;">在上世纪</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">80</span><span style="font-size:10.5pt;Times New Roman&quot;;">年代的操作系统（如</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/Mac_OS" title="Mac OS"><span style="text-decoration: none; ">Mac OS</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">和</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/Windows" title="Windows"><span style="text-decoration: none; ">Windows</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">）的</span><span style="font-size: 10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86" title="内存管理"><span style="font-family: 宋体; text-decoration: none; ">内存管理</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">中，句柄被广泛应用。</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/Unix" title="Unix"><span style="text-decoration: none; ">Unix</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">系统的</span><span style="font-size: 10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E6%96%87%E4%BB%B6%E6%8F%8F%E8%BF%B0%E7%AC%A6" title="文件描述符"><span style="font-family: 宋体; text-decoration: none; ">文件描述符</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">基本上也属于句柄。和其它</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E6%A1%8C%E9%9D%A2%E7%8E%AF%E5%A2%83" title="桌面环境"><span style="font-family: 宋体; text-decoration: none; ">桌面环境</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">一样，</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/Windows_API" title="Windows API"><span style="text-decoration: none; ">Windows API</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">大量使用句柄来标识系统中的</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E5%AF%B9%E8%B1%A1_%28%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6%29" title="对象 (计算机科学)"><span style="font-family: 宋体; text-decoration: none; ">对象</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">，并建立操作系统与</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/w/index.php?title=%E7%94%A8%E6%88%B7%E7%A9%BA%E9%97%B4&amp;action=edit&amp;redlink=1" title="用户空间（尚未撰写）"><span style="font-family: 宋体; text-decoration: none; ">用户空间</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">之间的通信渠道。例如，桌面上的一个窗体由一个</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;">HWND&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">类型的句柄来标识。</span></p>  <p style="margin:0cm;margin-bottom:.0001pt;line-height:22.5pt"><span style="font-size:10.5pt;Times New Roman&quot;;">如今，</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E5%86%85%E5%AD%98" title="内存"><span style="font-family: 宋体; text-decoration: none; ">内存</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">容量的增大和</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98" title="虚拟内存"><span style="font-family: 宋体; text-decoration: none; ">虚拟内存</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">算法使得更简单的</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E6%8C%87%E9%92%88_%28%E4%BF%A1%E6%81%AF%E5%AD%A6%29" title="指针 (信息学)"><span style="font-family: 宋体; text-decoration: none; ">指针</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">愈加受到青睐，而指向另一指针的那类句柄受到冷淡。尽管如此，许多</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F" title="操作系统"><span style="font-family: 宋体; text-decoration: none; ">操作系统</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">仍然把指向私有</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E5%AF%B9%E8%B1%A1_%28%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6%29" title="对象 (计算机科学)"><span style="font-family: 宋体; text-decoration: none; ">对象</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">的指针以及</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E8%BF%9B%E7%A8%8B" title="进程"><span style="font-family: 宋体; text-decoration: none; ">进程</span></a></span><span style="font-size:10.5pt;Times New Roman&quot;;">传递给</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E5%AE%A2%E6%88%B7%E7%AB%AF" title="客户端"><span style="font-family: 宋体; text-decoration: none; ">客户端</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">的内部</span><span style="font-size:10.5pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;Times New Roman&quot;;"><a href="http://zh.wikipedia.org/zh-cn/%E6%95%B0%E7%BB%84" title="数组"><span style="font-family: 宋体; text-decoration: none; ">数组</span></a>&nbsp;</span><span style="font-size:10.5pt;Times New Roman&quot;;">下标称为句柄。<br /><br /><br /></span></p><p>&nbsp;</p><img src ="http://www.blogjava.net/shijian/aggbug/373463.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shijian/" target="_blank">石建同学</a> 2012-04-06 14:02 <a href="http://www.blogjava.net/shijian/archive/2012/04/06/373463.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]Google: Excellent Papers for 2011</title><link>http://www.blogjava.net/shijian/archive/2012/03/24/372604.html</link><dc:creator>石建同学</dc:creator><author>石建同学</author><pubDate>Sat, 24 Mar 2012 03:39:00 GMT</pubDate><guid>http://www.blogjava.net/shijian/archive/2012/03/24/372604.html</guid><wfw:comment>http://www.blogjava.net/shijian/comments/372604.html</wfw:comment><comments>http://www.blogjava.net/shijian/archive/2012/03/24/372604.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shijian/comments/commentRss/372604.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shijian/services/trackbacks/372604.html</trackback:ping><description><![CDATA[<div><p align="left" style="text-align:left;line-height:15.75pt;"><strong><span style="font-family:宋体;color:#464646;"><br />原文地址：</span></strong>http://googleresearch.blogspot.com/2012/03/excellent-papers-for-2011.html</p>  <p align="left" style="text-align:left;line-height:15.75pt;">&nbsp;</p>  <p align="center" style="text-align:center;background:white;vertical-align:middle"><span style="font-size:15.0pt;font-family:Helvetica;color:#333333;"><span style="color:#094382"><a href="http://googleresearch.blogspot.com/2012/03/excellent-papers-for-2011.html">Excellent Papers for 2011</a><br /><br /></span></span></p>  <p style="background:white"><span style="font-family:Helvetica;color:#333333;">Posted by Corinna Cortes and Alfred Spector, Google Research<br /> <br /> Googlers across the company actively engage with the scientific community by publishing technical papers, contributing open-source packages, working on standards, introducing new APIs and tools, giving talks and presentations, participating in ongoing technical debates, and much more. Our&nbsp;<a href="http://research.google.com/pubs/papers.html"><span style="color:#094382">publications</span></a>&nbsp;offer technical and algorithmic advances, feature aspects we learn as we develop novel products and services, and shed light on some of the technical challenges we face at Google.</span></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><span style="font-family:宋体;color:#333333">谷歌公司积极参与科学界的交流，通过发表技术论文，贡献开源软件，制定标准，引入新的</span><span style="font-family:Arial;color:#333333">API</span><span style="font-family:宋体;color:#333333">和工具，举办讲座和演讲，参加正在进行的技术辩论，等等。我们发布的文章提供技术和算法的进步，在开发新的产品和服务过程中学习到的内容，揭示一些我们在谷歌所面临的技术挑战。</span></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><span style="font-family:Helvetica;color:#333333;">In an effort to highlight some of our work, we periodically select a number of publications to be featured on this blog. We first posted a&nbsp;<a href="http://googleresearch.blogspot.com/2010/07/google-publications.html"><span style="color:#094382">set of papers</span></a>&nbsp;on this blog in mid-2010 and subsequently discussed them in more detail in the following blog postings. In a&nbsp;<a href="http://googleresearch.blogspot.com/2011/01/more-google-contributions-to-broader.html"><span style="color:#094382">second round</span></a>, we highlighted new noteworthy papers from the later half of 2010. This time we honor the influential papers authored or co-authored by Googlers covering all of 2011 -- covering roughly 10% of our total publications.&nbsp;</span>&nbsp;<span style="font-family:Helvetica;color:#333333;">It&#8217;s tough choosing, so we may have left out some important papers.&nbsp;</span>&nbsp;<span style="font-family:Helvetica;color:#333333;">So, do see the&nbsp;<a href="http://research.google.com/pubs/papers.html"><span style="color:#094382">publications list</span></a>&nbsp;to review the complete group.</span></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><span style="font-family:宋体;color:#333333">为了彰显我们的一些工作，我们定期选择一些列文章发布在</span><span style="font-family:Arial;color:#333333">blog</span><span style="font-family:宋体;color:#333333">。</span><span style="font-family:Arial;color:#333333">2010</span><span style="font-family:宋体;color:#333333">中期，我们第一次发布了一些列的文章在</span><span style="font-family:Arial;color:#333333">blog</span><span style="font-family:宋体;color:#333333">，并随后在博客文章中更详细讨论它们。在第二轮中，我们强调从</span><span style="font-family:Arial;color:#333333">2010</span><span style="font-family:宋体;color:#333333">年下半年新值得注意的论文。这一次，我们给有影响力的文章的作者或合著者以荣誉，大约占总文章数的</span><span style="font-family:Arial;color:#333333">10%</span><span style="font-family:宋体;color:#333333">。这是艰难的选择的，所以我们可能已经遗漏了一些重要文章。因此，请看完整的文章清单。</span></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><span style="font-family:Helvetica;color:#333333;">In the coming weeks we will be offering a more in-depth look at these publications, but here are some summaries:</span></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><span style="font-family:宋体;">在未来几周我们将更深入的谈论这些论文，但现在只做一些总结。</span></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><strong><span style="font-family:Helvetica;color:#333333;">Audio processing</span></strong></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><span style="font-family:Helvetica;color:#333333;">&#8220;<a href="http://research.google.com/pubs/pub36963.html" target="_blank"><span style="color:#094382">Cascades of two-pole&#8211;two-zero asymmetric resonators are good models of peripheral auditory function</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/author35932.html"><span style="color:#094382">Richard F. Lyon</span></a>,<strong>Journal of the Acoustical Society of America</strong>, vol. 130 (2011), pp. 3893-3904.<br /> Lyon's long title summarizes a result that he has been working toward over many years of modeling sound processing in the inner ear.&nbsp;</span>&nbsp;<span style="font-family:Helvetica;color:#333333;">This nonlinear cochlear model is shown to be "good" with respect to psychophysical data on masking, physiological data on mechanical and neural response, and computational efficiency. These properties derive from the close connection between wave propagation and filter cascades. This filter-cascade model of the ear is used as an efficient sound processor for several machine hearing projects at Google.</span></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><span style="font-family:宋体;color:#333333;">声音处理：</span><span style="font-family:宋体;color:#333333">这个滤波器级联模型的耳朵是用来作为一种高效的声音处理器，是谷歌的几个机器声音处理项目之一。</span></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><strong><span style="font-family:Helvetica;color:#333333;">Electronic Commerce and Algorithms</span></strong></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><span style="font-family:Helvetica;color:#333333;">&#8220;<a href="http://research.google.com/pubs/archive/36742.pdf" target="_blank"><span style="color:#094382">Online Vertex-Weighted Bipartite Matching and Single-bid Budgeted Allocations</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/author3107.html"><span style="color:#094382">Gagan Aggarwal</span></a>,&nbsp;<a href="http://research.google.com/pubs/GaganGoel.html"><span style="color:#094382">Gagan Goel</span></a>,&nbsp;<a href="http://research.google.com/pubs/author39394.html"><span style="color:#094382">Chinmay Karande</span></a>,&nbsp;<a href="http://research.google.com/pubs/author31656.html"><span style="color:#094382">Aranyak Mehta</span></a>,&nbsp;<strong>SODA 2011</strong>.<br /> The authors introduce an elegant and powerful algorithmic technique to the area of online ad allocation and matching: a hybrid of random perturbations and greedy choice to make decisions on the fly. Their technique sheds new light on classic matching algorithms, and can be used, for example, to pick one among a set of relevant ads, without knowing in advance the demand for ad slots on future web page views.&nbsp;</span></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><span style="font-family:宋体;color:#333333">作者介绍在线广告分配和匹配方面的优雅和强大的算法技术：一种混合随机扰动和贪婪选择，实现在线决定。他们的技术揭示了经典的匹配算法的新的方向，例如，挑选其中一组相关的广告，事先不知道未来的网站页面访问的广告位置的需求。【关注】</span></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><span style="font-family:Helvetica;color:#333333;">&#8220;<a href="http://research.google.com/pubs/pub37235.html" target="_blank"><span style="color:#094382">Milgram-routing in social networks</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/SilvioLattanzi.html"><span style="color:#094382">Silvio Lattanzi</span></a>, Alessandro Panconesi, D. Sivakumar,&nbsp;<strong>Proceedings of the 20th International Conference on World Wide Web, WWW 2011</strong>, pp. 725-734.<br /> Milgram&#8217;s "six-degrees-of-separation experiment" and the fascinating small world hypothesis that follows from it, have generated a lot of interesting research in recent years. In this landmark experiment, Milgram showed that people unknown to each other are often connected by surprisingly short chains of acquaintances. In the paper we prove theoretically and experimentally how a recent model of social networks, "Affiliation Networks", offers an explanation to this phenomena and inspires interesting technique for local routing within social networks.</span></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><span style="font-family:宋体;color:#333333">米尔格兰姆的</span><span style="font-family:Arial;color:#333333">&#8220;</span><span style="font-family:宋体;color:#333333">六个度分离实验</span><span style="font-family:Arial;color:#333333">&#8221;</span><span style="font-family:宋体;color:#333333">，迷人的小世界遵从它的结果，在最近几年已经产生了很多有趣的研究。在这一具有里程碑意义的实验，表明未知的对方往往是通过熟人，以令人惊讶的短链连接即可认识。在本文中，我们提供理论和实验关于近代的社会网络模型，</span><span style="font-family:Arial;color:#333333">&#8220;</span><span style="font-family:Helvetica;color:#333333;">Affiliation Networks</span><span style="font-family:Arial;color:#333333">&#8221;</span><span style="font-family:宋体;color:#333333">，提供了一种解释这种现象，并激发社会网络的</span><span style="font-family:Helvetica;color:#333333;">interesting technique for local routing</span><span style="font-family:宋体;color:#333333">。【关注】</span></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><span style="font-family:Helvetica;color:#333333;">&#8220;<a href="http://research.google.com/pubs/pub37653.html" target="_blank"><span style="color:#094382">Non-Price Equilibria in Markets of Discrete Goods</span></a>&#8221;, Avinatan Hassidim, Haim Kaplan, Yishay Mansour, Noam Nisan,&nbsp;<strong>EC</strong>, 2011.<br /> We present a correspondence between markets of indivisible items, and a family of auction based n player games. We show that a market has a price based (Walrasian) equilibrium if and only if the corresponding game has a pure Nash equilibrium. We then turn to markets which do not have a Walrasian equilibrium (which is the interesting case), and study properties of the mixed Nash equilibria of the corresponding games.</span></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><span style="font-family:宋体;color:#333333">在离散商品市场的非价格平衡【关注】</span></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><strong><span style="font-family:Helvetica;color:#333333;">HCI</span></strong></p>  <p style="background:white">&nbsp;</p>  <p style="background:white"><span style="font-family:Helvetica;color:#333333;">&#8220;<a href="http://research.google.com/pubs/pub37064.html" target="_blank"><span style="color:#094382">From Basecamp to Summit: Scaling Field Research Across 9 Locations</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/author35817.html"><span style="color:#094382">Jens Riegelsberger</span></a>, Audrey Yang, Konstantin Samoylov, Elizabeth Nunge, Molly Stevens, Patrick Larvie,&nbsp;<strong>CHI 2011 Extended Abstracts</strong>.<br /> The paper reports on our experience with a basecamp research hub to coordinate logistics and ongoing real-time analysis with research teams in the field. We also reflect on the implications for the meaning of research in a corporate context, where much of the value may be less in a final report, but more in the curated impressions and memories our colleagues take away from the the research trip.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/archive/37156.pdf" target="_blank"><span style="color:#094382">User-Defined Motion Gestures for Mobile Interaction</span></a>&#8221;, Jaime Ruiz,&nbsp;<a href="http://research.google.com/pubs/author38946.html"><span style="color:#094382">Yang Li</span></a>, Edward Lank,&nbsp;<strong>CHI 2011: ACM Conference on Human Factors in Computing Systems</strong>, pp. 197-206.<br /> Modern smartphones contain sophisticated sensors that can detect rich motion gestures &#8212; deliberate movements of the device by end-users to invoke commands. However, little is known about best-practices in motion gesture design for the mobile computing paradigm. We systematically studied the design space of motion gestures via a guessability study that elicits end-user motion gestures to invoke commands on a smartphone device. The study revealed consensus among our participants on parameters of movement and on mappings of motion gestures onto commands, by which we developed a taxonomy for motion gestures and compiled an end-user inspired motion gesture set. The work lays the foundation of motion gesture design&#8212;a new dimension for mobile interaction.<br /> <br /> <strong>Information Retrieval</strong><br /> <br /> &#8220;<a href="http://research.google.com/pubs/archive/36757.pdf" target="_blank"><span style="color:#094382">Reputation Systems for Open Collaboration</span></a>&#8221;, B.T. Adler, L. de Alfaro,&nbsp;<a href="http://research.google.com/pubs/author25088.html"><span style="color:#094382">A. Kulshrestra</span></a>, I. Pye,&nbsp;<strong>Communications of the ACM</strong>, vol. 54 No. 8 (2011), pp. 81-87.<br /> This paper describes content based reputation algorithms, that rely on automated content analysis to derive user and content reputation, and their applications for Wikipedia and google Maps. The Wikipedia reputation system WikiTrust relies on a chronological analysis of user contributions to articles, metering positive or negative increments of reputation whenever new contributions are made. The Google Maps system Crowdsensus compares the information provided by users on map business listings and computes both a likely reconstruction of the correct listing and a reputation value for each user. Algorithmic-based user incentives ensure the trustworthiness of evaluations of Wikipedia entries and Google Maps business information.<br /> <br /> <strong>Machine Learning and Data Mining</strong><br /> <br /> &#8220;<a href="http://research.google.com/pubs/MachineLearning.html" target="_blank"><span style="color:#094382">Domain adaptation in regression</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/author121.html"><span style="color:#094382">Corinna Cortes</span></a>,&nbsp;<a href="http://research.google.com/pubs/author122.html"><span style="color:#094382">Mehryar Mohri</span></a>,&nbsp;<strong>Proceedings of The 22nd International Conference on Algorithmic Learning Theory, ALT 2011</strong>.<br /> Domain adaptation is one of the most important and challenging problems in machine learning.&nbsp;</span>&nbsp;<span style="font-family:Helvetica;color:#333333;">This paper presents a series of theoretical guarantees for domain adaptation in regression, gives an adaptation algorithm based on that theory that can be cast as a semi-definite programming problem, derives an efficient solution for that problem by using results from smooth optimization, shows that the solution can scale to relatively large data sets, and reports extensive empirical results demonstrating the benefits of this new adaptation algorithm.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub37074.html" target="_blank"><span style="color:#094382">On the necessity of irrelevant variables</span></a>&#8221;, David P. Helmbold,&nbsp;<a href="http://research.google.com/pubs/author116.html"><span style="color:#094382">Philip M. Long</span></a>,&nbsp;<strong>ICML</strong>, 2011<br /> Relevant variables sometimes do much more good than irrelevant variables do harm, so that it is possible to learn a very accurate classifier using predominantly irrelevant variables.&nbsp;</span>&nbsp;<span style="font-family:Helvetica;color:#333333;">We show that this holds given an assumption that formalizes the intuitive idea that the variables are non-redundant.&nbsp;</span>&nbsp;<span style="font-family:Helvetica;color:#333333;">For problems like this it can be advantageous to add many additional variables, even if only a small fraction of them are relevant.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/archive/36898.pdf" target="_blank"><span style="color:#094382">Online Learning in the Manifold of Low-Rank Matrices</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/author35799.html"><span style="color:#094382">Gal Chechik</span></a>, Daphna Weinshall, Uri Shalit,&nbsp;<strong>Neural Information Processing Systems (NIPS 23)</strong>, 2011, pp. 2128-2136.<br /> Learning measures of similarity from examples of similar and dissimilar pairs is a problem that is hard to scale. LORETA uses retractions, an operator from matrix optimization, to learn low-rank similarity matrices efficiently. This allows to learn similarities between objects like images or texts when represented using many more features than possible before.<br /> <br /> <strong>Machine Translation</strong><br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub37159.html" target="_blank"><span style="color:#094382">Training a Parser for Machine Translation Reordering</span></a>&#8221;, Jason Katz-Brown,&nbsp;<a href="http://research.google.com/pubs/author38945.html"><span style="color:#094382">Slav Petrov</span></a>,&nbsp;<a href="http://research.google.com/pubs/author32317.html"><span style="color:#094382">Ryan McDonald</span></a>,&nbsp;<a href="http://research.google.com/pubs/och.html"><span style="color:#094382">Franz Och</span></a>, David Talbot, Hiroshi Ichikawa, Masakazu Seno,&nbsp;<strong>Proceedings of the 2011 Conference on Empirical Methods in Natural Language Processing (EMNLP '11)</strong>.<br /> Machine translation systems often need to understand the syntactic structure of a sentence to translate it correctly. Traditionally, syntactic parsers are evaluated as standalone systems against reference data created by linguists. Instead, we show how to train a parser to optimize reordering accuracy in a machine translation system, resulting in measurable improvements in translation quality over a more traditionally trained parser.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/archive/37162.pdf" target="_blank"><span style="color:#094382">Watermarking the Outputs of Structured Prediction with an application in Statistical Machine Translation</span></a>&#8221;, Ashish Venugopal,<a href="http://research.google.com/pubs/author37567.html"><span style="color:#094382">Jakob Uszkoreit</span></a>, David Talbot,&nbsp;<a href="http://research.google.com/pubs/och.html"><span style="color:#094382">Franz Och</span></a>, Juri Ganitkevitch,&nbsp;<strong>Proceedings of the 2011 Conference on Empirical Methods in Natural Language Processing (EMNLP)</strong>.<br /> We propose a general method to watermark and probabilistically identify the structured results of machine learning algorithms with an application in statistical machine translation. Our approach does not rely on controlling or even knowing the inputs to the algorithm and provides probabilistic guarantees on the ability to identify collections of results from one&#8217;s own algorithm, while being robust to limited editing operations.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/archive/37163.pdf" target="_blank"><span style="color:#094382">Inducing Sentence Structure from Parallel Corpora for Reordering</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/author38952.html"><span style="color:#094382">John DeNero</span></a>,&nbsp;<a href="http://research.google.com/pubs/author37567.html"><span style="color:#094382">Jakob Uszkoreit</span></a>,&nbsp;<strong>Proceedings of the 2011 Conference on Empirical Methods in Natural Language Processing (EMNLP)</strong>.<br /> Automatically discovering the full range of linguistic rules that govern the correct use of language is an appealing goal, but extremely challenging.&nbsp;</span>&nbsp;<span style="font-family:Helvetica;color:#333333;">Our paper describes a targeted method for discovering only those aspects of linguistic syntax necessary to explain how two different languages differ in their word ordering.&nbsp;</span>&nbsp;<span style="font-family:Helvetica;color:#333333;">By focusing on word order, we demonstrate an effective and practical application of unsupervised grammar induction that improves a Japanese to English machine translation system.<br /> <br /> <strong>Multimedia and Computer Vision</strong><br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub36985.html" target="_blank"><span style="color:#094382">Kernelized Structural SVM Learning for Supervised Object Segmentation</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/author39634.html"><span style="color:#094382">Luca Bertelli</span></a>,&nbsp;<a href="http://research.google.com/pubs/author39635.html"><span style="color:#094382">Tianli Yu</span></a>, Diem Vu, Burak Gokturk,<strong>Proceedings of IEEE Conference on Computer Vision and Pattern Recognition 2011</strong>.<br /> The paper proposes a principled way for computers to learn how to segment the foreground from the background of an image given a set of training examples. The technology is build upon a specially designed nonlinear segmentation kernel under the recently proposed structured SVM learning framework.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub37041.html" target="_blank"><span style="color:#094382">Auto-Directed Video Stabilization with Robust L1 Optimal Camera Paths</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/author38919.html"><span style="color:#094382">Matthias Grundmann</span></a>,&nbsp;<a href="http://research.google.com/pubs/author38000.html"><span style="color:#094382">Vivek Kwatra</span></a>, Irfan Essa,<strong>IEEE Conference on Computer Vision and Pattern Recognition (CVPR 2011).</strong><br /> Casually shot videos captured by handheld or mobile cameras suffer from significant amount of shake. Existing in-camera stabilization methods dampen high-frequency jitter but do not suppress low-frequency movements and bounces, such as those observed in videos captured by a walking person. On the other hand, most professionally shot videos usually consist of carefully designed camera configurations, using specialized equipment such as tripods or camera dollies, and employ ease-in and ease-out for transitions. Our stabilization technique automatically converts casual shaky footage into more pleasant and professional looking videos by mimicking these cinematographic principles. The original, shaky camera path is divided into a set of segments, each approximated by either constant, linear or parabolic motion, using an algorithm based on robust L1 optimization. The stabilizer has been part of the YouTube Editor (<a href="http://youtube.com/editor"><span style="color:#094382">youtube.com/editor</span></a>) since March 2011.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub37298.html" target="_blank"><span style="color:#094382">The Power of Comparative Reasoning</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/author36197.html"><span style="color:#094382">Jay Yagnik</span></a>, Dennis Strelow,&nbsp;<a href="http://research.google.com/pubs/author23969.html"><span style="color:#094382">David Ross</span></a>, Ruei-Sung Lin,&nbsp;<strong>International Conference on Computer Vision</strong>&nbsp;(2011).<br /> The paper describes a theory derived vector space transform that converts vectors into sparse binary vectors such that Euclidean space operations on the sparse binary vectors imply rank space operations in the original vector space. The transform a) does not need any data-driven supervised/unsupervised learning b) can be computed from polynomial expansions of the input space in linear time (in the degree of the polynomial) and c) can be implemented in 10-lines of code. We show competitive results on similarity search and sparse coding (for classification) tasks.<br /> <br /> <strong>NLP</strong><br /> <br /> &#8220;<a href="http://research.google.com/pubs/archive/37071.pdf" target="_blank"><span style="color:#094382">Unsupervised Part-of-Speech Tagging with Bilingual Graph-Based Projections</span></a>&#8221;, Dipanjan Das,&nbsp;<a href="http://research.google.com/pubs/author38945.html"><span style="color:#094382">Slav Petrov</span></a>,&nbsp;<strong>Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics (ACL '11)</strong>, 2011,&nbsp;<strong>Best Paper Award</strong>.<br /> We would like to have natural language processing systems for all languages, but obtaining labeled data for all languages and tasks is unrealistic and expensive. We present an approach which leverages existing resources in one language (for example English) to induce part-of-speech taggers for languages without any labeled training data. We use graph-based label propagation for cross-lingual knowledge transfer and use the projected labels as features in a hidden Markov model trained with the Expectation Maximization algorithm.<br /> <br /> <strong>Networks</strong><br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub37517.html" target="_blank"><span style="color:#094382">TCP Fast Open</span></a>&#8221;, Sivasankar Radhakrishnan,&nbsp;<a href="http://research.google.com/pubs/author27276.html"><span style="color:#094382">Yuchung Cheng</span></a>,&nbsp;<a href="http://research.google.com/pubs/author39277.html"><span style="color:#094382">Jerry Chu</span></a>,&nbsp;<a href="http://research.google.com/pubs/author35943.html"><span style="color:#094382">Arvind Jain</span></a>, Barath Raghavan,&nbsp;<strong>Proceedings of the 7th International Conference on emerging Networking EXperiments and Technologies (CoNEXT)</strong>, 2011.<br /> TCP Fast Open enables data exchange during TCP&#8217;s initial handshake. It decreases application network latency by one full round-trip time, a significant speedup for today's short Web transfers. Our experiments on popular websites show that Fast Open reduces the whole-page load time over 10% on average, and in some cases up to 40%.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub37486.html" target="_blank"><span style="color:#094382">Proportional Rate Reduction for TCP</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/author39115.html"><span style="color:#094382">Nandita Dukkipati</span></a>, Matt Mathis,&nbsp;<a href="http://research.google.com/pubs/author27276.html"><span style="color:#094382">Yuchung Cheng</span></a>, Monia Ghobadi,&nbsp;<strong>Proceedings of the 11th ACM SIGCOMM Conference on Internet Measurement 2011, Berlin, Germany - November 2-4, 2011</strong>.<br /> Packet losses increase latency of Web transfers and negatively impact user experience. Proportional rate reduction (PRR) is designed to recover from losses quickly, smoothly and accurately by pacing out retransmissions across received ACKs during TCP&#8217;s fast recovery. Experiments on Google Web and YouTube servers in U.S. and India demonstrate that PRR reduces the TCP latency of connections experiencing losses by 3-10% depending on response size.<br /> <br /> <strong>Security and Privacy</strong><br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub37199.html" target="_blank"><span style="color:#094382">Automated Analysis of Security-Critical JavaScript APIs</span></a>&#8221;, Ankur Taly,&nbsp;<a href="http://research.google.com/pubs/ulfar.html"><span style="color:#094382">&#218;lfar Erlingsson</span></a>, John C. Mitchell,&nbsp;<a href="http://research.google.com/pubs/author35958.html"><span style="color:#094382">Mark S. Miller</span></a>, Jasvir Nagra,&nbsp;<strong>IEEE Symposium on Security &amp; Privacy (SP)</strong>, 2011.<br /> As software is increasingly written in high-level, type-safe languages, attackers have fewer means to subvert system fundamentals, and attacks are more likely to exploit errors and vulnerabilities in application-level logic.&nbsp;</span>&nbsp;<span style="font-family:Helvetica;color:#333333;">This paper describes a generic, practical defense against such attacks, which can protect critical application resources even when those resources are partially exposed to attackers via software interfaces.&nbsp;In the context of carefully-crafted fragments of JavaScript, the paper applies formal methods and semantics to prove that these defenses can provide complete, non-circumventable mediation of resource access; the paper also shows how an implementation of the techniques can establish the properties of widely-used software, and find previously-unknown bugs.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub37198.html" target="_blank"><span style="color:#094382">App Isolation: Get the Security of Multiple Browsers with Just One</span></a>&#8221;, Eric Y. Chen, Jason Bau,&nbsp;<a href="http://research.google.com/pubs/author37904.html"><span style="color:#094382">Charles Reis</span></a>, Adam Barth, Collin Jackson,&nbsp;<strong>18th ACM Conference on Computer and Communications Security</strong>, 2011.<br /> We find that anecdotal advice to use a separate web browser for sites like your bank is indeed effective at defeating most cross-origin web attacks.&nbsp;</span>&nbsp;<span style="font-family:Helvetica;color:#333333;">We also prove that a single web browser can provide the same key properties, for sites that fit within the compatibility constraints.<br /> <br /> <strong>Speech</strong><br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub37631.html" target="_blank"><span style="color:#094382">Improving the speed of neural networks on CPUs</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/author37534.html"><span style="color:#094382">Vincent Vanhoucke</span></a>,&nbsp;<a href="http://research.google.com/pubs/author37792.html"><span style="color:#094382">Andrew Senior</span></a>, Mark Z. Mao,&nbsp;<strong>Deep Learning and Unsupervised Feature Learning Workshop, NIPS 2011.</strong><br /> As deep neural networks become state-of-the-art in real-time machine learning applications such as speech recognition, computational complexity is fast becoming a limiting factor in their adoption. We show how to best leverage modern CPU architectures to significantly speed-up their inference.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/archive/37567.pdf" target="_blank"><span style="color:#094382">Bayesian Language Model Interpolation for Mobile Speech Input</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/author130.html"><span style="color:#094382">Cyril Allauzen</span></a>,&nbsp;<a href="http://research.google.com/pubs/author125.html"><span style="color:#094382">Michael Riley</span></a>,&nbsp;<strong>Interspeech 2011.</strong><br /> Voice recognition on the Android platform must contend with many possible target domains - e.g. search, maps, SMS. For each of these, a domain-specific language model was built by linearly interpolating several n-gram LMs from a common set of Google corpora. The current work has found a way to efficiently compute a single n-gram language model with accuracy very close to the domain-specific LMs but with considerably less complexity at recognition time.<br /> <br /> <strong>Statistics</strong><br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub37483.html" target="_blank"><span style="color:#094382">Large-Scale Parallel Statistical Forecasting Computations in R</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/MurrayStokely.html"><span style="color:#094382">Murray Stokely</span></a>,&nbsp;Farzan Rohani, Eric Tassone,&nbsp;<strong>JSM Proceedings, Section on Physical and Engineering Sciences</strong>, 2011.<br /> This paper describes the implementation of a framework for utilizing distributed computational infrastructure from within the R interactive statistical computing environment, with applications to timeseries forecasting. This system is widely used by the statistical analyst community at Google for data analysis on very large data sets.<br /> <br /> <strong>Structured Data</strong><br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub37217.html" target="_blank"><span style="color:#094382">Dremel: Interactive Analysis of Web-Scale Datasets</span></a>&#8221;, Sergey Melnik, Andrey Gubarev, Jing Jing Long, Geoffrey Romer, Shiva Shivakumar, Matt Tolton,&nbsp;<strong>Communications of the ACM</strong>, vol. 54 (2011), pp. 114-123.<br /> Dremel is a scalable, interactive ad-hoc query system. By combining multi-level execution trees and columnar data layout, it is capable of running aggregation queries over trillion-row tables in seconds. Besides continued growth internally to Google, Dremel now also backs an increasing number of external customers including BigQuery and UIs such as AdExchange front-end.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub36988.html" target="_blank"><span style="color:#094382">Representative Skylines using Threshold-based Preference Distributions</span></a>&#8221;,&nbsp;<a href="http://research.google.com/pubs/author39644.html"><span style="color:#094382">Atish Das Sarma</span></a>, Ashwin Lall, Danupon Nanongkai, Richard J. Lipton, Jim Xu,&nbsp;<strong>International Conference on Data Engineering (ICDE)</strong>, 2011.<br /> The paper adopts principled approach towards representative skylines and formalizes the problem of displaying k tuples such that the probability that a random user clicks on one of them is maximized. This requires mathematically modeling (a) the likelihood with which a user is interested in a tuple, as well as (b) how one negotiates the lack of knowledge of an explicit set of users. This work presents theoretical and experimental results showing that the suggested algorithm significantly outperforms previously suggested approaches.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/DataManagement.html" target="_blank"><span style="color:#094382">Hyper-local, directions-based ranking of places</span></a>&#8221;, Petros Venetis, Hector Gonzalez,&nbsp;<a href="http://research.google.com/pubs/author1112.html"><span style="color:#094382">Alon Y. Halevy</span></a>, Christian S. Jensen,<strong>PVLDB</strong>, vol. 4(5) (2011), pp. 290-30.<br /> Click through information is one of the strongest signals we have for ranking web pages. We propose an equivalent signal for raking real world places: The number of times that people ask for precise directions to the address of the place. We show that this signal is competitive in quality with human reviews while being much cheaper to collect, we also show that the signal can be incorporated efficiently into a location search system.<br /> <br /> <strong>Systems</strong><br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub37062.html" target="_blank"><span style="color:#094382">Power Management of Online Data-Intensive Services</span></a>&#8221;, David Meisner, Christopher M. Sadler,&nbsp;<a href="http://research.google.com/pubs/LuizBarroso.html"><span style="color:#094382">Luiz Andr&#233; Barroso</span></a>,&nbsp;<a href="http://research.google.com/pubs/author10649.html"><span style="color:#094382">Wolf-Dietrich Weber</span></a>, Thomas F. Wenisch,&nbsp;<strong>Proceedings of the 38th ACM International Symposium on Computer Architecture</strong>, 2011.<br /> Compute and data intensive Web services (such as Search) are a notoriously hard target for energy savings techniques. This article characterizes the statistical hardware activity behavior of servers running Web search and discusses the potential opportunities of existing and proposed energy savings techniques.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub37124.html" target="_blank"><span style="color:#094382">The Impact of Memory Subsystem Resource Sharing on Datacenter Applications</span></a>&#8221;, Lingjia Tang, Jason Mars, Neil Vachharajani,&nbsp;<a href="http://research.google.com/pubs/author38135.html"><span style="color:#094382">Robert Hundt</span></a>, Mary-Lou Soffa,&nbsp;<strong>ISCA</strong>, 2011.<br /> In this work, the authors expose key characteristics of an emerging class of Google-style workloads and show how to enhance system software to take advantage of these characteristics to improve efficiency in data centers. The authors find that across datacenter applications, there is both a sizable benefit and a potential degradation from improperly sharing micro-architectural resources on a single machine (such as on-chip caches and bandwidth to memory). The impact of co-locating threads from multiple applications with diverse memory behavior changes the optimal mapping of thread to cores for each application. By employing an adaptive thread-to-core mapper, the authors improved the performance of the datacenter applications by up to 22% over status quo thread-to-core mapping, achieving performance within 3% of optimal.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/archive/37204.pdf" target="_blank"><span style="color:#094382">Language-Independent Sandboxing of Just-In-Time Compilation and Self-Modifying Code</span></a>&#8221;, Jason Ansel, Petr Marchenko,&nbsp;<a href="http://research.google.com/pubs/ulfar.html"><span style="color:#094382">&#218;lfar Erlingsson</span></a>, Elijah Taylor,&nbsp;<a href="http://research.google.com/pubs/author37895.html"><span style="color:#094382">Brad Chen</span></a>, Derek Schuff, David Sehr,&nbsp;<a href="http://research.google.com/pubs/author38542.html"><span style="color:#094382">Cliff L. Biffle</span></a>, Bennet S. Yee,&nbsp;<strong>ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)</strong>, 2011.<br /> Since its introduction in the early 90's, Software Fault Isolation, or SFI, has been a static code technique, commonly perceived as incompatible with dynamic libraries, runtime code generation, and other dynamic code.&nbsp;</span>&nbsp;<span style="font-family:Helvetica;color:#333333;">This paper describes how to address this limitation and explains how the SFI techniques in Google Native Client were extended to support modern language implementations based on just-in-time code generation and runtime instrumentation. This work is already deployed in Google Chrome, benefitting millions of users, and was developed over a summer collaboration with three Ph.D. interns; it exemplifies how Research at Google is focused on rapidly bringing significant benefits to our users through groundbreaking technology and real-world products.<br /> <br /> &#8220;<a href="http://research.google.com/pubs/pub37474.html" target="_blank"><span style="color:#094382">Thialfi: A Client Notification Service for Internet-Scale Applications</span></a>&#8221;, Atul Adya, Gregory Cooper,&nbsp;<a href="http://research.google.com/pubs/author54699.html"><span style="color:#094382">Daniel Myers</span></a>,&nbsp;<a href="http://research.google.com/pubs/MichaelPiatek.html"><span style="color:#094382">Michael Piatek</span></a>,<strong>Proc. 23rd ACM Symposium on Operating Systems Principles (SOSP)</strong>, 2011, pp. 129-142.<br /> This paper describes a notification service that scales to hundreds of millions of users, provides sub-second latency in the common case, and guarantees delivery even in the presence of a wide variety of failures.&nbsp;</span>&nbsp;<span style="font-family:Helvetica;color:#333333;">The service has been deployed in several popular Google applications including Chrome, Google Plus, and Contacts.</span></p>  <p><br />翻译进行中.<br />&nbsp;</p></div><img src ="http://www.blogjava.net/shijian/aggbug/372604.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shijian/" target="_blank">石建同学</a> 2012-03-24 11:39 <a href="http://www.blogjava.net/shijian/archive/2012/03/24/372604.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于thrift是什么 ？</title><link>http://www.blogjava.net/shijian/archive/2012/02/19/370294.html</link><dc:creator>石建同学</dc:creator><author>石建同学</author><pubDate>Sun, 19 Feb 2012 08:43:00 GMT</pubDate><guid>http://www.blogjava.net/shijian/archive/2012/02/19/370294.html</guid><wfw:comment>http://www.blogjava.net/shijian/comments/370294.html</wfw:comment><comments>http://www.blogjava.net/shijian/archive/2012/02/19/370294.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/shijian/comments/commentRss/370294.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/shijian/services/trackbacks/370294.html</trackback:ping><description><![CDATA[<br />1.<a href="http://www.ooso.net/archives/537">http://www.ooso.net/archives/537</a><br /><br /><span style="color: #333333; font-family: Tahoma, Verdana, Arial, 'Lucida Grande', 'Lucida Sans Unicode', sans-serif; "><p style="font-size: 14px; line-height: 1.5em; margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; ">Thrift由一个软件库和一系列的代码生成工具组成，由 Facebook开发。目的是为了加快软件开发和实现高效和可扩展的后台服务。主要目标是不同程序开语言之间实现高效和可靠的通信，这需要将不同语言之间抽象出一个通用层，然后由不同语言来实现这个通用层。在这里要特别指出的是，Thrift允许开发人员定义数据类型和服务接口（定义在一个中性语言文件里），并通过这个文件生成构建RPC客户端和服务端所需的代码。</p><p style="font-size: 14px; line-height: 1.5em; margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; ">简单分析其机理，Thrift就是实现C/S模式，通过代码生成工具将接口定义文件生成服务器端和客户端代码（可以为不同语言），从而实现服务端和客户端跨语言的支持。<br /><br />2.&nbsp;<a href="http://blog.csdn.net/amuseme_lu/article/details/6261719">http://blog.csdn.net/amuseme_lu/article/details/6261719</a><br /><br />基本概念、体系结构</p><p>&nbsp;</p></span><img src ="http://www.blogjava.net/shijian/aggbug/370294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/shijian/" target="_blank">石建同学</a> 2012-02-19 16:43 <a href="http://www.blogjava.net/shijian/archive/2012/02/19/370294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>