7 ms·
I’m wondering if a clever solution of presenting the Windows ABI to drivers but translating to Linux calls under the hood would be feasible?
by pharmakom 6y ago
I’m wondering if a clever solution of presenting the Windows ABI to drivers but translating to Linux calls under the hood would be feasible?
- keanebean86 6y agoAMD tried something similar and the Kernel maintainers rejected the patch. At least that's how I understood it. I think this is a HN post about it: https://news.ycombinator.com/item?id=13142285 https://news.ycombinator.com/item?id=13142285
- voxadam 6y agoSounds a lot like NDISwrapper.[1] God, that was a pain in the ass. [1]https://en.wikipedia.org/wiki/NDISwrapper https://en.wikipedia.org/wiki/NDISwrapper
- Syonyk 6y agoI don't miss that. But it was better than the alternative at the time... "Ok, there are at least three versions of the Linksco WG8211, all with different wireless chipsets. The box is identical except for the UPC sub-label - you want the one ending in -02. Some of the -01 boxes might work, but no guarantees, and the -03 definitely doesn't have support yet. You can't tell by the PCI ID, but if you poke this particular register, you can get the sub-version, which should tell you which chipset they're using - if they haven't changed it again." Wireless cards on Linux, back in the early days of 802.11, were brutal to get working properly, mostly due to lack of drivers. The NDISwrapper was gross and sometimes hard to configure, but it also meant you had a snowball's chance in hell of getting a random wireless adapter working on Linux.
- jodoherty 6y agoIt is, but the point of not defining a Linux ABI is to avoid proprietary, binary blob drivers and instead force drivers to exist in the upstream Linux kernel where they can be maintained by the kernel developers and freely distributed. This has a lot of advantages of this approach over binary drivers in that: - The driver can be updated so it survives architectural changes (say from x86 -> amd64 -> armv7 -> aarch64 -> riscv). - The kernel can be changed freely without worrying about supporting drivers that cannot be updated because they only exist as binaries. - Bugs in the drivers can be identified and fixed by anyone (most importantly, critical security bugs). Also, good ABIs are hard to get right. Windows had to completely rewrite their audio subsystem and the associated driver interfaces around the time of Vista to get low-latency right, for example. But that said, the use of binary blobs exists even today (CPU microcode, various driver firmware blobs that people don't have time to reverse engineer, etc.). Someone else also mentioned ndiswrapper, which reimplements the binary interface for supporting Windows network drivers on Linux. So you can pick any Windows driver interface and write a Linux kernel module or a combination of a kernel module and some userspace framework that can host and utilize that driver. You might have to emulate or paravirtualize some hardware access or instructions to avoid causing conflicts, but there's nothing technical stopping you, other than it just being hard. It can also never be included in the upstream Linux kernel for the ideological reasons I already mentioned.
- jimmaswell 6y agoThere will never be a year of the Linux desktop if ideological purity (of a highly questionable ideology in the first place) continues to stay in the way of practicality. Grandma doesn't care if her network driver doesn't give her the whatever number of software freedoms as defined by RMS and honestly neither do I.
- phendrenad2 6y agoHonestly how old is "grandma" in 2021? Grandma is probably 60-70 years old, and likely grew up in the "space age" of computers. She likely has a Facebook and uses an Android phone. Grandma should take some time to learn the Linux way, she'll be a better computer user for it.
- zaphar 6y agoWhy should she? Grandma primarily uses Facebook, Instagram, and Facetime. Grandma doesn't have a goal to become a better computer user in general terms. Linux gives effectively 0 value to her over any other OS. And negative value in a number of various ways. Driver support among them.
- jfengel 6y agoAt this point, I wonder if Grandma wants a desktop at all. Maybe Grandma just wants a tablet, perhaps with a keyboard. Tablet OSes don't really hibernate, but they use a lot less battery and have software designed to come back from a cold boot quickly. I use my desktop OSes for my job, but could be perfectly happy with a Chromebook for most of what else I do in my life.
- pvorb 6y agoOr she doesn't care about computers and just wants to call her friends via Skype in a pandemic. Why would she care about becoming a better computer user? Yes, your type of grandma exists, but I don't know her.
- 6y ago
- deleted 6y ago[deleted]