So it's not quite right that you have virtualizations for everything in the car. Pretty much all cars nowadays have two separate OSs running:
- A real-time OS like QNX that guarantees execution at a given time interval (i.e., no system interrupts delaying execution) which is used for core vehicle functionality like traction control, brakes, etc.
- A more general-purpose OS like Android Automotive or Linux which runs the infotainment systems, including parts of the Gravity's 2 screens
The two systems are deliberately isolated from each other so that the infotainment system crashing, or lagging, shouldn't impact the car's ability to drive. And in fact, you can test this: if you soft/hard reset the infotainment systems, the car still drives and responds to the steering wheel, accelerator/brakes, lights still function, etc.
Most of what the lagging, glitches, etc. posted here, the rearchitected system, virtualization, etc. all refer to the general OS and not the real-time OS. It's necessary b/c it's not realistic to program the UI/UX or most of the features at a hardware level; the graphics, animations, etc. leverage graphical frameworks, and even if you could program all of it at a low level, you still need to account for differences in hardware manufacturers and vendors, e.g., sourcing ultra-wideband radios for keyfobs and PaaK. Evidently Lucid built their stack at too high of a level and didn't consider the fully-integrated performance of the entire OS stack, and they're trying to rectify that mistake now.