{"id":13603316,"url":"https://github.com/SESA/EbbRT","last_synced_at":"2025-04-11T19:31:53.772Z","repository":{"id":8462362,"uuid":"10059560","full_name":"SESA/EbbRT","owner":"SESA","description":"EbbRT: elastic building block runtime","archived":false,"fork":false,"pushed_at":"2024-07-23T17:13:04.000Z","size":4734,"stargazers_count":75,"open_issues_count":8,"forks_count":17,"subscribers_count":21,"default_branch":"master","last_synced_at":"2024-11-07T07:46:33.569Z","etag":null,"topics":["libraryos","unikernel"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SESA.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-05-14T16:28:36.000Z","updated_at":"2024-10-02T13:57:30.000Z","dependencies_parsed_at":"2024-11-07T07:44:29.200Z","dependency_job_id":null,"html_url":"https://github.com/SESA/EbbRT","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SESA%2FEbbRT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SESA%2FEbbRT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SESA%2FEbbRT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SESA%2FEbbRT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SESA","download_url":"https://codeload.github.com/SESA/EbbRT/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248466967,"owners_count":21108571,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["libraryos","unikernel"],"created_at":"2024-08-01T19:00:17.898Z","updated_at":"2025-04-11T19:31:53.361Z","avatar_url":"https://github.com/SESA.png","language":"C","funding_links":[],"categories":["Projects"],"sub_categories":["Generic"],"readme":"The Elastic Building Block Runtime (EbbRT)\n=====\n\n**This is a research project out of the Boston University Computer\n   Science Department**\n\nComputers used to be large, expensive and centrally owned. Operating\nsystems were designed to multiplex hardware across multiple\napplications and users. Presently, Cloud Computing allows users to\nrent entire virtual machines to run their own OS and applications. In\nthis context, the hypervisor multiplexes hardware across multiple\napplications and users. We can build more efficient software by\nconstructing custom, application-specific operating systems rather\nthan deploying general purpose operating systems within virtual\nmachines.\n\n![image](doc/img/objective.png)\n\n## Design\n\nEbbRT is designed first and foremost for performance and\nmaintainability. A high performance system that cannot be maintained\nwill soon fall behind. This is one of the primary pitfalls of\ncustomized systems. EbbRT adopts several techniques in order to\nachieve this:\n\n* EbbRT is comprised of a set of components that developers can\nextend, replace or discard in order to construct and deploy a\nparticular application. This enables a much greater degree of\ncustomization than existing general purpose systems while promoting\nthe reuse of non-performance-critical components\n\n* EbbRT components run in a light-weight event-driven environment. This\nreduces the runtime complexity yet provides enough flexibility for a\nwide range of applications.\n\n* EbbRT library operating systems can run within virtual machines on\nunmodified hypervisors. This allows us to deploy EbbRT applications on\ncommodity clouds.\n\n* EbbRT library operating systems run alongside general purpose\noperating systems. This allows functionality to be offloaded for\ncompatibility, reducing the maintenance burden by avoiding the\nconstruction of new software.\n\n* EbbRT uses many modern and high-level programming techniques not\ntypically found in operating systems software. This was chosen\ndeliberately to reduce the complexity of the software.\n\n## Detail\n\nEbbRT is comprised of a set of an x86_64 library OS and toolchain as\nwell as a Linux userspace library. Both runtimes are written\npredominately in C++11. The native library OS is deployed along with a\nmodified GNU toolchain (gcc, binutils, libstdc++) and newlib (libc)\nthat provide an x86_64-ebbrt target. Application code targeting the\nnative library OS is compiled with this toolchain and the resulting\nbinary is a bootable ELF linked with the library OS. We provide C and\nC++ standard library implementations which make it straightforward to\nuse many third party software libraries.\n\n## Further Reading\n\n*EbbRT: A Framework for Building Per-Application Library Operating Systems.*\n12th USENIX Symposium on Operating Systems Design and Implementation (OSDI\n16). [(PDF)](doc/ebbrt-OSDI_16.pdf)\n\n## Contact\n\nPlease email us at sesa-developers@googlegroups.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSESA%2FEbbRT","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSESA%2FEbbRT","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSESA%2FEbbRT/lists"}