3. 5 system bundle
The osgi framework itself provides resources, package and services to other bundle in the form of a bundle, such as bundle, bundlecontext, fInterfaces such as rameworklistener and services such as eventadmin and packageadmin, which will be presented later, are provided by the system bundle. Osgi provides that the bundle id of the system bundle is fixed to 0, and the getlocation() method of bundle returns the fixed string “system bundle”, which makes it easy for any bundle to obtain the object of the system bundlecentex. Getbundle(0) or bundlecontex. Getbundle("system bundle”) method。

In the osgi container, the system bundle can be considered to exist, and each bundle depends by default on the system bundle. The metadata information for the equinox framework system, bundle, is presented below。
Osgi, headers 0
bundle heads:
bundle-activator=org. Eclipse. Osgi. FI don't know what you're talking about. This program and the accompanying forces are made capable under the terms of the eclipse public license v. 1. 0 which contains this distinction, and is available at http://www. Eclipse. Org/legal/epl-v10. HTML. Bundle-desCription = osgi system bundle
bundle-docurl = http://www. Eclipse. Org
bundle-localization = systembundle
bundle-manifestversion = 2
bundle-name = osgi system bundle
bundle-requiredexecutioOsgi/minimum-1. 2
bundle-symbolicname =org. Eclipse. Osgi; singleton:=true
bundle-vendor = eclipse. Org - equinox
bundle-version = 3. 8. 0 qualifier
eclipse-bundleshape = jar
eclipse-extensibleapi = true
eclipse-systembundle = true
export-package =org. Eclipse. Osgi. Event;version = "1. 0",
...//blank relationship omits other package
export-service =org. Osgi. Service. Packageadmin. Packageadmin, org. Osgi. Service. Permissionadmin. Permissionadmin, org. Osgi. Service. Startlevel. Startlevel, org. Eclipse. Osgi. Service. Debug. Debugoptions
main-class =org. Eclipse. Core. Runtime. Adaptor. Eclipsestarter
manifest-version = 1. 0
The bundle system is inextricably linked to the osgi framework and, because of its specificity, the life cycle change process is different from that of the regular bundle. The following are the action requirements that osgi regulates for several processes of the bundle life cycle of the system。

Start process: bundle's start() method is empty because the system bundle has been activated once the osgi framework has been activated。
Stopping process: bundle's stop() method returns immediately and closes the osgi frame in another line。
Update process: bundle'supdate() method will return immediately and restart the osgi framework in another line。

Unmounting process: the system bundle cannot unmount, and if the uninstall() method of bundle is implemented, the frame will throw out a bundleexception anomaly。
The start-up level of the system bundle is fixed to zero, which cannot be modified using the set-bundlestartlevel() of the startlive interface; if this is done, the osgi framework will throw out an illegal-argumentexception anomaly。




