Why arent device drivers OS independent?

Attached: hans_reiser_070912.jpg (420x316, 45K)

Other urls found in this thread:

youtube.com/watch?v=kZRE7HIO3vk
twitter.com/AnonBabble

because the purpose of a device driver is to be translator between OS and hardware hence for every different OS different driver that speaks its language

why arent cats and dogs the same

because programmers are retarded.

You have the driver built into the devices firmware, than make the OS read it.
It should be the OSs job to read the firmware and driver, not the other way around.

There is no standard way to do that and never will be. There will always be someone like Torvalds to break everything saying "Oh look it's much safer/faster/simpler my way!"

desu that would be great

that's stupid because for every single possible device, the OS would have to learn how to read said driver in the device's firmware
it is much simpler for the device manufacturer to write a driver for a couple most popular OSes than each OS to write a reader for EVERY device's driver, seeing as there is a much higher variability of mobile device models than there is of operating systems.
that is, of course, taking into account that advanced OS users using void linux know how to look up drivers for their OSes, while most device users can't be expected to have that level of skill and/or time to dedicate to a simple, stupid task

Attached: charmander.png (512x512, 240K)

Because it always has been and always will be about control. It's not and never has been a technology problem.
For complex devices, the smart thing to do would be to include a map of the hardware in device firmware and let the system grind out code to make it work beyond rudimentary functions. But when people like nvidia refuse to support opensource drivers, theres no way in this timeline they would expose how their kit actually works to the world.

Attached: s-l300.jpg (300x225, 15K)

>it is much simpler for the device manufacturer to write a driver for a couple most popular OSes

Yes OS lock-in is much """simpler""" than having universal support for any peripheral or device on any OS

Checked

Attached: 1543818396712.jpg (1080x1080, 111K)

If RAM is so fast, why don't they make cars out of it?

I vaguely recall Open Firmware did something like this.

they can be, CUPS is an example, if you are developing it in usespace, you can just develop the driver just like any cross-platform application

Except you can't, because memory-mapping registers for example is different on Windows than it is on POSIX systems and you still need a mechanism for pinning memory pages and retrieving their physical addresses and setting up IOMMU groups for your devices, which all are kernel-space functionality.

I didn't mean that the device driver implementation itself is OS-independent, I meant its API, just like CUPS, which btw still mostly uses ioctl fuckery

I see, well, yeah, that's semi-OS independent. ioctls work on NIXes, on Windows you solve this entirely differently.

I wish more hardware fell back to some sane defaults, like how all video cards can operate without drivers and run at 640x480.

Well, to be honest we are actually moving in that direction:
>everything is PCIe, it used to be ISA buses, ATA buses, IDE etc
>Ethernet NICs more or less have a standardised interface, which is why stuff like DPDK works
>SSDs have a unified controller interface through NVMe
etc.

GPUs, on the other hand, are often too complex to make a simple interface for. They aren't really just video cards, they are true compute accelerators and even stand-alone compute systems.

That's all fair enough, but things like soundcards should have more standardisation too, perhaps not any of the DSP functionality, but basic digital to audio conversion should work.

they do, have you never heard of AC'97 or HDA?

Ram is slow as fuck, though. Registers are the real shit

I have, but you still have cards like the Creative EMU's which require garbage like patchmix to be ran to even function.

would be great
youtube.com/watch?v=kZRE7HIO3vk

There would have to be an industry standard for hardware manufacturers to agree on one interface for devices.