Cslim: automated extraction of IoT functionalities from legacy C codebases

Hyogi Sim, A. Paul, E. Tilevich, A. Butt, Muhammad Shahzad
{"title":"Cslim: automated extraction of IoT functionalities from legacy C codebases","authors":"Hyogi Sim, A. Paul, E. Tilevich, A. Butt, Muhammad Shahzad","doi":"10.1145/3288599.3296013","DOIUrl":null,"url":null,"abstract":"Many Internet of Things (IoT) devices are resource-poor, possessing limited memory, disk space, and processor capacity. To accommodate such resource scarcity, IoT software cannot include any extraneous functionalities not used in operating the underlying device. Although legacy systems software contains numerous functionalities that can be reused in IoT applications, these functionalities are exposed as part of a larger codebase with multiple complex dependencies and a heavy runtime footprint. To enable programmers to effectively reuse extant systems software in IoT applications, this paper presents Cslim, a cross-package function extraction tool for C. Cslim extracts programmer-specified functions from a source package and generates new source files for a target package, thereby enabling the reuse of systems software in resource-poor execution environments, such as the IoT devices. Cslim resolves all dependencies by recursively extracting required functions, while bypassing the complexities of preprocessor macro variabilities by operating on preprocessed source files. Furthermore, Cslim efficiently traverses and resolves the calling dependencies by maintaining an in-memory relational database. Finally, Cslim is easy to use, as it requires neither manual intervention nor source code modifications. Our prototype implementation of Cslim has successfully extracted a set of functions from SQLite and GlusterFS, producing slimmed down executables that can be deployed on IoT devices.","PeriodicalId":346177,"journal":{"name":"Proceedings of the 20th International Conference on Distributed Computing and Networking","volume":"14 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-01-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 20th International Conference on Distributed Computing and Networking","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3288599.3296013","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Many Internet of Things (IoT) devices are resource-poor, possessing limited memory, disk space, and processor capacity. To accommodate such resource scarcity, IoT software cannot include any extraneous functionalities not used in operating the underlying device. Although legacy systems software contains numerous functionalities that can be reused in IoT applications, these functionalities are exposed as part of a larger codebase with multiple complex dependencies and a heavy runtime footprint. To enable programmers to effectively reuse extant systems software in IoT applications, this paper presents Cslim, a cross-package function extraction tool for C. Cslim extracts programmer-specified functions from a source package and generates new source files for a target package, thereby enabling the reuse of systems software in resource-poor execution environments, such as the IoT devices. Cslim resolves all dependencies by recursively extracting required functions, while bypassing the complexities of preprocessor macro variabilities by operating on preprocessed source files. Furthermore, Cslim efficiently traverses and resolves the calling dependencies by maintaining an in-memory relational database. Finally, Cslim is easy to use, as it requires neither manual intervention nor source code modifications. Our prototype implementation of Cslim has successfully extracted a set of functions from SQLite and GlusterFS, producing slimmed down executables that can be deployed on IoT devices.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
Cslim:从遗留C代码库中自动提取物联网功能
许多物联网(IoT)设备资源匮乏,内存、磁盘空间和处理器容量有限。为了适应这种资源稀缺性,物联网软件不能包括操作底层设备时未使用的任何无关功能。尽管遗留系统软件包含许多可以在物联网应用程序中重用的功能,但这些功能暴露为更大的代码库的一部分,具有多个复杂的依赖关系和沉重的运行时足迹。为了使程序员能够在物联网应用中有效地重用现有的系统软件,本文提出了Cslim,一种针对c语言的跨包功能提取工具。Cslim从源包中提取程序员指定的功能,并为目标包生成新的源文件,从而使系统软件能够在资源贫乏的执行环境(如物联网设备)中重用。Cslim通过递归地提取所需的函数来解决所有依赖关系,同时通过操作预处理的源文件来绕过预处理器宏变量的复杂性。此外,Cslim通过维护内存中的关系数据库有效地遍历和解析调用依赖项。最后,Cslim易于使用,因为它既不需要人工干预,也不需要修改源代码。我们的Cslim原型实现已经成功地从SQLite和GlusterFS中提取了一组函数,生成了精简的可执行文件,可以部署在物联网设备上。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Improving efficacy of concurrent internal binary search trees using local recovery An accurate missing data prediction method using LSTM based deep learning for health care A simple and practical concurrent non-blocking unbounded graph with linearizable reachability queries EnTER: an encounter based trowbox deployment strategy for enhancing network reliability in post-disaster scenarios over DTN Exploration and impact of blockchain-enabled adaptive non-binary trust models
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1