We’re going to see this long before we see self-driving cars. Given the amount of code in a car, it getting hacked while you are driving it is not going to be a lot better than it getting hacked when it drives itself.
I’d suspect that they all have the same OS but different control programs. A good reason for this is that the failure of one chip or program will screw up only one piece of hardware, not everything.
They’re not going to release an entirely self-driving car until flaws like these are worked out. It will be a series of incremental advances, some of which have happened already. You can already buy a car with adaptive cruise control that maintains a set following distance and warns you if you’re drifting out of your lane. The next step would be a car that automatically follows curves in the road but requires driver input to switch lanes or turn onto another road. Someday, when all cars are autonomous and can communicate with each other or with a centralized network, the stuck-behind-a-truck scenario will be irrelevant because all of the traffic in the area will be synchronized for maximum efficiency. Imagine a street where cars form themselves into groups, leaving gaps large enough for cars coming from a side street to cross or merge without stopping, eliminating the need for traffic lights. Your car might switch lanes several blocks ahead and maintain the optimal speed to allow everyone to pass a slow truck with minimal slowing.