Why aren't these things a driver?
Why aren't these things a driver?
https://wiki.linuxfoundation.org/tab/linux-device-driver-mod...
Windows used to have a really bad reputation for stability. I'm sure a lot of this was windows's fault, but a lot of this was bad third-party drivers that crashed.
You might remember that nvidea does have a driver for Linux. The approach they took isn't really supported, which is one of the reasons why graphics drivers are always such a nightmare under Linux.
I’ve had to install wifi drivers for a Windows machine before. Hunting for the right driver, downloading it and transferring it from my phone was quite a pain, as opposed to the wifi just working on Linux.
One of the reasons proprietary drivers are a nightmare. Intel works flawlessly (though obviously with different trade offs).
It really is propriety drivers that's the problem
These days I use AMD, and I just haven't had to think about it. Before this I had Nvidea, and even there the open drivers were fine until I wanted to play games.
Kernel DRI drivers, yeah sure. Xorg's xf86-video-intel is a buggy pile of shit that hasn't seen a stable release in 5 years.
Currently the best you get on linux with intel is modesetting driver with glamor for 2daccel. Or use wayland, I guess...
On the contrary, windows GPU(WDDM) drivers are restartable and can handle crashes even without restarting the user graphical apps. This've been so since at least windows 7.
edit: s/WDM/WDDM/
The kernel drm/gpu side is all about mode setting and managing resources.
You could've just used DKMS and use the kernel module in 4.18 and such [1] (unless you run Fedora who have the driver baked in the kernel; then you gotta recompile your own kernel...).
Heck, you could've used the Apple Magic Trackpad 2 on previous kernels. It's just that the multitouch wouldn't work. Which is the great thing about the device.
FWIW, the device doesn't work out of the box with Windows either.
[1] https://github.com/robotrovsky/Linux-Magic-Trackpad-2-Driver
The fact that there is no stable ABI is a sort of downside but also benefit of this model. The ABI can always be improved, but it will often be at the cost of breaking so-called out of tree drivers (Nvidia proprietary, VMware's networking and VM monitor drivers, etc.)
Yes this is a stupid design. They do it because it means they don't have to worry about backwards compatibility or API stability at all, which is a nice thing to not have to worry about. But it comes at the cost of bad hardware support in Linux (and difficult-to-update Android phones).
Linux, unlike the Windows kernel (which is also not a microkernel), does not have a stable kernel API for drivers. This means that drivers that live outside the tree have to play catch-up to every change that the kernel devs make.
When a driver is in-kernel, the person that made the changes fixes the driver as part of their change.
So Linux really encourages drivers to become open-source and submit for inclusion in the mainline kernel, just to avoid the maintenance hassle.
True. I would just add a few notes for non Linux users.
- Drivers are bundled with the kernel but they're loaded dynamically when requested, ie supporting more devices doesn't make the kernel any bigger or slower. The Linux kernel from mostly static in the beginning became more and more modular and today save for developers or early adopters kernel rebuilds are very rare among users. Embedded cards aside, I don't recall having rebuilt a single kernel since 2.6 on normal PCs.
- Having drivers bundled in the kernel solves the problem of that piece of old hardware we lost the drivers disk and the manufacturer's site resolves to nowhere because they're no longer in business. Caring about older hardware seems of no importance in the desktop PC business, but not uncommon in the industrial world where one happily trades 100x speed loss in exchange of 10x reliability gain and there's still a lot of old perfectly functioning iron out there.
- Drivers are brand-free. Unless specified, they support the chipset, not the hardware brand and they definitely don't bundle other junk themselves, which is one of the plagues in the Windows ecosystem where 5 cards by 5 different manufacturers but using the same chipset all come with their set of drivers and associated ton of rubbish because the vendors fight to splatter their name on your desktop. Under Linux if you have 5 cards by 5 manufacturers you need one small driver and all software interfacing to standard device drivers can use all 5 cards. There's no such thing as "one card, one driver, one software". (Big exception for expensive niche proprietary hardware of course).
External modules (on the fs) wont, but we're talking about the bundled ones, right?
--smaller without crapware
--just empirically true:
tv@tv:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda5 28G 11G 17G 39% /
this is my bloated as fuck ubuntu media machine. could be much smaller if it mattered, but that's pretty small already, no?
anyone remember damn small linux? I used to have that on a 128MB (yes MB) flash drive found in a desk at work. but bytes are cheap...
Speaking of small distros, I gave a try at both DietPI and TinyCoreLinux on virtual machines and was amazed at how good they perform.