Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 03 Jul 2024 20:01:35 -0000
From:      Nimbly2329 <hjlftdygaqf@use.startmail.com>
To:        Dmitry Salychev <dsl@FreeBSD.org>
Cc:        freebsd-drivers@freebsd.org
Subject:   Re: Project Proposal: An Standard Driver Virtual Machine
Message-ID:  <172003689512.28.10920198816573547978@startmail.com>
In-Reply-To: <86ed8aalkh.fsf@peasant.bootbsd.com>
References:  <171996207708.31.7910752540216367279@startmail.com> <86ed8aalkh.fsf@peasant.bootbsd.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--===============6775756364732441970==
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

 =20

>
>     Nimbly2329 <hjlftdygaqf@use.startmail.com> writes:
> =20
>     > 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 lea=
st
> 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.
> =20
>     I wish we had more Spare Time Investment proposals instead of pro=
ject
>     ones :)
> =20
>     Regards,
>     Dmitry
> =20
>     --
>     https://wiki.freebsd.org/DmitrySalychev
> =20
> =20
> =20
>     >

I have reading some resources regarding FreeBSD drivers, looks like Fre=
eBSD
has a superior system to Linux's Dynamic Kernel Module System (dmks), f=
or
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 rem=
ember
exactly) it does allow to use loadable kernel drivers between different
version of the FreeBSD kernel, giving both backwards and forward compat=
ibility
by design, through an stable Binary Application Interface. =20

 =20

Therefore if where for only being able to write a loadable kernel drive=
rs,
that would be enough, but it also has to work with static linked driver=
s. =20

 =20

Does is possible to statically link an otherwise loadable kernel driver=
 final
binary? =20

There is a way to implement an device detection from userspace?, so that
device drivers can be loaded as needed. =20

 =20

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. =20

 =20

Regards, =20

Nimbly2329 =20

 =20

By the way where is the documentation of the FreeBSD's driver ABI? =20


