Switch to DuckDuckGo Search
   January 23, 2010  
< | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | >


NOTICE: This channel is no longer actively logged.

Toggle Join/Part | bottom
[02:46:49] *** FabienD has quit IRC
[05:29:33] *** peda_ has joined #JNode.org
[05:36:55] *** peda has quit IRC
[08:09:03] *** FabienD has joined #JNode.org
[10:06:36] *** Daeken has joined #JNode.org
[12:49:17] *** influt has joined #JNode.org
[15:57:33] *** benoit has joined #JNode.org
[16:15:50] <FabienD> hi all
[16:15:55] <benoit> hi
[16:16:21] <FabienD> Daeken: welcome to jnode :)
[16:26:26] <benoit> FabienD: where can I find a JNode logo?
[16:27:04] <FabienD> on my blog :)
[16:28:13] <benoit> there are not bigger ones?
[16:31:33] <FabienD> I remember a page with many logs on jnode.org but can find it again
[16:31:38] <FabienD> there is only that : http://www.jnode.org/node/432
[16:32:29] <FabienD> iirc we have a bigger one somewhere in svn (used as background image for the desktop)
[16:33:04] <FabienD> or you have that one : http://www.jnode.org/themes/newsflash/logo.png
[16:33:12] <FabienD> used as header for the web site
[16:33:34] <benoit> ok i'm gonna take one of them
[16:33:51] <benoit> then i have other questions about JNode
[16:34:12] <benoit> in fact, i'm preparing the presentation of our project
[16:34:30] <benoit> and i think it's good to present JNode
[16:34:58] <benoit> because the code we will have done won't be interesting for the people who will attend to the presentation
[16:35:23] <benoit> i want to introduce JNode, explain how it works ...
[16:35:46] <benoit> then what is a gc and finally what we did on the gc
[16:38:02] <benoit> ismael told me the kernel was compiled in a JNode specific byte code, is it true?
[16:40:22] <FabienD> it's wrong
[16:41:12] <FabienD> we use standard java bytecode since we are aiming to use standards as much as possible
[16:41:13] <benoit> ok, it's what i thought
[16:42:20] <benoit> so the kernel is firstly compiled in Java byte code and then there is a second compilation to transform this byte code in native byte code, is it right?
[16:42:39] <FabienD> and afaik the kernel image is compiled in ELF format (don't ask me details about that, I don't have), so something standard
[16:43:14] <FabienD> "native byte code" is a wrong naming
[16:43:40] <FabienD> I would use "assembly" or "machine code" instead
[16:43:42] <benoit> ok ELF i know that
[16:43:51] <benoit> yes, it's what i meant
[16:44:34] <benoit> and this second compilation is quite similar to the one the JVM does just before running the code?
[16:45:22] <FabienD> yes, in the sense it's from java bytecode to assembly
[16:46:01] <FabienD> but about the details it's probably different
[16:46:16] <benoit> ok and last time you said that this step doesn't exist for the other platforms such as PPC, did i understand what you meant?
[16:46:50] <benoit> the tool that does that isn't ported on PPC?
[16:46:51] <FabienD> right, we only have support for x86 (32 or 64bits) CPUs
[16:47:06] <FabienD> right, not ported to PPC
[16:47:32] <benoit> ok it's clear for me now
[16:48:14] <FabienD> 3 things about your presentation :
[16:49:21] <FabienD> forget the above sentence
[16:49:23] <FabienD> will you do it in english or french ?
[16:49:40] <benoit> in french
[16:50:01] <FabienD> also the document you're writting ?
[16:50:12] <benoit> but if you want i can translate it into english to publish it on JNode's website for newbies
[16:50:33] <benoit> there won't be officiel document, there will be only a presentation
[16:51:40] <FabienD> by "officiel document", you mean official for your school, right ?
[16:52:03] <benoit> right
[16:52:32] <FabienD> I did a presentation in french at my company in 2008
[16:52:55] <benoit> ok, and what is it about?
[16:53:18] <FabienD> despite, it's mostly a translation of an ewout's document, I can send it to you if you want
[16:53:31] <FabienD> a general presentation about jnode
[16:53:36] <benoit> i want to make a technical presentation
[16:53:44] <benoit> to explain how a Java OS can work
[16:53:53] <benoit> how it's compiled
[16:53:57] <FabienD> ewout's document was in svn under the "doc" project
[16:53:59] <benoit> then how a GC works
[16:54:08] <benoit> ok i'm gonna look at that
[16:54:33] <FabienD> you've noticed, the doc project in svn, right ?
[16:54:48] <benoit> yes
[16:54:49] <FabienD> It could help you (but some docs might be outdated)
[17:00:37] <benoit> i'm not sure we will be able to make a demo, we won't have a powerful-enough machine
[17:02:41] <benoit> i'll send you the presentation, and it it's interesting for the project, i can translate it
[17:05:25] <benoit> ok, then, how many instances of the JNode's JVM are running when you boot JNode?
[17:05:31] <benoit> i mean, do all the application run in a separate JVM?
[17:06:01] <FabienD> no !
[17:06:32] <FabienD> it's one of the interest of jnode VM versus classical VMs
[17:07:00] <benoit> so there is only one instance?
[17:07:09] <FabienD> yes
[17:07:53] <benoit> and when an application starts, it's in a new thread and it's classes are dynamically loaded?
[17:07:54] <FabienD> but there is a partial support for the isolates API (it's specified by a JSR)
[17:09:11] <benoit> ok
[17:09:30] <benoit> and can you run two instances of the same application simultaneously?
[17:09:44] <FabienD> when you use jnode's command shell, you can run a command (which can be an application or not) in a new thread or in a new isolate
[17:10:21] <FabienD> yes and no :)
[17:10:35] <benoit> ok, i'm gonna read documentation about isolate, i don't know it well
[17:10:35] <FabienD> it depends mostly on the application
[17:13:24] <FabienD> our partial implementation of isolates API is isolating all static variables
[17:13:59] <FabienD> except when their class is marked with the @SharedStatics annotation (a jnode specific annotation)
[17:15:57] <FabienD> the build process is :
[17:16:15] <benoit> ok i understand
[17:16:59] <benoit> i was just wondering how the static vars were managed
[17:18:01] <benoit> ok
[17:18:39] <FabienD> at runtime, when you create a new isolate all the non-shared statics variable are duplicated and associated with the new isolate
[17:20:20] <benoit> ok
[17:20:37] <benoit> it's like a fork on Linux
[17:21:01] <benoit> it copied all the non shared variables
[17:21:27] <FabienD> I think we can say that
[17:22:25] <FabienD> and all operating system related things are shared (drivers, filesystems, memory management/gc ...) in jnode
[17:22:43] <benoit> ok
[17:23:07] <benoit> another question, when i run it, it's from an ISO file
[17:23:16] <benoit> but can we install it on a HDD ?
[17:23:42] <FabienD> but, coming back to your project, we can imagine in the future to support some local gc algo for an isolate instance (to better fit a particular application)
[17:24:16] <FabienD> offen asked question
[17:24:17] <benoit> ok, it could optimize it
[17:24:44] <benoit> i've seen it supports ext2, Fat...
[17:24:58] <FabienD> for now, the installer is in development and afaik not yet working
[17:25:25] <FabienD> but you should be able to install jnode manually on a HDD
[17:25:32] <benoit> ok, so you can't save a document, can you?
[17:25:54] <benoit> at list if you mount it from an external filesystem (which can be possible)
[17:26:06] <benoit> *at least
[17:26:22] <FabienD> you can save a document if you have an HDD with a jnode supported fs
[17:26:34] <benoit> ok
[17:29:13] <benoit> did ismael explained you what he has planned to do on the gc?
[17:32:02] <FabienD> I think he did but I don't remember what he said
[17:32:27] <benoit> in fact we are going to make a generational gc
[17:32:49] <FabienD> with 2 generations
[17:32:53] <benoit> but there will be a shared heap for all the generations
[17:33:01] <benoit> we won't be able to prevent fragmentation
[17:33:24] <benoit> maybe more than 2 (3 or 4 i think)
[17:34:00] <benoit> so each generation will be a collection
[17:34:35] <benoit> on which the garbage collection will have a particular execution trigger and a particular strategy
[17:34:58] <benoit> for the old generation, there will be a timer which will trigger the GC
[17:35:21] <benoit> for the newest, it will be when it's full
[17:37:27] <FabienD> or almost full (should be a parameter) ?
[17:38:02] <benoit> i don't know what he planned, but i think yes
[17:40:16] <FabienD> actually, I think each generation should have its own "full/almost full" trigger (counting the memory used by the generation)
[17:40:32] <FabienD> so the old generation would have a timer trigger and a "full/almost full" trigger
[17:40:47] <FabienD> IMO
[17:41:18] <benoit> yes, sure there will be, otherwise it cannot allocate memory whereas it's supposed to be possible
[17:43:31] <benoit> there is a document in the svn docs folder talking about isolates and gc
[17:47:21] <FabienD> for reusability purpose, I suggest to create an interface named GCTrigger and implementations like : TimerGCTrigger, CounterGCTrigger, CompoundTrigger (which be "on" when one of its components will be one)
[17:47:40] <FabienD> s/will be one/will be "on"
[17:48:57] <benoit> yes, i don't know how ismael though to do that, i'll tell him
[21:11:35] *** FabienD has quit IRC
top

   January 23, 2010  
< | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | >