{"@context":"http://iiif.io/api/presentation/2/context.json","@id":"https://repo.library.stonybrook.edu/cantaloupe/iiif/2/manifest.json","@type":"sc:Manifest","label":"A Library Operating System for Compatibility","metadata":[{"label":"dc.description.sponsorship","value":"This work is sponsored by the Stony Brook University Graduate School in compliance with the requirements for completion of degree."},{"label":"dc.format","value":"Monograph"},{"label":"dc.format.medium","value":"Electronic Resource"},{"label":"dc.identifier.uri","value":"http://hdl.handle.net/11401/78243"},{"label":"dc.language.iso","value":"en_US"},{"label":"dcterms.abstract","value":"Compatibility challenges occur when sharing an application across system interfaces such as Linux and Windows APIs, or reusing an application on a disruptive hardware such as Intel SGX. Existing approaches require either exhaustively porting applications to new APIs or preserving all previous APIs for backward compatibility. Since both approaches are time-consuming, developers urgently need a solution to the compatibility issues on innovative OSes or hardware, to promptly benefit average users. This thesis demonstrates a library OS approach for reusing unmodified applications on a new OS or hardware. The approach starts with defining a host ABI which is simple to port and also sufficiently contains essential OS abstractions such as file and page management. The host ABI divides the development of a compatibility layer into API emulation in a library OS and encapsulating host distinction with a PAL (platform adaption layer). This thesis presents the Graphene library OS, which demonstrates the simplicity and sufficiency of its host ABI by enumerating host abstractions used for emulating Linux system calls and the related porting efforts. For instance, Graphene emulates multi-process abstractions using two host abstractions: creating a new process, and a simple RPC stream. Leveraging a distributed coordination model, multiple Graphene instances across processes collaboratively present a united OS view to an application. Two main porting targets of Graphene, Linux, and SGX, each present challenges to enforcing security isolation. On a Linux host, Graphene isolates mutually-untrusting applications. On SGX, Graphene protects a security-sensitive application against an untrusted OS. From a security perspective, Graphene restricts the attack surface through system interfaces and simplifies security checks against unexpected exploitations. Finally, this thesis presents quantitative measurements to evaluate the partial compatibility of OS prototypes and importance of APIs, to help to prioritize API porting."},{"label":"dcterms.available","value":"2018-06-21T13:38:41Z"},{"label":"dcterms.contributor","value":"Porter, Donald E"},{"label":"dcterms.creator","value":"Tsai, Chia-Che"},{"label":"dcterms.dateAccepted","value":"2018-06-21T13:38:41Z"},{"label":"dcterms.dateSubmitted","value":"2018-06-21T13:38:41Z"},{"label":"dcterms.description","value":"Department of Computer Science"},{"label":"dcterms.extent","value":"201 pg."},{"label":"dcterms.format","value":"Monograph"},{"label":"dcterms.identifier","value":"http://hdl.handle.net/11401/78243"},{"label":"dcterms.issued","value":"2017-12-01"},{"label":"dcterms.language","value":"en_US"},{"label":"dcterms.provenance","value":"Made available in DSpace on 2018-06-21T13:38:41Z (GMT). No. of bitstreams: 1\nTsai_grad.sunysb_0771E_13608.pdf: 3269217 bytes, checksum: 2b6a339b3ad050a80c9912705473d7eb (MD5)\n Previous issue date: 12"},{"label":"dcterms.subject","value":"Computer science"},{"label":"dcterms.title","value":"A Library Operating System for Compatibility"},{"label":"dcterms.type","value":"Dissertation"},{"label":"dc.type","value":"Dissertation"}],"description":"This manifest was generated dynamically","viewingDirection":"left-to-right","sequences":[{"@type":"sc:Sequence","canvases":[{"@id":"https://repo.library.stonybrook.edu/cantaloupe/iiif/2/canvas/page-1.json","@type":"sc:Canvas","label":"Page 1","height":1650,"width":1275,"images":[{"@type":"oa:Annotation","motivation":"sc:painting","resource":{"@id":"https://repo.library.stonybrook.edu/cantaloupe/iiif/2/66%2F16%2F82%2F6616826556979268825931010725914693072/full/full/0/default.jpg","@type":"dctypes:Image","format":"image/jpeg","height":1650,"width":1275,"service":{"@context":"http://iiif.io/api/image/2/context.json","@id":"https://repo.library.stonybrook.edu/cantaloupe/iiif/2/66%2F16%2F82%2F6616826556979268825931010725914693072","profile":"http://iiif.io/api/image/2/level2.json"}},"on":"https://repo.library.stonybrook.edu/cantaloupe/iiif/2/canvas/page-1.json"}]}]}]}