# Kernel

The Virgo kernel is the core runtime which may be used on its own or to deploy one or more server types and applications for those server types. The kernel houses the deployment pipeline, described below, as well as support for common artifact types (bundle, configuration, plan, and PAR), regions, scoping, and other core Virgo features.

Currently, for example, the Virgo web server packaging build uses the kernel to deploy a web server plan which includes the Gemini web container and the Virgo web bundle (which integrates Gemini web into Virgo).

The startup scripts launch the kernel which then installs, and optionally starts, each of a configurable collection of bundles to provide kernel function. The kernel bundles are located in lib/kernel and are referenced by the launcher.bundles property in the configuration file lib/org.eclipse.virgo.kernel.launch.properties. This property specifies a list of bundles, which is transitively closed with respect to dependencies, and specifies which of these bundles are started after all the bundles in the list are installed.

The following properties may be specified in the kernel launch properties configuration file (lib/org.eclipse.virgo.kernel.launch.properties):

+ Kernel Launch Properties
Property name | Definition | Default value
--- | --- | ---
launcher.bundles | Comma separated list of bundles to be installed in the kernel region. The list must be transitively closed with respect to non-optional dependencies. Each item in the list is a "file:" URL optionally followed by "@start" if the bundle is to be started. | None<sup>a</sup>
org.eclipse.gemini.web.tomcat.config.path | The file path, either absolute or relative to the current working directory, of the Tomcat configuration file. | None<sup>b</sup>
org.eclipse.virgo.kernel.config | The file path, either absolute or relative to the current working directory, of the directory containing kernel configuration files. | config
org.eclipse.virgo.kernel.domain | The JMX domain for kernel mbeans. | org.eclipse.virgo.kernel
org.eclipse.virgo.kernel.home | The file path, either absolute or relative to the current working directory, of the directory for kernel instance specific directories such as work and serviceability | Current working directory
org.eclipse.virgo.medic.log.config.path | The file path, either absolute or relative to the current working directory, of the medic serviceability configuration file, typically named serviceability.xml | None<sup>a</sup>

See also the standard OSGi and Equinox framework properties that may be specified in the kernel launch properties configuration file.