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 <hjlftdygaqf@use.startmail.com> 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>> 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>> <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>> 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 > 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 > developing novel and viable operating systems. > > Plan: > > (1) We and maybe with the cooperation of another public source ker= nel/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 --=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>