跳到主要内容
10.1145/1133981.1133991acm会议文章/章节视图摘要出版物页面物理层数据接口会议记录会议集合
第条

实用的C语言动态软件更新

出版:2006年6月11日出版历史

摘要

软件更新通常需要停止和重新启动应用程序,但许多系统无法或不愿停止服务。动态软件更新(DSU)通过允许程序在运行时进行更新来解决这一困难。与其他在线升级方法相比,DSU具有吸引力,因为它非常通用,不需要冗余硬件。挑战在于制定DSU实际的:它应该灵活、安全、高效、易于使用。在本文中,我们介绍了Ginseng,一个针对C的DSU实现,旨在迎接这一挑战。我们专门编译程序,以便对其进行动态修补,并自动生成大部分动态修补程序。人参执行一系列分析,当与一些简单的运行时支持相结合时,可以确保更新不会违反类型安全,同时确保数据保持最新。我们使用人参构建补丁并动态应用于三个重要的开源服务器程序---非常安全的FTP守护程序,OpenSSH sshd守护程序、和GNU斑马总的来说,我们用三年的发行版动态地修补了每个程序。尽管程序发生了重大变化,但大多数更新都很容易生成。性能实验表明,所有补丁都可以在不到5个毫秒更新支持导致的应用程序吞吐量开销从0到最多32%不等。

工具书类

  1. A.Aiken、J.S.Foster、J.Kodumal和T.Terauchi。检查并推断局部非锯齿。程序中。PLDI,2003年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  2. G.Altekar、I.Bagrak、P.Burstein和A.Schultz。OPUS:在线补丁和安全更新。程序中。USENIX Security,2005年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  3. J.Armstrong、R.Virding、C.Wikstrom和M.Williams。ERLANG中的并发编程(第二版)。普伦蒂斯·霍尔国际有限公司,1996年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  4. A.Baumann、J.Appavoo、D.D.Silva、J.Kerr、O.Krieger和R.W.Wisniewski。在操作系统中提供动态更新。程序中。USENIX ATC,2005年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  5. T.布鲁姆。分布式编程系统中的动态模块替换。MIT/LCS博士论文,1983年3月。]]谷歌学者谷歌学者
  6. T.Bloom和M.Day。Argus中的重新配置和模块更换:理论和实践。软件工程期刊,8(2):102-1081993。]]谷歌学者谷歌学者交叉引用交叉引用
  7. C.Boyapati、B.Liskov、L.Shrra、C.H.Moh和S.Richman。持久对象存储中的延迟模块化升级。程序中。奥普斯拉,2003年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  8. G.Bronevetsky、M.Schulz、P.Szwed、D.Marques和K.Pingali。共享内存程序的应用程序级检查点。程序中。ASPLOS,2004年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  9. B.Buck和J.K.Hollingsworth。用于运行时代码修补的API。高性能计算应用杂志,14(4):317--3292000。]]谷歌学者谷歌学者数字图书馆数字图书馆
  10. C.加尔加尼奥。区域演算安全性和正确性的分层操作语义。在POPL,2001年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  11. S.Drossopoulou和S.Eisenbach。灵活的源代码级动态链接和重新链接。程序中。Java程序形式化技术研讨会,2003年。]]谷歌学者谷歌学者
  12. D.达根。正在运行的模块的基于类型的热交换。在ICFP中,2001年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  13. O.Frieder和M.E.Segal。关于动态更新计算机程序:从概念到原型。《系统与软件杂志》,14(2):111-1281991谷歌学者谷歌学者数字图书馆数字图书馆
  14. S.Gilmore、D.Kirli和C.Walton。没有动态类型的动态ML。技术报告ECS-LFCS-97-378,LFCS,爱丁堡大学,1997年。]]谷歌学者谷歌学者
  15. A.Goldberg和D.Robson。Smalltalk 80——语言及其实现。Addison-Wesley,雷丁,1989年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  16. D.古普塔。在线软件版本更改。印度技术学院博士论文,坎普尔,1994年11月。]]谷歌学者谷歌学者
  17. M.W.希克斯。动态软件更新。宾夕法尼亚大学博士论文,2001年8月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  18. G.Hjálmtísson和R.Gray。动态C++类,一种在运行程序中更新代码的轻量级机制。程序中。USENIX ATC,1998年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  19. Java平台调试器体系结构。这支持类替换。请参见http://java.sun.com/j2se/1.4.2/docs/guide/jpda/。]]谷歌学者谷歌学者
  20. K42项目。http://www.research.ibm.com/K42/。]]谷歌学者谷歌学者
  21. J.Kodumal和A.Aiken。Banshee:一个可扩展的基于约束的分析工具包。程序中。SAS,2005年9月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  22. D.E.Lowell、Y.Saito和E.J.Samberg。支持一般单节点在线维护的可变形虚拟机。程序中。ASPLOS,2004年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  23. J.M.Lucassen和D.K.Gifford。多态效应系统。POPL,1988年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  24. S.Malabarba、R.Pandey、J.Gragg、E.Barr和J.F.Barnes。对类型安全的动态java类的运行时支持。程序中。ECOOP,2000年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  25. G.C.Necula、S.McPeak、S.P.Rahul和W.Weimer。CIL:用于分析和转换C程序的中间语言和工具。LNCS,2304:213--2282002年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  26. D.Oppenheimer、A.Brown、J.Beck、D.Hettena、J.Kuroda、N.Treuhaft、D.A.Patterson和K.Yelick。Roc-1:面向恢复计算的硬件支持。IEEE传输。计算。,51(2):100--107, 2002.]]谷歌学者谷歌学者数字图书馆数字图书馆
  27. A.Orso、A.Rao和M.Harrold。Java软件的动态更新技术。程序中。ICSM,2002年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  28. S.Parker。一个简单的等式:IT on=Business on。IT Journal,Hewlett-Packard,2001。]]谷歌学者谷歌学者
  29. J.S.普朗克。单处理器和分布式系统中检查点的概述,重点介绍实现和性能。技术报告UT-CS-97-372,田纳西大学计算机科学系,1997年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  30. J.M.史密斯。进程迁移机制的调查。ACM操作系统评论,SIGOPS,22(3):28--40,1988年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  31. C.Soules、J.Appavoo、K.Hui、D.D.Silva、G.Ganger、O.Krieger、M.Stumm、R.Wisniewski、M.Auslander、M.Ostrowski、B.Rosen-burg和J.Xenidis。系统支持在线重新配置。程序中。USENIX ATC,2003年6月。]]谷歌学者谷歌学者
  32. G.斯托尔。动态软件更新理论。剑桥大学计算机实验室博士论文。出现。]]谷歌学者谷歌学者
  33. G.Stoyle、M.Hicks、G.Bierman、P.Sewell和I.Neamtiu。Mutantis Mutandis:安全且可预测的动态软件更新。程序中。POPL,2005年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  34. M.Tofte和J.-P.Talpin。基于区域的内存管理。信息与计算,132(2):109--1761997。]]谷歌学者谷歌学者数字图书馆数字图书馆
  35. B.佐恩。个人通信,基于与Microsoft Windows客户的经验,2005年8月。]]谷歌学者谷歌学者

