← Back to context

Comment by smokel

4 hours ago

A problem with this approach is that it would put a large burden on the application developer (or development system) to support other devices (or services) than initially planned.

Of course, it would be possible to add new drivers only when necessary, but that would also allow for security problems.

So, in theory it might work, but in practice it would require quite a bit of thought.

There are/were approaches around in kernels like includeos, which promised to do as little as possible before hading control to you. So not everybody has to create their own driver's etc, but you get a bootable executable for your application.

Includeos in particular then went towards being a complete "application server" and apparently failed to gain a business as Docker became successful.

https://includeos.org/

Now that we are out of the Cambrian explosion of computing hardware - are drivers such a concern anymore? Is there any chance we start consolidating on a few core interfaces?

I know nothing of hardware, but as far as I know, my keyboard and mouse work everywhere because there is a formal specification on how human interface devices are supposed to operate.

There are probably good (and anti-competitive) reasons for why hardware still needs bespoke drivers, but from the outside, it seems like something we could address. I have no interest in loading your artisanally crafted Wifi driver.

  • Game consoles worked a lot like this until around the PS3 era, where the disc/cartridge the game came on was shipping binaries for everything including all the hardware support.

    This led to some hilarious implementation shenanigans for the Wii as a transitional console, where the Home button pause screen is not in fact a task switch to some underlying console OS but rather a piece of the SDK that is separately-delivered from each individual game.

    ref. https://www.copetti.org/writings/consoles/wii/

  • As AI reduces the cost for writing closer to the metal, it's also reducing the cost for creating new metal to target. I suspect we'll see an explosion in new hardware as it's cheaper and easier to design custom solutions.

  • If you're writing for VM and don't need stuff like GPUs, you can.

    For actual real hardware, not really

    • GPUs, wifi, power/thermal management, firmware. Especially in portable computing there is still a huge amount of hardware support surface area to contend with.