阅读一篇出色的研究论文是一种乐趣。一个专家团队巧妙地引导您,读者,穿梭于通常复杂的研 landscape 之中,指出先前的技术水平、当前的趋势、手头紧迫的问题——然后,有时巧妙地,有时似乎凭借纯粹的意志力,在区区 12 页左右的文字中扩展了知识体系。一篇出色的论文包含一个谜题和一个解决方案;这些可能是有用的、启发性的,或两者兼而有之。一篇出色的论文是人类智慧、创造力和劳动力的一个小的、结构化的量子,服务于对我们世界和我们可能居住的未来世界日益增长的理解。
不幸的是,信息过载是我们这个时代的决定性问题,计算机科学研究也不例外。每年计算机科学领域产生的研究量令人鼓舞,但可能难以确定哪些论文最值得我们宝贵的时间。大量的论文也与论文阅读的许多最佳要素相悖:将工作提炼到其关键本质,周到地考虑其细微之处以及进行研究的背景,以及将概念应用于自己的技术问题和经验。
因此,过去几年见证了对阅读计算机科学研究的乐趣和实用性的兴趣和组织(例如 Papers We Love 及其众多分会)的兴起:策展论文讨论已摆脱了传统的学术“阅读研讨会”形式,并已被数百名参与者组成的团体所取代,这些团体定期在初创公司和社区中心聚会,讨论最新和最伟大的计算机科学研究。这令人兴奋。为什么最伟大的论文应该只在学术界被欣赏?作为一种公共产品,研究应该被所有感兴趣的各方阅读、讨论、消化和享受。
在研究成果的民主化获取方面发挥着尤为重要的作用。首先, 数字图书馆是世界上最大的计算机科学研究成果集合,拥有数十万篇论文、文章和手稿。其次, 会员由计算机科学所有子领域的世界级专家组成,从图灵奖得主到 会士,从新兴学者到实践前沿的工程师。单独来看,这些都是无与伦比的资源;结合在一起,它们更加非凡。
Research for Practice 诞生于这种结合的潜力。在每一期 RfP 专栏中,两位专家将介绍对集中、面向实践的主题的简短精选论文。想了解数据中心工作负载的最新和最伟大的操作系统发展吗?RfP 将通过世界权威人士描述该领域的趋势,选择少量论文阅读,并提供动机和每篇论文背后的关键见解,从而提供必要的速成课程。
这种方法旨在让您在一个周末下午就能流利地掌握计算机科学研究中令人兴奋的主题。此外, 慷慨地同意开放访问 数字图书馆中提供的任何 Research for Practice 论文引用。每期都将涵盖来自不同志愿者专家的不同主题,我们计划涵盖计算机科学的所有子领域。
acmqueue 杂志的本期包含 Research for Practice 的第一期。您是否对刚才提到的数据中心操作系统趋势感到好奇?您很幸运:Simon Peter 在这个主题上有一个精彩的选择,包括关于新兴 I/O 子系统和内核之间相互作用的论文,多核可扩展性原则,以及用于新型安全计算硬件的系统可能性。此外,Justine Sherry 贡献了一个关于网络功能虚拟化的令人兴奋的选择:我们的网络变得越来越智能,这得益于日益复杂的网络内软件。这允许超越传统网络“中间盒”操作的功能,包括复杂的路由和策略部署以及加密安全和私有的数据包处理。这两个选择都突出了实用且有原则的研究论文。我们对我们的专家如何使这些原本高度技术性的主题变得易于理解感到特别高兴。
Research for Practice 本身就是一个持续进行的实验。我们受到对计算机科学研究的广泛和日益增长的热情,以及 、其会员和 acmqueue 读者在放大这种热情方面可以发挥的作用的启发。我们欢迎您的反馈,请尽情享受!——Peter Bailis
作者:Simon Peter
不断增长的云服务用户数量和数据量给 I/O、处理和完整性带来了巨大的压力。硬件已经跟上了步伐:数据中心网络允许服务器以微秒级的交付延迟每秒传输和接收数百万个请求。越来越多的处理器成倍增加了服务器的处理能力,而诸如英特尔的软件保护扩展 (SGX) 等新技术有助于保护敏感数据的机密性。因此,操作系统需要可扩展且高效地向应用程序提供这些新技术。
以下论文介绍了发人深省的操作系统设计范式,这些范式解决了每个趋势。首先,我们解决了 I/O 性能问题。然后,我们介绍了一个方便的软件接口设计规则,该规则确保构建的软件可以随着数据中心服务器中存在的处理器数量而扩展。最后,我们学习如何保护敏感数据的完整性,即使是来自云运营商的访问也能受到保护。最后,我们展望这些范式如何为数据中心应用程序实现执行环境生态系统。
Peter, S., et al. 2014. Arrakis: 操作系统是控制平面。Usenix 操作系统设计与实现研讨会。
https://www.usenix.org/conference/osdi14/technical-sessions/presentation/peter
Belay, A., et al. 2014. IX:用于高吞吐量和低延迟的受保护数据平面操作系统。Usenix 操作系统设计与实现研讨会。
https://www.usenix.org/conference/osdi14/technical-sessions/presentation/belay
这些论文讨论了操作系统的设计,这些操作系统为请求密集型服务器应用程序提供高 I/O 性能。作者发现,单片 OS 内核的复杂性是服务器 I/O 性能的最大障碍,并通过引入一种 I/O 模型来补救这种情况,该模型在常见情况下绕过内核,而不会丢失其任何保护保证。这两篇论文都将操作系统分为控制平面和数据平面:内核级控制平面执行访问控制和资源管理,而用户级数据平面负责快速 I/O 机制。
这些论文在网络 I/O 策略的实施方式上有所不同。Arrakis 通过依靠硬件来强制执行每个应用程序的最大 I/O 速率和允许的通信对等方来追求极致性能。IX 用软件控制网络 I/O 换取性能,从而可以精确地强制执行特定网络协议(例如 TCP 拥塞控制)的 I/O 行为。
这两种 OS 模型在支持新兴的云基础设施(容器)方面都表现出色。容器将应用程序的所有必需组件捆绑到一个可管理的单元中。Arrakis 和 IX 使容器能够使用底层服务器硬件的所有 I/O 功能,而无需单片 OS 内核的开销。
Clements, A. T., et al. 2013. 可扩展的交换律:为多核处理器设计可扩展的软件。 操作系统原则研讨会。
https://queue.org.cn/rfp/vol14iss2.html
许多 OS 研究人员致力于解决使用越来越多的处理器内核来处理不断增长的工作负载需求的问题。手动识别和解决由实现中共享资源争用引起的可扩展性瓶颈通常是答案。本文提出了一个不同的问题:API 是否会对软件可扩展性产生影响?令人惊讶的答案是,这种影响不仅深刻,而且是根本性的。
本文将其见解提炼为一个简单而有效的软件开发规则:每当接口操作可交换时,它们就可以以可扩展的方式实现。作者提供了一个工具,通过生成测试用例来帮助开发人员应用该规则,这些测试用例可以找到可交换 API 实现中的可扩展性瓶颈。他们使用该工具评估 POSIX API,并指出 API 在哪里具有扩展能力,但其 OS 实现遇到了瓶颈。他们利用这些结果开发了一种实际上没有可扩展性瓶颈的新型操作系统。
可扩展的交换律不仅适用于操作系统的设计,还适用于任何多核软件系统。因此,它应该是任何多核应用程序开发人员工具包的一部分。
Baumann, A., et al. 2014. 使用 Haven 将应用程序与不受信任的云隔离。Usenix 操作系统设计与实现研讨会。
https://www.usenix.org/conference/osdi14/technical-sessions/presentation/baumann
客户相信他们的云提供商不会泄露他们的任何数据——鉴于云硬件/软件平台的惊人复杂性,这是一个很高的要求。错误可能很容易危及敏感数据。本文介绍了 Haven,这是一个软件系统,它可以保护程序及其数据的完整性免受整个云执行平台的侵害,除了一个小的受信任的固件块
为了实现这一目标,Haven 使用最近推出的英特尔 SGX 技术开发了一种非分层 OS 安全模型,该模型允许应用程序在受保护的内存区域中运行,该区域受到外部访问的保护,包括特权软件(如 OS 内核和虚拟机监控程序)。为了支持在不受信任的 OS 内核之上执行,Haven 引入了一个相互不信任的内核接口,应用程序通过提供 Windows API 的用户级库访问该接口。
Haven 引入了一种保护数据机密性的新方法。虽然以前的尝试使用同态加密等加密技术在有限的情况下对加密数据进行计算,但 Haven 依靠硬件保护技术来更普遍地解决该问题。
这些论文为数据中心 OS 设计建立了一个新的基准。不是传统的 Unix 模型,进程在通过 POSIX 系统调用调用的共享内核之上运行,而是使用可扩展库调用的受保护软件容器,这些调用直接映射到硬件机制,允许应用程序突破现有 OS 性能和保护限制。
这种新的 OS 设计有可能实现库执行环境的生态系统,以各种方式支持应用程序。例如,快速库网络堆栈可以链接到 Web 服务器,以提高其网页交付延迟和吞吐量。类 Haven 系统调用库可以链接以保护应用程序持有的机密数据的完整性。最后,可扩展的存储堆栈可以链接到数据库,使其能够跟上并行闪存提供的吞吐量。在许多情况下,这些库可以透明地改进应用程序执行。总之,这些新的执行环境有可能使应用程序能够满足当前和未来数据中心工作负载的性能和完整性需求。
作者:Justine Sherry
我们通常认为网络只执行一项任务:将数据包从发送者传递到接收者。然而,今天的网络通过部署专用中间盒来检查和转换数据包,通常是为了提高性能或安全性,从而做了更多的工作。中间盒可能会扫描连接以查找恶意行为,压缩数据以在低资源移动设备上提供更好的性能,或者从网络内部的缓存中提供内容以降低带宽成本。行业和研究来源最近都开始将中间盒实现的功能称为“网络功能”。流行的开源网络功能包括 Snort 入侵检测系统3 和 Squid Web 代理4。
为了部署新的网络功能,网络管理员传统上会购买专门的、固定功能的硬件设备(中间盒),例如实现入侵检测或缓存,并将该设备物理安装在网络中的一个扼流点,以便所有进入或退出网络的流量都必须通过它。或者,管理员可以使用现成的服务器作为中间盒,安装诸如 Snort、Squid 或专有软件包之类的软件,然后在网络中的一个扼流点路由通过服务器的流量。
NFV(网络功能虚拟化)是网络领域的一项新运动,它将基于软件的方法推向了极致。NFV ISG(行业规范组)设想了一个未来,其中所有中间盒功能都在软件中实现2。网络管理员将部署专用于网络功能的服务器或服务器集群,网络虚拟化软件将自动路由通过各种网络功能的流量。
NFV 为网络管理员带来了许多好处。它通过从专用硬件转向通用硬件来降低成本,使升级像软件补丁一样容易,提供按需扩展的机会,并承诺更高效的安装,多个网络功能可能共享一台服务器,从而减少资源浪费。NFV 在网络社区中拥有巨大的势头——NFV 工作组拥有 200 多个工业成员1——但它仍处于起步阶段,仅成立于 2012 年底。
在这里,我们介绍了研究社区关于中间盒和 NFV 的三个亮点,并在最后讨论了 NFV 为应用程序开发人员带来的一些挑战和机遇。
Carpenter, B., Brim, S. 2002. 中间盒:分类法和问题。RFC 3234, IETF。
https://tools.ietf.org/html/rfc3234
尽管本文比 NFV 早了大约十年,但它仍然是对中间盒常用部署的功能的很好的总结。该文档本可以更深入地探讨应用层行为,例如外泄检测或入侵检测——在当今的企业网络中越来越常见——但这些行为在今天比 2002 年撰写本文时更为常见。尽管如此,它仍然是对中间盒功能最全面的调查,并且它描述的大多数功能仍然在常用。
Palkar, S., Lan, C., et al. 2015. E2:NFV 应用程序的框架。 操作系统原则研讨会。
http://dl.acm.org/citation.cfm?id=2815423
本文为 NFV 管理的集群提供了迄今为止最清晰的愿景。作者描述了一个名为 E2 的系统,该系统在通用服务器集群上自动调度和配置网络功能。E2 允许网络管理员指定“配置”(例如,端口 80 上的所有流量都应通过此 HTTP 代理路由,到此子网的所有流量都应由 IDS 处理),并且该框架将自动实例化软件实例和路由配置,以确保满足策略。E2 在概念上类似于 OpenStack 或 RightScale 等云框架,但在实践中涉及许多不同的技术挑战,包括调度以确保带宽不会过度利用、确保低延迟以及实现网络功能之间的高效通信和“链接”。
Naylor, D., et al. 2015. 多上下文 TLS (mcTLS):在 TLS 中启用安全网络内功能。 SIGCOMM。
https://queue.org.cn/rfp/vol14iss2.html
Sherry, J., et al. 2015. BlindBox:通过加密流量进行深度包检测。 SIGCOMM。
https://queue.org.cn/rfp/vol14iss2.html
今天,应用程序开发人员无法控制哪些网络功能处理他们的流量,除非给他们的网络管理员打电话。尽管如此,开发人员可能担心对其应用程序发送的流量进行检查或修改——尤其是在隐私方面。因此,许多开发人员选择加密他们的整个连接(例如,使用 SSL/TLS)。虽然这保留了隐私,但它也阻止了中间盒处理的所有好处。这两篇文章提出了新的加密协议 mcTLS 和 BlindBox,这将使应用程序开发人员允许某些中间盒操作,但限制其他操作。这两篇文章对同一个问题提出了截然不同的方法,值得并排阅读。
随着 NFV 使网络功能/中间盒的部署和配置变得更容易,应用程序开发人员可以期望从他们的网络中看到越来越复杂的行为。虽然这种复杂行为的能力保留了中间盒的一些旧挑战(例如,隐私),但它也为应用程序开发人员引入了巨大的新机遇。NFV 使应用程序开发人员不仅可以在他们维护的终端主机上运行和执行代码,还可以在网络本身中运行和执行代码。
例如,设计基于独特服务架构的自定义负载均衡过滤器的开发人员可能会编写新代码以在负载均衡器本身上运行。Web 服务可以实现自定义缓存,以向其用户提供加密内容,并在其客户的 ISP 内的提供商基础设施中托管的虚拟机中部署网络内缓存。凭借在网络中执行任意代码的能力——以及智能路由和调度以确保正确的流量接受此类处理——NFV 为开发人员打开了一个全新的编程平台。下一个大型应用程序商店可能是为部署在数据中心网络、ISP 甚至家庭路由器中的功能而设的。
1. NFV ISG。成员列表; https://portal.etsi.org/TBSiteMap/NFV/NFVMembership.aspx。
2. NFV ISG。2012. 网络功能虚拟化:简介、优势、推动因素、挑战和行动号召; https://portal.etsi.org/NFV/NFV_White_Paper.pdf。
3. Snort; https://www.snort.org/。
4. Squid; http://www.squid-cache.org/。
Peter Bailis 将加入斯坦福大学担任计算机科学助理教授,此前他在 MIT CSAIL 度过了学术访问年。他于 2015 年在加州大学伯克利分校获得计算机科学博士学位,并于 2011 年在哈佛大学获得计算机科学学士学位。他在未来数据系统小组 (http://futuredata.stanford.edu/) 的研究重点是下一代数据密集型系统的设计和实现。
Justine Sherry 是加州大学伯克利分校的博士候选人。她的兴趣在于计算机网络;她的工作包括中间盒、网络系统、测量、云计算和拥塞控制。Sherry 的论文重点关注将中间盒(例如防火墙和代理)作为云和 ISP 提供的服务而部署所带来的新机遇和挑战。她于 2012 年在加州大学伯克利分校获得硕士学位,并于 2010 年在华盛顿大学获得学士和文学学士学位。她是国家科学基金会研究生研究员,曾获得 Usenix NSDI 和 SIGCOMM 的论文奖,并且始终在寻找一杯美味的卡布奇诺。
Simon Peter 是德克萨斯大学奥斯汀分校的助理教授,他在那里领导操作系统和网络方面的研究。他于 2012 年在苏黎世联邦理工学院获得计算机科学博士学位,并于 2006 年在德国奥尔登堡卡尔-冯-奥西茨基大学获得计算机科学硕士学位。在 2016 年加入 UT 奥斯汀分校之前,他于 2012-2016 年在华盛顿大学担任研究助理。由于他在高 I/O 性能操作系统方面的工作,他获得了 Jay Lepreau 最佳论文奖 (2014) 和 Madrona 奖 (2014)。他还在包括 MSR SVC 和剑桥、英特尔实验室和加州大学河滨分校在内的多个地点进行了更多获奖的系统研究。
版权所有 © 2016,所有者/作者持有。出版权已许可给 。
最初发表于 Queue 第 14 卷,第 2 期—
在 数字图书馆 中评论本文
Catherine Hayes, David Malone - 质疑评估非加密哈希函数的标准
尽管加密和非加密哈希函数无处不在,但在它们的设计方式上似乎存在差距。加密哈希存在许多由各种安全要求驱动的标准,但在非加密方面,存在一定的民间传说,尽管哈希函数历史悠久,但尚未得到充分探索。虽然针对真实世界数据集的均匀分布非常有意义,但在面对具有特定模式的数据集时,这可能是一个挑战。
Nicole Forsgren, Eirini Kalliamvakou, Abi Noda, Michaela Greiler, Brian Houck, Margaret-Anne Storey - DevEx 在行动
随着领导者在财政紧缩和人工智能等变革性技术的背景下寻求优化软件交付,DevEx(开发者体验)在许多软件组织中越来越受到关注。直观地看,技术领导者普遍接受良好的开发者体验可以提高软件交付效率和开发者幸福感。然而,在许多组织中,旨在改进 DevEx 的拟议计划和投资难以获得支持,因为业务利益相关者质疑改进的价值主张。
João Varajão, António Trigo, Miguel Almeida - 低代码开发生产力
本文旨在通过展示使用基于代码、低代码和极限低代码技术进行的实验室实验结果来研究生产力差异,从而为该主题提供新的见解。低代码技术已清楚地显示出更高的生产力水平,为低代码在短期/中期内主导软件开发主流提供了强有力的论据。本文报告了程序和协议、结果、局限性和未来研究的机会。
Ivar Jacobson, Alistair Cockburn - 用例至关重要
虽然软件行业是一个快节奏且令人兴奋的世界,其中不断开发新的工具、技术和技巧来服务于商业和社会,但它也很健忘。在快速前进的过程中,它容易受到时尚的支配,并且可能会忘记或忽略一些长期存在的问题的成熟解决方案。用例于 1986 年首次引入,后来得到普及,是这些成熟的解决方案之一。