All Projects → naredula-jana → Jiny-Kernel

naredula-jana / Jiny-Kernel

Licence: other
JINY Kernel (Jana's tINY os) : Kernel designed from ground up for superior performance on cloud.

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language
go
31211 projects - #10 most used programming language
assembly
5116 projects
HTML
75241 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Jiny-Kernel

Image Bootstrap
⛅️ Creates (chroots and) bootable virtual machine images; command line tool (Python 3)
Stars: ✭ 178 (+1086.67%)
Mutual labels:  virtualization
Xo
Merged with monorepo https://github.com/vatesfr/xen-orchestra
Stars: ✭ 219 (+1360%)
Mutual labels:  virtualization
community
Community content
Stars: ✭ 29 (+93.33%)
Mutual labels:  virtualization
Noirvisor
Hardware-Accelerated Hypervisor solution for complex functions and purposes.
Stars: ✭ 186 (+1140%)
Mutual labels:  virtualization
Masonic
🧱 High-performance masonry layouts for React
Stars: ✭ 209 (+1293.33%)
Mutual labels:  virtualization
Dojo
Containerize your development and operations environment
Stars: ✭ 240 (+1500%)
Mutual labels:  virtualization
Virtual
Linux Virtual Machines on macOS
Stars: ✭ 175 (+1066.67%)
Mutual labels:  virtualization
ryzen-hackintosh
My hackintosh files & hardware info 
Stars: ✭ 19 (+26.67%)
Mutual labels:  virtualization
Kubevirt
Kubernetes Virtualization API and runtime in order to define and manage virtual machines.
Stars: ✭ 2,916 (+19340%)
Mutual labels:  virtualization
open-5g.github.io
Reference website for information on open, programmable, and virtualized 5G networks.
Stars: ✭ 41 (+173.33%)
Mutual labels:  virtualization
React Vtree
React component for efficiently rendering large tree structures
Stars: ✭ 185 (+1133.33%)
Mutual labels:  virtualization
Ansible Role Proxmox
Deploys and configures Proxmox VE 5.x/6.x clusters.
Stars: ✭ 196 (+1206.67%)
Mutual labels:  virtualization
Firecracker
Secure and fast microVMs for serverless computing.
Stars: ✭ 16,826 (+112073.33%)
Mutual labels:  virtualization
Unipop
Data Integration Graph
Stars: ✭ 184 (+1126.67%)
Mutual labels:  virtualization
nuber
Virtualization management software
Stars: ✭ 33 (+120%)
Mutual labels:  virtualization
Runtime
Kata Containers version 1.x runtime (for version 2.x see https://github.com/kata-containers/kata-containers).
Stars: ✭ 2,103 (+13920%)
Mutual labels:  virtualization
Tosdatabridge
A collection of resources for pulling real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform; providing C, C++, Java and Python interfaces.
Stars: ✭ 229 (+1426.67%)
Mutual labels:  virtualization
vue-virtualised
Blazing fast scrolling and updating for any amount of list and hierarchical data.
Stars: ✭ 18 (+20%)
Mutual labels:  virtualization
react-bolivianite-grid
React grid component for virtualized rendering large tabular data.
Stars: ✭ 95 (+533.33%)
Mutual labels:  virtualization
Tools
Combination of different utilities, have fun!
Stars: ✭ 166 (+1006.67%)
Mutual labels:  virtualization

JINY (Jana's tINY kernel)

JINY is a cloud OS designed from ground up for superior performance on virtual machine.

  1. What is JINY?.
  • Unlike traditional kernel Jiny is thin kernel designed for cloud. Jiny provides posix interface similar to linux, so linux application can directly run on it without recompiling.
  • Designed from ground up: It is cloud OS designed from the ground up to give superior performance on virtual machine(VM). The performance gain comes from reducing isolation, reducing protection, increasing memory and cpu efficiency.
  • High Priority(HP) and normal priority mode: Jiny OS runs in two modes.
    • High priority mode or Single App mode: In this mode, kernel functions like library OS and does the supporting role for the app, designed with low overhead. Only one application can be launched in the OS, and application runs in the same ring as that of OS(i.e ring-0). The functions which are considered “system calls” on Linux( e.g., futex,read ,..etc) are ordinary function calls in Jiny and do not incur syscall call overheads, nor do they incur the cost of user to kernel parameter copying which is unnecessary in single-application OS. fork and exec posix calls are not supported in this mode. App is launched in a different way. Apart from posix calls, Non posix API’s between application and Guest OS will further decreases latency and improves throughput. Currently golang and C application are supported in this mode.
    • Normal priority mode: Jiny kernel emulates most of the posix calls(system calls) compatible to linux, so that linux binaries can run as it is. Multiple applications can run in this mode at the same time similar to traditional OS.
  1. How different is Jiny from OS like Linux?
  • Thin kernel : Jiny is thin kernel, it is having very small set of drivers based on virtio, since it runs on hypervisor. Currently it supports only x86_64 architecture, this makes the size of code small when compare to linux.
  • OS for Cloud: Designed from ground-up to run on hypervisor, So it runs faster when compare to linux.
  • Object oriented: Most of subsystems are in object oriented language c++11.
  • Non-posix api's for jvm and golang runtime system: Supports special api's for jvm and golang runtime system for running app in HP mode. Here java and golang app does not need any change.
  • Single app inside the vm: Designed to run single application efficiently when compare to traditional os.
  • Network packet processing: Most of cycles in packet processing is spent in the app context(i.e at the edge) as against in the bottom half in linux, this will minimizing the locks in the SMP. Detailed description is present in the VanJacbson paper
  1. For What purpose Jiny can be used?
  • Running single apps like JVM( any java server), golang apps, memcached etc inside the Jiny vm in high priority mode. Here the app will run much faster when compare to the same app in other vm's like freebsd or linux. Thin OS like Jiny along with virtulization hardware can act like a performance enhancer for the apps on the metal.
  • Running multiple normal priority application like any traditional unix like systems with optimizations for vm.

Procedure to compile and run:

More details of compiling and running Jiny Kernel is available here..

Performance Test results of Golang-14.2 on Jiny:

Golang application runs almost 2X to 10X faster on Jiny-Kernel..

Demo

Watch a demo here:
Golang in Ring-0

Features currently Available:

  • Page Cache: LRU and MRU based (based on the published paper in opencirrus for Hadoop)
  • File Systems:
    • TarFs : Tar file can be mounted as a root/non-root file system.
    • 9p
    • Host based file system based on IVSHM(Inter Vm Shared Memory)
  • Virtualization Features:
    • HighPriority Apps: very basic features is available(app to load as module).
    • Zero page optimization works along with KSM.
    • Elastic Cpu's: depending on the load, some of the cpu's will be rested.
    • Elastic Memory: depending on the load, some amount of physical memory can be disabled, so as host/other vm's can use.
  • Virtualization drivers:
    • Xen : xenbus, network driver using xen paravirtualised.
    • KVM : virtio + P9 filesystem
    • KVM : virtio + Network (vhost-net,vhost-user), with multi-queue
    • KVM : virtio + block (vitio-disk) with multi-queue
    • KVM : virtio + Memory ballooning
    • KVM : clock
    • Vmware : vmxnet3,pvscsi
  • SMP: APIC,MSIX
  • Networking: Third party tcp/ip stacks as kernel module.
    • TCP/ip stack from UIP ( from AdamDunkels as kernel module. The above Benchamark-2 is with uip : currently only udp is supported, need to add tcp.
    • LWIP4.0 as a kernel module:
  • Debugging features:
    • memoryleak detection.
    • function tracing or call graph.
    • syscall debugging.
    • stack capture at any point.
    • code profiling.
  • Loadable Modules: Supports loadable kernel module. Lwip tcp/ip stack compiled as kernel module.
  • User level:
    • Statically and dynamically compiled user app can be launched from kernel shell or busy box.
    • busybox shell can successfully run on top of Jiny kernel, network apps can able to use socket layer.
  • Hardware: It was fully tested for x86/64. partially done for x86_32.
  • High Priorty mode: support c apps and golang applications. golang appliction does not need any change. changes are needed to golang runtime system.

Papers:

Related Projects:

-Vmstate: Virtualmachine state capture and analysis.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].