1. A method for transferring execution to a subsequent operating system, the method comprising: rebooting a computer system by: initializing an in-kernel boot loader, wherein the in-kernel boot loader executes in a kernel of an initial operating system; populating, by the in-kernel boot loader, an initialization data structure using system data gathered during the execution of the initial operating system; loading, by the in-kernel boot loader, the subsequent operating system; and transferring control of the computer system from the initial operating system to the subsequent operating system, wherein the subsequent operating system accesses the initialization data structure to identify available hardware; and executing the subsequent operating system on the available hardware of the computer system.