Rust in kernel space will likely never use `lang_start` and always build as a staticlib with something else used to bootstrap the kernel.

Using `libstd` in a kernel has *many* more things to overcome before dealing with the startup routine. TLS would have to be perhaps overhauled for starters and most dependencies on libc would have to be purged.

The reason for the boot/lang_start separation is that there can only be one lang item, but there can be many boot items. This solves the problem where you would want to link to libnative and libgreen, but you still get to choose which one boots your program.