索引术语

  1. 实用的C语言动态软件更新

                建议

                评论

                登录选项

                检查您是否可以通过登录凭据或您的机构访问本文。

                登录

                完全访问权限

                • 发布于

                  封面图片ACM会议
                  PLDI’06:第27届ACM SIGPLAN编程语言设计与实现会议记录
                  2006年6月
                  438页
                  国际标准图书编号:1595933204
                  DOI(操作界面):10.1145/1133981
                  • 封面图片ACM SIGPLAN注意事项
                    ACM SIGPLAN通知 第41卷第6期
                    2006年PLDI会议记录
                    2006年6月
                    426页
                    国际标准编号:0362-1340
                    EISSN公司:1558-1160
                    DOI(操作界面):10.1145/1133255
                    期刊目录

                  版权所有©2006 ACM

                  如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许用信用证进行摘要。要以其他方式复制或重新发布,在服务器上发布或重新发布到列表,需要事先获得特定许可和/或付费。从请求权限[电子邮件保护]

                  出版商

                  计算机协会

                  美国纽约州纽约市

                  出版历史

                  • 出版:2006年6月11日

                  权限

                  请求有关此文章的权限。

                  请求权限

                  检查更新

                  限定符

                  • 第条

                  接受率

                  总体验收率406属于2,067提交文件,20%

                  即将召开的会议

                  第24页
                  ACM SIGPLAN编程语言设计与实现会议
                  2024年6月24日至28日
                  哥本哈根,丹麦

                PDF格式

                以PDF文件查看或下载。

                PDF格式

                电子阅读器

                使用eReader联机查看。

                电子阅读器