harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Hindess <mark.hind...@googlemail.com>
Subject Re: Question about the boot and classloading
Date Tue, 19 May 2009 07:24:40 GMT

In message <dff214c70905180610w407e3bd4h5baa319729c1fc55@mail.gmail.com>, tian 
galaxy writes:
> 
> OK ,thanks .Seems the minimal class set has been defined by the osgi.

Not sure how this helps though.  The OSGi Minimum Execution Environment
says what is theoretically the minimum required to run OSGi.  What we
need to concern ourselves with is the *practical* minimum and that
really depends on our implementation details.

I don't think that we should implement OSGi in the VM.  Instead the
existing bootstrap classloader should load the OSGi framework (with
a unique classloader) and the system classes (with a "temporary"
classloader).  Once the OSGi framework is configured the system classes
need to be moved to the correct classloader for the OSGi bundle to which
they belong.

This means that during the initial starting-OSGi-framework phase
the OSGi bundle import/exports will not be enforced but, other than
implementing OSGi in the VM, I don't see how to avoid this.

The multiplicity of bootstrap classloaders still needs to be hidden
since the API demands that getClassLoader should return null for the
bootstrap classloader(s).

The biggest problem is probably how to implement this as VM-independent
API such that a VM wanting to implement OSGi had to provide only a
minimal C/Java interface in order to gain OSGi support.

Regards,
 Mark.

> I will look more closely on this problems and let you know if there some
> progresses made.
> Thanks  a  lot !

> 2009/5/18 Pavel Pervov <pmcfirst@gmail.com>
> 
> > I do not know osgi model in detail, but what minimal set of classes is
> > needed to start osgi model itself? Then we could delegate to "system"
> > bundle loader from bootstrap classloader.
> >
> > 2009/5/18, tian galaxy <harmonymail.ty@gmail.com>:
> > > Yes , implement osgi loading model in there is too complex.
> > >
> > > We know some modules are more important than others , performing some
> > > fundamental , basic functions .
> > > Is it possible to only load these more" basic " modules with bootstrap
> > class
> > > loader and make the other modules work the osgi bundle?
> > > Actually I don't quite understand why system classes could only be loaded
> > by
> > > bootstrap class loader?I noticed that there are some safety concerns
> > > ,is there any reasons other than that?
> > > Thanks !
> > >
> > >
> > > 2009/5/18 Pavel Pervov <pmcfirst@gmail.com>
> > >
> > >> Short answer is "no". You'll have to implement osgi loading model
> > >> inside bootstrap classloader. Is it too complex?
> > >>
> > >> 2009/5/18, tian galaxy <harmonymail.ty@gmail.com>:
> > >> > Hi Pavel.
> > >> >
> > >> > Thanks.
> > >> > Yes ,that's right .My question is whether there is a way to load the
> > >> system
> > >> > class by class loader other than the  bootstrap class loader ?
> > >> > If we could load the system class by different loaders other than
the
> > >> > bootstrap class loader then there is a chance to make the harmony
> > >> > runtime
> > >> to
> > >> > be osgi-ed.
> > >> > I trying to work on this problem . Do you have any suggestions ?
> > >> >
> > >> >
> > >> > 2009/5/18 Pavel Pervov <pmcfirst@gmail.com>
> > >> >
> > >> >> Tian,
> > >> >> System classes are all loaded with bootstrap classloader. It is
> > >> >> written in C++ and is located in
> > >> >> working_vm/vm/vmcore/src/class_support/classloader.cpp
> > >> >>
> > >> >> 2009/5/17, tian galaxy <harmonymail.ty@gmail.com>:
> > >> >> > Hi all
> > >> >> > I have a question about the classloading in the drlvm.
> > >> >> >
> > >> >> > I know that there are kernel library inside the drlvm such
as
> > >> >> > java.lang.classloader, which enclose the the systemclassloader.
And
> > >> this
> > >> >> > class is loaded and used in the process of creating VM .
> > >> >> > While the systemclassloader is a subtype of urlclassloader
which is
> > >> >> > in
> > >> >> the
> > >> >> > "luni" module.So does the JNI_CreateJavaVM
> > >> >> > also load the urlclassloader in the boot procedure of vm
?(I failed
> > >> >> > to
> > >> >> > search related code in the source code of drlvm).
> > >> >> > If so , when ?Before or after the jni available ?
> > >> >> > Since I am trying to implement the osgi on harmony and the
osgi
> > works
> > >> >> with
> > >> >> > bundles (modules) , I think I need to know the procedure
of booting
> > >> and
> > >> >> > loading of class from different modules at the start up time.
> > >> >> > Any clue about this ?Thanks
> > >> >> >
> > >> >> > plus,do we have the source code of java.exe ?Where?
> > >> >> >
> > >> >> > --
> > >> >> > Regards
> > >> >> > Michael Tian
> > >> >> >
> > >> >>
> > >> >
> > >> >
> > >> >
> > >> > --
> > >> > Regards
> > >> > Michael Tian
> > >> >
> > >>
> > >
> > >
> > >
> > > --
> > > Regards
> > > Michael Tian
> > >
> >
> 
> 
> 
> -- 
> Regards
> Michael Tian
> 
> --0016363ba4b87ec6cc046a2f8544--
> 



Mime
View raw message