From owner-freebsd-hackers@FreeBSD.ORG Mon Mar 17 18:38:26 2008 Return-Path: Delivered-To: freebsd-hackers@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 076071065674; Mon, 17 Mar 2008 18:38:26 +0000 (UTC) (envelope-from dillon@apollo.backplane.com) Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by mx1.freebsd.org (Postfix) with ESMTP id DD4898FC28; Mon, 17 Mar 2008 18:38:25 +0000 (UTC) (envelope-from dillon@apollo.backplane.com) Received: from apollo.backplane.com (localhost [127.0.0.1]) by apollo.backplane.com (8.14.1/8.13.7) with ESMTP id m2HIcDoJ019147; Mon, 17 Mar 2008 11:38:13 -0700 (PDT) Received: (from dillon@localhost) by apollo.backplane.com (8.14.1/8.13.4/Submit) id m2HIcCii019146; Mon, 17 Mar 2008 11:38:12 -0700 (PDT) Date: Mon, 17 Mar 2008 11:38:12 -0700 (PDT) From: Matthew Dillon Message-Id: <200803171838.m2HIcCii019146@apollo.backplane.com> To: Kris Kennaway References: <47DBC800.8030601@dir.bg> <47DD1FFF.6070004@FreeBSD.org> <200803170043.m2H0h2qO010175@apollo.backplane.com> <47DDCCC3.3020408@FreeBSD.org> Cc: Jordan Gordeev , freebsd-hackers@FreeBSD.org Subject: Re: vkernel & GSoC, some questions X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Mar 2008 18:38:26 -0000 :> Well, I don't think I would agree with your assessment but, :> particularly, the way vkernels are implemented in DragonFly is NOT :> in the least disruptive to kernel source. : :I was referring to the decision you made to rename all of the kernel :functions that conflicted with libc functions so that vkernels could be :linked against libc. : :Kris Huh. Well, that's about the last thing I would have thought would be considered disruptive to the kernel source. Everyone liked those changes. malloc -> kmalloc, printf -> kprintf, and so forth... just not a big deal and it allowed numerous special cases in the header files dealing with prototype conflicts to be removed in addition to allowing vkernel's to link against libc. Not only that but it removed conflicts against GCC builtins (which have their own ideas about what '%' features are valid and what are not) and properly separated kernel functions like sprintf to ksprintf, especially considering that the kernel version of sprintf does not support everything that the libc version does. For that matter you might as well throw in the system call function name changes. Instead of the actual system call in the kernel being called 'read()' it is now called 'sys_read()', so as not to conflict with 'read()'. That turned out to be a major positive clarification of the source code that made syscall entry points completely obvious to even non kernel programmers trying to read and understand it. All in all, it was a very good move for the project and I would strongly recommend that FreeBSD do the same thing. -Matt Matthew Dillon