| ▲ | kelnos 6 hours ago | |||||||||||||||||||||||||
> The detail about needing to reinstall Windows NT just to add a second CPU shows how tightly coupled OS and hardware were — there was no abstraction layer pretending otherwise. In this case there was: the reason you need to reinstall to go from uniprocessor to SMP was because NT shipped with two HALs (Hardware Abstarction Layer): one supporting just a single processor, and one supporting more than one. The SMP one had all the code for things like CPU synchronization and interrupt routing, while the UP one did not. If they'd packed everything into one HAL, single-processor systems would have to take the performance hit of all the synchronization code even though it wasn't necessary. Memory usage would be higher too. I expect that you probably could run the SMP HAL on a UP system (unless Microsoft put extra code in to make it not let you), but you wouldn't really want to do that, as it would be slower and require more RAM. So it wasn't that those abstraction layers didn't exist back then. It was that abstraction layers can be expensive. This is still true today, of course, but we have the cycles and memory to spare, more or less, which was very much not the case then. | ||||||||||||||||||||||||||
| ▲ | Sesse__ 6 hours ago | parent | next [-] | |||||||||||||||||||||||||
> If they'd packed everything into one HAL, single-processor systems would have to take the performance hit of all the synchronization code even though it wasn't necessary. Memory usage would be higher too. Linux also used to be like this, but these days has unified MP/UP kernels; on single-CPU systems (or if you give nosmp), the extra code is patched away at boot time. It wouldn't have been an unheard of technique at the time. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | vintermann 6 hours ago | parent | prev | next [-] | |||||||||||||||||||||||||
Linux also used to have separate SMP kernels back when multi processor systems were rare. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| ▲ | amluto 3 hours ago | parent | prev [-] | |||||||||||||||||||||||||
They could have shipped both HALs. Or made it easy to switch which one was in use without reinstalling. CDs were around and hard drives weren’t that small at the time. (Or maybe the really early SMP versions predated widespread availability of CD-ROMs, but I remember dealing with this nonsense and reinstalling from an MSDN CD set.) | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||