Re: Project Proposal: An Standard Driver Virtual Machine

From: Nimbly2329 <hjlftdygaqf_at_use.startmail.com>
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?