Re: Project Proposal: An Standard Driver Virtual Machine
Date: Wed, 03 Jul 2024 20:01:35 UTC
> > Nimbly2329 <hjlftdygaqf@use.startmail.com> writes: > > > Motivation: > > > > In is not a obscure fact that driver development is the hardest part > in both maintaining and creating an operating system, and > > that FreeBSD struggles to keep the pace with Linux and Windows. And is > the the number one cause that there is no way of > > developing novel and viable operating systems. > > > > Plan: > > > > (1) We and maybe with the cooperation of another public source > kernel/OS projects develop a Standard Driver Virtual > > Machine, (2) and then we manage to get it implemented in at least > Linux, so that Linus et al. promote that all new drivers > > shall be written against the Standard Driver Virtual Machine. (3) > Finally profit in little to no effort in porting drivers from Linux. > > I wish we had more Spare Time Investment proposals instead of project > ones :) > > Regards, > Dmitry > > -- > https://wiki.freebsd.org/DmitrySalychev > > > > > I have reading some resources regarding FreeBSD drivers, looks like FreeBSD has a superior system to Linux's Dynamic Kernel Module System (dmks), for loading drivers, as by the architecture book (<https://download.freebsd.org/doc/en/books/arch-handbook/arch- handbook_en.pdf>, or in other of the sources at freebsd.org I don't remember exactly) it does allow to use loadable kernel drivers between different version of the FreeBSD kernel, giving both backwards and forward compatibility by design, through an stable Binary Application Interface. Therefore if where for only being able to write a loadable kernel drivers, that would be enough, but it also has to work with static linked drivers. Does is possible to statically link an otherwise loadable kernel driver final binary? There is a way to implement an device detection from userspace?, so that device drivers can be loaded as needed. If boat of those are possible, then there is an even simpler plan, and that is to make Linux implement the FreeBSD's Driver ABI, and my proposal also is simpler. Regards, Nimbly2329 By the way where is the documentation of the FreeBSD's driver ABI?