From owner-freebsd-hackers@FreeBSD.ORG Thu Mar 13 22:29:19 2014 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 015578DC; Thu, 13 Mar 2014 22:29:19 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C44A8865; Thu, 13 Mar 2014 22:29:18 +0000 (UTC) Received: from [192.168.1.2] (pool-173-52-87-124.nycmny.fios.verizon.net [173.52.87.124]) (using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: ryao) by smtp.gentoo.org (Postfix) with ESMTPSA id 0F0F733FABC; Thu, 13 Mar 2014 22:29:10 +0000 (UTC) Message-ID: <53223140.9030208@gentoo.org> Date: Thu, 13 Mar 2014 18:29:20 -0400 From: Richard Yao User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: Julio Merino Subject: Re: GSoC proposition: multiplatform UFS2 driver References: <5321EF7E.7000500@gentoo.org> In-Reply-To: X-Enigmail-Version: 1.6 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="as4mxJEFeEtn235GvjhNqfwdGaWU73i6k" Cc: freebsd-hackers@freebsd.org, CeDeROM X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Mar 2014 22:29:19 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --as4mxJEFeEtn235GvjhNqfwdGaWU73i6k Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 03/13/2014 06:12 PM, Julio Merino wrote: > On Fri, Mar 14, 2014 at 2:48 AM, Richard Yao wrote: >> On 03/12/2014 12:54 PM, CeDeROM wrote: >>> My proposition is to create universal UFS2 driver that would work on >>> Windows, Linux, and maybe other OS, so we can use native UFS2 as data= >>> partition among various OS. >>> >> >> I like this idea. In particular, I would like to have UFS2 SU+J >> available for use in certain Linux VMs and was thinking about this >> possibility earlier in the week. However, I no longer qualify to be a >> GSoC student and I do not have time to do it myself. >> [...] >> Speaking as a kernel filesystem hacker (with most of my experience in >> Linux), I think this could be too ambitious depending on how you add >> detail. In particular, Linux has a moving target of a VFS (which cause= s >> much pain) and Windows' IFS is very different from the SunOS VFS that >> has become the basis for implementing multiple filesystems on differen= t >> UNIX implementations and copy-cats. > [...] >=20 > Something worth pointing out here: in NetBSD, and thanks to rump, you > can already get the *verbatim* in-kernel code of UFS2 built on a > variety of host platforms. You could very easily turn the existing > file system code into a FUSE file-system for Linux, for example, or > write the necessary shims to bundle the code into a kernel driver. This would work, but I think it dramatically reduces the value of the result. > In other words and in my opinion: rewriting file system code from > scratch is outside of the scope of GSoC, but writing the glue code for > the above to happen doesn't sound too crazy. (The only problem may be > if NetBSD's UFS2 driver is not compatible with FreeBSD's... but I > believe they should be for the "basic stuff".) >=20 > Some links: >=20 > https://github.com/rumpkernel/buildrump.sh > http://wiki.netbsd.org/rumpkernel/ >=20 There is no need to write the code from scratch. He would just need to take the existing code and wrap it so that it builds as part of a kernel module for other kernels. The only things that need to be written is glue code for mapping *BSD interfaces to foreign ones. I do not think it is much more complex than writing a FUSE filesystem driver, especially given the existence of user-mode Linux. That would permit the filesystem driver for Linux to be developed in userland on FreeBSD, much like a FUSE driver. Once the wrapper is written, the things that need revision to support other kernels should be rather clearly defined. http://user-mode-linux.sourceforge.net/ That being said, I do not like the idea of using NetBSD's UFS2 code. It lacks Soft-Updates, which I consider to make FreeBSD UFS2 second only to ZFS in desirability. --as4mxJEFeEtn235GvjhNqfwdGaWU73i6k Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIcBAEBAgAGBQJTIjFDAAoJECDuEZm+6Exkc4UP/i0WymXUJn+klvxwYmO/eG/T JX2lKDv8AeR1UAVrlMPzhbkgvq1WFmfyUAxJGxnAHZP2uWbONQRpJWjmtrUQZWe9 G5RPYlXtcOHxytu/Caw+lFCnL0pl1z2oI3VWzglMmBRcE2QAn8SgA7//kGSjlDO4 43KX3uxUkZFpoRc25a0SjqylHmpdjxUa3Lu3tnq3dSHkpptdnySYI2NtiPkyp3L3 9qmqSPDxkqY52/fIYbuw8iuHWaBgBzVPi9fF4CzfxXt3gKRzIULRkVP9vrUzkOc6 /hGn8Y+myDVWC+bBnEPrrHvOM4soLA7dnlX3EVGjm+woi2odSGcSz/6gF58FJ7Lc NeLuC1sqzzE8vRCtNUALcI5prndI7RddJiyX9YaqDOdrqygV8jocxly0BsowWDhV rc14UtXcIGrw2nulxfGsKzwDWtF5L2gXHgjyHS8pN2tX2E/kZWD3boJabh9fwK46 CXwka7/k1EbMbMPD8FVg1oE8YwnFU0cuPN2mHyPJrdRW7dNSNC1L2LMOHpVL8Qw3 +BKF3BSP0eSBXusZ5hl4JDA08cXHG+l8fZblvX3ODo1+YJldRsSM0OEN9ZI3dBYj D3MiGyMrQTwhOt0kf/8wCtSM1CzP5rGkGTLtl+/HHAtSmPU83deX8YQxa83VWglZ t2a37JRVB5W4xZYlcvmA =bGtm -----END PGP SIGNATURE----- --as4mxJEFeEtn235GvjhNqfwdGaWU73i6k--