On Tuesday, 19 November 2013 at 22:49:07 UTC, John Carter wrote:
So this post...
http://blog.theincredibleholk.org/blog/2013/11/18/booting-to-rust/
..is interesting.
Why? Because it tackles one of the core reasons why C is hard
to dislodge.
Almost every CPU on the planet "Boots to C", perhaps with a
very thin crust of assembler.
To dislodge C in my domain (embedded systems), this would be a
very interesting and effective challenge to take on.
What would it take to "Boot to D"?
Or put it another way...
What base infrastructure does a D program rely on that the OS
has already provided before we hit "main"?
Typically things like stack setup, program load, register
initialization, zero'ing .bss segments and copying .data
segments into ram etc. etc.
Sometime mmap or sbrk for heap management.
What else, and where to look?
http://wiki.osdev.org/D_Bare_Bones
I suppose one could argue that technically it's booting into C as
it still needs C linkage. But the kernel is D and it's compiled
with a D compiler, so I'd consider it a D kernel.