{"id":6111,"date":"2025-04-29T21:17:39","date_gmt":"2025-04-30T04:17:39","guid":{"rendered":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/?p=6111"},"modified":"2025-07-20T16:46:51","modified_gmt":"2025-07-20T23:46:51","slug":"oneos-distributed-operating-system-for-the-edge-to-cloud-continuum","status":"publish","type":"post","link":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/2025\/04\/29\/oneos-distributed-operating-system-for-the-edge-to-cloud-continuum\/","title":{"rendered":"OneOS: Distributed Operating System for the Edge-to-Cloud Continuum"},"content":{"rendered":"<p> Kumseok Jung, Julien Gascon Samson, Sathish Gopalakrishnan, and Karthik Pattabiraman, <a href=\"https:\/\/www.computer.org\/csdl\/journal\/td\">IEEE Transactions on Parallel and Distributed Systems (TPDS). <\/a> [ <a href=\"https:\/\/www.dropbox.com\/scl\/fi\/lwqo9pp63qoamy17ds66x\/kumseok-oneos-tpds.pdf?rlkey=snh2xustcee3en7xt6c3373us&#038;st=wq0q6mbs&#038;dl=0\">PDF<\/a> ] (<a href=\"https:\/\/github.com\/DependableSystemsLab\/OneOS\">Code<\/a>)<br \/>\n<!--more--><br \/>\n<strong>This paper is an extended version of the following <a href=\"https:\/\/blogs.ubc.ca\/dependablesystemslab\/2021\/09\/04\/osone-middleware-for-running-edge-computing-applications\/\">conference<\/a> paper. <\/strong><\/p>\n<p><strong>Abstract<\/strong>: Application developers often need to employ a combination of software such as communication middleware and cloud-based services to deal with the challenges of heterogeneity and network dynamism in the edge-to-cloud continuum. Consequently, developers write extra glue code peripheral to the application\u2019s core business logic, to provide interoperability between interacting software frameworks. Each software framework comes with its own framework-specific API, and as technology evolves, the developer must keep up with the changing APIs by updating the glue code in their application. Thus, framework-specific APIs hinder interoperability and cause technology fragmentation.<\/p>\n<p>We propose a design of a middleware-based distributed operating system (OS) called OneOS1 to realize a computing paradigm that alleviates such interoperability challenges. OneOS provides a single system image of the distributed computing platform, and transparently provides interoperability between software components through the standard POSIX API. Using OneOS\u2019s domain-specific language, users can compose complex distributed applications from legacy POSIX programs. OneOS<br \/>\ntolerates failures by adopting a distributed checkpoint-restore algorithm. We evaluate the performance of OneOS against an open-source IoT Platform, ThingsJS, using an IoT stream processing benchmark suite, and a video processing application. OneOS executes the programs about 3x faster than ThingsJS, reduces the code size by about 22%, and recovers the state of failed applications within 1 second upon detecting their failure.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kumseok Jung, Julien Gascon Samson, Sathish Gopalakrishnan, and Karthik Pattabiraman, IEEE Transactions on Parallel and Distributed Systems (TPDS). [ PDF ] (Code)<\/p>\n","protected":false},"author":10348,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[61,46,9,28,22],"class_list":["post-6111","post","type-post","status-publish","format-standard","hentry","category-publications","tag-61","tag-edge","tag-iot","tag-journal","tag-kumseok"],"_links":{"self":[{"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/posts\/6111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/users\/10348"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/comments?post=6111"}],"version-history":[{"count":2,"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/posts\/6111\/revisions"}],"predecessor-version":[{"id":6148,"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/posts\/6111\/revisions\/6148"}],"wp:attachment":[{"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/media?parent=6111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/categories?post=6111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.ubc.ca\/dependablesystemslab\/wp-json\/wp\/v2\/tags?post=6111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}