-
-
Notifications
You must be signed in to change notification settings - Fork 605
OSv release 0.04
Announcing the release of OSv “Dobrinishte”0.0.4 (unstable release). OSv is a new OS, designed from the ground up to run in a virtual, cloud environment We are very pleased to announce the release of OSv 0.0.4. This release contains new features, performance and stability improvements over OSv 0.0.3
- release date: Dec 9 2014
OSv scheduler was re-implemented to follow our fair decaying scheduler design [1]. The new “Fair Scheduler” advantages are:
- Simpler, easier to reason about, and as result less buggy
- Thread priority survive CPU migration
- Can use longer history More on Decay fair scheduler
External modules can be now easily build with OSv. The following application already available as examples:
- cassandra
- memcached
- tomcat
- specjvm
- rogue
for more information, see the new submoudole project
Switch to demand paging for anonymous virtual memory. Using lazy physical memory allocation for anonymous mmap'd memory regions, as used by Cassandra
It is now possible to set a javamain file with multiple Java main declarations. This allows setting a launch sequence of multiple, independent Java services. Practically it allow to decouple the CLI/SSH execution the web server.
Add support for /dev/random implementation includes reading from host virtio-rng if available, allowing Java secure random generator faster boot
- openjdk 1.7.0.60-2.4.3.0.fc19
- CRaSH 1.3.0-beta11
- QEMU/KVM image for download
- Amazon EC2 AMI per region
Amnon Heiman (2): java: Support for loading multiple mains Start up shell and management web in parallel Asias He (5): fs: Remove execute mode of files under fs directory zfs: Remove unused zfs_freebsd_xxx zfs_vnodeops build.mk: Rename usr.raw to bare.raw Add .swp files to gitignore virtio-blk: Switch to and add tracepoint Avi Kivity (82): build: fix .tls_template_size calculation poll: refactor poll() in terms of file pointers, not file descriptors epoll: switch to file based implementation using do_poll() tests: add tcp connection test build: bring back libgcc_s.so tst-except: add test for _Unwind_Resume epoll: switch epoll_object to using file pointers vfs: give 'file' a proper destructor vfs: prevent double initialization of file::f_lock tst-tcp: clean up better after threads tst-tcp: close socket before retaking the lock epoll: remove epoll registrations after close() sched: prevent a re-armed timer from being ignored sched: fix iteration across timer list build: source dialect control libc: implement the GNU variant of strerror_r() tests: add a test for strerror_r() tests: add strerror_r() test build: add missing tst-strerror.so to tests list net: adjust SO_REUSEADDR to match Linux semantics tst-tcp: set SO_REUSEADDR gdb: add 'osv info virtio' zfs: remove fake struct file definition vfs_syscalls.c: convert to C++ Add helper for converting designated initializers to C++ vfs_fops.c: convert to C++ ramfs_vnops: convert to C++ devfs_vnops: convert to C++ file: move file operations out-of-line socketpair: fix wierd initialization file: add helpers for accessing fields file: make it a C++ type file: make sys_open() allocate the file structure uipc_syscalls.c: convert to C++ fdesc: make it a little more efficient net: avoid falloc() in sys_close() net: avoid falloc() in kern_accept() net: avoid falloc() in kern_socketpair() vfs: drop falloc() Merge branch 'file++' file: add make_file() API file: add a variant of make_file() with unique_ptr<> opaques net: switch sys_socket() to make_file() net: switch kern_accept() to make_file() net: switch kern_socketpair() to make_file() epoll: convert to make_file() console: convert to make_file() sys_open(): convert to make_file() af_local: convert to make_file() pipe: convert to make_file() file: drop public declarations of falloc_noinstall() and finit() file: drop file_makebad() file: don't initialize with memset() file: move initialization from falloc_noinstall() to finit() file: fix falloc_noinstall() error case file: fold falloc_noinstall() into make_file() file: convert finit() to file's constructor file: allow make_file() to create files with a type derived from 'file' file: generalize make_file() to be able to create derived types file: add virtual functions corresponding to f_ops file: close() outside destructor file: make fo_init() optional file: make 'opaque' optional console: make it a derived class of file initialize: add a way to initialize an array, similar to C99 designated initializers sys_socket.c: convert to C++ linux_ioctl_socket.c: convert to C++ net: use a file derived class for sockets (socket_file) pipe: make it a derived class of 'file' af_local: convert to a derive class of file epoll: convert to a derived class of file vfs: convert vfs files to be derived from class file file: remove unused make_file() implementations file: remove badfileops file: remove fileops external: update openjdk to 1.7.0.60-2.4.3.0.fc19 Merge branch 'file++' virtio-rng: fix excessive serialization with multiple consumers virtio-rng: fix incorrect use of valarray virtio-rng: drop excessive producer/consumer serialization net: fix socket ioctl() bypassing Linux adjustments linux_ioctl.cc: fix indentation Benoît Canet (4): loader: Allow to execute multiple .so file in sequential order. mkfs.so: split mkfs.so in mkfs.so and cpiod.so. build.mk: Create an intermediate bare.img containing only a formated /usr. core: make osv::run return shared pointer or null and store it on loader.cc Dan Schatzberg (1): x64: Fix rare SMP deadlock when acquiring stack Dmitry Fleytman (5): release-ec2: fix AMI replication code release-ec2: Introduce image and version parameters xen: move per-cpu interrupt threads to .percpu section release-ec2: Make replicated AMIs public release-ec2: use tput for message coloring Glauber Costa (14): mmu: move huge_page_size to mmu.hh sched: start thread list early sched: avoid dereferencing current() fields on thread creation sched: add a new thread state, prestarted sched: start and initialize early threads mmu: allow early tlb flushes sched: delay initialization of early threads x64: Use inline assembly for setcsr function xen: use bsrq instead of bsrl for event channels apic: fix allbutself delivery mode sched: remove on_thread_stack sched: change thread list into an unordered map sched: add function to find a thread given its id linux: add priority stubs Gleb Natapov (1): trace: infer storage/runtime args from assign() signature Nadav Har'El (26): percpu: Reduce size of .percpu section Partial implementation of aligned_alloc() and posix_memaligned(). Explicitly request alignment when allocating per-cpu area Power-off, instead of halt, when loader can't run command Replace numbers in prio.hh by automatically defined numbers Fix possible deadlock in condvar Warn about incorrect use of percpu<> / PERCPU(..). sched: Don't change runtime of a queued thread sched: Use schedule(), not yield() in idle thread sched: No need for "yield" parameter of schedule() sched: New scheduler algorithm sched: Doxygen documentation of a bit of the scheduler Overhaul "debugging" section of README Reduce number of unnecessary sections in our executable gdb: Fix printout of runtime Test for scheduler's single-CPU fairness. Test: Small bugfix for tst-loadbalance Trivial: typos in core/lfmutex.cc Fix boot-time stdout support sched: ignore backward jumps in clock Fix HPET driver clock rollback Fix exception (in x86 sense, not C++) handling during boot Fix crash on malformed command line Add license/fastlog2.txt Add a few missing __*_chk functions Fix error in __vsnprintf_chk() Or Cohen (1): Use interrupt flag for jline stty mode Pekka Enberg (42): bsd: Fix formatting in porting/network.cc x64: Fix stack alignment in fault handlers Remove scripts/nbd_client.pyc from the tree Add .pyc files to gitignore libc: pthread_kill() stub build.mk: Fix bootfs and usr manifest dependencies libc/pthread.cc: Switch to WARN_STUBBED() vfs: Add pivot_root() system call ramfs: unmount ZFS root filesystem scripts/test.py: Show running test case name Reformat Java code test.py: add tst-except.so mmu: VMA permission flags mmu: Optimistic locking in populate() mmu: Anonymous memory demand paging mmu: MAP_POPULATE support for anon mmap() tests: Anonymous demand paging microbenchmark tests: mincore() tests for demand paging test.py: add utimes.so test.py: add tst-strerror_r.so pthread: Populate mmap'd stack pages test.py: add tst-pipe.so virtio: Add virtio::probe() helper virtio-net: Use virtio::probe() helper virtio-blk: Use virtio::probe() helper vfs: Make '/dev' directory at image creation time devfs: device_destroy() API virtio: Fix device init with no MSI support virtio: Add virtio-rng driver tests: tst-random.so Update to latest mgmt.git test.py: Stop test execution on error vfs: MNT_FORCE unmount vfs: Fix sys_pivot_root() loader: Unmount rootfs at poweroff virtio-rng: Remove blocking /dev/urandom mgmt: Start up web earlier run.py: Make guest memory 2 GB by default zfs: Fix build breakage in zfs_setattr() apps: Bump version usr.manifest: Add missing JVM security files Raphael S. Carvalho (19): scripts/run.py: Add wait feature mmu: Make fill from fill_page support variable page sizes vfs: Introduce vop_eperm scripts: Change mkzfs.py to call run.py with unsafe cache. vfs: Make error messages when mounting rootfs more verbose. libc/network: feof shouldn't be used on a closed file zfs: Wire up VOP_SETATTR devfs/ramfs: Change vop_null to vop_eperm vfs: Unify attribute flags into a common place vfs: Add the utimes system call tests: Add tst-utimes zfs: Fix debug mode build vfs: Fix hard link on subsequent calls for the same dentry Add tst-fs-link.so to the whitelist of test.py mmap: fail if flags contain both MAP_SHARED and MAP_PRIVATE mmap: Improve mmap validation mmap: Check file-backed mmap arguments tests: Add new tests into tst-mmap-file.so mmu: Simplify mmu::map_file interface Takuya ASADA (2): OSv module support Add negotiation flag check for FLUSH Tomasz Grabiec (24): Fix lack of locking in libc in file and memstream related operations Introduce test for libc locking Add missing tst-libc-locking.cc file loader.py: add wrapper for intrusive list loader.py: extract trace iteration so that it can be reused loader.py: add commands for function duration analysis Makefile: use abolute paths in generated variables build.mk: process modules in one rule vfs: end message printed by sys_panic() with new line module.py: refactor Consolidate module manifests generation Add /tmp entry to usr.manifest module.py: fix "make module" invocation Add java.security properties to the image test.py: extend failure patterns modules: Add support for run configurations modules: Add support for resolving variables in manifest rules modules: Use OSV_BASE variable in manifest for mgmt Add 'empty' image config Add image configuration for tomcat appliance Add image configuration for cassandra mgmt: use prod environment in module run config Add osv-apps as submodule under apps Configure module paths for tomcat and cassandra dleifker at gmail.com (1): Fix make flag in readme for debug mode ufokaradagli at gmail.com (1): README.md: Fix typos 大谷津昂季 (1): ovs: fix build error. (bsd/porting/networking.cc)