From nobody Wed Jul 03 20:01:35 2024 X-Original-To: freebsd-drivers@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4WDrJd5Mpyz5Q8Dk for ; Wed, 03 Jul 2024 20:01:37 +0000 (UTC) (envelope-from hjlftdygaqf@use.startmail.com) Received: from mx-out2.startmail.com (mx-out2.startmail.com [145.131.90.155]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4WDrJd4dJgz4fQ4; Wed, 3 Jul 2024 20:01:37 +0000 (UTC) (envelope-from hjlftdygaqf@use.startmail.com) Authentication-Results: mx1.freebsd.org; none Content-Type: multipart/alternative; boundary="===============6775756364732441970==" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=startmail.com; s=2020-07; t=1720036895; bh=lxUocWHNVoYdeXLvNdsRV6YSrKP+6KLBlsuztYF3YA0=; h=Content-Type:Subject:Message-ID:Date:In-Reply-To:References:From: To:Mime-Version:From:Subject:To:Date:Sender:Content-Type: Content-Transfer-Encoding:Content-Disposition:Mime-Version: Reply-To:In-Reply-To:References:Message-Id:Autocrypt; b=OL32msDsfSj0WsOOLFRfImc303iCzmVDe6w+zdjgMeuEYo0oyN7XFRKQuDw93a2Yw g78FkkmLSu6EBgiYNNptNy/aYgCtlRKqeTvv8haqI27WUJkIZrLPNK61APlowvi9FD +0S041C3xgLc4DWBe5wmUVZdZ0bDvWfLYlKctga9OM3FbRkHwdTnjtnTNwMR/rq/bR uT0AXA2YS/sOdSJTPCPl0JHigwZwnYOaBKlhaRk90vaew+qCx7qVK/JnTuMrzxtsaV tzlPgv2RXw2PvCoXISRZZBaUpFaOzhfeTgSyUqY9pzHiOIKES8GzExbzf/7IaCQOls o/9zOtZVHN9iA== Subject: Re: Project Proposal: An Standard Driver Virtual Machine Message-ID: <172003689512.28.10920198816573547978@startmail.com> Date: Wed, 03 Jul 2024 20:01:35 -0000 In-Reply-To: <86ed8aalkh.fsf@peasant.bootbsd.com> References: <171996207708.31.7910752540216367279@startmail.com> <86ed8aalkh.fsf@peasant.bootbsd.com> From: Nimbly2329 To: Dmitry Salychev Cc: freebsd-drivers@freebsd.org List-Id: Writing device drivers for FreeBSD List-Archive: https://lists.freebsd.org/archives/freebsd-drivers List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-drivers@FreeBSD.org Mime-Version: 1.0 X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:28685, ipnet:145.131.64.0/18, country:NL] X-Rspamd-Queue-Id: 4WDrJd4dJgz4fQ4 --===============6775756364732441970== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable =20 > > Nimbly2329 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 (, 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

=
Nimbly2329 <hjlftdygaqf@use.startmail.com> writes:

> Motivat=
ion:
>
> In is n=
ot a obscure fact that driver development is the hardest part in both m=
aintaining and creating an <=
/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



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 (https://download.fre= ebsd.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= =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.


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 otherwis= e loadable kernel driver final binary?

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


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.


Regards,

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


By the way where is the documentation of the FreeBSD's driver ABI?<= br />

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