אירועים והרצאות בפקולטה למדעי המחשב ע"ש הנרי ומרילין טאוב
נדב הראל (קלאודיוס מערכות)
יום שני, 28.10.2013, 18:30
These days, most applications running on virtual machines in the cloud run on top of Linux. We all love Linux, but as an all-encompassing operating system for everything from phones to supercomputers, Linux was never really designed for virtual machines; It is big and complex, and it offers features (such as multi-user and multi-process) which are today made redundant by the hypervisor and slow it down. Linux's APIs are many times set in stone by decades of legacy code. All these cost in application performance, and make it harder to innovate.
This is why OSv was developed, a new operating system designed to run a single application on a virtual machine. As it runs a single application there is no need for kernel-userspace isolation, reducing context switch costs and unnecessary copying. A design from scratch allowed us to experiment with new ideas like lock-free mutexes (solving the Lock-Holder Preemption problem that plagues operating systems on virtual machines), extremely fast context switches, Van Jacobson's network channels (see http://www.lemis.com/grog/Documentation/vj/lca06vj.pdf), and more. Also, OSv is released under the more permissive BSD license (not GPL like Linux), is tiny compared to Linux, and takes less than one second to boot and start the user's application.
OSv can run ordinary Linux shared objects, such as, for example, an unmodified JVM (e.g., OpenJDK) executable, and of course on that you can run any application written in Java, JRuby , Clojure, or any other JVM language. Even at this early stage of OSv's development, OSv can already successfully run several interesting workloads such as Netperf, Memcached, Cassandra and SpecJVM - and usually match or even beat Linux's performance.
Another refreshing feature of OSv is that is written in C++. It's been 40 years since Unix was (re)written in C, and the time has come for something better. C++ is not about writing super-complex type hierarchies (as some people might have you believe). Rather, it allowed us to write shorter code with less boiler-plate repetition and less chances for bugs. It allowed us to more easily reuse quality code and data structures. And using newly standardized C++11 features, we were able to write safe concurrent code with standard language features instead of processor-specific hacks. And all of this with zero performance overheads - most of C++'s features, most notably templates, are compile-time features which result in no run-time overhead compared to C code.
OSv was developed by Cloudius Systems, a small Israeli startup led by Dor Laor and Avi Kivity (of KVM fame) but it is an open-source project - developed since its inception on github (https://github.com/cloudius-systems/osv), and released under the BSD license. We would like to take this opportunity to invite everyone to use OSv, and to help drive its development forward. OSv is a fantastic playground for kernel developers, and also for people involved in cloud development, devops, and so on. Tell us what your dream VM operating system will do, and maybe your dream will come true :-) Maybe you can even help us make that dream come true.
If you want to try OSv, check out the announcement and usage instructions on the OSv mailing list.