Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Oct 1997 22:19:54 -0400 (EDT)
From:      Thomas David Rivers <rivers@dignus.com>
To:        rivers@dignus.com, tlambert@primenet.com
Cc:        cracauer@cons.org, freebsd-emulation@freefall.FreeBSD.org, freebsd-hackers@freefall.FreeBSD.org, jlemon@americantv.com
Subject:   Re: LINUX emulation and uname(3).
Message-ID:  <199710110219.WAA11043@lakes.dignus.com>

next in thread | raw e-mail | index | archive | help
See below...

> 
> > > The Linux uname() call currently reports the FreeBSD info.  I suppose
> > > that this could be made into a sysctl if it really becomes a nuisance?
> > > (see sys/i386/linux/linux_misc.c:linux_newuname for the implementation)
> > 
> >  Well - it was a nuisance in this case, as I was unable to run the
> > particular Linux program I wanted to run...
> > 
> >  And, of course, you are right... I got a small program that simply
> > calls uname() on Linux and ran it on FreeBSD - it reported the FreeBSD
> > info...
> > 
> >  However, after reporting what I was doing, the company sent me a new
> > license key (with the idea that "FreeBSD" would be returned in the utsname
> > fields), which worked...  
> > 
> >  It's just a bother for the various companies, and it means that our claim
> > of being able to run Linux binaries isn't as complete as we may have wanted.
> > 
> >  Maybe a sysctl, so people could taylor it, is the right thing to do.  
> > In any event, I think a uname() call under Linux emulation should claim
> > to be "Linux" and not "FreeBSD".  So, the default should be "Linux"...
> 
> I *STRONGLY* disagree!
> 
> Putting aside for the moment the fact that the utsname is a silly thing
> to include in a licensing scheme on an OS where you can make it say
> whatever you want it to (you can even do it on Solaris/UnixWare, since
> you can load a loadable driver, and as part of the "init", overwrite
> the sysent[] table entry with a pointer to your replacement function).
> 
> The reason the Linux uname reports FreeBSD instead of Linux information
> is *precisely* to trigger fixes exactly like the one you got.  You now
> have added a "FreeBSD" tally mark instead of a "Linux" tally mark at
> that company.
> 
> Initially, it was done because of the Linux NetScape reporting "Linux"
> to the HTTP servers on the other end of the line, when in fact it was
> running on FreeBSD.  If you want accurate demographics for FreeBSD
> systems, then this type of thing needs to stick out.
> 
> That said, I'm not terribly opposed to a sysctl() that would let you
> hammer it down, but it should *definitely* remain the way it is for
> the default, and hammering should be a last resort.  I'm somewhat
> opposed to a sysctl(), only because it's too easy to avoid providing
> correct demographics to companies that should *know* that their products
> are being used on FreeBSD before the next release is ported to various
> platforms.
> 
> 
> 					Terry Lambert
> 					terry@lambert.org

 Well...

  For reasons such as Terry has described - I have been convinced that
 returning "Linux" as the default isn't the way to go.

  Also, just to let everyone know - the company has agreed to check for
 Linux and FreeBSD coming back from uname().  They will simply not look
 at sysname[] when building for Linux, using the constant string "Linux"
 instead.  Also, they indicated that at the time the license check was 
 designed - the idea of one OS emulating another hadn't occurred... (that 
 begs the question of why they are checking...)  You might see support
 for FreeBSD in some of the newer documentation; I'll let everyone know
 if it happens...

  For this reason, and since it did meet the goal of raising FreeBSD
 awareness - I'm going to suggest we not do a sysctl... You are running
 on FreeBSD and you should let everyone know about it!

	- Thanks for all the discussion! -
	    - Dave Rivers -





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199710110219.WAA11043>