--===============6775756364732441970==
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<div xmlns=3D"http://www.w3.org/1999/xhtml"><span class=3D"font" style=
=3D"font-family: arial, helvetica, sans-serif;"><span class=3D"colour" =
style=3D"color:rgb(59, 67, 92)"><span class=3D"size" style=3D"font-size=
: medium"></span></span></span><span class=3D"font" style=3D"font-famil=
y: arial, helvetica, sans-serif;"><span class=3D"colour" style=3D"color=
:rgb(59, 67, 92)"><span class=3D"size" style=3D"font-size: medium"></sp=
an></span></span><span class=3D"font" style=3D"font-family: arial, helv=
etica, sans-serif;"><span class=3D"colour" style=3D"color:rgb(59, 67, 9=
2)"><span class=3D"size" style=3D"font-size: medium"></span></span></sp=
an><span class=3D"font" style=3D"font-family: arial, helvetica, sans-se=
rif;"><span class=3D"size" style=3D"font-size: medium"><span class=3D"c=
olour" style=3D"color:rgb(59, 67, 92)"></span></span></span><br /></div=
><blockquote xmlns=3D"http://www.w3.org/1999/xhtml"><pre xmlns=3D"http:=
//www.w3.org/1999/xhtml" id=3D"body.mime.1"><span class=3D"font" style=
=3D"font-family: arial, helvetica, sans-serif;"><span class=3D"colour" =
style=3D"color:rgb(59, 67, 92)"><span class=3D"size" style=3D"font-size=
: medium"></span></span><span class=3D"colour" style=3D"color:rgb(59, 6=
7, 92)"><span class=3D"size" style=3D"font-size: medium"></span></span>=
</span>Nimbly2329 &lt;hjlftdygaqf@use.startmail.com&gt; writes:
<span class=3D"font" style=3D"font-family: arial, helvetica, sans-serif=
;"><span class=3D"colour" style=3D"color:rgb(59, 67, 92)"><span class=
=3D"size" style=3D"font-size: medium"></span></span></span>
<span class=3D"font" style=3D"font-family: arial, helvetica, sans-serif=
;"><span class=3D"colour" style=3D"color:rgb(59, 67, 92)"><span class=
=3D"size" style=3D"font-size: medium"></span></span></span>&gt; Motivat=
ion:
<span class=3D"font" style=3D"font-family: arial, helvetica, sans-serif=
;"><span class=3D"colour" style=3D"color:rgb(59, 67, 92)"><span class=
=3D"size" style=3D"font-size: medium"></span></span></span>&gt;
<span class=3D"font" style=3D"font-family: arial, helvetica, sans-serif=
;"><span class=3D"colour" style=3D"color:rgb(59, 67, 92)"><span class=
=3D"size" style=3D"font-size: medium"></span></span></span>&gt; In is n=
ot a obscure fact that driver development is the hardest part in both m=
aintaining and creating an <span class=3D"font" style=3D"font-family: a=
rial, helvetica, sans-serif;"><span class=3D"colour" style=3D"color:rgb=
(59, 67, 92)"><span class=3D"size" style=3D"font-size: medium"></span><=
/span><span class=3D"colour" style=3D"color:rgb(59, 67, 92)"><span clas=
s=3D"size" style=3D"font-size: medium"></span></span><span class=3D"col=
our" style=3D"color:rgb(59, 67, 92)"><span class=3D"size" style=3D"font=
-size: medium"></span></span><span class=3D"colour" style=3D"color:rgb(=
59, 67, 92)"><span class=3D"size" style=3D"font-size: medium"></span></=
span><span class=3D"colour" style=3D"color:rgb(59, 67, 92)"><span class=
=3D"size" style=3D"font-size: medium"></span></span><span class=3D"colo=
ur" style=3D"color:rgb(59, 67, 92)"><span class=3D"size" style=3D"font-=
size: medium"></span></span><span class=3D"colour" style=3D"color:rgb(5=
9, 67, 92)"><span class=3D"size" style=3D"font-size: medium"></span></s=
pan><span class=3D"colour" style=3D"color:rgb(59, 67, 92)"><span class=
=3D"size" style=3D"font-size: medium"></span></span><span class=3D"colo=
ur" style=3D"color:rgb(59, 67, 92)"><span class=3D"size" style=3D"font-=
size: medium"></span></span><span class=3D"colour" style=3D"color:rgb(5=
9, 67, 92)"><span class=3D"size" style=3D"font-size: medium"></span></s=
pan><span class=3D"colour" style=3D"color:rgb(59, 67, 92)"><span class=
=3D"size" style=3D"font-size: medium"></span></span><span class=3D"colo=
ur" style=3D"color:rgb(59, 67, 92)"><span class=3D"size" style=3D"font-=
size: medium"></span></span><span class=3D"colour" style=3D"color:rgb(5=
9, 67, 92)"><span class=3D"size" style=3D"font-size: medium"></span></s=
pan><span class=3D"colour" style=3D"color:rgb(59, 67, 92)"><span class=
=3D"size" style=3D"font-size: medium"></span></span><span class=3D"colo=
ur" style=3D"color:rgb(59, 67, 92)"><span class=3D"size" style=3D"font-=
size: medium"></span></span><span class=3D"colour" style=3D"color:rgb(5=
9, 67, 92)"><span class=3D"size" style=3D"font-size: medium"></span></s=
pan></span>operating system, and
&gt; that FreeBSD struggles to keep the pace with Linux and Windows. An=
d is the the number one cause that there is no way of
&gt; developing novel and viable operating systems.
&gt;
&gt; Plan:
&gt;
&gt; (1) We and maybe with the cooperation of another public source ker=
nel/OS projects develop a Standard Driver Virtual
&gt; Machine, (2) and then we manage to get it implemented in at least =
Linux, so that Linus et al. promote that all new drivers
&gt; 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

--=20
https://wiki.freebsd.org/DmitrySalychev


<br /></pre></blockquote><p xmlns=3D"http://www.w3.org/1999/xhtml" styl=
e=3D"word-wrap: break-word;overflow-wrap: break-word;margin: 0;color: r=
gb(59, 67, 92);font-family: arial, helvetica;font-size: medium">I
 have reading some resources regarding FreeBSD drivers, looks like=20
