*BSD News Article 10745


Return to BSD News archive

Received: by minnie.vk1xwt.ampr.org with NNTP
	id AA608 ; Sat, 06 Feb 93 01:01:22 EST
Newsgroups: comp.unix.bsd
Path: sserve!manuel.anu.edu.au!munnari.oz.au!spool.mu.edu!howland.reston.ans.net!zaphod.mps.ohio-state.edu!caen!hellgate.utah.edu!fcom.cc.utah.edu!cs.weber.edu!terry
From: terry@cs.weber.edu (A Wizard of Earth C)
Subject: Re: SYS_getdomainname error (using getdomainname patch)
Message-ID: <1993Feb4.172404.8791@fcom.cc.utah.edu>
Sender: news@fcom.cc.utah.edu
Organization: Weber State University  (Ogden, UT)
References: <1993Jan29.174916.15369@fcom.cc.utah.edu> <1kbounINN1fh@hrd769.brooks.af.mil> <1993Jan31.194843.20328@uvm.edu>
Date: Thu, 4 Feb 93 17:24:04 GMT
Lines: 44

In article <1993Jan31.194843.20328@uvm.edu> wollman@sadye.emba.uvm.edu (Garrett Wollman) writes:
>One thing I don't understand in all this is, why should this even be a
>system call?  (Maybe I should ask Sun, since it's their idea...)  I
>can't see any reason whatsoever why this shouldn't be implemented as
>simple library functions that read and write a file (say,
>/etc/domainname, or even better /etc/resolv.conf when possible).  I
>have always believed in the rule that ``if it can reasonably be
>implemented in the library, then it has no business in the kernel.''

I wondered about this too; I came up with two arguments:

1)	A kernel interface is more rigidly defined; because of this,
	it simplifies the large number of programs that need to
	get domain name information (sendmail, netstat, etc.) by
	giving a single interface which is atomic in operation
	(one process in the system call will not allow it to be read
	while it is being written).  The fact that various implementations
	keep their domainname in different files further supports the
	approach, since it provides a measure of system indepedance
	which my not otherwise be possible.

2)	Historical reasons, including, but not limited to, the domain name
	being set in rc.local and not living in a file at all.  The file
	versions of the domainname evolved afterwards.  There is also
	historical code which uses the call.  This may be circumvented
	in the case of a direct call, but not in the case of an
	indirect call, such as syscall( SYS_getdomainname, buf, 32);.

If we define compatability at the system call level rather than the
library function or function stub level, it'sto our advantage to keep
the system call inteface (I know, sick).


					Terry Lambert
					terry@icarus.weber.edu
					terry_lambert@novell.com
---
Any opinions in this posting are my own and not those of my present
or previous employers.
-- 
-------------------------------------------------------------------------------
                                        "I have an 8 user poetic license" - me
 Get the 386bsd FAQ from agate.berkeley.edu:/pub/386BSD/386bsd-0.1/unofficial
-------------------------------------------------------------------------------