I've just watched "The Thirty Million Line Problem" and there's something that I haven't understand:
1. Games only need to talk with OS when they need to a) open a window/work with UI-related tasks and b) work with the file system (saving/loading files), right? Most of the time they just talk directly to the hardware (cpu, gpu), so if I write code for x86 then I don't need to care about what OS the user will use.
2. Most of the OS's jobs are just storing/choosing different drivers, supply the user with some UI system, having some sort of bootloader, file system, VM/memory protection, and sata/usb interface. What's so complex about making an OS that it needs 30 million loc?