Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Here is what I thought after reading an article: Linux should provide an API for drivers. So that the drivers can be reused by other OS like FreeBSD or Plan9. If you are making a new OS, it is prohibitively expensive to reinvent the USB stack, write your own ACPI interpreter or port millions of lines of code. There should be an API, otherwise these drivers don't differ much from proprietary drivers.

Other OS like Windows, Android or MacOS implement such an API. Therefore it is possible. I think that truly open source drivers should be available for everyone, not only to the users of one specific kernel.



The millions of lines of code aren't inherent to the problem.

Here's the 9front ACPI interpreter:

http://git.9front.org/plan9front/plan9front/HEAD/sys/src/lib...

And the USB stack, user and kernel side:

http://git.9front.org/plan9front/plan9front/HEAD/sys/src/cmd... http://git.9front.org/plan9front/plan9front/HEAD/sys/src/9/p... http://git.9front.org/plan9front/plan9front/HEAD/sys/src/9/p...

Even the complex drivers, like wifi, are relatively small:

http://git.9front.org/plan9front/plan9front/HEAD/sys/src/9/p...

Linux code is unpleasant. I don't want to deal with it.

Give me clear, well-written docs instead. Of course, since that never happens, we just end up reading the linux code and reimplementing it in a way that's acceptably clean.


There already is an example of such an API, it's possible to use NetBSD drivers outside the NetBSD kernel with its rump kernel feature: https://research.csiro.au/tsblog/using-rump-kernels-to-run-u...


I also wonder why other OSs don't implement a Linux binary interface for drivers, so they can reuse at least some Linux drivers.


I think the answer to both of these is that the Linux driver interface on Linux changes over time!


Sure, but even in this case it is better to change an interface and be able to benefit from all the drivers written for Linux.




Consider applying for YC's Winter 2027 batch! Applications are open till November 2.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: