--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Our reasoning behind the lack of GC was that the resulting simplicity in the implementation would be worthwhile. We're very much open to suggestions and in fact plan not to remove the runtime until fairly late in the process, so we may have a chance to compare both approaches.
I was periphialy involved in an attempt to build an os/distributed application stack in modular 3. This would have been about 1985, while working for Linotype Paul in cheltenham, UK. I seem to remember it being a disaster, and it was abandoned in favor of the apple II os. The requirment was to build a simple os that could boot a lot of diskless workstations for newspaper and large book publishing house data entry. In the end the plumetting cost of consumer PC's and comodity os's made it infeasable at thier volume levels. Apple lisa was around at the same time which was built using pascal, im not sure if that used GC.
--
I don't want to make any promises about at all about what Go will do, but if you want to frame this as what sort of interface you'd like to have with your GC, I think you want to model interrupt handlers as special threads or goroutines, that don't touch managed memory at all. If you can get to that point, then the GC can leave those threads alone no matter what. HOWEVER, there's also the problem that these special threads must eventually hand their data off to some other thread that does interact with the GC, which means you need to be able to buffer as many interrupts as necessary to cover the maximum time T during which a thread might block a thread's progress.
Note that you can't really "disable" a garbage collection (in general) that is already underway. It's not that big a deal to delay the start of a GC for the length of time it takes a (well-written) interrupt handler to do its business; the problem is what to do when the GC is already running. It's also possible that an interrupt handler is compiled slightly differently; for example, write barriers always (and perhaps "better" write barriers or read barriers) that would allow it to run concurrently with GC even if it did manipulate managed pointers (I haven't figured this out, I'm just pointing out that if we focus on exactly where the problem is there might be solutions what wouldn't necessarily generalize to the entire program).
During the last years, we developed an object-based research processor that does real-time garbage collection in hardware. Now we want to leverage its benefits regarding object-based memory protection by designing a novel research operating system.
i think the processor was from texas instruments, 9900, you may be right about the 2+. You where spot on about the determinism problem. ISTR the project was plauged with timing and race condition problems in the lower levels of the stacks. But its going back a long time now, and as i said i was only periphialy involved.
Hi,We're starting a project to make a new programming language for writing operating system kernels, using Go as a starting point. It will be an open source project under the same BSD license, but re-branded, essentially forking from Go 1.5. We hope the Go team and community is comfortable with our approach and this seemed to be the best way to get in touch. This isn't an attempt to advertise the project, it just seemed wrong to publish the repository without letting you guys know first.
Hi,We're starting a project to make a new programming language for writing operating system kernels, using Go as a starting point. It will be an open source project under the same BSD license, but re-branded, essentially forking from Go 1.5. We hope the Go team and community is comfortable with our approach and this seemed to be the best way to get in touch. This isn't an attempt to advertise the project, it just seemed wrong to publish the repository without letting you guys know first.
Best wishes
Have a look at all the OSes that were written in Oberon, Active Oberon at ETHZ.