*BSD News Article 97829


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!news.rmit.EDU.AU!news.unimelb.edu.au!munnari.OZ.AU!news.ecn.uoknor.edu!feed1.news.erols.com!chippy.visi.com!news-out.visi.com!newsfeed.direct.ca!nntp.portal.ca!cynic.portal.ca!not-for-mail
From: cjs@cynic.portal.ca (Curt Sampson)
Newsgroups: comp.os.linux.advocacy,comp.unix.bsd.netbsd.misc
Subject: Re: Linux hater's handbook?
Date: 16 Jun 1997 18:11:01 -0700
Organization: Internet Portal Services, Inc.
Lines: 76
Message-ID: <5o4o75$bcj@cynic.portal.ca>
References: <33A111C5.65852456@scripps.edu> <5nvvpi$rad@cynic.portal.ca> <5o3sr8$h36$1@palladium.transmeta.com>
NNTP-Posting-Host: cynic.portal.ca
Xref: euryale.cc.adfa.oz.au comp.os.linux.advocacy:101630 comp.unix.bsd.netbsd.misc:6119

In article <5o3sr8$h36$1@palladium.transmeta.com>,
Linus Torvalds <torvalds@transmeta.com> wrote:

>Yes, NetBSD has more ports than Linux when you count the number of
>platforms it runs on.  But looking at the list of platforms it supports,
>it is quite apparent that much of that support is not due to NetBSD
>being inherently more portable in any way - it just has a number of old
>platforms it still supports. 

Run that by me again. You have deduced, from only the list of
platforms that NetBSD supports, that this support is not due to
NetBSD being more portable? You'll have to give me a bit more detail
on this one; not being a kernel hacker of your calibre, I don't
see how you came to that conclusion based on that evidence.

Also, I'd like to know exactly what you mean by `old platforms it
still supports.' You were aware, were you not, that the original
platform was the i386 and all of the others were added later? The
hp300 platform used a lot of 4BSD code, but other platforms added
between '93 and '96 (sun3, amiga, pc532, pmax, vax, mvme68k, etc.)
are not legacy platforms; they are new ports done with new code.
Or do you consider your atari, amgia and MIPS ARCsystem and sun4
ports `old platforms [Linux] still supports'?

I'm certainly aware that one can't come to a final conclusion about
portability based just on the number of platforms each product runs
on, but I would think that NetBSD running on seventeen architectures
and Linux only on seven (and indeed, with Linux missing support
for some machines within those architectures--Turbochannel Alphas,
for instance) does provide some sort of indication that, if you're
going to guess one way or another, NetBSD is easier to port.  And
yes, I am aware that there could be lots of other reasons why the
pmax version of Linux has been stalled for well over a year now,
or why Linux/VAX has gotten no futher than a boot loader.

>If you want to run UNIX on a VAX, by all means go for NetBSD.  I'm not
>into retrocomputing myself, so I don't care all that much.  On any
>_modern_ hardware the issues are totally different.  And as to the ratio
>of machine-independent code - I wouldn't bet on it if I were you. 

Perhaps you could explain what the portability issues are, and why
they are totally different on `modern' hardware, as well as what
`modern' hardware is. I've not heard this sort of thing from anyone
but you.

As for bets, I'd be happy to cover a quite substantial one on having
a much higher ratio of MI code. Let's look at the Lance Ethernet
device driver, for instance. We have one driver for that chip:
dev/ic/am7990.c, about 1400 lines long. We also have a handful of
front ends for it for different buses (PCI, ISA, Zorro, VME, Sun
on-board, etc.), each no more than a few hundred lines long at
most, and each machine-independent in that it works on all machines
that have that particular bus.

What does linux have under the same circumstances? A quick look in
drivers/net brings forth:

    a2065.c ariadne.c atari_pamsnet.c atarilance.c depca.c
    lance.c ni65.c pcnet32.c sk_g16.c sunlance.c

Ten different drivers with a total of over twelve thousand lines
of code, most of it entirely unnecessary, except for the fact that
Linux has no framework for avoiding the duplication of an entire
driver when the chip moves from an ISA bus to a PCI bus.

This is hardly a unique situation in the Linux driver code, either,
though this may be one of the worst offenders. (I hadn't realised
the scale of this particular example before, actually--I assumed
there were just three or four lance drivers when I started doing
research for this post.)

cjs
-- 
Curt Sampson    cjs@portal.ca	   Info at http://www.portal.ca/
Internet Portal Services, Inc.	   Through infinite myst, software reverberates
Vancouver, BC  (604) 257-9400	   In code possess'd of invisible folly.