FreeBSD has a superior system to Linux's Dynamic Kernel Module System=20
(dmks), for loading drivers, as by the architecture book (<a href=3D"ht=
tps://download.freebsd.org/doc/en/books/arch-handbook/arch-handbook_en.=
pdf" rel=3D"noopener noreferrer" target=3D"_blank">https://download.fre=
ebsd.org/doc/en/books/arch-handbook/arch-handbook_en.pdf</a>,
 or in other of the sources at freebsd.org I don't remember exactly) it=
=20
does allow to use loadable kernel drivers=C2=A0 between different versi=
on of=20
the FreeBSD kernel, giving both backwards and forward compatibility by =

design, through an stable Binary Application Interface.<br /></p><p xml=
ns=3D"http://www.w3.org/1999/xhtml" style=3D"word-wrap: break-word;over=
flow-wrap: break-word;margin: 0;color: rgb(59, 67, 92);font-family: ari=
al, helvetica;font-size: medium"><br /></p><p xmlns=3D"http://www.w3.or=
g/1999/xhtml" style=3D"word-wrap: break-word;overflow-wrap: break-word;=
margin: 0;color: rgb(59, 67, 92);font-family: arial, helvetica;font-siz=
e: medium">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.<br=
 /></p><p xmlns=3D"http://www.w3.org/1999/xhtml" style=3D"word-wrap: br=
eak-word;overflow-wrap: break-word;margin: 0;color: rgb(59, 67, 92);fon=
t-family: arial, helvetica;font-size: medium"><br /></p><p xmlns=3D"htt=
p://www.w3.org/1999/xhtml" style=3D"word-wrap: break-word;overflow-wrap=
: break-word;margin: 0;color: rgb(59, 67, 92);font-family: arial, helve=
tica;font-size: medium">Does is possible to statically link an otherwis=
e loadable kernel driver final binary?<br /></p><p xmlns=3D"http://www.=
w3.org/1999/xhtml" style=3D"word-wrap: break-word;overflow-wrap: break-=
word;margin: 0;color: rgb(59, 67, 92);font-family: arial, helvetica;fon=
t-size: medium">There is a way to implement an device detection from us=
erspace?, so that device drivers can be loaded as needed.<br /></p><p x=
mlns=3D"http://www.w3.org/1999/xhtml" style=3D"word-wrap: break-word;ov=
erflow-wrap: break-word;margin: 0;color: rgb(59, 67, 92);font-family: a=
rial, helvetica;font-size: medium"><br /></p><p xmlns=3D"http://www.w3.=
org/1999/xhtml" style=3D"word-wrap: break-word;overflow-wrap: break-wor=
d;margin: 0;color: rgb(59, 67, 92);font-family: arial, helvetica;font-s=
ize: medium">If
 boat of those are possible, then there is an even simpler plan, and=20
that is to make Linux implement the FreeBSD's Driver ABI, and my=20
proposal also is simpler.<br /></p><p xmlns=3D"http://www.w3.org/1999/x=
html" style=3D"word-wrap: break-word;overflow-wrap: break-word;margin: =
0;color: rgb(59, 67, 92);font-family: arial, helvetica;font-size: mediu=
m"><br /></p><p xmlns=3D"http://www.w3.org/1999/xhtml" style=3D"word-wr=
ap: break-word;overflow-wrap: break-word;margin: 0;color: rgb(59, 67, 9=
2);font-family: arial, helvetica;font-size: medium">Regards,<br /></p><=
p xmlns=3D"http://www.w3.org/1999/xhtml" style=3D"word-wrap: break-word=
;overflow-wrap: break-word;margin: 0;color: rgb(59, 67, 92);font-family=
: arial, helvetica;font-size: medium">Nimbly2329<br /></p><p xmlns=3D"h=
ttp://www.w3.org/1999/xhtml" style=3D"word-wrap: break-word;overflow-wr=
ap: break-word;margin: 0;color: rgb(59, 67, 92);font-family: arial, hel=
vetica;font-size: medium"><br /></p><p xmlns=3D"http://www.w3.org/1999/=
xhtml" style=3D"word-wrap: break-word;overflow-wrap: break-word;margin:=
 0;color: rgb(59, 67, 92);font-family: arial, helvetica;font-size: medi=
um">By the way where is the documentation of the FreeBSD's driver ABI?<=
br /></p>

--===============6775756364732441970==--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?172003689512.28.10920198816573547978>