{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,1]],"date-time":"2025-10-01T16:35:35Z","timestamp":1759336535543},"reference-count":36,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2020,5,7]],"date-time":"2020-05-07T00:00:00Z","timestamp":1588809600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2020,5,7]],"date-time":"2020-05-07T00:00:00Z","timestamp":1588809600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Cybersecur"],"published-print":{"date-parts":[[2020,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Unikernel, specializing a minimalistic <jats:italic>libOS<\/jats:italic> with an application, is an attractive design for cloud computing. However, the Achilles\u2019 heel of unikernel is the lack of multi-process support, which makes it less flexible and applicable. Many applications rely on the process abstraction to isolate different components. For example, Apache with the multi-processing module isolates a request handler in a process to guarantee security. Prior art tackles the problem by simulating multi-process with multiple unikernels, which is incompatible with existing cloud providers and also introduces high overhead. This paper proposes Iso-UniK, a new unikernel design enabling multi-task applications with the support of both functionality and isolation. Iso-UniK leverages a recent hardware feature, named Intel Memory Protection Key (Intel MPK), to provide lightweight and efficient isolation for multi-process in unikernel. Our design has three benefits compared with previous approaches. First, Iso-UniK does not need hypervisor support and is thus compatible with existing cloud computing platforms; second, Iso-UniK promises fast system calls with only 45 cycles; last, a process can be isolated with a flexible configuration. We have implemented a prototype based on OSv, a unikernel system supporting unmodified applications. Iso-UniK can achieve fast <jats:italic>fork<\/jats:italic> operation with only 66 <jats:italic>\u03bc<\/jats:italic>s for multi-process applications. Our evaluation shows that the isolation and multi-process support in Iso-UniK will not damage the applications\u2019 performance.<\/jats:p>","DOI":"10.1186\/s42400-020-00051-9","type":"journal-article","created":{"date-parts":[[2020,5,7]],"date-time":"2020-05-07T00:03:11Z","timestamp":1588809791000},"update-policy":"http:\/\/dx.doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":11,"title":["Iso-UniK: lightweight multi-process unikernel through memory protection keys"],"prefix":"10.1186","volume":"3","author":[{"given":"Guanyu","family":"Li","sequence":"first","affiliation":[]},{"given":"Dong","family":"Du","sequence":"additional","affiliation":[]},{"given":"Yubin","family":"Xia","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2020,5,7]]},"reference":[{"key":"51_CR1","unstructured":"Amit, N, Wei M (2018) The design and implementation of hyperupcalls In: 2018 USENIX Annual Technical Conference (USENIX ATC 18), 97\u2013112.. USENIX Association, Boston, MA. https:\/\/www.usenix.org\/conference\/atc18\/presentation\/amit."},{"key":"51_CR2","unstructured":"Apache HTTP server benchmarking tool. https:\/\/httpd.apache.org\/docs\/2.4\/programs\/ab.html. Accessed Dec 2019."},{"key":"51_CR3","unstructured":"Apache http server project. https:\/\/httpd.apache.org\/. Accessed Dec 2019."},{"key":"51_CR4","unstructured":"Apache MPM prefork. https:\/\/httpd.apache.org\/docs\/2.4\/mod\/prefork.html. Accessed Dec 2019."},{"key":"51_CR5","unstructured":"AWS, AmazonWebServices. https:\/\/aws.amazon.com\/?. Accessed Dec 2019."},{"key":"51_CR6","unstructured":"Belay, A, Bittau A, Mashtizadeh A, Terei D, Mazi\u00e8res D, Kozyrakis C (2012) Dune: Safe user-level access to privileged CPU features In: Presented as Part of the 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI 12), 335\u2013348.. USENIX, Hollywood, CA. https:\/\/www.usenix.org\/conference\/osdi12\/technical-sessions\/presentation\/belay."},{"key":"51_CR7","doi-asserted-by":"publisher","first-page":"191","DOI":"10.1145\/2694344.2694386","volume-title":"Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS \u201915","author":"N Dautenhahn","year":"2015","unstructured":"Dautenhahn, N, Kasampalis T, Dietz W, Criswell J, Adve V (2015) Nested kernel: An operating system architecture for intra-kernel privilege separation In: Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS \u201915, 191\u2013206.. Association for Computing Machinery, New York, NY, USA. https:\/\/doi.org\/10.1145\/2694344.2694386."},{"key":"51_CR8","doi-asserted-by":"publisher","first-page":"671","DOI":"10.1145\/3307650.3322218","volume-title":"Proceedings of the 46th International Symposium on Computer Architecture, ISCA \u201919","author":"D Du","year":"2019","unstructured":"Du, D, Hua Z, Xia Y, Zang B, Chen H (2019) Xpc: Architectural support for secure and efficient cross process call In: Proceedings of the 46th International Symposium on Computer Architecture, ISCA \u201919, 671\u2013684.. Association for Computing Machinery, New York, NY, USA. https:\/\/doi.org\/10.1145\/3307650.3322218."},{"key":"51_CR9","unstructured":"gVisor. https:\/\/gvisor.dev\/. Accessed Dec 2019."},{"key":"51_CR10","doi-asserted-by":"publisher","unstructured":"Hu, H, Shinde S, Adrian S, Chua ZL, Saxena P, Liang Z (2016) Data-oriented programming: On the expressiveness of non-control data attacks In: 2016 IEEE Symposium on Security and Privacy (SP), 969\u2013986. https:\/\/doi.org\/10.1109\/SP.2016.62.","DOI":"10.1109\/SP.2016.62"},{"key":"51_CR11","first-page":"255","volume-title":"2018 USENIX Annual Technical Conference (USENIX ATC 18)","author":"Z Hua","year":"2018","unstructured":"Hua, Z, Du D, Xia Y, Chen H, Zang B (2018) EPTI: Efficient defence against meltdown attack for unpatched vms In: 2018 USENIX Annual Technical Conference (USENIX ATC 18), 255\u2013266.. USENIX Association, Boston, MA. https:\/\/www.usenix.org\/conference\/atc18\/presentation\/hua."},{"key":"51_CR12","unstructured":"Hua, Z, Gu J, Xia Y, Chen H, Zang B, Guan H (2017) vtz: Virtualizing ARM trustzone In: 26th USENIX Security Symposium (USENIX Security 17), 541\u2013556.. USENIX Association, Vancouver, BC. https:\/\/www.usenix.org\/conference\/usenixsecurity17\/technical-sessions\/presentation\/hua."},{"key":"51_CR13","unstructured":"Intel \u24c7 64 and IA-32 architectures software developer\u2019s manual. https:\/\/software.intel.com\/en-us\/articles\/intel-sdm. Accessed Dec 2019, Published November 11, 2019."},{"key":"51_CR14","unstructured":"Jos Tiny Server. https:\/\/pdos.csail.mit.edu\/6.828\/2014\/labs\/lab6\/. Accessed Dec 2019."},{"key":"51_CR15","unstructured":"Kashyap, S, Min C, Kim T (2018) Scaling guest OS critical sections with ecs In: 2018 USENIX Annual Technical Conference (USENIX ATC 18), 159\u2013172.. USENIX Association, Boston, MA. https:\/\/www.usenix.org\/conference\/atc18\/presentation\/kashyap."},{"key":"51_CR16","unstructured":"Kivity, A, Laor D, Costa G, Enberg P, Har\u2019El N, Marti D, Zolotarov V (2014) Osv\u2014optimizing the operating system for virtual machines In: 2014 USENIX Annual Technical Conference (USENIX ATC 14), 61\u201372.. USENIX Association, Philadelphia, PA. https:\/\/www.usenix.org\/conference\/atc14\/technical-sessions\/presentation\/kivity."},{"key":"51_CR17","doi-asserted-by":"publisher","unstructured":"Klein, G, Elphinstone K, Heiser G, Andronick J, Cock D, Derrin P, Elkaduwe D, Engelhardt K, Kolanski R, Norrish M, et al. (2009) Sel4: Formal verification of an os kernel In: Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles, SOSP \u201909, 207\u2013220.. Association for Computing Machinery, New York, NY, USA. https:\/\/doi.org\/10.1145\/1629575.1629596.","DOI":"10.1145\/1629575.1629596"},{"key":"51_CR18","doi-asserted-by":"publisher","unstructured":"Li, W, Xia Y, Chen H, Zang B, Guan H (2015) Reducing world switches in virtualized environment with flexible cross-world calls In: Proceedings of the 42nd Annual International Symposium on Computer Architecture, ISCA \u201915, 375\u2013387.. Association for Computing Machinery, New York, NY, USA. https:\/\/doi.org\/10.1145\/2749469.2750406.","DOI":"10.1145\/2749469.2750406"},{"key":"51_CR19","doi-asserted-by":"publisher","unstructured":"Li, W, Xia Y, Lu L, Chen H, Zang B (2019) Teev: Virtualizing trusted execution environments on mobile platforms In: Proceedings of the 15th ACM SIGPLAN\/SIGOPS International Conference on Virtual Execution Environments, VEE 2019, 2\u201316.. Association for Computing Machinery, New York, NY, USA. https:\/\/doi.org\/10.1145\/3313808.3313810.","DOI":"10.1145\/3313808.3313810"},{"key":"51_CR20","unstructured":"Lipp, M, Schwarz M, Gruss D, Prescher T, Haas W, Fogh A, Horn J, Mangard S, Kocher P, Genkin D, Yarom Y, Hamburg M (2018) Meltdown: Reading kernel memory from user space In: 27th USENIX Security Symposium (USENIX Security 18), 973\u2013990.. USENIX Association, Baltimore, MD. https:\/\/www.usenix.org\/conference\/usenixsecurity18\/presentation\/lipp."},{"key":"51_CR21","doi-asserted-by":"publisher","first-page":"1607","DOI":"10.1145\/2810103.2813690","volume-title":"Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, CCS \u201915","author":"Y Liu","year":"2015","unstructured":"Liu, Y, Zhou T, Chen K, Chen H, Xia Y (2015) Thwarting memory disclosure with efficient hypervisor-enforced intra-domain isolation In: Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, CCS \u201915, 1607\u20131619.. Association for Computing Machinery, New York, NY, USA. https:\/\/doi.org\/10.1145\/2810103.2813690."},{"key":"51_CR22","doi-asserted-by":"publisher","unstructured":"Madhavapeddy, A, Mortier R, Rotsos C, Scott D, Singh B, Gazagnaire T, Smith S, Hand S, Crowcroft J (2013) Unikernels: Library operating systems for the cloud, vol. 41, 461\u2013472.. Association for Computing Machinery, New York, NY, USA. https:\/\/doi.org\/10.1145\/2490301.2451167.","DOI":"10.1145\/2490301.2451167"},{"key":"51_CR23","doi-asserted-by":"publisher","first-page":"218","DOI":"10.1145\/3132747.3132763","volume-title":"Proceedings of the 26th Symposium on Operating Systems Principles, SOSP \u201917","author":"F Manco","year":"2017","unstructured":"Manco, F, Lupu C, Schmidt F, Mendes J, Kuenzer S, Sati S, Yasukata K, Raiciu C, Huici F (2017) My vm is lighter (and safer) than your container In: Proceedings of the 26th Symposium on Operating Systems Principles, SOSP \u201917, 218\u2013233.. Association for Computing Machinery, New York, NY, USA. https:\/\/doi.org\/10.1145\/3132747.3132763."},{"key":"51_CR24","doi-asserted-by":"publisher","DOI":"10.1145\/3302424.3303946","volume-title":"Proceedings of the Fourteenth EuroSys Conference 2019, EuroSys \u201919","author":"Z Mi","year":"2019","unstructured":"Mi, Z, Li D, Yang Z, Wang X, Chen H (2019) Skybridge: Fast and secure inter-process communication for microkernels In: Proceedings of the Fourteenth EuroSys Conference 2019, EuroSys \u201919.. Association for Computing Machinery, New York, NY, USA. https:\/\/doi.org\/10.1145\/3302424.3303946."},{"key":"51_CR25","unstructured":"Nginx. http:\/\/nginx.org\/en\/. Accessed Dec 2019."},{"key":"51_CR26","unstructured":"Open Container Initiative. https:\/\/www.opencontainers.org\/about. Accessed Dec 2019."},{"key":"51_CR27","first-page":"241","volume-title":"2019 USENIX Annual Technical Conference (USENIX ATC 19)","author":"S Park","year":"2019","unstructured":"Park, S, Lee S, Xu W, Moon H, Kim T (2019) libmpk: Software abstraction for intel memory protection keys (intel MPK) In: 2019 USENIX Annual Technical Conference (USENIX ATC 19), 241\u2013254.. USENIX Association, Renton, WA. https:\/\/www.usenix.org\/conference\/atc19\/presentation\/park-soyeon."},{"key":"51_CR28","first-page":"1","volume-title":"Proceedings of the 19th USENIX Conference on Security, USENIX Security\u201910","author":"D Sehr","year":"2010","unstructured":"Sehr, D, Muth R, Biffle C, Khimenko V, Pasko E, Schimpf K, Yee B, Chen B (2010) Adapting software fault isolation to contemporary cpu architectures In: Proceedings of the 19th USENIX Conference on Security, USENIX Security\u201910, 1.. USENIX Association, USA."},{"key":"51_CR29","volume-title":"24th Annual Network and Distributed System Security Symposium,(NDSS\u201917), San Diego, CA, USA","author":"L Shi","year":"2017","unstructured":"Shi, L, Wu Y, Xia Y, Dautenhahn N, Chen H, Zang B, Guan H, Li J (2017) Deconstructing xen In: 24th Annual Network and Distributed System Security Symposium,(NDSS\u201917), San Diego, CA, USA.. The Internet Society, Reston, Virginia, U.S.https:\/\/doi.org\/10.14722\/ndss.2017.23455."},{"key":"51_CR30","unstructured":"The heartbleed bug. http:\/\/heartbleed.com\/. Accessed Dec 2019."},{"key":"51_CR31","doi-asserted-by":"publisher","DOI":"10.1145\/2592798.2592812","volume-title":"Proceedings of the Ninth European Conference on Computer Systems, EuroSys \u201914","author":"C-C Tsai","year":"2014","unstructured":"Tsai, C-C, Arora KS, Bandi N, Jain B, Jannen W, John J, Kalodner HA, Kulkarni V, Oliveira D, Porter DE (2014) Cooperation and security isolation of library oses for multi-process applications In: Proceedings of the Ninth European Conference on Computer Systems, EuroSys \u201914.. Association for Computing Machinery, New York, NY, USA. https:\/\/doi.org\/10.1145\/2592798.2592812."},{"key":"51_CR32","first-page":"1221","volume-title":"28th USENIX Security Symposium (USENIX Security 19)","author":"A Vahldiek-Oberwagner","year":"2019","unstructured":"Vahldiek-Oberwagner, A, Elnikety E, Duarte NO, Sammler M, Druschel P, Garg D (2019) ERIM: Secure, efficient in-process isolation with protection keys (MPK) In: 28th USENIX Security Symposium (USENIX Security 19), 1221\u20131238.. USENIX Association, Santa Clara, CA. https:\/\/www.usenix.org\/conference\/usenixsecurity19\/presentation\/vahldiek-oberwagner."},{"key":"51_CR33","doi-asserted-by":"publisher","unstructured":"Vilanova, L, Ben-Yehuda M, Navarro N, Etsion Y, Valero M (2014) Codoms: Protecting software with code-centric memory domains In: 2014 ACM\/IEEE 41st International Symposium on Computer Architecture (ISCA), 469\u2013480. https:\/\/doi.org\/10.1109\/ISCA.2014.6853202.","DOI":"10.1109\/ISCA.2014.6853202"},{"key":"51_CR34","doi-asserted-by":"crossref","unstructured":"Vogl, S, Pfoh J, Kittel T, Eckert C (2014) Persistent data-only malware: Function hooks without code.. The Internet Society, Reston, Virginia, U.S.https:\/\/doi.org\/10.14722\/ndss.2014.23019.","DOI":"10.14722\/ndss.2014.23019"},{"key":"51_CR35","doi-asserted-by":"publisher","unstructured":"Yee, B, Sehr D, Dardyk G, Chen JB, Muth R, Ormandy T, Okasaka S, Narula N, Fullagar N (2009) Native client: A sandbox for portable, untrusted x86 native code In: 2009 30th IEEE Symposium on Security and Privacy, 79\u201393. https:\/\/doi.org\/10.1109\/SP.2009.25.","DOI":"10.1109\/SP.2009.25"},{"key":"51_CR36","first-page":"173","volume-title":"2018 USENIX Annual Technical Conference (USENIX ATC 18)","author":"Y Zhang","year":"2018","unstructured":"Zhang, Y, Crowcroft J, Li D, Zhang C, Li H, Wang Y, Yu K, Xiong Y, Chen G (2018) Kylinx: A dynamic library operating system for simplified and efficient cloud virtualization In: 2018 USENIX Annual Technical Conference (USENIX ATC 18), 173\u2013186.. USENIX Association, Boston, MA. https:\/\/www.usenix.org\/conference\/atc18\/presentation\/zhang-yiming."}],"container-title":["Cybersecurity"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1186\/s42400-020-00051-9.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1186\/s42400-020-00051-9\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1186\/s42400-020-00051-9.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,5,6]],"date-time":"2021-05-06T23:05:10Z","timestamp":1620342310000},"score":1,"resource":{"primary":{"URL":"https:\/\/cybersecurity.springeropen.com\/articles\/10.1186\/s42400-020-00051-9"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,5,7]]},"references-count":36,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2020,12]]}},"alternative-id":["51"],"URL":"https:\/\/doi.org\/10.1186\/s42400-020-00051-9","relation":{},"ISSN":["2523-3246"],"issn-type":[{"value":"2523-3246","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,5,7]]},"assertion":[{"value":"4 October 2019","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"27 December 2019","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"7 May 2020","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"The authors declare that they have no competing interests.","order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Competing interests"}}],"article-number":"11"}}