5 ms·
> The current driver models aren't that great either. Driver developer is soooo far out of my frield but it's always fascinated me. I'm curious why hardware co
by BinaryIdiot 10y ago
> The current driver models aren't that great either.
Driver developer is soooo far out of my frield but it's always fascinated me. I'm curious why hardware companies didn't go with something like an interface for products versus these highly complex drivers; wouldn't it be possible for each type of device a group comes together, decides on an interface, and now anytime you plug a device in it would work (and if a specialized driver could be better you could install that separately but the goal is making everything magically work, immediately).
But since no one has done it I feel like my idea is either horrible or short sighted. But I do want to look into how it all works one day.
- stusmall 10y agoYou aren't shortsighted, they have. Look at USB class drivers.
- deleted 10y ago[deleted]
- sedachv 10y agoThat is how the original IBM PC BIOS worked with basic hardware, more or less. Both Open Firmware (https://en.wikipedia.org/wiki/Open_Firmware https://en.wikipedia.org/wiki/Open_Firmware) and EFI (http://www.uefi.org/sites/default/files/resources/EBC_Driver_Presentation.pdf http://www.uefi.org/sites/default/files/resources/EBC_Driver...) include a bytecode interpreter for portable device drivers - the idea is that the hardware device stores the driver as bytecode, the Open Firmware controller loads that driver bytecode when the device is plugged in and uses the CPU to execute it, and provides a uniform API to the OS. From what I read EFI was developed at Intel to be a deliberately incompatible Open Firmware clone for the Itanium. There really is not that much savings or advantage to this approach so there are not a lot of Open Firmware and EFI drivers out there. You really do not want hardware manufacturers writing drivers either - they tend to be terrible and full of bugs. Having the manufacturer publish the hardware specifications so that drivers can be easily implemented by developers is a much better approach, sadly a lot of manufacturers cannot be bothered with this.
- wott 10y agoDuring DOS days, standards or more often de-facto standards had appeared. So chip makers or board makers would make their chip or board compatible with another existing model, and you would just need one driver per kind of device to get most of the expected functions. I am thinking of : -- sound cards being compatible with AdLib and/or SoundBlaster and/or SoundBlaster Pro; -- network cards being compatible with NE2000; -- video cards being compatible with VESA standards. Then Windows took over, buses changed, the shitfest started and never stopped. And now the shitfest comes with NDAs too.
- pcwalton 10y agoWell, we do have things like USB, Bluetooth, Intel HD Audio, ACPI, and so forth, all of which are standards. VESA is still good enough to get an unaccelerated framebuffer set up and going. Network adapters are usually at least supported by Linux, so there's some open-source reference implementation somewhere. (NDISwrapper is mostly a thing of the past, thank goodness...) Accelerated graphics is probably the biggest remaining disaster, honestly. At least with Vulkan/DX12 we might be getting thinner drivers...