3 ms·
In part…updatability. Let's say you bought a 100-baseT network card in 1995. The features were fixed in metal, and so were the bugs. Even if a new revision of
by csixty4 6y ago
In part…updatability.
Let's say you bought a 100-baseT network card in 1995. The features were fixed in metal, and so were the bugs. Even if a new revision of the board or ROM came out, you still had the exact same card. If a flaw was found in one of the chips they used, chances are someone would need to program around it. Settings were probably done once using DIP switches and never touched again. You probably never even knew if a new revision came out.
The wifi card you use today is going to boot up in a pretty dumb state. It'll identify itself on the bus and not much else. Your computer's kernel is going to poll every device on the bus to see who's out there. The wifi card driver is going to match the ID of the wifi card to one it knows and then upload firmware. Then the card will need to briefly reboot into the new firmware and identify itself to the driver again. Then the driver is going to configure it.
It may take a couple of seconds for all this to happen, and it needs to happen for almost everything. Even your CPU which booted the machine in the first place might get patched microcode uploaded when the machine boots.
Nothing is just a device anymore, and nothing is just a device driver.
- yellowapple 6y agoThing is, though, there's nothing really stopping devices from having a middle ground: have the device persist the firmware, and only have the kernel feed the device a new version of that firmware if actually needed (e.g. because there is indeed a newer version of it). Ultimately, though, the device enumeration and initialization is a tiny fraction of the startup time on most computers, be they desktops, laptops, servers, phones, tablets, or what have you. Usually the actual source of long startup times is the incessant need for these machines to spin up oodles and oodles of background services doing who-knows-what, and it's remarkable how much faster a machine boots when these services are pared down to more reasonable minima. And worse, it's these background services that often make modern computers feel so slow even after they're booted up.